13 ธันวาคม 2557

[Android Dev Tips] พึ่งจะรู้ว่า Package Name เค้ามีหลักการตั้งชื่ออย่างไร



        ก่อนอื่นขอสารภาพบาปเลยว่า เจ้าของบล็อกไม่เคยใส่ใจกับการตั้งชื่อ Package Name เลยแม้แต่น้อย แต่ก็จะมีหลักในการตั้งชื่อ Package Name ที่ใช้อยู่ประจำ นั่นก็คือ app.akexorcist.xxxx โดยที่ xxxx ก็คือชื่อแอพฯนั่นเอง

        แต่ก็เคยสงสัยอยู่บ่อยครั้งว่าทำไมต้องกำหนดแบบนี้กัน? หรือว่ากำหนดได้ตามใจชอบอย่างงั้นหรือ? จนกระทั่งวันนี้ได้สังเกตเห็นชื่อแอพต่างๆแล้วพึ่งจะเข้าใจว่า "ของแบบนี้มันก็มีที่มาเหมือนกัน" จึงขอเอามาเล่าสู่กันฟังเสียหน่อย


        โดยที่ Package Name นั้นจะประกอบไปด้วย Domain Name, App Name และคำที่กำหนดขึ้นมาเองดังนี้

        • <Domain Name> <คำที่กำหนดขึ้นมาเอง>
        • <Domain Name> <App Name>
        • <Domain Name> <App Name> <คำที่กำหนดขึ้นมาเอง>
        • <Domain Name> <คำที่กำหนดขึ้นมาเอง> <App Name>

        จะเห็นว่า Domain Name จะถูกกำหนดเป็นชื่อเริ่มต้นไว้เสมอ เนื่องจาก Domain Name เป็นชื่อที่ไม่สามารถซ้ำกันได้ (ก็ไม่มีเว็ปไหนที่ Domain Name ซ้ำกันเนอะ) แล้วจึงแยกย่อยด้วยคำที่กำหนดเองหรือชื่อแอพฯ หรือจะผสมกันก็ได้

        โดยที่ Domain Name จะมีการสลับตำแหน่งเล็กน้อยดังนี้

        Facebook มี Domain Name หลักคือ facebook.com เวลากำหนดเป็น Package Name ก็จะสลับตำแหน่งเป็น com.facebook

        Google มี Domain Name หลักคือ google.com เวลากำหนดเป็น Package Name ก็จะเป็น com.google

        และบล็อกนี้มี Domain Name เป็น akexorcist.com ก็จะได้เป็น com.akexorcist


        ทีนี้ลองมาดู Package Name ของแอพฯ Facebook ที่มีทั้งหมด


        ก็จะเห็นว่าแอพฯทุกตัวของ Facebook ขึ้นต้นด้วย com.facebook หมดเลย แล้วตามด้วยชื่อแอพฯหรือชื่อที่กำหนดเอง

        ลองมาดูของ  Google กันบ้าง


        ของ Google จะมีการแบ่งย่อยอีกว่าเป็นแอพของแอนดรอยด์ ดังนั้นจึงใช้วิธี

        <Domain Name> <ชื่อที่บอกว่าเป็นแอพของแอนดรอยด์> <ชื่อแอพ>

        ทีนี้ก็เห็นแนวทางในการตั้ง Package Name แล้วใช่มั้ยล่ะ


        แบบนี้แอพฯของเจ้าของบล็อกก็ต้องเปลี่ยนจาก app.akexorcist เป็น com.akexorcist น่ะสิ!!




เหล่าพันธมิตรแอนดรอยด์

Devahoy Layer Net NuuNeoI The Cheese Factory Somkiat CC Mart Routine Artit-K Arnondora Kamonway Try to be android developer Oatrice Benz Nest Studios Kotchaphan@Medium Jirawatee@Medium Travispea@Medium