09 May 2014

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

Updated on

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

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

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


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

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


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

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


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

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


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

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


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


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


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


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

        สำหรับเนื้อหาที่ควรศึกษาในช่วงแรกๆคือพื้นฐานภาษา 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 ให้สวยงามใส่สีแต่งเติมหน้าตาใหม่เหมาะจากนั้นจะลองทำอะไรต่อก็เชิญเลย เพราะผู้ที่หลงเข้ามาอ่านเริ่มพัฒนาแอปพลิเคชันเป็นแล้วววว (ถ้ายังบอกว่าไม่เป็นให้กลับไปอ่านข้างบนตั้งแต่ตอนแรกซะ)