02 มีนาคม 2557

[Android Dev Tips] Package Name บน Android Application คืออะไร?


        Package Name คำๆนี้ผู้ที่หลงเข้ามาอ่านคงจะเห็นกันประจำเวลาจะสร้างโปรเจคเวลาจะเขียนแอปพลิเคชันซักตัว แต่ทว่าเราตั้งมันเพื่ออะไร? ตั้งไปทำไม?


        เดิมทีนั้นระบบ Package มีอยู่บน Java มาตั้งนานแล้ว และแอปพลิเคชันแอนดรอยด์ที่ใช้ภาษา Java ในการพัฒนาเป็นหลักก็มีการจัดการไฟล์ที่อยู่ในรูปแบบเดียวกันนั่นแหละ

        โดยที่ Package นั้นคือวิธีการจัดการคลาสต่างๆที่มีอยู่ในโปรแกรมให้มีระเบียบและเป็นหมวดหมู่ เพื่อให้นักพัฒนาสามารถจัดการกับโปรแกรมได้เป็นระบบ

        บนแอนดรอยด์นั้นจะมีการบังคับให้กำหนด Package Name ของแอปพลิเคชันนั้นๆ เพื่อให้ระบุว่า Package หลักของแอปพลิเคชันนั้นอยู่ที่ไหน โดยมีเงื่อนไขว่าเป็นชื่ออะไรก็ได้ตัวอักษรภาษาอังกฤษตัวพิมพ์เล็ก ห้ามมีตัวเลขและตัวอักษรพิเศษ และจะต้องมีจุดคั่นระหว่างคำอย่างน้อยหนึ่งจุด เช่น com.myapplication (มีจุดคั่นระหว่างคำ 1 จุด) หรือ app.facebook.messenger (มีจุดคั่นระหว่างคำ 2 จุด) เป็นต้น

        Package Name ก็เหมือนชื่อของแอปพลิเคชันนั้นๆนั่นแหละ ซึ่งไม่เหมือนกับ Application Name ที่จะตั้งชื่ออะไรก็ได้ เวลาที่อยู่บน Google Play ก็สามารถมีชื่อซ้ำกับแอปพลิเคชันอื่นๆได้ อย่างเช่นเจ้าของบล็อกค้นหาแอปพลิเคชันที่ชื่อว่า Stopwatch จะเห็นว่ามีแอปพลิเคชันที่ชื่อแบบนี้เหมือนกัน



        แล้วจะรู้ได้ไงล่ะว่าแอปพลิเคชันไหนเป็นของใคร?

        เค้าก็จะใช้วิธีระบุตัวแอปพลิเคชันจาก Package นี่แหละ ถ้าผู้ที่หลงเข้ามาอ่านเคยสังเกตเล่นๆที่หน้าดาวน์โหลดแอปพลิเคชัน (แบบเปิดผ่านคอม) จะเห็นว่า URL ของแอปพลิเคชันต่างๆใน Google Play มี Package Name อยู่ใน URL ด้วย


        ซึ่งจะช่วยให้สามารถระบุตัวตนของแอปพลิเคชันนั้นๆได้ว่าเป็นแอปพลิเคชันตัวไหน จึงหมดปัญหาเรื่องแอปพลิเคชันชื่อซ้ำกันไปได้เลย แก้ปัญหาการแย่งจองชื่อแอปพลิเคชันด้วย จึงทำให้แอปพลิเคชันใน Google Play สามารถมีชื่อซ้ำกันได้ เพราะ Package Name ต่างกัน

        และนอกจาก Package หลักแล้ว ในโปรเจคของเราก็สามารถมี Package อื่นๆได้เช่นกัน ซึ่งเขียนคำสั่งเรียกใช้งานได้ตามปกติขอแค่ระบุ Package ที่ถูกต้อง



        แล้วจะรู้ได้ไงว่าแอปพลิเคชันของเราใช้ Package Name ชื่ออะไร?

        Package Name ของแอปพลิเคชัน ถ้าจำไม่ได้ว่าตั้งอะไรไว้สามารถเช็คได้ที่ AndroidManifest.xml 



        เวลากำหนด Package Name ควรกำหนดอย่างไรถึงจะเหมาะสม?

        Package Name สามารถตั้งชื่อได้ตามใจชอบ จะเยอะแค่ไหนก็ได้ จะน้อยแค่ไหนก็ได้ ขอแค่ไม่ซ้ำกับแอปพลิเคชันอื่นๆบน Google Play ก็พอ เพราะเวลาอัปโหลดขึ้นไปแล้วระบบจะแจ้งกลับมาว่ามีผู้อื่นใช้ Package Name นี้แล้ว

        ดังนั้นจึงไม่ควรกำหนด Package Name แบบโหลๆเกินไป อย่างเช่น
     
        • com.example อันนี้คือพวกที่สร้างโปรเจคมาแล้วไม่แก้ไข เพราะไม่ได้สนใจอะไรเลย เวลาอัปโหลดขึ้น Google Play แล้วจะแจ้งว่าชื่อซ้ำ 100% ต้องมานั่งเปลี่ยนชื่อใหม่

        • com.calculator อันนี้ชื่อโหลเกินไป เชื่อว่ามีคนเคยตั้งชื่อนี้แล้วอัปโหลดขึ้น Google Play ไปแล้ว

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


        ดังนั้นยิ่งชื่อที่ตั้งเป็นชื่อที่เฉพาะตัวและมีการกำหนดละเอียดมากเท่าไรก็จะทำให้ซ้ำกับคนอื่นยากมากเท่านั้น





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

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