Computer >> คอมพิวเตอร์ >  >> ระบบ >> Android

แผนงานในการสร้างแอพ Android ที่ทันสมัยในปี 2018–2019

ชุดแอป Kriptofolio — บทนำ

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

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

เนื้อหาซีรีส์

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

แนวคิดของแอป:“Kriptofolio” (ก่อนหน้านี้ “My Crypto Coins”)

ตอนแรกมันยากที่จะคิดแผนเพื่อแสดงแนวโน้มการพัฒนา Android ทั้งหมด แต่ในที่สุดฉันก็พบสิ่งที่ชอบ มันเกี่ยวข้องกับความสนใจอย่างมากของฉัน — blockchain และ cryptocurrencies ฉันตัดสินใจสร้างแอปที่มีพอร์ตสกุลเงินดิจิทัลของคุณ และแจ้งให้คุณทราบว่ามูลค่าของแอปเหล่านี้มีค่าควรแก่การแปลงเป็นเงิน fiat

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

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

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

เราจะใช้อะไรดี

อันดับแรก ในการสร้างแอพนี้ เราจำเป็นต้องรู้เกี่ยวกับราคา cryptocurrency ต่างๆ ในขณะนี้ ข้อมูลนี้จะได้รับจากอินเทอร์เน็ตในขณะที่มีการเปลี่ยนแปลงอย่างต่อเนื่อง

Data API:

CoinMarketCap — หนึ่งในเว็บไซต์ยอดนิยมสำหรับการดูภาพรวมของตลาดสกุลเงินดิจิตอล เว็บไซต์นี้มี API ฟรีที่ทุกคนสามารถใช้ได้และเหมาะกับเราในฐานะผู้ให้บริการข้อมูลเป็นอย่างยิ่ง

ต่อไป ฉันได้จัดทำรายการสิ่งที่มีแนวโน้มมากที่สุดในโลกของ Android ที่เข้ากับโปรเจ็กต์นี้และควรใช้ในนั้น

ภาษาการเขียนโปรแกรม:

Kotlin — ภาษาทางการบน Android มันแสดงออก รัดกุม และมีประสิทธิภาพ เหนือสิ่งอื่นใด มันสามารถทำงานร่วมกับภาษา Android และรันไทม์ที่มีอยู่ได้

การแนะนำภาษาใหม่นี้เป็นหนึ่งในหัวข้อที่ร้อนแรงที่สุดในปี 2560 สำหรับ Android แอพของเราต้องเขียนในนั้น ฉันยังพูดถึง Kotlin และคุณลักษณะต่างๆ ของ Kotlin ในบล็อกโพสต์ที่ผ่านมาว่า "มาเรียน Kotlin ด้วยการสร้างแอปเครื่องคิดเลข Android กันเถอะ"

สภาพแวดล้อมการพัฒนาแบบบูรณาการ (IDE):

Android Studio — IDE อย่างเป็นทางการสำหรับ Android มีเครื่องมือที่เร็วที่สุดในการสร้างแอปบนอุปกรณ์ Android ทุกประเภท ไม่มีทางเลือกอื่นที่ดีกว่าสำหรับการพัฒนาแอพที่มาพร้อมเครื่อง เป็นตัวเลือกหลักของเราสำหรับ IDE โดยไม่มีปัญหา

ระบบจัดการการสร้างโครงการ:

Gradle — เป็นระบบจัดการบิลด์เอนกประสงค์ขั้นสูงที่ใช้ Groovy และ Kotlin รองรับการดาวน์โหลดและกำหนดค่าการขึ้นต่อกันหรือไลบรารีอื่นๆ โดยอัตโนมัติ เป็นระบบสร้างที่แนะนำโดย Google มันถูกรวมเข้ากับ Android Studio อย่างดี ดังนั้นเราจะใช้มัน

สถาปัตยกรรม:

คอมโพเนนต์สถาปัตยกรรม Android — ชุดของไลบรารีที่ช่วยคุณออกแบบแอปที่มีประสิทธิภาพ ทดสอบได้ และบำรุงรักษาได้

Model–View–ViewModel (MVVM) — รูปแบบสถาปัตยกรรม แนวคิดคือการแยกตรรกะการนำเสนอข้อมูลออกจากตรรกะทางธุรกิจโดยการย้ายไปยังคลาสเฉพาะเพื่อให้เห็นความแตกต่างอย่างชัดเจน ทีม Android กำลังผลักดันรูปแบบนี้เป็นตัวเลือกเริ่มต้น นอกจากนี้ยังเป็นทางเลือกแทน MVC และรูปแบบ MVP ยอดนิยม

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

Coroutines — รูปแบบการออกแบบการทำงานพร้อมกันที่คุณสามารถใช้ได้บน Android เพื่อทำให้โค้ดที่รันแบบอะซิงโครนัสง่ายขึ้น

การคงอยู่ของข้อมูล:

ฐานข้อมูล SQLite — เป็นฐานข้อมูล SQL โอเพ่นซอร์สที่จัดเก็บข้อมูลอย่างต่อเนื่องไปยังไฟล์ข้อความบนอุปกรณ์ Android มาพร้อมกับการใช้งานฐานข้อมูล SQLite ในตัว SQLite รองรับคุณสมบัติฐานข้อมูลเชิงสัมพันธ์ทั้งหมด

ค่ากำหนดที่ใช้ร่วมกัน — API จาก Android SDK เพื่อจัดเก็บและดึงค่ากำหนดของแอปพลิเคชัน SharedPreferences เป็นเพียงชุดของค่าข้อมูลที่เก็บไว้อย่างต่อเนื่อง ช่วยให้คุณบันทึกและดึงข้อมูลในรูปแบบของคู่ค่าคีย์

ห้องสมุด:

Android Jetpack ส่วนประกอบ:

AppCompat — เป็นชุดของไลบรารีสนับสนุนที่สามารถใช้เพื่อทำให้แอปที่พัฒนาด้วยเวอร์ชันที่ใหม่กว่าสามารถทำงานร่วมกับเวอร์ชันที่เก่ากว่าได้

Android KTX — ชุดส่วนขยาย Kotlin สำหรับการพัฒนาแอพ Android เป้าหมายของ Android KTX คือการทำให้การพัฒนา Android ด้วย Kotlin กระชับ น่าใช้งาน และมีสำนวนมากขึ้น โดยใช้ประโยชน์จากคุณสมบัติของภาษา เช่น ฟังก์ชัน/คุณสมบัติส่วนขยาย แลมบ์ดา พารามิเตอร์ที่มีชื่อ และค่าเริ่มต้นของพารามิเตอร์

Data Binding — เป็นไลบรารีสนับสนุนที่ให้คุณผูกส่วนประกอบ UI ในเลย์เอาต์ของคุณกับแหล่งข้อมูลในแอปของคุณโดยใช้รูปแบบที่เปิดเผยมากกว่าโดยทางโปรแกรม

วงจรชีวิต — สำหรับจัดการกิจกรรมและวงจรชีวิตส่วนย่อย

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

ห้อง — มีชั้นนามธรรมเหนือ SQLite เพื่อให้เข้าถึงฐานข้อมูลได้ง่ายในขณะที่ควบคุมพลังของ SQLite อย่างเต็มที่

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

อื่นๆ:

ConstraintLayout — สำหรับการสร้างเลย์เอาต์ที่ยืดหยุ่นและมีประสิทธิภาพ Layout Editor ใช้ข้อจำกัดเพื่อกำหนดตำแหน่งขององค์ประกอบ UI ภายในเลย์เอาต์ ข้อจำกัดแสดงถึงการเชื่อมต่อหรือการจัดแนวไปยังมุมมองอื่น เค้าโครงหลัก หรือแนวทางที่มองไม่เห็น

CardView — องค์ประกอบที่แสดงข้อมูลในรูปแบบการ์ดโดยมีเงาตกกระทบ (ระดับความสูง) และรัศมีมุมซึ่งดูสอดคล้องกันทั่วทั้งแพลตฟอร์ม

RecyclerView — ListView เวอร์ชันที่ยืดหยุ่นและมีประสิทธิภาพ เป็นคอนเทนเนอร์สำหรับแสดงชุดข้อมูลขนาดใหญ่ของมุมมองที่สามารถรีไซเคิลและเลื่อนได้อย่างมีประสิทธิภาพ

บุคคลที่สาม:

Dagger 2 — นี่คือเฟรมเวิร์กการพึ่งพาเวลาคอมไพล์แบบสแตติกทั้งหมดสำหรับ Java และ Android

Retrofit 2 — ไคลเอนต์ HTTP ที่ปลอดภัยสำหรับประเภทโอเพนซอร์สสำหรับ Android และ Java Retrofit ช่วยให้เราสร้างการเชื่อมต่อ HTTP ได้อย่างง่ายดายผ่านอินเทอร์เฟซที่เรียบง่ายและสื่อความหมายได้เหมือนกับเอกสาร API

OkHttp — โอเพ่นซอร์สไคลเอนต์ HTTP ที่ทันสมัย ​​รวดเร็ว และมีประสิทธิภาพ ซึ่งรองรับ HTTP/2 และ SPDY

Gson — ไลบรารี Java แบบโอเพ่นซอร์สสำหรับซีเรียลไลซ์และดีซีเรียลไลซ์ออบเจกต์ Java เข้าและออกจาก JSON

Glide — ไลบรารีโหลดรูปภาพที่รวดเร็วและมีประสิทธิภาพสำหรับ Android ที่เน้นไปที่การเลื่อนที่ราบรื่น Glide นำเสนอ API ที่ใช้งานง่าย ไปป์ไลน์การถอดรหัสทรัพยากรที่มีประสิทธิภาพและขยายได้ และการรวมทรัพยากรอัตโนมัติ

การกำหนดค่าโครงการใหม่

เราจะสร้างโครงการนี้ตั้งแต่เริ่มต้น ดังนั้นฉันจะเปิดตัว Android Studio สร้างโปรเจ็กต์ใหม่ ตั้งชื่อว่า “My Crypto Coins” และเลือก “กิจกรรมพื้นฐาน” ณ จุดนี้ไม่มีอะไรพิเศษที่จะพูดถึง เป้าหมายของเราคือเริ่มต้นใหม่อย่างสะอาดตา และหลีกเลี่ยงความซับซ้อนในใจของเราด้วยการเพิ่มคุณสมบัติเพิ่มเติม (เช่น การสนับสนุน Instant App) เราสามารถเพิ่มอะไรก็ได้ในภายหลังหากต้องการในระหว่างกระบวนการพัฒนา

เริ่มต้นด้วยการรองรับภาษา Kotlin และกำหนดเป้าหมาย API 23:Android 6.0 (Marshmallow)

เหตุใดฉันจึงไม่กำหนดเป้าหมาย API ที่ต่ำกว่าหรือสูงกว่า มาเผชิญหน้ากัน เป็นการดีที่จะตัดการสนับสนุนสำหรับอุปกรณ์รุ่นเก่าบางรุ่นและไม่ต้องกังวลกับปัญหาความเข้ากันได้ระหว่างการพัฒนา นอกจากนี้ ฉันยังภูมิใจกับเจ้าของแท็บเล็ต Nexus 7 (2013) รุ่นเก่า ซึ่งใช้ Android 6.0.1 ฉันหวังว่าจะได้ทดสอบแอปของฉันแบบสดๆ ? ดังนั้นสำหรับโปรเจ็กต์แต่ละโปรเจ็กต์ที่ส่งผลต่อตัวเลือก SDK ขั้นต่ำของฉัน

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

แผนงานในการสร้างแอพ Android ที่ทันสมัยในปี 2018–2019
ใน Android Studio จากปลั๊กอิน Kotlin v3.0 มีอยู่แล้วภายใน เพียงเลือก ช่องทำเครื่องหมายเพื่อเพิ่มการสนับสนุน
แผนงานในการสร้างแอพ Android ที่ทันสมัยในปี 2018–2019
เลือก SDK เป้าหมายขั้นต่ำตามความต้องการทางธุรกิจ
แผนงานในการสร้างแอพ Android ที่ทันสมัยในปี 2018–2019
เลือกกิจกรรมพื้นฐานซึ่งจะสร้างรหัสที่เป็นประโยชน์สำหรับการเริ่มต้น
แผนงานในการสร้างแอพ Android ที่ทันสมัยในปี 2018–2019
เลือกช่องทำเครื่องหมายเพื่อให้เนื้อหาอยู่ในส่วนย่อย

GitHub — หนึ่งในบริการโฮสต์บนเว็บที่ได้รับความนิยมมากที่สุดสำหรับการควบคุมเวอร์ชัน นี่เป็นโครงการโอเพ่นซอร์ส และแน่นอน ฉันจะใช้มัน

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

ดูซอร์สโค้ดบน GitHub

นั่นคือจุดเริ่มต้น หากคุณมีคำถามข้อเสนอแนะข้อเสนอแนะโปรดอย่าลังเลที่จะทำในความคิดเห็น แล้วมาเรียนรู้ไปด้วยกัน! ตอนที่ 2 ต่อ… ?

อาชิอู! ขอบคุณที่อ่าน! ฉันเผยแพร่โพสต์นี้สำหรับบล็อกของฉัน www.baruckis.com เมื่อวันที่ 12 กุมภาพันธ์ 2018