สวัสดีครับ…กลับมาพบกับโพสท์ที่มีสาระอีกแล้วนะครับ (โพสท์ที่ผ่านมา มันไม่มีสาระหรือยังไง)
วันนี้ก็ขอมาพูดถึงสิ่งที่ได้เรียนรู้จากงาน Google I/O Extended Bangkok ที่จัดที่โรงละครเคแบงก์สยามพิฆเนศ เมื่อวันที่ 1 กรกฎาคม 2561 ครับ
ไม่พูดมาก เริ่มเลยดีกว่า เจ็บคอ (ทำไมต้อง Aggressive เบอร์นี้)
Welcome Remark – Wittaya Assawasathian GDG Thailand
เปิดตัวด้วยคลิป The Story of An Idea – Google I/O 2017
- งานครั้งนี้ ถือว่าเป็นการจัดงานปีที่ 9 แล้ว
- GDE Community ในไทยตอนนี้มี 12 คน ซึ่งถือว่ามีมากที่สุด และ Active ที่สุดใน SEA และล่าสุดมี GDE สาขา Cloud เพิ่มเข้ามา
- เปิดตัว GDE ผู้หญิงคนเดียว และคนแรกของ GDG Thai เป็น GDE Machine Learning ชื่อ Sirinart Tangruamsub
- พูดถึงความเป็นมาของ GDG Thailand (ครบรอบ 10 ปี เริ่มก่อตั้ง 25 มิ.ย. 2008) โดยเริ่มมาจาก GTUG Thailand
Opening Keynote : Start with WHY – Chetaphan Siridanupath
- พูดถึง Golden Cercle ของ Simon Sinek (What, How, Why)
- บ. SpaceX ทำจรวด….ว่าแต่ ทำไมต้องทำ(Why) เพราะว่าเขา Preserve Mankind มนุษย์ต้องอยู่ได้ใน ร้อยปี พันปี หมื่นปี ถ้าเกิดอะไรขึ้นกับโลก คนต้องอยู่รอดต่อไป ทำยังไง(How) ทำให้คนสามารถไปอาศัยอยู่ที่ดาวดวงอื่นได้ ทำอะไร(What) ทำให้ค่าใช้จ่ายในการเดินทางในอวกาศถูกลง ด้วยการสร้าง Reusable Rocket
- ย้อนกลับมาที่ KBTG … Why คือ พัฒนาคุณภาพชีวิตให้ดีขึ้นด้วยการใช้เทคโนโลยี
- What…ทำอะไรบ้าง
- Kbank Beacon ที่ทำให้คนตาบอดสามารถใช้งาน Mobile Banking ได้ เป็นขั้นแรกของการปลดล็อกให้ทุกคนสามารถเข้าถึงการใช้งาน Mobile Banking
- K Plus Shop ทำให้ SME ไทยสามารถสู่ตลาดโลกได้
- Machine Lending ทำให้คนที่ไม่สามารถกู้ยืมเงินได้ (เน้นที่พวกพ่อค้า แม่ค้ารถเข็น ไม่มีเงินเดือน ไม่มีหลักประกันในการกู้ยืมเงิน) สามารถเข้าถึงการกู้ยืมเงินได้
- Machine Commerce ปลดล็อกออนไลน์คอมเมิร์ซให้สามาถใช้ได้ทุกคน ไม่ว่าจะเป็นเกษตรกร หรือนักศึกษาที่อยากขายของให้มีพื้นที่ขายของได้ง่ายขึ้น
- How ทำให้บริการทางการเงินฉลาดขึ้น และสะดวกขึ้น สามารถเข้าถึงได้ทุกคน จะรวยจน เด็กแก่ ตาดีตาบอด ต้องเข้าถึงได้หมด
- KADE (AI) ประกอบด้วย 3 ส่วน : Manchine Intelligence, Service Intelligence, Design Intelligence
- Customer Obsession : ต้องหมกมุ่นเกี่ยวกับลูกค้า ไม่ใช่แค่โฟกัส
- แล้วไงต่อ… แต่ก่อน K Plus เป็น Channel มีสาขา, ATM, Internet และ Mobile
- แต่ตอนนี้ K Plus เป็น “ธนาคาร” สามารถทำทุกอย่างได้บนมือถือ
- ในอนาคตเป็น Platform ซึ่งบางทีอาจจะใหญ่กว่าธนาคาร ทำได้ทุกอย่างมากกว่าการทำธุรกรรมทางการเงิน
- คุณรู้หรือยังว่า “What’s Your WHY”
I/O Keynote – Manikantan Krishnamurthy
- พูดถึงสิ่งที่ มีการ Update ในงาน I/O 2018 ซึ่งมีหลายอย่าง แต่จะขอเน้น Google Assistants
- ใช้งานได้ผ่าน Voice, Typing, Tap, Google Lens
- ใช้งานได้ทั้งบนโทรศัพท์ (Smart Phone), นาฬิกา (Smart Watch), รถยนต์ (Smart Car) และ Smart Home
- สามารถเข้าถึงเทคโนโลยีต่าง ๆ ของ Google ได้
- เปิดคลิป Your Google Assistant: coming soon to smart displays
- สามารถจำเสียงของผู้ใช้และโต้ตอบได้, ใช้งาน 3rd parties App ได้, ส่งข้อมูลเข้ามือถือได้, เข้าถึงอุปกรณ์สมาร์ทโฮมได้
- ในงาน I/O 2018 ที่ผ่านมา มีอัปเดทอะไรบ้าง
- SDK for Devices
- สามารถพัฒนาด้วย Actions on Google, DialogFlow และเชื่อมต่อกับ Google Cloud, Firebase หรือ TensorFlow
- ในการพัฒนา ข้อมูลบางอย่างเราสามารถ Hard Code ลงใน Dialogflow ได้เลย แต่ข้อมูลบางอย่างต้องใช้อย่างอื่นช่วย (Google Cloud Service)
Android / Kotlin – Somkiat Kitwongwattana
- ตอนนี้หลายแอปเขียนด้วย Kotlin แล้ววววววว
- เปลี่ยนดีมั้ย…ถ้าเป็นไปได้ ย้ายมาเหอะ
- แอปในไทยหลายตัวก็เขียนด้วย Kotlin แล้ว
- ตอนนี้ 35% ของ Android Developer ใช้ Kotlin
- ล่าสุดมี GDE Kotlin (จริงจังเบอร์ไหน คิดดู)
- Android Studio 3.2 มีฟีเจอร์ใหม่ ๆ เยอะมาก และรองรับ Chrome OS
- Android App Bundle ทำให้ขนาดของ APK ที่ผู้ใช้จะดาวน์โหลดมีขนาดเล็กลง ดาวน์โหลด resource เท่าที่เหมาะกับเครื่องที่จะโหลดเท่านั้น
- AndroidX ไม่เกี่ยวกับ SpaceX (โวะ) แต่มันคือการเปลี่ยนชื่อ Package Name พวก Support Library ต่าง ๆ ใหม่
- Android Jetpack เพื่อชีวิตในการพัฒนาจะได้ดีขึ้น มีทั้งของเก่า และของใหม่
- Android P มีฟีเจอร์ใหม่ ๆ เพิ่มเข้ามา โดยเฉพาะ Navigation แบบใหม่
- Adaptive Battery ใช้ AI ในการประเมินการใช้งานแบตเตอรี่ของแต่ละแอป
- มี API ใหม่ที่เพิ่มเข้ามา เช่น Indoor Positioning, Biometrics, Notification และอื่น ๆ อีกมากมาย
- Slices, App Actions, Google Play Instant
- Google Play มีฟังก์ชันใหม่เพิ่มเข้ามา และภายในเดือนสิงหาคมปีนี้ แอปใหม่ที่จะเอาขึ้น ต้อง API 26+ และ เดือนกันยายนทุกแอปต้อง API 26+
- Android Things 1.0 เปิดตัวเป็นทางการแล้วจ้า สามารถใช้ JAVA หรือ Kotlin ในการพัฒนาก็ได้
- หลาย ๆ เรื่องที่พูดมา เดี๋ยวจะมี Seesion อธิบายอีกทีครับ
Artificial Intelligence – Virot Chiraphadhanakul
- ในปีที่แล้ว ในงาน Google I/O มีการโชว์การใช้ AI มาทำนายภาวะเบาหวานขึ้นตาจากภาพถ่ายของ Retina
- ปีนี้ใช้ภาพถ่ายของ Retina มาทำนายได้หลายอย่างมากขึ้น ไม่ว่าจะเป็น อายุ, เพศ และโรคอีกหลายโรคได้
- AI for Everyone
- Cloud TPU ออกแบบมาเพื่อประมวลผล…ตอนนี้เปิดเป็น Public Beta แล้ว
- ล่าสุดเปิดตัว TPU 3.0 (แต่ยังไม่เปิดให้ใช้)
- TensorFlow เปิดให้ใช้ฟรีมา 2 ปีแล้ว
- แต่เดิมเน้นใช้กับ Neural Network แต่ตอนนี้ สามารถใช้ได้หลากหลายมากขึ้น
- ตอนนี้รื้อ API ใหม่ ให้ใช้งานได้ง่ายขึ้น แต่ก็ยังสามารถใช้งานในระดับ Low Level ได้อยู่
- ข้อดีของ On-Device ML : Low Latency, Offline, Data stay on device, Power Efficient, Sensors
- TensorFlow Lite เหมือน TensorFlow แต่ทำให้เหมาะกับการใช้งานบนมือถือมากขึ้น
- ML Kit ใช้งาน Model ผ่าน Firebase
- TensorFlow.js รันผ่านเว็บ
- TensorFlow Hub มีโมเดล และ ดาต้าต่าง ๆ ให้เข้าไปโหลดมาใช้งานได้
- Machine Learning Crash Course คอร์สเรียนฟรี
Firebase – Jirawat Karanwittayakarn
- ประโยชน์ของ Firebase คือ Build Better App, Improve App Quality, Grow Your App
- 1.2 M Monthly Active App
- สามารถใส่ Skill การใช้ Firebase ลงใน Resume กันแล้ว
- Function ใหม่ที่เพิ่งเปิดตัว Callable Functions, TypeScript, Unit Testing
- Firebase Authentication Passwordless Sign-in ส่งเมลเข้ามาให้กดเข้าสู่ระบบแทน
- Firebase Performance สถานะล่าสุด Stable แล้ว เข้าไปใช้งานกันได้
- Firebase Test Lab for Android ….. ล่าสุด ตัดคำว่า for Android ออกแล้ว บน iOS สามารถใช้งานได้แล้วววววว
- Google Analytics for Firebase สามารถดูสถิติของหลาย App ใน Project พร้อมกันได้แล้ว
- Firebase Predictions ทำนาย User Behavior จากข้อมูลของผู้ใช้ในอดีต ซึ่งทำให้เราสามารถทำยังไงให้เรา Grow ขึ้น หรือรักษา User ให้ยังใช้ App เราอยู่ได้
- ML Kits for Firebase มีหลายบริการให้ใช้งานได้อย่างง่าย ๆ สามารถใช้งานได้ทั้ง On-Device, In the Cloud และ Custom Model
Google Cloud Platform – Jirayut Nimsaeng
- Google Believe in Open Cloud and Open Source
- ประกอบด้วย Kubernetes, TensorFlow, Android, ISTIO(เป็น API Gateway ที่ Google กำลังผลักดัน)
- ตอนนี้มี Google Cloud มี 16 Regions 49 Zones
- Cloud Firestore BETA คลิกเดียว ได้เครื่องประสิทธิภาพสูงเลย
- Beta of sole-tenant nodes คือบริการที่ให้เราสามารถจอง cloud ได้ทั้งเครื่องเลย ไม่ต้องไปแบ่งใช้กับคนอื่น
- GA of GPU in GKE (Google Kubernetes Engine)
- Persistent Disk
- Cloud Memorystore คลิกเดียวได้ cluster มาใช้งานได้เลย
- Cloud Composer คลิกเดียว ได้ Composer เลย
- ชีวิตสะดวกเกิ๊นนนนน
- Cloud Platform ออกผลิตภัณฑ์แทบทุกวัน…ไปหาอัปเดทได้ที่บล็อกของ Google Cloud Platform ได้เลยยยยยยยย
Flutter & Web – Panjamapong Sermsawatsri
- Flutter คือ เครื่องมือในการพัฒนาแอป Cross Platform พัฒนาด้วยภาษา DART 2 รองรับ Material Design
- ประกาศเปิดตัว Release Preview 1
- สามารถพัฒนา Flutter ได้บน VS Code
- Chrome 68 DevTools
- Eager Evaluation ไม่ต้องกด Enter ผลลัพธ์ขึ้นเลย สามารถใช้ Auto Complete ได้
- Argument Hints
- Lighthouse 3.0 เป็นเครื่องมือในการ Audit ตัวหนึ่ง
- Chrome OS อยู่บน Chrome Book และ Pixel Book
- รัน Linux App ได้
- รัน Android App ได้
- Polymer เป็น Library ในการช่วยสร้าง Web Component
- เปิดตัว Version 3.0 เปลี่ยนจาก HTML เป็น ES Module
- LitElement เป็น Library สร้าง Web Component อีกตัว
- PWA Starter Kit : ช่วยสร้าง PWA สร้างด้วย Polymer+Redux
- .app domains : secure by default HTTPS only จ้า 490 บาท ต่อปีเท่านั้นนนนนนนน
Material Design – Apirak Panatkool
- Material Design เป็น Design System ที่ Google Research มาเป็นอย่างดีแล้ว
- ตอนนี้มี แอป 1.5 M ตัวที่ใช้ Material Design
- ตอนนี้สามารถปรับนู่น นี่ นั่น ให้แอปดูมีความเป็นตัวเรามากขึ้น ไม่ดูเป็น Google มากเกินไปเหมือนแต่ก่อนแล้ว
- สามารถศึกษาหาข้อมูลต่าง ๆ ได้ที่ Material.io
- Material Design สร้างมาสำหรับทุก Platform ไม่เฉพาะ Android
- มี Library สำหรับ Android, iOS, Flutter และ Web
- Tools เป็นตัวเชื่อมโยง Designer และ Developer โดยเฉพาะส่วน Gallery ที่ที่ทำให้ Developer ดูงานที่ Designer ออกแบบได้ง่ายขึ้น
- Design Flexibility, Cross Platform, …. อีกอันลืม
Session บ่าย
What’s new in Android P – Somkiat Kitwongwattana
สไลด์อยู่นี่นะครับ https://www.slideshare.net/akexorcist/whats-new-in-android-p-io-extended-bangkok-2018
- Android P Preview 2 ก็ Final แล้ว จะไม่มีอัปเดทฟีเจอร์เพิ่มอีกแล้ว
- เวอร์ชันนี้ จะไม่มีหน้าต่าง Force Close เหมือนแต่ก่อน แต่แอปจะปิดตัวเองไปเลย
- Wifi Round-Trip-Time เป็น Indoor Position ควรใช้ควบคู่กับ Bluetooth
- Display Cutout รองรับหน้าจอที่มี Notch หรือจอที่แหว่ง เลือกได้ 3 แบบ Never แสดงผลแบบไม่รองรับจอแหว่ง เสียพื้นที่ไป, Default แสดงผลแบบรองรับจอแหว่ง, Short Edge จะแสดงผลแบบ Full Screen ไปเลย แต่มีรอยแหว่ง กำหนดผ่าน Style หรือผ่านโค้ดก็ได้
- ImageDecoder ช่วย decode รูปจาก Drawable ให้เป็น Bitmap แต่ก่อนถ้ารูปใหญ่ จะเจอปัญหา OutOfMemory แต่เปลี่ยนใหม่โดยมี 3 ขั้นคือ Source กำหนดที่มาของรูป, Decode สามารถสั่งให้ Process รูปก่อนได้ เช่นลดขนาดรูป, Post Processor ทำให้สามารถเอารูปผลลัพท์มาทำนู่นนี่ได้ ไม่ว่าจะเป็นใส่กรอบ หรือ ใส่ข้อความลงไปในภาพได้ในขั้นตอนนี้ นอกจากนี้ยังสามารถใช้กับภาพเคลื่อนไหวได้อีกด้วย
- Biometrics API พอตัวนี้เข้ามาทำให้ Fingerprints API ที่ใช้งานยาก เพราะต้องเขียนโค้ดเพิ่มเองเยอะมาก และรองรับแค่ลายนิ้วมือ Deprecate ไปเลย…. เพราะตัวนี้รองรับมากกว่าแค่ลายนิ้วมืออีกด้วย
- Notification ปรับปรุงการทำงานใหม่ รองรับการโต้ตอบข้อความผ่าน Notification ได้ดีมากขึ้น
- Camera API v2 รองรับกล้องพร้อมกันได้มากกว่า 1 ตัว (จริง ๆ แต่ก่อนก็ได้นะ ในกรณีเปิดกล้องหน้า และ กล้องหลังพร้อมกัน แต่ถ้ากล้องหลังมี 2 ตัว กรณีนี้จะยังไม่ได้) หรือกล้องที่ต่อ USB ได้แล้ว
- Text สามารถตั้งค่าการแสดงผลข้อความได้ดีขึ้นละเอียดมากขึ้น (ตั้งค่า Baseline, Backgroud Thread for Auto size Text, Magnifier รองรับการขยาย, Smart Linkify เป็นการใช้ AI ในการ identify ข้อความที่ select แล้วแนะนำ action ให้)
- Backgroud Input & Privacy พวก Sensor บางตัว จะไม่สามารถใช้งานได้เวลาที่ App Idle อยู่
- เอา
Build.SERIAL
ออกแล้ว ใช้Build.getSerial()
แทน - Power Management ถ้าทำแอปที่ใช้ Background Thread ต้องศึกษา
- App Standby Bucket ระบบจะวิเคราะห์แอปใด ๆ ว่าใช้งานบ่อยแค่ไหน แล้วจะได้รับการจัดลงกลุ่ม Active, Working Set, Frequent, Rare หรือ Never ซึ่งบางทีอาจมีการเปลี่ยนแปลงในภายหลังได้
- Active คือแอปที่กำลังถูกใช้งานอยู่ สามารถใช้ Resource ทุกอย่างได้เต็มที่
- Working Set ใช้งานบ่อย แต่ตอนนี้ยังไม่ได้เปิดอยู่ ใช้ Resource ได้เกือบเต็มที่
- Frequent ไม่ได้ใช้ทุกวัน แต่มีการใช้งานอยู่ ปิด Background Service นอกเวลาใช้งานแอป
- Rare นาน ๆ ใช้ที
- Never ลงทิ้งไว้ ไม่ได้ใช้งาน ใช้ Resource อะไรไม่ได้เลย
- แนะนำว่า…ต้องเข้าใจว่ามันเป็น Dynamic เปลี่ยนแปลงได้ตลอด อย่าคิดว่าจะเป็น Active ตลอด ถ้าอยากให้แอป Active ตลอด ต้องหาวิธีเอา
- Background Restriction เช็คดูได้ว่าแอปไหนใช้ Resource เยอะเกินจำเป็น
- Excessive Wake-lock แอปไหนถูกใช้งานฟังก์ชันนี้เกิน 1 ชั่้วโมง จะโดนจำกัด
- Excessive Background Service แอปที่ API < 26 มันจะมีปัญหาบางอย่างอยู่
- Battery Saver พวก Background Service ใช้งานไม่ได้
- Doze แก้ปัญหาด้วยการ ชาร์จมือถือตลอดเวลา จะไม่เข้า Mode นี้
- สามารถดูรายละเอียดได้ที่ https://developer.android.com/preview/features/power-details
- App Standby Bucket ระบบจะวิเคราะห์แอปใด ๆ ว่าใช้งานบ่อยแค่ไหน แล้วจะได้รับการจัดลงกลุ่ม Active, Working Set, Frequent, Rare หรือ Never ซึ่งบางทีอาจมีการเปลี่ยนแปลงในภายหลังได้
- และมีอื่น ๆ อีกมากมาย
Hello, Android Studio 3.2 And Android App Bundle – Somkiat Kitwongwattana
- Android Studio 3.2 ตอนนี้เป็น Beta 2
- แบ่งเป็น 4 Part
- Develop
- AndroidX ใน AS 3.2 มีฟังก์ชันในการ Migrate จาก Support Library ให้
- Navigation Editor เหมือน Storyboard ของ X Code นั่นแหละ…เป็น Library เสริมที่ทำให้ชีวิตสบายขึ้นเยอะ
- Android App Bundle นักพัฒนาไม่ต้อง Release Multiple APK เพื่อให้รองรับเครื่องที่หลากหลาย
- Slices
- Sample Data มีให้เลือกใช้งาน ไม่ต้องใช้ Lorem Ipsum แล้ว
- What’s new Assistant มีข้อมูลของฟีเจอร์ใหม่ให้นักพัฒนาเข้าไปศึกษากันได้
- Build
- D8 Debugging
- R8, New Code Shrinker ฉลาดกว่า Proguard
- ลบ ABIs เก่า ๆ ออก แต่ถ้ายังอยากให้มัน build อยู่ ก็ไปใส่ใน Gradle เอา
- Build เร็วขึ้น 16% เทียบกับ 3.1.0
- AATP2 ย้ายไปอยู่บน Google’s Maven Repository
- multidex enable by default
- Test
- Emulator ดีขึ้น เวลา Test สามารถทำ Snapshot ได้, รองรับ Screen Recording, มี Virtual Scene ไว้ Test AR
- ADB Connection Assistant
- Optimize
- Energy Profiler มีเพิ่มเข้ามา ทำให้เห็นว่ามีการใช้พลังงานมากขึ้นหรือไม่
- Profiling Recorder เก็บข้อมูลตั้งแต่เปิดแอปมาวิเคราะห์ได้
- Develop
- และอื่น ๆ อีกมากมาย
- Android App Bundle นักพัฒนาไม่ต้องไปนั่งแยก APK ให้รองรับหลายขนาด เพื่อให้ APK มีขนาดเล็กลง
- ไม่สามารถเอาไฟล์ .aap ไปแล้วลงได้เลยเหมือน .apk มันเป็นไฟล์ที่เอาไปให้ Google Play ไป Build แยกให้
- เป็น Dynamic Delivery build ตาม ขนาดจอ, ภาษา, CPU มันจะไปจัดการเอา Resource ตามที่เราแบ่งไว้มาให้เอง
- Dynamic Features ทำให้สามารถแยก Base Module แล้วไปโหลดฟีเจอร์เพิ่มทีหลังได้ ถ้าอยากใช้งาน ต้องวาง Structure ของโค้ดให้เป็น Module ข้อดีคือ user โหลดมาแอปมาเท่าที่จำเป็นต้องใช้งาน
Android Jetpack / Android X – Theerasan Tonthongkam
- AndroidX มันคือการ Refactor Support Library
- Jetpack รวบรวม Library ต่าง ๆ ที่เป็น Library แนะนำในการเขียนโค้ด
- ที่มาของ AndroidX คือ…แต่เดิม Support Library เกิดมาเพื่อรองรับการ Backward Compat หลัง ๆ เริ่มมีอะไร ๆ เพิ่มขึ้นมามากขึ้น และมีเวอร์ชันที่หลากหลาย ซึ่งบางทีก็ไม่มีการอัปเดทอะไรตามการเปลี่ยนแปลงเลขเวอร์ชัน แถม…การใช้งาน component ต่าง ๆ ต้องใช้เลขเวอร์ชันเดียวกันอีก
- AndroidX จะมีการตั้งชื่อที่ดูมีตรรกะมากขึ้น, เลขเวอร์ชันก็เริ่มนับ 1 ใหม่ ไม่ได้เกี่ยวข้อวกับเลขเวอร์ชันของ Android อีกแล้ว, มีสโคปที่ชัดเจนมากขึ้น, v4 v7 v13 v14 จะหายไป
- ใน Android Studio มีเครื่องมือในการ Migrate มาเป็น AndroidX ให้…แต่ยังมีปัญหาบางอย่างอยู่ ถ้าทำบุญมาเยอะอาจจะไม่เจอ Error แต่ถ้าแต้มบุญหมดก็ต้องมานั่งแก้ปัญหาที่เกิดจากการ Migrate
- AndroidX มีอยู่ใน support 28.0.0 สามารถใช้เวอร์ชันนี้ไปก่อนจะ Migrate ก็ได้
- พูดถึง RecyclerView Selector และ Slice
- Kotlin Extension เรียกอีกชื่อว่า KTX
- และอื่น ๆ อีกมากมาย
Hello KTX – Verachad Wongsawangtham, Tipatai Puthanukunkit
- Pain Points ของการพัฒนาแอป Android ด้วย Kotlin
- Android แต่เดิม ไม่ได้เกิดมาเพื่อ Kotlin ทำให้เวลาจะใช้งานฟังก์ชันของ Android บางอย่าง Boilerplate มันเยอะ
- Static Helper หายาก ไม่มีโผล่ใน Auto Complete ใช้ชีวิตยากจัง
- Android มี Composite Type เยอะ
- ด้วย Pain Point ข้างบน…ทำให้เกิด KTX จะทำให้ชีวิตในการพัฒนาด้วย Kotlin ดีขึ้น
- พูดถึงการสร้าง Extension Function Kotlin เอง พร้อม Live Demo ให้ดู
Migrate to Navigation Architecture Component – Nonthawit Doungsodsri
slide อยู่ที่ facebook.com/thekhaeng.io
- เริ่มด้วยการทบทวนวิธีในการเปิด Activity ใหม่ และเปิด Fragment ใหม่ แบบเดิม ๆ
- Pain Points คือ…ทำไมการจะทำอะไรเหมือนกัน มันเขียนโค้ดไม่เหมือนกัน แถม Boilerplate เยอะมาก
- Navigation Component จะเขียนขึ้นบน XML ส่วนโค้ดจะเขียนแค่
.navigate()
เท่านั้น - Navigation Graph ประกอบด้วย Host , Destination, Action
- NavController เป็นตัวจัดการว่าจะไปหน้าไหน อะไร ยังไง อ้างอิงด้วย ID
- Navigation UI ช่วยทำให้ปุ่มต่าง ๆ ที่อยู่ใน Menu, Tab หรือ Drawer ใช้งาน Navigation ได้
- Save Args (Gradle Plugin) เพื่อชีวิตที่ดีขึ้นในการส่งข้อมูลข้าม Activity หรือ Fragment ใช้งานบน XML ไม่ต้องไปเขียนโค้ดเพิ่ม
- Deep Linking นั้น…Navigation Component ก็รองรับนะครับ ได้ทั้งแบบ Explicit และ Implicit
- ถ้ามี Graph มากกว่า 1 Graph ตอนใช้งานในโค้ด ต้องอ้างถึง Class ที่มันแปะอยู่ตอนสร้างด้วย
- สามารถทำ Testing ได้ง่ายดายมาก ใส่ controller เข้าไป แล้วดู ID ของ Destination ได้เลย
- 1 Actitivity ควรมี 1 Navigation Graph
- ณ วันนี้ยังเป็น Alpha และยังไม่มี
startActicityWithResult()
ML Kit : Machine Learning for Mobile – Jirawat Karanwittayakarn, Virot Chiraphadhanakul
- ความสนใจ Deep Learnig มากขึ้น 50 เท่าใน 8 ปีนี้
- Deep Neural Network คืออะไร…ไปหาอ่านเอาเองนะครับ
- ทุกวันนี้ ML มีความแม่นยำมากขึ้นกว่าแต่ก่อนมาก มี Error แค่ 3% แม่นกว่าคนที่มี Error 5%
- แต่ก่อนเวลาจะใช้งาน ML ต้องส่งข้อมูลไปที่เซิฟเวอร์เพื่อประมวลผล แต่ตอนนี้สามารถประมวลผลได้บนมือถือแล้ว
- ในการประมวลผลบนมือถือนั้นสามารถทำได้ แต่ยาก…เพราะ มันต้องใช้ข้อมูลในการเทรนเยอะ, โมเดลมีขนาดใหญ่ และ การ Deploy และการทดสอบมีความท้าทาย
- TensorFlow Lite ใช้งานได้บนมือถือ รองรับทั้ง Android และ iOS
- ML Kit เอาโมเดลที่เทรนไว้แล้วมาใช้งาน ด้วยวิธีที่ง่ายขึ้น
- ใช้งานได้ทั้งบน Android และ iOS
- สามารถใช้ได้ทั้ง Base Model และ Custom Model
- ใช้งานได้ทั้ง On-Device และ Google Cloud API
- เข้ามาอยู่ใน Ecosystem ของ Firebase
- ML Kit for Firebase ตอนนี้มี 5 API ได้แก่ Text Recognition, Image Labeling, Barcode Scanning, Face Detection และ Landmark Recognition
- ในอนาคตจะมี High-Density Contour feature และ Smart Reply API
- Smart Reply ตัวแนะนำประโยคที่น่าจะใช้ในการตอบกลับโดยอ้างอิงจากบริบทของข้อความ
- Custom Model Support คือสามารถอัปโหลด TensorFlow Lite Model ขึ้นไปบน Firebase เพื่อให้ใช้กับงานที่เหมาะกับเราได้ดีขึ้น
- สามารถทำ Dynamic Model Download ได้
- A/B Testing ได้
- เร็ว ๆ นี้จะมีเครื่องมือในการ Convert และ Compress Model ให้ให้กัน โดยจะอัปโหลด TensorFlow Model พร้อมกับ Training Data ขึ้นไป มันจะไปเทรนแล้วจะส่ง Model หลาย ๆ ตัวกลับมาให้ให้เลือกว่าจะเอา Model ที่แม่นมาก แต่ขนาดใหญ่ หรือแม่นยำน้อยลง แต่ขนาดเล็กลง
- และสุดท้ายก็มี Demo ทั้ง 5 API ให้ดู
- รายละเอียดต่าง ๆ ดูเพิ่มเติมได้ที่ https://medium.com/@jirawatee/รู้จัก-ml-kit-for-firebase-ตั้งแต่-zero-จนเป็น-hero-7fde18735861
Android Things – Kajornsak Peerapathananont
- มันคือ IoT Device ที่ใช้ Android เป็น OS
- เป้าหมายคือ…เป็นอุปกรณ์ที่ Powerful, intelligent และ Secure
- สามารถสร้างได้ตั้งแต่ Prototype ไปจนถึง Production
- เนื่องจากมันเป็น Android จึงสามารถทำได้บน AS เชื่อมต่อกับ Play Service, Firebase และ Google Cloud Platform
- ตอนนี้ SDK มียอดดาวน์โหลดมากกว่า 100k แล้ว
- หลายสิ่งเหมือน Android แต่มี Things Support Library เพิ่มเข้ามา และตัดบางอย่างที่ไม่สามารถใช้งานบน Android Things ได้ เช่น การโทรออก, Runtime Permission ออก
- Supported System-on-Modules (SoMs) เป็นชิปบนบอร์ดที่ใช้ในการประมวลผล Android
- ทุกสิ่งทุกอย่างจัดการให้หมดแล้ว Developer ทำแค่ App และส่วน Driver User ไม่ต้องลงลึกถึงฮาร์ดแวร์
- มีหน้าเว็บ Developer Console สำหรับ Deploy Application เมื่อทำเสร็จ จะได้ ROM เอาไปแฟลชลงบอร์ด
- เมื่อมีการอัปเดท มันจะอัปเดทแบบ OTA ผ่าน Google Play Service ให้
- นอกจากนี้ยังมี Analytics ให้ดูด้วย
- สิ่งที่มีเพิ่มเติมใน Android Things 1.0
- Long-Term Support ได้รับการอัปเดท 3 ปี
- Home Activity Support ใส่ไปใน Manifest แล้วเมื่อเปิดเครื่อง แอปเราจะเปิดขึ้นมาเลย ไม่ต้องให้ผู้ใช้ไปเปิดเอง
- Device Updates Developer สามารถสั่งให้แอปอัปเดทได้ทันที หรือสั่งให้มีการอัปเดทแบบกำหนดเวลาได้
- Connectivity สามารถเชื่อมต่อ Bluetooth และ LoWPAN ได้ง่ายขึ้น
- Peripheral I/O สามารถสั่งผ่าน adb ได้เลย
นอกจากนี้ยังมี Session อื่น ๆ ที่ห้อง Playhouse – Breakoutroom อีกครับ แต่ผมไม่ได้เข้า หัวข้อก็ประมาณนี้
- Transfer Learning with TensorFlow Hub – Sirinart Tangruamsub
- GCP 101 – Jirayut Nimsaeng
- Action on Google – Kuntee Viriyothai
- Flutter 101 – Krisada Vivek
- Web AR/VR – Tanitphon Paniwan
- GKE Auto Scaling – Jirayut Nimsaeng
- Polymer 3.0 – Pongpanot Tassaneeyachumphalee
ก็ขอจบลงเพียงเท่านี้นะครับ ขอบคุณที่อ่านจนจบ ผิดพลาดประการใดก็ขออภัยไว้ ณ ที่นี้ด้วยครับ
แต่ก่อนที่จะจากกัน ขอทิ้งท้ายด้วยวิดีโอที่พี่ตี๋เปิดตอนท้ายงานด้วยครับ
ปล. จริง ๆ มีอีก 1 Session ที่ผมไม่ได้กล่าวถึงคือ Advanced Topics (D8/R8-Nitrogen-ART) – Inaki Villar เพราะว่า Session นี้ผมออกไปหาขนมกิน + ชาร์จแบตโน้ตบุ๊กครับ