09 พฤษภาคม 2557

[Android Dev Tips] Guideline สำหรับการเริ่มต้นเขียนแอปพลิเคชันแอนดรอยด์




       สำหรับบทความนี้ไม่ได้พูดถึงอะไรมากนัก เพียงแค่ต้องการรวบรวมบทความสำคัญๆสำหรับผู้ที่ต้องการเริ่มต้นพัฒนาแอปพลิเคชันแอนดรอยด์ แต่ทว่าทีนี้ต้องทำอะไรก่อนบ้าง ติดตั้งอะไรก่อนบ้าง พอจะค้นหาในอินเตอร์เน็ตก็เจอเยอะแยะไปหมดไม่รู้ว่าอันไหนควรจะเริ่มต้นก่อน

        ดังนั้นบทความนี้ก็จะมาไกด์ไลน์ให้คราวๆสำหรับนักพัฒนามือใหม่ดังนี้

ก่อนอื่นผู้ที่หลงเข้ามาอ่านจะต้องเตรียมอุปกรณ์ดังต่อไปนี้ก่อน


        เจ้าของบล็อกขอแนะนำให้เครื่องคอมพิวเตอร์ที่มีสเปคดีๆหน่อย อย่าสเปคต่ำมาก เพราะนี่คือ Java ซึ่งใช้สเปคพอสมควร และเจ้า Android Studio นั้นพร้อมที่จะกินทรัพยากรเต็มที่โดยเฉพาะ RAM

        ดังนั้นก็ควรเลือกเครื่องที่มี CPU ดีพอตัวหน่อย (Intel Core i3 ขึ้นไป) และควรจะมี RAM ซัก 8GB หรือมากกว่านั้นก็ยิ่งดี เพราะนอกจากจะโดน Android Studio เขมือบทรัพยากรเครื่องแล้ว อย่าลืมว่ามีพวก Chrome หรือโปรแกรมต่างๆที่อาจจะต้องเปิดควบคู่ไปด้วยระหว่างการพัฒนาแอพแอนดรอยด์




        ยอมรับเลยว่ายุคสมัยนี้ใครๆก็สามารถเรียนรู้ได้ผ่านอินเตอร์เน็ต (เจ้าของบล็อกคนนึงละ) ไม่ว่าจะเรียนรู้จากเว็ปต่างๆหรือการถาม-ตอบในที่ต่างๆ โดยเฉพาะ Stackoverflow เพราะว่าที่แห่งนี้จะมีคำตอบที่ผู้ที่หลงเข้ามาอ่านค้นหาอยู่เกือบ 90% ของคำตอบทั้งหมดเลยก็ว่าได้

        และนอกจากนี้บน Android Studio ก็ค่อนข้างต้องการอินเตอร์เน็ตด้วย ถึงแม้ว่าจะออฟไลน์ได้ แต่การออนไลน์ได้มันก็จะสะดวกกว่า อย่างการดาวน์โหลด Dependencies หรือการใช้งาน Version Control ก็ตาม




         การเรียนรู้ในการพัฒนาจะทำได้ดีและเร็วก็เมื่อมีอุปกรณ์และเครื่องมือพร้อมอยู่เสมอ การมีเครื่องแอนดรอยด์จริงๆให้ใช้ก็เช่นกัน ถึงแม้ว่าจะมี Emulator ให้ใช้ก็ตาม แต่การมีเครื่องจริงก็ทำให้ผู้ที่หลงเข้ามาอ่านสามารถเรียนรู้ได้เยอะกว่านะเออ

        ถ้ายังไม่มีเครื่องจริงไว้ใช้ ลองดูแนวทางในการเลือกซื้อได้ที่ [Android Dev Tips] ซื้อเครื่องมาเขียนเขียนแอพแอนดรอยด์ จะเลิอกยังไงดี?

        ยังไม่พร้อมสำหรับอุปกรณ์แอนดรอยด์หรือ? 

        ถ้าจำเป็นต้องใช้ Emulator จริงๆ เจ้าของบล็อกไม่แนะนำให้ใช้ AVD (Android Virtual Device) เพราะว่ามันไม่ค่อยลื่นซักเท่าไร และทำงานได้ไม่ดีพอ โดยเจ้าของบล็อกแนะนำให้ใช้ Emulator ที่ชื่อว่า Genymotion แทน โดยสามารถดูการติดตั้งได้จาก Genymotion - Android Emulator สุดเจ๋งสำหรับนักพัฒนา [การติดตั้งใช้งาน]




        อันนี้ค่อนข้างสำคัญพอสมควรที่ผู้ที่หลงเข้ามาอ่านจะต้องเจียดเวลาในชีวิตประจำวันมาทุ่มเทให้กับการฝึกพัฒนาแอพกันหน่อย เพราะถ้าเขียนไม่ค่อยบ่อย สิบปีถึงจะเขียนครั้งนึง (ก็เวอร์ไป) ก็จะทำให้การฝึกฝนนั้นขาดตอนไป ดังนั้นนอกจากจะลงทุนเรื่องทรัพย์สินกันแล้ว ก็ควรจะลงทุนเรื่องเวลากันด้วยนะครับ


เมื่อเตรียมพร้อมสำหรับเบื้องต้นแล้วก็มาดูกันต่อเลยว่าต้องเริ่มจากอะไรกันบ้าง


        สำหรับโปรแกรมพัฒนาแอพแอนดรอยด์หลักๆ (Native Development Tools) จะมีอยู่ด้วยกัน 2 ตัวคือ Eclipse ADT และ Android Studio ซึ่งเมื่อก่อนนั้นจะใช้ Eclipse ADT กัน แต่ในภายหลังทางทีมพัฒนาได้ทำ Android Studio ออกมาให้ใช้งานกัน ซึ่งทำงานได้ดีกว่า มีประสิทธิภาพดีกว่า (แต่กินสเปคมากกว่าด้วยเช่นกัน)

        เนื่องจากทีมพัฒนาต้องการผลักดันให้ใช้ Android Studio แทนที่ Eclipse ADT ดังนั้นเจ้าของบล็อกจึงแนะนำให้เปลี่ยนไปใช้ Android Studio แทนซะ พึ่งเริ่มต้นก็ยิ่งดี เพราะว่าทั้งสองตัวนี้มีการใช้งานแตกต่างกันพอสมควร (แต่โค๊ดเหมือนกัน) ซึ่งเจ้าของบล็อกก็ทยอยอัพเดทเนื้อหาของ Android Studio เรื่อยๆแล้ว

        • วิธีการติดตั้งโปรแกรม Android Studio
        • วิธีการติดตั้งโปรแกรม Eclipse ADT




         เพื่อเตรียมแบบฟอร์มเริ่มต้นให้พร้อมกับการเขียนโปรแกรม แต่ว่าจะยังไม่ให้เขียนโปรแกรม เพราะเจ้าของบล็อกจะให้ต่ออุปกรณ์แอนดรอยด์เข้ากับคอมพิวเตอร์ซะก่อน

        • เริ่มต้นสร้างแอปพลิเคชันแอนดรอยด์บน Android Studio
        • เริ่มต้นสร้างแอปพลิเคชันแอนดรอยด์บน Eclipse

        ซึ่งให้เตรียมโค๊ดเบื้องต้นไว้ให้พร้อมแต่ยังไม่ต้องกดทดสอบการทำงาน




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

        โดยดูวิธีทำได้จาก ว่าด้วยเรื่องการติดตั้ง App จากโปรแกรมลงบนอุปกรณ์แอนดรอยด์ ซึ่งจะมีขั้นตอนการติดตั้งไดรเวอร์ด้วย



เริ่มทำงานศึกษาและฝึกฝนในการเขียนแอปพลิเคชันได้เต็มที่เลย!!!!

        สำหรับเนื้อหาที่ควรศึกษาในช่วงแรกๆคือพื้นฐานภาษา Java เลย เพราะต้องรู้โครงสร้างภาษาก่อน รวมไปถึง OOP อย่างคร่าวๆด้วย เพราะในการพัฒนาแอปพลิเคชันแอนดรอยด์ เรื่อง OOP นี่ขาดไปไม่ได้เลยทีเดียวล่ะ


        เมื่อพื้นฐานพร้อมแล้ว ให้ต่อด้วยการหัดใช้งาน LogCat เพราะสิ่งนี้จะเป็นตัวช่วยให้ผู้ที่หลงเข้ามาอ่านดูการทำงานของเครื่องได้ในยามที่เขียนโปรแกรมเสร็จแล้ว

        โดยเฉพาะอย่างยิ่งเวลาที่แอพทำงานอยู่แล้วเด้งแล้วปิดตัวเอง ซึ่งผู้ที่หลงเข้ามาอ่านสามารถดูสาเหตุได้ที่ LogCat นั่นเอง โดยดูการใช้งานเบื้องต้นได้ที่ LogCat พื้นฐานการพัฒนา Application


        ให้ลองหาตัวอย่างการใช้งาน Widget พื้นฐานเช่น Button, EditText หรือ TextView ก่อน เพื่อดูว่ามีวิธีใช้งานยังไง เพราะทั้งสามตัวนี้หลักการเหมือนกัน แล้วลองศึกษา Activity Life Cycle บนแอนดรอยด์ก่อน เพื่อให้เข้าใจได้ว่าจะเขียนโค๊ดไว้ที่ตรงไหน (สำหรับเรื่องเหล่านี้เจ้าของบล็อกยังไม่ได้ทำบทความไว้ สามารถดูจากเว็ปอื่นๆได้เลย มีคนทำไว้เยอะแล้วเหมือนกัน)

        ต่อมาให้ลองศึกษาการจัดวาง Layout เบื้องต้น พยายามทำความเข้าใจกับ Linear Layout กับ Relative Layout ก่อนว่าทั้งสองตัวนี้ทำงานยังไง แล้วลองประยุกต์จัด Layout ในรูปแบบต่างๆออกไปดู

        เมื่อ Widget พื้นฐานเข้าใจแล้ว LogCat ก็ใช้เป็นแล้ว ค่อยๆพัฒนาเรียนรู้เพิ่มเติมไปเรื่อยๆ เช่น Intent, ListView หรือ ImageView เป็นต้น โดยเน้นศึกษาการใช้งานแล้วทำความเข้าใจ


        แล้วให้ลองเอาแต่ละเรื่องที่ศึกษามาคิดเป็นแอพง่ายๆซักตัวก่อน แล้วลองพยายามเขียนเองโดยให้ทำ Pseudocode หรือ Flowchart เพื่อลำดับความเข้าใจให้กับตัวเองก่อน จากนั้นก็ลองเริ่มเขียนด้วยตัวเอง ออกแบบ Layout ตามใจชอบ

        โดยการเขียนโปรแกรมควรดูแค่โค๊ดพื้นฐานการใช้งานในบางส่วนเท่านั้น ไม่แนะนำให้ไปหาตัวอย่างทั้งหมดมาใช้งานเลย เพราะมันจะทำให้ไม่เข้าใจ (เชื่อเถอะ ขนาดเตือนแบบนี้แล้วก็ยังมีคนทำอยู่)

        เมื่อแอปพลิเคชันเสร็จแล้วลองจัด Layout ให้สวยงามใส่สีแต่งเติมหน้าตาใหม่เหมาะจากนั้นจะลองทำอะไรต่อก็เชิญเลย เพราะผู้ที่หลงเข้ามาอ่านเริ่มพัฒนาแอปพลิเคชันเป็นแล้วววว (ถ้ายังบอกว่าไม่เป็นให้กลับไปอ่านข้างบนตั้งแต่ตอนแรกซะ)




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

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