สรุป Keynote สำหรับ Android Developer จากงาน Google I/O 2019
สวัสดีผู้อ่านครับ บล็อกนี้ผมจะสรุปเนื้อหาสำหรับ Android Developer จากงาน Google I/O 2019 ครับ ซึ่งแม้ว่าปัจจุบันผมแทบไม่ได้เขียน android แล้ว แต่ว่าก็ยังติดตาม android อยู่นะ บล็อกนี้จะเป็นสรุปคร่าวๆ ไม่ได้ลงรายละเอียดนะครับ
เริ่มต้น
50% ของแอป android พัฒนาด้วย Kotlin แล้วจ้า ดันกันสุดๆ
ตัวภาษา Kotlin ก็ปรับปรุงหลายอย่าง เลิกใช้ Java ได้แล้วนะพวกนาย
Android Studio
Android studio มีการปรับปรุงหลายอย่าง โดยจากผลสำรวจ ผู้ใช้มักบอกว่ามันมีบัคอยู่เยอะจัง จนทีมต้องคิดว่าเราจะหยุดพัฒนาฟีเจอร์ใหม่แล้วหันมาแก้เรื่องประสิทธิภาพ และนั่นทำให้แก้บัคไปได้กว่า 400 จุด
โดยเวอชันใหม่คือ Android studio 3.5 มาพร้อมกับการรันแบบใหม่ Apply Change ทำงานคล้าย Instant Run แต่คนละวิธีการ ซึ่งจะเสถียรกว่าเดิม (Instant Run คนคงด่าเยอะ ปิดกันแทบทุกคน) และ Android Studio ยังรันบน Chrome OS ได้
In-App Update
Google Play เปิดฟีเจอร์ใหม่ คือ In-app Updates API โดยจะสามารถอัพเดทในแอปได้เร็วขึ้น เช่น หากมีอัพเดทเฉพาะ UI บางส่วน ก็จะมี dialog ขึ้นมาและดาวน์โหลดอัพเดทเฉพาะส่วนนั้น หรือหากเป็นอัพเดทสำคัญสามารถแสดงข้อความอัพเดทแบบเต็มจอได้
App Actions
เพิ่มฟีเจอร์ App actions ให้กับแอป เพื่อใช้งานร่วมกับ Assistant โดยเพิ่มใน actions องแอป ว่าหากรับคำสั่งแบบนี้ให้ทำอะไร โดย Google จะเตรียม template ไว้ให้ เช่นประเภทออกกำลังกายมีคำสั่งนี้ๆ
Bubbles Chat
API 29 ตัว notification จะเพิ่มให้รองรับ bubble chat แบบเดียวกับ chat ของ facebook โดยในตอนนี้เป็นเพียง developer preview หากอยากลองใช้จะต้องไปเปิดใน Develoepr setting
Dark theme
Android Q มาพร้อมกับตัวเลือก dark theme
วิธีการใช้ คือ ใช้ผ่าน Theme ที่ชื่อว่า DayNight หรือไม่ก็ตั้งค่าที่ AndroidManifest.xml
Sharing
เพิ่มตัวอย่างข้อมูลที่กำลังจะถูกแชร์ใน share sheet จากตัวแอป
แล้วก็เพิ่ม shortcut และปุ่ม Copy to clipboard
จำกัดการทำงานเบื้องหลัง
จากปัญหาเดิมคือ แอปสามารถรันเบื้องหลังและเปิด activity หรือแสดงแจ้งเตือนโดยผู้ใช้ไม่ต้องการ
ปัญหาก็คือเพราะทุกแอปก็ต่างกำหนดว่าตนเองสำคัญ เพราะอยากให้แอปทำงานได้ ดังนั้น Android Q เลยจะให้ OS วิเคราะห์การทำงานของแอปนั้นว่าทำงานเบื้องหลังมันสำคัญหรือไม่ถึงจะอนุญาต
Notification actions
จากเดิมที่ตัว noti เราสามารถกำหนด action ได้เอง Android เพิ่มตัวเลือกให้ actions สามารถถูกสร้างโดย AI ด้วยการอ่านจาก content
WebView
Text
เปลี่ยน hyphenation ของ Text เป็น off
สามารถเรียกดู Font ของเครืองได้
Magnifier
การทำภาพส่วนขยาย คล้ายๆกับแว่นขยายให้กับรูปภาพ หรือ ScrollView
ปรับปรุง Private API
เพิ่มข้อจำกัดการเรียก private API
รันแอปเร็วขึ้น
Runtime น้อยลง รันแอปเร็วขึ้น 15%
Kotlin
ภาษา Kotlin เพิ่ม nullability annotation
Security
เรื่องความปลอดภัยเปิด TLS 1.3
Neural Network API
ปรับปรุง library Neural Network ทำให้ detect ใบหน้าได้ดีขึ้น เร็วขึ้น
Android X
Deprecated ตัว preference เดิม ที่เอาไว้สร้าง Setting template ให้ไปใช้ androidx
เพิ่ม library ใน androidx เช่น WorkManager , Navigation
Library CameraX มาใหม่ support ย้อนถึง Android L ใช้งานง่ายขึ้น
Jetpack Compose
ตัวช่วยให้เราสามารถเขียน UI แบบ reactive programming ด้วยภาษา Kotlin
อันนี้มันเจ๋งมากเลยนะ ทำให้เราสามารถเขียน android แบบคล้ายๆกับ Flutter ดูScaffold นั่นสิ
Viewpager2
เพิ่ม ViewPager2 ที่ดีกว่าตัว ViewPager เดิม เพราะสร้างจาก RecyclerView
View Bindings
android studio เวอชันใหม่ จะรองรับการทำ view bindings เต็มรูปแบบ ไม่ต้องเขียนอะไรเพิ่มเติม
Blend Modes
เพิ่ม Blend Mode เข้ามาอีกหลายตัว
Hardware Bitmap
HW Bitmap ตัวนี้เพิ่มมาใน Android O มันคือการเก็บค่า ฺbitmap ในหน่วยความจำของกราฟฟิค ไม่ได้เก็บใน RAM แบบปกติ ทำให้มันใช้งานได้เร็วมากๆ โดยใน Android Q จะเพิ่มลูกเล่นหลายอย่าง
บังคับ Vulkan 1.1
Vulkan คือ Graphic Library ที่มาแทน OpenGL ซึ่ง Android บังคับให้เครื่อง 64-bit รองรับ Vulkan 1.1
Gamut
ปรับปรุงให้การแสดงผลดีขึ้นจากเดิม
บันทึกเสียง
อนุญาตให้แอปอื่นสามารถบันทึกเสียงจากแอปของเราได้ โดยตั้งค่าจะเป็น on ใน Android แต่ก่อนหน้านั้นจะ off
Permission
การเข้าถึง external storage จะต้องขอ permission จะต้องขอ permission แบบเจาะจงมากขึ้น
ที่หน้าการขอ permission เพิ่มให้ user เลือกแบบเฉพาะครั้งนี้
เรื่องกล้องเพิ่ม permission ให้เจาะจงมากขึ้น
Setting Panel
สามารถเรียก setting เช่น ปิด wifi ขึ้นมาได้ จากแอปของเรา