web analytics

สรุป 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 ขึ้นมาได้ จากแอปของเรา