จดสรุป Skooldio x Google Developers - What’s New in Android
เป็นไลฟ์พิเศษของทาง Skooldio ร่วมกับ Google Developers โดยมี 2 Developer Relations และ Android GDE ของไทย มาอัพของใหม่ๆของฝั่ง Android กัน
โดยฝั่ง Googlers จะมี คุณ Sagar Begale และ คุณ Angie Sasmita เป็น Developer Relations Engineer, Android และคุณเอก สมเกียรติ กิจวงศ์วัฒนะ เป็น Staff Software Engineer, LINEMAN Wongnai Thailand และ Android GDE จ้า ในวันนี้มีคุณหน่อนเป็นผู้ดำเนินรายการเช่นเคย
เนื้อหาจะมี 2 ส่วน คือ keynote และ Q & A เนอะ เนื้อหาขอแบบรวบตึงนิดนึง ก็จะมี Dev Rel พูดภาษาอังกฤษ และพี่เอกแปลไทยอีกรอบเนอะ
อันนี้ไลฟ์ย้อนหลังจ้า ขอแปะเป็น youtube แล้วกัน จะได้ดูง่าย
Developer Relations Engineer ต้องทำอะไรบ้าง?
หน้าที่ก็คือ เป็นคนที่อยู่ตรงกลางระหว่าง community และทาง Android โดยรับ feedback หรืออะไรต่างๆ จาก developer ใน community ไปยัง product engineer ให้เขาช่วยดูให้ และเป็นคนเผยแพร่เทคโนโลยี หรือ API ใหม่ๆ ออกสู่ผู้คนใน community ให้ได้ใช้งานกันเนอะ
อันนี้เสริมเนอะ เผื่อใครไม่เห็นภาพ ในไทยมีคนที่เป็น Dev Rel อยู่นะ คือพี่ตี๋กับพี่แทน จาก LINE ประเทศไทยเนอะ หน้าที่ก็จะประมาณนี้แหละ
Keynote : What's new in Android
Why Android Development?
แน่นอนว่าการทำ Android Development คือการทำ mobile programming to Android
Android เป็น OS ยอดนิยม ที่ไม่ได้มีเฉพาะมือถือเท่านั้น ยังมีทีวี บนรถ นาฬิกา ทำให้มีผู้ใช้เป็น 2.5 พันล้าน device users
What is Kotlin?
ภาษา Kotlin เป็น first language support คือทาง Android จะเริ่ม support feature ใหม่ๆเป็น Kotlin ก่อน ถูกนำมาพัฒนาแอพพลิเคชั่นบน Android พัฒนาโดย Jetbrains มีข้อดีหลายอย่างต่างจาก Java และนำมาเขียนโปรแกรมในฝั่งของ server ได้ด้วยนะ เพราะมี JVM มีคนใช้หลักล้าน
โดยทาง Jetbrains เริ่มพัฒนาภาษา Kotlin มาตั้งแต่ปี 2010 เลย มี 1.0 stable version ในปี 2016 และ Android ประกาศ support Kotlin อย่างเป็นทางการในปี 2017
91% ของแอพพลิเคชั่น Android ตัวท้อปๆ ถูกเขียนด้วยภาษา Kotlin
Android Developer กว่า 97% ใช้งานแล้ว happy ทำให้ community เติบโตเร็ว อีกทั้งยังเป็นภาษาที่ developer รักมากที่สุดภาษาหนึ่งด้วย เป็นภาษาที่โตเร็วที่สุดในปี 2018 จาก Github survey และภาษาที่คนรักมากที่สุดเป็นอันดับ 4 จาก StackOverflow 2020 survey
Why Android love Kotlin?
- Expressiveness : เขียนโค้ดสั้นกว่าภาษา Java ทำงานจบได้ไว เกิดความกระชับในโค้ดที่เขียน
- Code safety : จัดการพวก
NullPointerException
ช่วยให้ developer ลดปัญหานี้ได้ - Interoperability : สามารถทำงานร่วมกันกับภาษา Java ได้ 100%!
- Structured concurrency : มี feature coroutine ไว้ช่วยจัดการ thread ต่างๆ ซึ่ง developer ชอบกันมากๆเลย
What's new in Android
เขาเปิดคลิปนี้ เริ่มที่ประมาณ 2 นาที ให้เราดู recap จากที่ทาง Android ประกาศในงาน Google I/O 2022 ที่ผ่านมาเนอะ ประมาณ 2-3 นาทีด้วยกัน
ถ้าใครได้เดินในงาน Google I/O 2022 แบบ visual แล้ว น่าจะเดาได้ไม่ยากว่าปีนี้ทาง Android เขาเน้นอะไรเป็นพิเศษบ้าง ดูจากการจัดบูธหล่ะนะ
- Android 13 : ตอนนี้เป็น beta releases 2 เนอะ เขาบอกว่าเป็น high quality platform เนอะ
ก่อนหน้านี้เจาจะปล่อย developer previews กันก่อน เพื่อทดลองและรับ feedback เพื่อนำไปพัฒนาต่อ พอมันเริ่มนิ่งแล้วเขาจะปล่อย beta releases ออกมา เพื่อให้เพื่อสามารุทดสอบหรือเขียนอะไรต่างๆได้เลย
และมีการเพิ่ม feature ต่างๆ เพื่อให้มีความปลอดภัยมากขึ้น เช่น access media ให้ user ควบคุมการเข้าถึงไฟล์ในเครื่องของแอพพลิเคชั่นต่างๆได้มากขึ้น, จากเดิมที่เราใช้แอพที่มีภาษาตามเครื่อง ตอนนี้สามารถเลือกให้แต่ละแอพใช้ภาษาอะไรได้แล้ว, theme icon ให้เข้ากับ launcher ทำให้สวยงาม เป็นตัวเองมากข้ึน
- Large Screen : รองรับจอ tablet และจอ fold
- Privacy Sandbox : เพิ่มความปลอดภุยของ user ให้มากขึ้น
การทำ Android นั้นไม่ใช่เรื่องง่าย ที่จะให้ developer และ user happy น้านนน
- ทำให้ developer พัฒนาแอพพลิเคชั่นออกสู่ user ได้มากขึ้น
- OS สร้าง user control ให้จัดการทรัพยากร รวมทั้ง privacy ต่างๆได้ดีขึ้น
- user เขาจะไม่เห็นการทำงานภายใน แต่สิ่งที่เขาเห็นได้ชัดเจน คือเรื่องการจัดการ battery, timely update and notification และ security and privacy
The restrictions apply if...
มันคือ app bucket จำกัดการแอพต่างๆ ออกเป็นถังๆ เช่น ถังของแอพที่ใช้งานย่อย ถังของแอพที่ใช้งานไม่บ่อย
ถ้าอยู่ในถังที่มีความสำคัญสูง ก็จะได้ resource มากกว่าถังอื่น ถ้าไม่ได้ใช้แอพนั้นๆเกิน 8 วัน จะไปอยู่ในถังที่มี priority ตํ่ากว่า รวมถึงแอพที่มีการ broadcast เยอะๆ และแอพที่ใช้ battery เยอะ จะมีถังแยกให้เลยว่าแอพไหนส่งผลต่อ battery บ้าง
Compose 1.2 : Nested Scrolling Interop
developer หลายๆคนพยายามย้ายไปใช้ Compose โดยการย้ายจากสิ่งที่มี ไปยังสิ่งที่มีอยู่ (คือมันต้องได้ผลเหมือนเดิม ถึงแม้จะเปลี่ยนวิธีการง่ะ) เช่น การ scroll ซึ่งจะคล้ายๆ CoordinatorLayout หรือพวก CollapsingLayout
ทาง Android กำลังพัฒนาของใหม่ไเพื่อใช้แทนของพวกนี้ อย่างเช่น ใช้แทน RecyclerView ให้ติดตามกันต่อไป
Android Studio
tool ที่ชาว Android Developer รัก(?) เขามีการพัฒนาอยู่ตลอด และปล่อย feature ใหม่ออกมา มี
- Live Edit : แก้อะไรบางอย่างบน Compose ขณะรันแอพ
- Recomposition debugging : มีตัวช่วย recomposition ให้ทำงานได้ง่ายขึ้น
- Compose Animation Preview : มี animation preview ใส่เพื่อดูลูกเล่นต่างๆในการทดสอบได้ ทำให้เกิดขึ้นจริงได้ง่ายขึ้น
Improve App Performance
มี library เพื่อช่วย analyze app ในแต่ละส่วน เพื่อ improve performance แอพของเราให้ดีข้ึนได้ detail แต่ละตัวเราไปหาเพิ่มมา เป็นประมาณนี้
- JankStats : เอาไว้ช่วย track และวิเคราะห์ปัญหาภายในแอพของเรา
- Macrobenchmark : เป็น library ที่เอามา test พวก use-case ใหญ่ๆในแอพของเรา รวมถึงการเริ่มเปิดแอพ ไปจนถึง UI ที่มีความซับซ้อน เช่น การ scroll RecyclerView ให้มันเล็กลง จะได้เป็น json file ออกมา แล้วเอาไปใช้กับ CI (continuous integration) ได้ด้วยนะ
- Baseline Profiles : เป็น list ของ class หรือ method ข้างใน APK ที่ใช้โดย Android Runtime (ART) ในการ pre-compile critical paths กับ machine code ช่วยให้เรา optimize แอพของเราได้ง่ายขึ้น
- Tracing : เป็นการเขียน trace event ว่า system ทำอะไรบ้าง
Changes - Storage Permission Split
การจัดการ media ว่าเราอยากให้เข้าถึงอะไร
- image, video กดเลือกได้ทั้งคู่
- audio แยกออกมาออกมาอีกที
Google Wallet
เป็น wallet จริงๆ ที่สามารถใช้บนมือถือได้ และ developer นำไปพัฒนาต่อได้ มี security ปลอดภัย คนใช้ Google Pay เดิมจะถูกย้ายไปใช้ Google Wallet แทน ใช้ได้ 40 ประเทศทั่วโลก และยกเว้นประเทศไทย 555
Q & A
Android Developer ไทย กับโอกาสในองค์กรระดับโลก
Android Developer ทั่วโลกไม่ได้หาได้ง่าย ขาดแคลนกันทั้งโลก เนื่องด้วยสถานการณ์ในไทยไม่มีปิดกั้น คนทำงาน remote มากขึ้น ถ้าเราฝึกฝนตัวเอง และมีประสบการณ์มากพอ ก็ไม่ใช่เรื่องยาก
และเดี๋ยวนี้มี resource ในการ upskill มากขึ้น เป็นของทาง Google เอง หรือคอร์สของ Skooldio ก็ได้ ซึ่งเดี๋ยวทาง Skooldio ก็มี content Android ตามมาแหละ
เขาไม่ได้บอกหรอกว่าลิ้งอะไร เอาเป็นว่า เราแปะอันที่เราคิดว่าใช่ ก็แล้วกันเนอะ
แนวทางการพัฒนาแอพ design pattern & architecture มีโอกาสเปลี่ยนแปลงไหม?
- อันนี้รวบ design pattern & architecture เป็น app architecture นะ
- fundamental design pattern โดยนำ Architecture Components มาปรับใช้ในแอพของเรา พวกเขามีความเห็นว่าควรจะ guide เรื่องของ ViewModel, Repository, Data Source, UseCase อะไรต่างๆที่ใช้เกือบจะเหมือนกันหมด แต่แตกต่างกันที่การนำไปใช้ของเรา ให้เข้ากับ business logic ต่างๆในแอพของเรา
- ส่วนการเริ่มต้นด้วย Jetpack Compose เป็น starting point ที่ดี สำหรับคนไม่เคยเขียนAndroid มาก่อน อยู่ที่ว่าเราจะเขียนยังไงให้ทำงานกับทีมได้ และเป็นการแก้ปัญหาเก่าๆที่เจอ เป็น guideline ที่ดี ที่นิยมใช้กันจะเป็น MVVM Android Architecture Components ซึ่งบางครั้งอาจจะไม่ fix กับบาง business และตัว architecture โอกาสเปลี่ยนมีน้อย
- Jetpack Compose เป็นสิ่งใหม่ มีการเปลี่ยนแปลง ช่วยลดปัญหาแบบเก่าๆ เพื่อให้ทำงานเขียนแอพได้ง่ายขึ้น ลดปัญหาจุกจิก
ส่วนคำถามสุดท้ายที่ว่าอายุ 40 ปีแล้ว แต่ skill ถึง มาทำงานที่ Google ได้ไหม เขาบอกว่าไม่มองเรื่องของอายุ หรืออะไรพวกนี้ ดูที่ skill ของเรามากกว่างี้ ยังไงก็มีโอกาส และมีความ diversity ด้วย
สรุปก็จะประมาณนี้ อาจจะฟังตามเขาไม่ทันเพราะเขาพูดภาษาอังกฤษไวกันมากๆ ดีที่มีพี่เอกช่วย recap ให้เนอะ ไม่งั้นคนฟังที่ไม่ค่อยเก่งภาษาองักฤษเหวอตามแน่ๆเลย
สามารถ support ค่ากาแฟเจ้าของบล็อกได้ที่ปุ่มแดงส้มสุดน่ารักที่มุมซ้ายล่าง หรือกดปุ่มตรงนี้ก็ได้จ้า
ติดตามข่าวสารและบทความใหม่ๆได้ที่
ช่องทางใหม่ ติดตามทุกๆสตรีมของเราได้ที่
Subscribe ช่อง YouTube ของเราได้ที่
download แอพอ่านบล็อกใหม่ของเราได้ที่นี่