Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Android

สร้างแอป Android ทันสมัย 2018-2019: แผนทางการพัฒนาครบวงจร

ชุดบทความแอป Kriptofolio — บทนำ

ยินดีต้อนรับสู่ชุดบทความนี้ที่จะสร้างแอป Android ทันสมัยโดยใช้เครื่องมือและแนวทางปฏิบัติที่ดีที่สุดในปี 2018-2019 ผมทำเพราะอยากครอบคลุมหัวข้อน่าสนใจทั้งหมดในโลก Android และเรียนรู้ผ่านการสอนให้ทุกคน

หากติดตามชุดนี้ คุณจะได้เรียนรู้การพัฒนาแอปจากศูนย์ แต่ละบทจะครอบคลุมหัวข้อพัฒนาที่เฉพาะเจาะจง ผมจะพยายามสร้างแอปคุณภาพดีและอธิบายกระบวนการพัฒนา บทความแรกนี้คือแผนทาง (Roadmap) ของโครงการ

เนื้อหาชุดบทความ

  • บทนำ: แผนทางสร้างแอป Android ทันสมัย 2018-2019 (คุณอยู่ที่นี่)
  • ภาค 1: แนะนำหลักการ SOLID
  • ภาค 2: เริ่มสร้างแอป Android: สร้าง Mockups, UI และ XML Layouts
  • ภาค 3: สถาปัตยกรรมแอป: สำรวจรูปแบบสถาปัตยกรรมต่างๆ และการนำไปใช้
  • ภาค 4: นำ Dependency Injection ไปใช้ด้วย Dagger 2
  • ภาค 5: จัดการ RESTful Web Services ด้วย Retrofit, OkHttp, Gson, Glide และ Coroutines

แอป "Kriptofolio" (เดิมชื่อ "My Crypto Coins")

ตั้งแต่แรกก็คิดหาไอเดียที่ครอบคลุมเทรนด์ Android ทั้งหมด จนสุดท้ายเจอไอเดียที่เกี่ยวกับ blockchain และคริปโตเคอเรนซี — สร้างแอปจัดการพอร์ตโฟลิโอคริปโตและแปลงค่าเป็นเงินฟיאต (Fiat)

จุดสำคัญคือแอปนี้ต้องให้ความไว้วिशวาส 100%: ไม่ต้องล็อกอิน/สมัครสมาชิก ไม่เก็บข้อมูลผู้ใช้ส่งเซิร์ฟเวอร์ เนื่องจากไม่มีใครสบายใจแบ่งปันข้อมูลเงินทุนออนไลน์

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

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

เทคโนโลยีและเครื่องมือที่จะใช้

แอปต้องการข้อมูลราคาคริปโตเคอเรนซีแบบเรียลไทม์ ซึ่งจะดึงมาจาก API

Data API:

CoinMarketCap — เว็บไซต์ดูภาพรวมตลาดคริปโตยอดนิยม มี API ฟรีเหมาะสำหรับโปรเจกต์นี้

ภาษาโปรแกรม:

Kotlin — ภาษารسميةของ Android ทรงพลัง สะดวก และทำงานร่วมกับ Java ได้ดี เป็นหัวข้อร้อนแรงในปี 2017 โปรเจกต์นี้จะเขียนด้วย Kotlin (ผมเคยเขียนบทความ "เรียน Kotlin ผ่านการสร้างแอปคิดเลข Android")

IDE (สภาพแวดล้อมพัฒนา):

Android Studio — IDE ทางการของ Android เร็วที่สุด ไม่มีทางเลือกดีกว่าสำหรับ Native App

ระบบจัดการบิลด์ (Build System):

Gradle — ระบบบิลด์ขั้นสูงบน Groovy และ Kotlin รองรับดาวน์โหลดและตั้งค่า Dependencies อัตโนมัติ แนะนำโดย Google และผสานรวมใน Android Studio อย่างสมบูรณ์

สถาปัตยกรรม (Architecture):

Android Architecture Components — ชุดไลบรารีช่วยออกแบบแอปที่แข็งแกร่ง ทดสอบได้ และบำรุงรักษาง่าย
Model–View–ViewModel (MVVM) — รูปแบบสถาปัตยกรรมแยก邏輯แสดงผล (Presentation Logic) ออกจาก бизнес邏輯 (Business Logic) ทีม Android 推薦เป็นค่าเริ่มต้น และเป็นทางเลือกแทน MVC และ MVP
Coroutines — รูปแบบการออกแบบสำหรับความขนาน (Concurrency) ทำให้โค้ด Asynchronous ง่ายขึ้น

การเก็บข้อมูล (Data Persistence):

SQLite Database — ฐานข้อมูล SQL แบบ Open Source เก็บข้อมูลในไฟล์ข้อความบนอุปกรณ์ Android มี SQLite built-in รองรับฟีเจอร์ Relational Database ครบถ้วน
Shared Preferences — API ของ Android SDK สำหรับเก็บ/ดึงค่าตั้งค่าแอปแบบ Key-Value Pair

ไลบรารี (Libraries):

Android Jetpack Components:

  • AppCompat — Support Libraries ทำให้แอปรุ่นใหม่รันบน Android รุ่นเก่าได้
  • Android KTX — Kotlin Extensions ทำให้พัฒนา Android ด้วย Kotlin สะดวก สั้น กว่า
  • Data Binding — ผูก UI Components ใน Layout กับ Data Sources แบบ Declarative
  • Lifecycles — จัดการวงจรชีวิต Activity และ Fragment
  • LiveData — Observable Data Holder แก้ปัญหา Lifecycle ทำให้แอปบำรุงรักษาและทดสอบง่าย
  • Room — Abstraction Layer บน SQLite เข้าถึงฐานข้อมูลง่าย แต่ยังใช้พลัง SQLite เต็มที่
  • ViewModel — จัดเก็บและจัดการข้อมูล UI แบบ Lifecycle-aware ข้อมูลคงอยู่แม้การหมุนหน้าจอ

อื่นๆ:

  • ConstraintLayout — สร้าง Layout ยืดหยุ่น มีประสิทธิภาพ ใช้ Constraints กำหนดตำแหน่ง UI
  • CardView — แสดงข้อมูลแบบการ์ด มีเงา (Elevation) และมุมโค้ง สม่ำเสมอทุกแพลตฟอร์ม
  • RecyclerView — เวอร์ชันยืดหยุ่นและมีประสิทธิภาพของ ListView เรียกใช้ View ซ้ำได้ (Recycle) เลื่อนลื่น

Third-party Libraries:

  • Dagger 2 — Dependency Injection Framework แบบ Static Compile-time สำหรับ Java และ Android
  • Retrofit 2 — Type-safe HTTP Client สร้างการเชื่อมต่อ HTTP ผ่าน Interface แบบ API Document
  • OkHttp — HTTP Client ทันสมัย รวดเร็ว รองรับ HTTP/2 และ SPDY
  • Gson — Serialize/Deserialize Java Objects ไป/มาจาก JSON
  • Glide — Image Loading Library เร็ว เน้นการเลื่อนลื่น (Smooth Scrolling) API ใช้ง่าย

ตั้งค่าโปรเจกต์ใหม่

สร้างโปรเจกต์จากศูนย์ใน Android Studio ตั้งชื่อ "My Crypto Coins" เลือก "Basic Activity" เริ่มต้นสะอาด ไม่เพิ่มฟีเจอร์ซับซ้อน (เช่น Instant App) สามารถเพิ่มภายหลังได้

ตั้งค่า: เปิดรองรับ Kotlin, Target API 23 (Android 6.0 Marshmallow)

ทำไมเลือก API 23? ตัดรุ่นเก่าออกลดปัญหา Compatibility และผมมี Nexus 7 (2013) รัน Android 6.0.1 สำหรับทดสอบจริง

เลือก Basic Activity ที่สร้างโค้ดพื้นฐานพร้อม Fragment และ Floating Action Button

สร้างแอป Android ทันสมัย 2018-2019: แผนทางการพัฒนาครบวงจร
Android Studio v3.0+ มี Kotlin Plugin built-in แค่ติ๊กเลือก
สร้างแอป Android ทันสมัย 2018-2019: แผนทางการพัฒนาครบวงจร
เลือก Min SDK ตามความต้องการทางธุรกิจ
สร้างแอป Android ทันสมัย 2018-2019: แผนทางการพัฒนาครบวงจร
เลือก Basic Activity สร้างโค้ดเริ่มต้นที่มีประโยชน์
สร้างแอป Android ทันสมัย 2018-2019: แผนทางการพัฒนาครบวงจร
ติ๊กเพื่อวางเนื้อหาใน Fragment

GitHub — บริการโฮสติ้ง Version Control ยอดนิยม โปรเจกต์นี้ Open Source จะใช้ GitHub ทุกบทจะมี Commits แยก Branch และ Master Branch สำหรับโค้ดล่าสุด ดูโค้ดบน GitHub

ขอจบบทนำที่นี่ หากมีคำถาม ข้อเสนอแนะ สามารถคอมเมนต์ได้เลย มาเรียนรู้กันต่อในภาค 2 นะครับ! 🚀

ขอบคุณครับ! บทความนี้เผยแพร่เดิมบนบล็อก www.baruckis.com วันที่ 12 กุมภาพันธ์ 2018