ย้อนกลับไปในช่วง 5 ปีที่ผ่านมาของการพัฒนา Android และการพัฒนามาไกลแค่ไหน

ฉันสร้างแอปพลิเคชัน Android เป็นครั้งแรกในปี 2558 สมัยนั้นการพัฒนา Android แตกต่างไปจากเดิมอย่างสิ้นเชิงเมื่อเทียบกับที่เป็นอยู่ในปัจจุบัน ไม่มีไลบรารี Jetpack ที่จะเรียนรู้เกี่ยวกับแนวทางปฏิบัติที่ดีที่สุดเมื่อคุณจัดการกับแอปประสิทธิภาพสูงและชุดข้อมูลขนาดใหญ่ และไม่มีชุด UI ที่หรูหราเช่น ConstraintLayout หรือ MotionLayout พูดตามตรง แม้แต่ Android Studio ก็ยังไม่ฉลาดขนาดนั้น

จากประสบการณ์ของฉันตั้งแต่เริ่มต้นการพัฒนา Android ฉันได้เห็นความก้าวหน้าอย่างมากในหกด้าน — ภาษา, UI, ไลบรารี, AndroidX, ความเป็นส่วนตัวและความปลอดภัย และเครื่องมือ

ภาษา — คอตลิน

ในตอนแรก ฉันชอบทำงานกับ Java มากกว่า Kotlin เนื่องจากขาดทรัพยากรในการเรียนรู้ มันไม่ใช่เรื่องยากสำหรับฉันเพราะฉันเริ่มเรียน Java เมื่อสมัยเรียนมหาวิทยาลัย ดังนั้นจึงต้องใช้เวลาสามถึงสี่เดือนในการทำงานอย่างหนักเพื่อเริ่มต้นผู้ให้บริการของฉันในฐานะนักพัฒนา Android

Java ดี แต่ Kotlin ดีกว่า; ฉันใช้เวลาสองปีกว่าจะรู้ว่า Java ทำให้การพัฒนา Android ซับซ้อนอย่างไร ไม่มีฟังก์ชันส่วนขยาย ตัวดำเนินการ Elvis ความสามารถ DSL หรือ coroutines ที่ไม่มี Kotlin และอื่นๆ

รายการไม่มีที่สิ้นสุด เมื่อในที่สุดฉันก็มีความกล้าที่จะละทิ้งภาษาที่ฉันใช้มานานกว่าสองปี ฉันรู้สึกประหลาดใจที่ Kotlin ปรับปรุงคุณภาพการพัฒนา Android ได้อย่างไร จากนั้น Google ก็ประกาศให้ Kotlin เป็นหนึ่งในภาษาอย่างเป็นทางการสำหรับการพัฒนา Android ในปี 2560

ในช่วงหลายปีที่ผ่านมา ทีม Kotlin ได้ปรับปรุงการใช้ภาษาที่เหนือจินตนาการ วันนี้เราสามารถสร้างอุปกรณ์เคลื่อนที่ได้อย่างสมบูรณ์ (Android และ IOS - Kotlin multiplatform) และเว็บแอปพลิเคชัน (KotlinJs) พร้อมการสนับสนุนแบ็กเอนด์ (Kotlin สำหรับแบ็กเอนด์) ใน Kotlin

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



UI

ในปี 2015 มีเลย์เอาต์ที่จำกัดในการสร้าง UI เช่น RelativeLayout, LinearLayout, FrameLayout เป็นต้น ย้อนกลับไปตอนนั้น นักพัฒนาใช้ RelativeLayout เป็นส่วนใหญ่เพื่อวางตำแหน่งมุมมองให้สัมพันธ์กัน และใช้ LinearLayout เพื่อจัดตำแหน่งในแนวตั้งหรือแนวนอน

เมื่อเวลาผ่านไป เค้าโครงอันทรงพลัง เช่น ConstrainLayout เริ่มปรากฏให้เห็น เกือบจะเลิกใช้ RelativeLayout และ LinearLayout แล้ว ด้วย ContraintLayout เราสามารถสร้างเลย์เอาต์ที่ซับซ้อนในลำดับชั้นแบบเรียบ ซึ่งส่งผลให้เกิดการเรนเดอร์ที่รวดเร็ว

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

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

รูปแบบ XML นั้นดี แต่ "JetPack Compose" ดีกว่า

นี่อาจจะเร็วเกินไป แต่ฉันมั่นใจว่าแนวทาง UI ที่ประกาศใน Android ที่มี "JetPack Compose" จะเป็นตัวเปลี่ยนเกม ด้วย Jetpack Compose เราสามารถสร้างแอปพลิเคชัน Android ทั้งหมดใน Kotlin ได้ ไม่ว่าจะเป็นตรรกะ ไฟล์บิลด์ ส่วนประกอบ UI และอื่นๆ อีกมากมาย ยิ่งไปกว่านั้น Kotlin จะเป็นสาเหตุหลักว่าทำไมเราถึงชอบมัน

หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ Android UI และ "Jetpack Compose" ฉันขอแนะนำให้อ่านบทความต่อไปนี้:





ห้องสมุด

ในช่วงแรกของ Android มีเพียงไลบรารีที่รองรับ Android เท่านั้น ต่อมา นักพัฒนาและบริษัทต่างๆ เริ่มบริจาคไลบรารีคุณภาพที่นักพัฒนาคนใดก็ได้สามารถใช้ได้ เช่น ButterKnife, Retrofit, Picasso และอื่นๆ อีกมากมาย

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

จากนั้นก็มีเฟรมเวิร์กเช่น databinding, Firebase และอื่นๆ อีกมากมาย สิ่งนี้ช่วยลดภาระของนักพัฒนาได้หลายวิธี เช่น การเชื่อมโยงเลย์เอาต์กับไฟล์คลาส การสร้าง แบ็คเอนด์ สำหรับแอปพลิเคชัน และอื่นๆ

Jetpack เป็นการอัปเดตการเปลี่ยนแปลงภายใต้พื้นที่ไลบรารีในการพัฒนา Android เป็นชุดของไลบรารีซอฟต์แวร์ Android และส่วนประกอบทางสถาปัตยกรรมที่มีจุดมุ่งหมายเพื่อช่วยเราสร้างแอปที่ปรับขนาดได้พร้อมประสิทธิภาพระดับแนวหน้าโดยมีการใช้งานเพียงเล็กน้อย

ไลบรารี่ที่ได้รับความนิยมและมีประโยชน์มากที่สุดจากตระกูล Jetpack ได้แก่ WorkManager, Pagging3, Room, Navigation, CameraX, Viewbinding และอื่นๆ อีกมากมาย มีไลบรารี่ที่น่าสนใจไม่กี่แห่งในสถานะอัลฟ่าและเบต้า เช่น DataStore, Hilt, และ AppStartup

AndroidX

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

สิ่งประดิษฐ์ภายในเนมสเปซ androidx ประกอบด้วยไลบรารี "Android Jetpack" เช่นเดียวกับไลบรารีการสนับสนุน ไลบรารีในเนมสเปซ androidx จัดส่งแยกต่างหากจากแพลตฟอร์ม Android และมอบความเข้ากันได้แบบย้อนหลังใน Android รุ่นต่างๆ
— นักพัฒนา Android

เวอร์ชัน 28.0.0 เป็นรุ่นล่าสุดสำหรับไลบรารีสนับสนุน Android หลังจากนั้น เวอร์ชันใหม่และไลบรารีจะถูกเก็บรักษาไว้ภายใต้เนมสเปซ androidX ตามค่าเริ่มต้น android studio จะสร้างโปรเจ็กต์ใหม่ใน androidX และยังมีตัวเลือกที่ง่ายดายในการโยกย้ายโปรเจ็กต์ที่มีอยู่จากไลบรารีสนับสนุนไปยัง androidX โดยส่วนใหญ่จะใช้งานได้ แต่ในบางกรณีสำหรับโปรเจ็กต์ขนาดใหญ่ เราจำเป็นต้องจัดการ Conversion บางส่วนด้วยตนเองเช่นกัน

หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ androidX และวิธีโยกย้ายไปยัง androidX ฉันขอแนะนำให้อ่านบล็อกต่อไปนี้เป็นอย่างยิ่ง



ความเป็นส่วนตัวและความปลอดภัย

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

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

การสื่อสารที่ปลอดภัย

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



ความปลอดภัย

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

เครื่องมือ

ในช่วงแรกๆ นักพัฒนาใช้ Eclipse IDE เพื่อพัฒนาแอปพลิเคชัน Android จากนั้น Android Studio ก็ได้ประกาศเปิดตัวในวันที่ 16 พฤษภาคม 2013 ในการประชุม Google I/O รุ่นเสถียรรุ่นแรกเปิดตัวในเดือนธันวาคม 2014

ในช่วงหลายปีที่ผ่านมา Android Studio ได้กลายเป็นหนึ่งใน IDE ที่ทรงพลังที่สุด มันมีทางลัดมากมาย ฟีเจอร์ทรงพลังมากมาย เช่น เทมเพลตสด โปรแกรมจำลองในตัว ตัวตรวจสอบฐานข้อมูล และอื่นๆ อีกมากมาย นอกจากเวอร์ชันเสถียรแล้ว เรายังสามารถใช้เวอร์ชัน canary ของ android studio เพื่อสำรวจฟีเจอร์ที่กำลังจะมีขึ้นซึ่งยังไม่เสถียรอีกด้วย

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

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