จดสรุป Skooldio x Google Developers - What’s New in Android

Event Jun 6, 2022

เป็นไลฟ์พิเศษของทาง 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 แล้วกัน จะได้ดูง่าย

ไลฟ์ Facebook อยู่ที่นี่

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 นาทีด้วยกัน

https://youtu.be/wq3Et-D9P5Y?t=126

ถ้าใครได้เดินในงาน Google I/O 2022 แบบ visual แล้ว น่าจะเดาได้ไม่ยากว่าปีนี้ทาง Android เขาเน้นอะไรเป็นพิเศษบ้าง ดูจากการจัดบูธหล่ะนะ

https://adventure.withgoogle.com/
  • 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 ตามมาแหละ

เขาไม่ได้บอกหรอกว่าลิ้งอะไร เอาเป็นว่า เราแปะอันที่เราคิดว่าใช่ ก็แล้วกันเนอะ

Training Courses | Android Developers
Find the training option that’s right for you.
https://developer.android.com/courses
Getting Started with Kotlin | เรียนคอร์สออนไลน์ฟรี | Skooldio
เตรียมพื้นฐาน Kotlin ให้พร้อมต่อยอดสู่ Android Developer
จริงๆกดอันนี้ก็ได้แหละ https://www.skooldio.com/browse?q=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 ค่ากาแฟเจ้าของบล็อกได้ที่ปุ่มแดงส้มสุดน่ารักที่มุมซ้ายล่าง หรือกดปุ่มตรงนี้ก็ได้จ้า

Buy Me a Coffee at ko-fi.com

ติดตามข่าวสารและบทความใหม่ๆได้ที่

อย่าลืมกด like กด share บทความกันด้วยนะคะ :)

Posted by MikkiPastel on Sunday, 10 December 2017

ช่องทางใหม่ ติดตามทุกๆสตรีมของเราได้ที่

Twitch
Twitch is the world’s leading video platform and community for gamers.
https://www.twitch.tv/mikkipastel

Subscribe ช่อง YouTube ของเราได้ที่

mikkicoding
Android Developer & Content Creator
https://www.youtube.com/c/mikkicoding

download แอพอ่านบล็อกใหม่ของเราได้ที่นี่

MikkiPastel - Apps on Google Play
First application from “MikkiPastel” on play store beta feature- read blog from https://www.mikkipastel.com by this application- read blog content by chrome custom tab- update or refresh new content by pull to refresh- share content to social network
https://play.google.com/store/apps/details?id=com.mikkipastel.blog

Tags

Minseo Chayabanjonglerd

I am a full-time Android Developer and part-time contributor with developer community and web3 world, who believe people have hard skills and soft skills to up-skill to da moon.