มางาน Google IO Extended 2018 ที่มี Android session แน่นที่สุดแห่งปี

Event Jul 5, 2018

ในปีนี้บัตรที่มีอยู่ 1,300 ใบที่แจกจ่าย access code ก็หมดเกลี้ยงเลย

เรียกได้ว่า session ฝั่ง Android แน่นสุดๆ ถ้าดูจาก agenda

งานจัดขึ้นที่ kbank siam pic-ganesha ที่เดียวกับงาน Android Bangkok ดังนั้นน่าจะมากันสะดวกด้วย bts ลงสยาม

ป้ายห้อยคอน่าจะเหมือนกันงาน React Bangkok 3.0.0 ที่มี Agenda ด้านหลัง (อ่านจากบล็อกนุ้งเต่า) แต่ UX ไม่ค่อยดี ตรงสายห้อยคอไม่ได้ยาวมากขนาดนั้น บางทีต้องเอาออกจากคอมาดูเลยทีเดียว แอ้กกกก

คนในงานเยอะมากๆ เรานัดเพื่อนไว้ ไปพร้อมกัน หลงพร้อมกันฮะ ลงทะเบียนสัก
แปปก็ได้ขึ้นไปจับจองที่นั่งชั้นบนเลยจ้า

ปล. session สุดท้ายไม่ได้อยู่เน้อ หิวข้าวเลยออกมากินก่อน แบบเรากับเพื่อนแก่แล้ว นั่งนานไปด้วย 555


ได้เวลาอันสมควรแล้ว เริ่มต้นที่ Welcome Remark โดยพี่โอ๋ค่ะ

Welcome remarks : Wittaya Assawasathian GDG Thailand

ในไทยเราเป็น commulity ที่คึกคัก และ Active ที่สุดใน SEA และมี GDE 12 ท่าน

และมี surprise เล็กน้อย คือ ตอนนี้ได้ GDE หญิงคนแรกในไทย แบบสดๆร้อนๆเลย คือ คุณนาถ GDE Machine Learning ค่าาาาา ขอแสดงความยินดีนะคะ

Opening Keynote : Mr. Chetaphan Siridanupath, Principal Visionary Architect, KLABS, KBTG

จากนั้นเป็น open session โดยสปอนเซอร์หลักของงานนี้ KBTG นั่นเอง ด้วยหัวข้อ Start with why

  • Golden cycle คือควรคิดแบบ outside-in ไม่ใช่ inside-out
  • SpaceX คิดจาก why สุดท้ายได้ยานอวกาศที่สามารถนำกลับมาใช้ใหม่ได้
  • Why KTBG คือ technology for better life ทำยังไงให้คนใช้ง่ายขึ้น เช่น QR code ตามร้านต่างๆ หรือ iBeacon สำหรับผู้พิการทางสายตา ให้ทุกคนสามารถเข้าถึงบริการของธนาคารได้ง่ายขึ้น
  • How : KADE ไม่ได้เน้นความลํ้าของเทคโนโลยีที่ใช้ เน้นประสบการณ์ของผู้ใช้งานเป็นหลัก
  • พัฒนาการของธนาคาร Channel -> banking -> platform (AI/ML)
  • และทิ้งท้ายด้วยประโยคนี้ค่ะ

I/O Keynote

ได้เวลาสนุกแล้วสิ
ปล. ทำไม Google Lens อ่านว่า 1/0 Keynote อ่ะ ฮืออออ

Manikantan Krishnamurthy : Developer Relations, Google Singapore

โดยรวมพูดถึง Google Assistant นะ

ถ้าเราอยากทำเองก็มี Assistance SDK ให้ใช้

เขาอธิบายการใช้ DialogFlow ด้วย รู้สึกว่าง่ายกว่าที่เราลองทำเองอีกแหะ หลักๆจะมี Intent, Entity และ Param

ส่วนอันนี้เกิดอาการมือไม้สั่นกันทั้งงาน กับ Community Partner จ้า แบบเราทำ Action ขึ้นไป ได้เสื้อยืดสุด cool และเครดิตเพิ่มด้วย

Actions on Google Developer Community | Actions on Google | Google Developers
Starting with a $200 monthly Google Cloud credit and an Assistant t-shirt when you publish your first app, the perks…developers.google.com

ส่วน Startup ก็ไม่น้อยหน้าเช่นกันจ้า พี่กูเกิ้ลจัดให้กับโปรแกรม Google Cloud Startup แสกน QR Code กรอกรายละเอียดได้เน้ออออ

Somkiat Kitwongwattana : GDE Android

ฝั่ง Android ที่อัพเดตเนี่ย เอาจริงๆเยอะจนแทบจะแร็ฟได้เลย โย่ว

ทาง Android จริงจังมากๆที่ให้ developer ย้ายไปเขียน Kotlin และตอนนี้มี version 1.2.50 แล้ว

ในไทยก็มีบางแอปที่เป็น Kotlin แล้วนะ (อันนี้นับจากการใช้ Kotlin บน project 30% ตามกระทู้ที่พี่เอกถาม)

และตอนนี้มี GDE สาขาใหม่ นั่นคือ GDE Kotlin นั่นเองงง (รอมานานล้าว) ซึ่งคนนี้ควบทั้ง 2 ตำแหน่งเลย คือคุณนากิ นั่นเองงง

มีอะไรมาใหม่บ้าง

  • Android Studio 3.2 run on Chrome OS ได้แล้ว
  • Android App bundle มีทั้ง Dynamic Delivery และ Dynamic Feature ซึ่งจะมี session แยกอีกที
  • AndroidX
  • Android Jetpack
  • Android P
  • Slices ทำแล้วมันจะขึ้นที่ Google Search ได้
  • App action
  • Google Play Instant ปีก่อนมี Instant App ไปแล้ว ปีนี้เพิ่มฝั่งเกมส์เข้าไปด้วย
  • Google Play มี Internal Test อันนี้เป็นตัวทดสอบกันเอง ก่อนไป alpha beta และ release (รออ่านบล็อกเรื่องนี้จากเราได้ ฮี่ๆ) แล้วก็ Deprecation Policy คือ API ที่ใช้ในแอปต้องมากกว่า version 26 นะ น่าจะเห็นข่าวกันมาแล้ว
  • Android Thing : Maker with Kotlin

Virot Chiraphadhanakul : GDE ML

  • ในงาน Google I/O เมื่อปีก่อนมีการนำเสนองานวิจัยเรื่องเบาหวานขึ้นตา แต่ปีนี้มีทำนายโรคจากดวงตา ด้วย AI
  • ทาง Google มี concept ว่า ให้ทุกคนเข้าถึง AI ได้
  • ปีก่อนเปิดตัว hardware ตัวนึง คือ Cloud TPU เป็น pubilc beta ตอนนี้เป็น TPU 3.0
  • TensorFlow มีคน download 13 ล้านแล้วนะ แต่ก่อนหน้านี้อาจจะมีคนบ่นว่าใช้ยาก เพราะมันเป็น low-level เนอะ ตอนนี้ขยับมา high level แล้ว
  • on-device Machine Learning สามารถคำนวณเองโดยสามารถทำบน Offline ได้แล้ว -> TensorFlowLite
  • ออก ML Kit ให้ใช้ใน Firebase
  • TensorFlow.js ใช้ในเว็บ
  • TensorFlow Hub เป็น community เนอะ
  • มีคอร์สออนไลน์เรียนฟรีด้วย Machine Learning Crash Course

Machine Learning Crash Course | Google Developers
An intensive, practical 20-hour introduction to machine learning fundamentals, with companion TensorFlow exercises.developers.google.com

ขอแปะบล็อกงาน AI day เพิ่มนะ เผื่อใครงงๆว่าตัวไหน คืออะไร

มาเปิดประสบการณ์สาย Data Science กับงาน AI Day Bangkok
บอกตามตรงเลยว่า เหมือนเข้าไปเรียนมหาวิทยาลัยอีกครั้งเลย เนื้อหาเอาจริงๆก็ค่อนข้างยากสำหรับเรานะ…mikkipastel.blogspot.com

Jirawat Karanwittayakarn : GDE Firebase

ฝั่ง Firebase ก็ไม่น้อยหน้าเช่นกัน ยังมีอะไรใหม่ๆให้เราเล่นเสมอ แถมบางที่ JD ยังระบุถึงเรื่อง Firebase Skill อีกด้วย

ในไทยและในโลกมีแอปที่ใช้ Firebase ประมาณนี้

  • Cloud Function ไม่ beta แล้วจ้า แถม feature มาเพิ่มด้วย
    • Analytics สามารถดูข้อมูลอย่างละเอียดได้แล้ว
    • Project Setting ตอนนี้อยู่ในหน้า Firebase อย่างสวยงาม ใช้ง่าย ก่อนหน้านี้เหมือนเราไป set หน้า Google Cloud ซะงั้นอ่ะ
    • จาก Preditions ที่เปิดตัวไปในงาน Firebase Submit ตอนนี้ออก ML kit ที่ทำงานได้ทั้ง on-device และ on-cloud และสามารถ custom model ได้ด้วยจ้า

    Jirayut Nimsaeng : GDG Cloud Bangkok

    ฝั่ง cloud มี update เยอะมาก แต่สามารถพูดได้ทั้งหมดในเวลาอันจำกัดนี้

    • open cloud และ open source เริ่มดันเจ้า istio ซึ่งเป็น API Gateway คล้ายๆ Kong นั่นแหละ
    • มี 16 Regions และ 49 Zones ทั่วโลก
    • Cloud Firestore พวก CSS, Wordpress ที่ไม่ลง cloud ก็เอามาลงได้
    • ใช้ GPU บน container เราสามารถลดค่าใช้จ่ายในการทำ Machine Learning ได้ด้วย
    • Clusters อยู่ใน multiple data ไม่ต้องกังวลว่ามันจะร่วงนะ มีสำรอง ประมาณนี้
    • Apache Airflow
    • มี Certificate ใหม่มาด้วย
    • สามารถเข้าไปอ่าน update ใหม่ๆได้ที่

    Google Cloud Platform Blog
    In part one of this CRE Life Lessons post, we talked about the error budget for a service and the information it tells…cloudplatform.googleblog.com

    • Cloud Next
    • สุดท้าย เข้ามา join กรุ๊ปได้นะ

    Panjamapong Sermsawatari : GDE Web

    Flutter

    • ตอนนี้เป็น beta version 3 แล้วนะ เราสามารถพิมพ์ได้ไวขึ้นเนื่องจากมี hint ขึ้นมาให้เราแล้ว (เราเรียกไม่ค่อยถูกแต่เห็นภาพนะ ฮ่าๆ) และ support Material Design ด้วยนะ เอาจริงเป็น base design ของ Flutter นะ เขาทำงานร่วมกัน
    • release preview 1 เริ่มนิ่งแล้ว
    • มี extension for VS Code ด้วย

    Dev Tools

    • Eager Evalution แสดงผลแบบ real-time นับว่าเป็นข่าวดีของสาย web ที่อยากจะลองอะไรสักอย่างบน Chrome Console, function auto completion, argument hints
    • Lighthouse 3.0 เร็วขึ้นจากเดิม
    • Chrome OS สามารถ run Linux app ได้ เช่น Android Studio (อันนี้พี่ปันเจได้บ่นว่า หนักเครื่องพอสมควร ฮ่าๆ) และ Android App
    • Polymer ช่วยสร้าง web component เปิดตัว version 3.0
    • LitElement เป็น lit-html เอาไว้ทำ template
    • PWA starter kit ไม่ต้องมานั่งทำ manifest, service worker บลาๆอะไรพวกนี้เองแล้ว (ฮืออออ ดีใจ) แถมมี redux ให้ด้วยจ้า

    Polymer/pwa-starter-kit
    pwa-starter-kit - Starter templates for building PWAs.github.com

    • มี .app domain เปิดตัวอย่างจริงจังในงาน Google I/O 2018 โดยมีข้อดีดังนี้

    1) สั้น

    2) อ่านพยางค์เดียว

    3) สะกดง่าย

    4) ตอนนี้คนยังใช้น้อย

    5) https only

    ราคาต่อปีคือ 490 บาท ถือว่าดีงามมากๆ

    Apirak Panatkool : GDE UX

    คนใช้ Material Design 1.5 ล้านแอปพลิเคชัน แต่เกิดปัญหาคือ แอปหน้าตาเหมือนกันไปหมด ดูเป็นแอปของ Google มากกว่าแอปของ brand ดังนั้นเขาเลยปล่อย Theme เพื่อแก้ปัญหานี้ สามารถแก้พวกสี font ขอบ ได้ตาม CI ของ product เลย

    ใน material.io มี update ที่เราควรจะไปดู

    1) Design ดูพวกเรื่องสี do/dont TextBox และ Toolbar นั้น ออกแบบตามสไตล์ของแต่ละ platform เลย

    2) Develop ทาง material ได้เตรียม library ให้ทุกๆ platform เลย ไม่ว่าจะเป็น Android, iOS, Flutter, และ web

    3) Tools มี tool ที่เป็นสะพานเชื่อมระหว่าง Developer และ Designer นั่นคือ Gallery นั่นเอง สามารถทำบน sketch ได้


    จากนั้นทานข้าวเที่ยง แถวยาวมากกกกกกกกกกกก แต่อาหารก็อร่อยมากเช่นกัน เยเย้

    อยากรู้ชื่อเมนูมาก อร่อยยย

    และก็แว่บไปที่บูธของ KBTG อันเป็นสปอนเซอร์ของงานนี้ มีแจกเสื้อด้วยนะจ๊ะ

    แล้วมีพวก IoT ให้เราได้เล่นบ้างนิดๆหน่อยๆ เช่นเจ้าตัวนี้ มันจะ detect แบบ real-time เลยว่า นี่คือวัถตุอะไร ถูกบ้าง ไม่ถูกบ้าง เราไม่ได้ซีเรียสนะ เพราะอะไรเหรอ เพราะว่ากล้องหันไปด้านบน มันเห็นโครงเพดานด้วยไง นางอาจจะงงๆว่าชั้นเห็นอะไรนี่

    ก่อน session บ่ายเข้ามีอะไรแจกด้วย มาไม่ทันจ้า อด 555


    What’s new in Android P : Somkiat Kitwongwattana GDE Android

    เริ่มต้นด้วย session ยามบ่าย กับ session ที่ชาว geek Android ต้องรู้

    และมีสไลด์ย้อนหลังด้วยยยย วู๊วววว~~

    ตอนนี้ Android P เป็น beta 2 และเป็น final API ดังนั้น ไม่มีอะไร update เพิ่มแล้ว เย้

    และของใหม่มีอะไรบ้างหล่ะ

    • ไม่มี crash dialog แล้วจ้า เพราะเขาค้นพบว่าการขึ้น dialog มี UX ที่แย่กว่าแอปเด้งออกไปเฉยๆ แต่ dev คนไหนอยากได้ก็เข้าไป setting ใน dev mode ได้จ้า
    • WiFi Round-Trip-Time พวกแผนที่ in-door ต่างๆนั้น ใช้ bluetooth และ WiFi ในการทำงานร่วมกัน
    • Display Cutout ก็ที่หน้าจอแหว่ง เหมือนอะไรนะ เหมือน iPhone X ไง เราสามารถเปิดใน dev mode ได้ เหมาะกับจอ 18:9 หรือ 18.5:9 เพราะ 16:9 มันจะเล็กไปเนอะ

    มี 3 รูปแบบ คือ มุม, แหว่งบน, แหว่งบนล่าง

    เราควร check app กับ cutout ก่อน release app ด้วยนะ, short edges ดูว่ามันทับกับ layout ไหม กำหนดผ่าน style ได้เลย แบบนี้

      • AnimatedImageDrawable รองรับพวก gif, WebP, Animation ต่างๆ
      • Biometrics API : รองรับ sensor ต่างๆ เช่น fingerprint ถ้ามือถือยี่ห้อนึงออก hardware sensor ใหม่ ไม่ต้องไปทำอะไรกับมันมาก มันจะผูกกับ binder เลย และหน้าตาเขาก็ทำมาให้ ดังนั้นใครเขียน fingerprint เอง ลบออกแล้วมาใช้ตัวนี้นะ
        • Camera API V2 ความยุ่งยากในการทำแอปกล้องเลย ฮ่า (น้องคนทำบ่นถึงความยาก) สามารถดึงกล้องใช้งานมากกว่า 1 ตัว รองรับ usb แล้วก็ external flash ได้
        • Text ตอนนี้มี Baseline Distanceสำหรับใส่ font ที่ไม่ใช่ Roboto (แบบ font อื่นๆที่ใส่ในแอป เช่น ในแอปฟังใจเป็นต้น) สามารถปรับพวกความห่างระหว่างบรรทัดได้ ประมาณนี้, background text measurement, magnifier แว่นขยาย, smart linkify วิเคราะห์ text -> TextClassified
        • Background Input & Privacy ถ้าแอปไม่ได้ active จะไม่สามารถเปิด camera, microphone, sensor manager ได้ เนื่องจากเรื่อง security เนอะ
        • เวลาเราจะ get serial ของเครื่อง ใช้ Build.getSerial() แทน และเพิ่ม permission ด้วยนะ ไม่งั้นดึงไม่ได้
        • Power Management มี AI ช่วยจัดการ ลํ้าสุดๆ แถมพี่เอกบอกว่ารายละเอียดมันเยอะมากๆเลยหล่ะ

        App standby Bucket มันเป็นตะกร้าๆ แบ่งว่าเราใช้แอปนี้บ่อยแค่ไหน

        • Active แอปกำลังถูกใช้งานอยู่ ซึ่งนับการเข้ามาโดยเข้าแอป, foreground service และ click notification เท่านั้น
        • Working Set ใช้งานบ่อย แค่ตอนนี้เราไม่ได้เปิดแอปนี้เท่านั้นเอง
        • Frequent มีการเข้าใช้งานเป็นระยะๆ เช่น ออกกำลังกายทุกวันเสาร์ จะเปิดแอป Google Fit หรือแอปตรวจหวยที่บางคนใช้ประจำวันที่ 1 และ 16 เป็นต้น
        • Rare ไม่ค่อยได้ใช้ เช่น นานๆจะมีไปรษณีย์ส่งของมาหาเรา
        • Never ลงแอปในเครื่องแล้ว แต่ไม่ใช้

        แต่ๆๆๆ อย่ากังวลไป มันเป็น dynamic ถูกย้ายได้ตลอดเวลานะ ต้องมี Launcher Activity ในแอป Notification ต้องกดได้ ส่วน FCM ก็อย่ายิงบ่อยนะ เดี๋ยว user ปัดทิ้ง ระบบจะเห็นว่า user รำคาญแอปนี้ ชอบส่ง noti มาอยู่ได้ เลยเสนอว่า block noti แอปนี้ไหมจ๊ะ ถ้า user block บ๊ายบายจ้า ยิง noti ไปเขาจะไม่เห็นแล้วรู้ไหม

        ยกตัวอย่างสมมุติ แบบเมื่อก่อนไม่ค่อยเข้าแอปฟังเพลง (Rare) พอส่งเพลงจีบสาวแล้วเข้าแอปเพลงแล้วส่งรัวๆ (active or working set)

          ถ้าอยากรู้ว่าแต่ละ state มีอะไรบ้าง จิ้มเข้าไปดูได้จ้า

          Appendix: Power management restrictions | Android Developers
          As described in Power Management in Android P, the system can impose power restrictions on apps for a number of…developer.android.com

          • Testing ใช้ command line ในแต่ละ case ได้ด้วยแหะ

          ปล. มี FC สาวอายุ 24 ปี บอกว่าติดตามพี่เอกมานานแล้วด้วย ><

          Hello, Android Studio 3.2 & Android Bundle : Somkiat Kitwangwattana GDE Android

          กลับมาพบกับ speaker คนเดิม เพิ่มเติมคือ session ใหม่จ้าาาา

          • เจ้า Android Studio 3.2 นั้น base on IntelliJ 2018.1.1 นะจ๊ะ
          • จริงๆการปล่อย version ของ Android Studio นั้น จะมี 
            canary -> beta -> stable 
            ซึ่งเจ้า beta กับ stable สามารถลงควบคู่กันได้ และทำงานโปรเจกเดียวกันโดยไม่ต้องแก้อะไร (ซึ่งข้อเสียที่เราลองลงควบคู่กัน คือ หนักเครื่องนั่นเอง ฮ่าๆ)

          เนื้อหาแบ่งเป็น 2 ส่วน ตามหัวเรื่องเนอะ

          Android Studio 3.2

          1) Developer

          • Android X : Migrate code มาเป็นตัวใหม่ ถ้าโปรเจกใหม่ก็ไม่ต้องทำอะไรเพิ่มเนอะ
          • Navigation หน้าตาก็จะคล้ายๆ Storyboard อ่ะ
          • App Bundle
          • Slice Provider Generator
          • sample data ช่วยคิดว่าตอนที่เรา mock up UI ว่าที่ทำไป แสดงผลตามที่เราตั้งใจไว้หรือไม่ และมี preview ด้วย อันนี้เราว่าดีอ่ะ
          • What’s new assistance อันนี้จะบอกว่าตอนนี้มีอะไรใหม่ๆบ้าง

          2) Build

          • D8 ใช้แทน Dx
          • R8 ใช้แทน Proguard
          • ลบ CPU Architecture เก่าๆบางตัวทิ้งไป
          • แน่นอนว่ามัน build เร็วขึ้นถึง 16% performance ดีสุดๆ
          • AAPT2 โดนย้ายไปอยู่ใน Google Maven Repository ถ้านึกไม่ค่อยออกว่าคืออัลไล ลองเปิด build.gradle ของโปรเจก ก็จะเจอ google() ซึ่งตัวใหม่จะโอเคขึ้น เพราะพอมาอยู่ด้วยกัน ก็จะได้ update ใหม่ได้ตลอดเลย
          • multidex

          3) Test

          • Emulator ไม่ต้องนับหนึ่งถึงสามล้านแล้วววววววววว เพราะมันเร็วขึ้นมาก ลบเจ้า GenyMotion ทิ้งไป 55555555
            - Snapshot โหลด state แล้วกลับมาทำใหม่
            - Screen Recording ทำได้แล้วเน้อ นํ้าตาจิไหล
            - Virtual Scene ของกล้อง เหมือนเราถ่ายรูปจริงๆมากขึ้น มีฉากสวยงาม มี TV แปะ QR Code เผื่อจะลองสแกน QR Code งี้
          • ADB connection assistance

          4) Optimize

          • Energy Profiler
          • profilling Recorder

          Recap ทั้งหมดในสไลด์เดียว และแหล่งศึกษาหาอ่านเพิ่มเติมจ้า

          Android Bundle

          • publishing format : เราจะไม่สามารถ download นอก store มา install เองได้ เพราะ เครื่องแต่ละคนก็ไม่เหมือนกันเนอะ มันจะมองเป็น bundle นึง ซึ่งเจ้า bundle ก็จะคล้ายๆกับ metadata file อ่ะ
          • เป็น dynamic เนอะ
          • spilt APK ติดตั้ง Configuration หลายแบบ แต่บนแอปมีแบบเดียว ซึ่งรองรับ Lolipop ขึ้นไป
          • ทำ build bundle ได้
          • dynamic feature คือแบ่งแต่ละ feature เช่น ทำแอปอะไรสักอย่างนึง คนนี้ใช้ feature A คนนึงใช้ feature B แล้ว module แยกกัน แล้วค่อยโหลดเท่ามาตอนที่คนนั้นๆเรียกใช้

          Update: Session นี้ Slide ย้อนหลังมาแล้วจ้า

          Android Jetpack Android X : Theerasan Tonthongkam. Eatigo

          จริงๆเราก็เคยอ่านบล็อกพี่คนนี้อยู่เหมือนกันนะ

          หลายๆคนคงจะเห็นแล้วเนอะว่า Android Jetpack เป็นการรวบรวมซุปเปอร์ฮีโร่ เอ้ยยย support library ต่างๆเข้าด้วยกัน อย่างอันใหม่ใสกิ๊กมี KTX, Slice แล้วเป็น dependency ชุดใหม่ นามว่า Android X

          พี่เขาเล่าความเป็นมาของ support library ของแต่ละ version แล้วก็ hint error meassage เกี่ยวกับเลข version ต่างๆ ที่มี alpha beta ทั้งหลายแบบงงๆ

          1) bug refector -> Android X

          • Artifacts ดูหน้าตาชื่อ dependency นั่นสิ
          • Android Support Library จะจบที่ 28.0.0 ไม่มี feature อะไรมาใหม่นะ และเริ่มต้นใหม่ที่ Android X 1.0.0 มีการเรียงเลขเป็น major.minor.bug ถือว่าเป็นหลักการที่เราก็น่านำไปใช้ในแอปเราได้เหมือนกัน ในการทำ version app
          • ตัว dependency จะมี format ที่สวยงาม คือ androidx.<feature>:<classname> กับอีกอันที่มี feature รองหน้า classname มั้ง ถ้าจำไม่ผิด

          2) Migration Tool : Android Studio 3.2 canery 15 ขึ้นไป

          • migrate เป็น version 28 ก่อน แต่มันจะพัง เพราะมี bug อยู่ ในรูปคือตัวอย่างเน้อ อาจจะเจอแบบนี้ได้ตอนทำ RecyclerView
          • inspect code, full path, 3rd party -> jetifier

          มีการ demo project ส่วนตัวที่เป็น recyclerView ให้เราได้ชมกันด้วย รองรับ touch, mouse event และการันตีเรื่อง lifecycle ด้วยนะ

          แล้วก็ Slice ทำให้ส่วนใดส่วนหนึ่งขึ้นบน Google app มี provider template ให้

          โค้ดทั้งหมดอยู่ที่นี่จ้า

          theerasan/AndroidArchitecture
          AndroidArchitecture - This project is to demonstrate the Android architecture with Pattern MVVM-BR + Repository. Using…github.com

          Android X ดูน่าใช้เนอะ แต่ๆๆๆๆๆๆๆ อย่าเพิ่งใช้บน production เพราะยังเป็น alpha อยู่เลย เตือนแล้วนะ

          *Kotlin Extension -> Android KTX

          ปล. ลองอ่านเรื่องนี้ต่อจาก speaker ท่านนี้ได้เจ้า ตอนนี้มีมเซฟป้อมนั้น มีความหมายเอามากๆ ฮ่าๆ รอปล่อยตัวเต็มแล้วค่อยใช้บน production นะ

          AndroidX → Android KTX
          ในโลกของการพัฒนา โค้ดจำเป็นต้องมี pattern เพื่อให้เราเข้าใจระเบียบวิธีการทำงานของโค้ด แต่บางครั้ง pattern…medium.com

          Update: Slide มาแล้วจ้า ส่วนบล็อกกำลังตามๆมาจ้า

          hello KTX : Verachad Wongsawangtham, Tipatai Puthanukunkit, Agoda

          แบ่งเป็น 3 ประเด็นหลักๆ

          1) Pain point

            • ดังนั้นเจ้า KTX ทำให้ชีวิตชาว Android Kotlin Developer ง่ายขึ้น แบบนี้

            2) Extensions อันนี้มี demo ให้ดู อย่างเพลินอ่ะ

            • Spannable Text โค้ดจะเป็นประมาณในรูป คือ เราสามารถ custom text เป็นรูปแบบต่างๆตามใจได้ง่ายกว่าเดิม ปกติมันจะทำยากใช่ไหมหล่ะ
            • inline มีการเปลี่ยนโค้ดอะไรบางอย่างที่ไม่สวย เป็น inline function ซะ ดูสวยงามใช้ง่ายขึ้นเยอะ
            • reified type

            โค้ดทั้งหมดอยู่ในนี้นะ

            Judrummer/HelloKTX
            Contribute to HelloKTX development by creating an account on GitHub.github.com

            3) Final Take Away

            หลายๆคนคงจะเห็น Event นี้ใน Facebook แล้วเนอะ งาน MobileConf 2018 ที่รวบรวมท้ัง iOS, Android, cross platform ซึ่งตอนนี้รับ speaker และ sponsor อยู่จ้า

            Mobile Conf 2018
            พบกับงาน conference สำหรับเหล่า mobile developer ครั้งแรกในไทย ในงานคุณจะได้พบกับเนื้อหาที่เกี่ยวกับ mobile app…www.facebook.com

            ปล. ก่อนจบมีคำถามนึงน่าสนใจ มีใครอยากเขียน Kotlin แล้วที่ทำงานไม่ให้เขียนบ้าง ลองดู session นี้จากงาน Android Bangkok 2018 ย้อนหลังได้จ้า ว่าการเปลี่ยนถ่ายยุคสมัยต้องเจอกับอะไรบ้าง

            Android Navigation : Nonthawit Doungsodsri, Nextzy

            บางคนคงจะเคยอ่านบล็อกของเดอะแข็งมาบ้างแล้ว (รวมถึงเราด้วย) ทำไมถึงชื่อนี้หล่ะ เพราะเจ้าตัวชื่อนํ้าแข็งจ้า

            ก่อนอื่น ไปกด download slide มาดู แล้วเริ่มไปพร้อมกันเลยจ้า

            ด้วยความที่ตัวสไลด์อ่านเข้าใจตามได้ไม่ยาก ก็เลยไม่ค่อยได้จดหรือถ่ายรูปอะไรมาก ถ่ายแค่ตอน demo เอง แหะๆ

            ก่อนที่จะเริ่มเนื้อหาจริงจัง จะเล่าถึง Activity และ Fragment เป็นการทบทวนความรู้และทำความเข้าใจตรงกันก่อน ในการเรียกใช้ ซึ่ง pain point ของเรื่องนี้ คือ Activity และ Fragment เรียกไม่เหมือนกัน ในการแปะหน้า ส่งค่า บลาๆ แล้ว lifecycle ก็ตามกันด้วย

            ดังนั้น เจ้า Navigation จะลดความยุ่งยากในการเรียกลง โดยทำผ่าน xml ทั้งหมด ด้วยคำสั่งบรรทัดเดียว

            และมี demo ให้ดู หน้าตาก็จะคล้ายๆเจ้า Storyboard ใน XCode เนอะ ฮ่าๆ แล้วก็ลากเส้นให้ดูตาม flow ที่กำหนดไว้ แน่นอนผลออกมาทำงานได้ดังใจหมาย

            การใช้คำสั่ง ใช้วิธีในการโยน id ของ action ซึ่งดีกว่าใช้ fragment ซึ่งเรากำหนด option ได้ผ่าน code แต่ผิด concept ในวันนี้จ้า

            // must do
            Navigation.findNavController(view).navigate(
                          R.id.action_next, 
                          bundle, 
                          options)
            
            // wrong concept
            Navigation.createNavigateOnClickListener(
                          R.id.createBlogFragment, 
                          bundle)

            Safe Arguments ช่วยแก้ปัญหาใช้ชื่อผิด ประเภทตัวแปรที่ใช้ได้ มี String, Int, Boolean จะคล้ายๆเจ้า Data Binding

            มีการทำ Deep Link ให้ดูด้วย Explict ยังแอปอื่นๆ เช่น Widgets และ Implicit แอปอื่นมาแอปเรา เช่น เปิดจากเว็บเข้ามา

            ถ้ามีหลายๆ graph ต้องใส่ class เดียวกัน

            ปล. อย่าเพิ่งใช้บน Production นะเออ มัน alpha อยู่

            Advanced Topics (DB/R8-Nitrogen-ART) : Inaki Villar, GDE Android

            มี 3 ประเด็นที่คุณนากินำเสนอจ้า

            1) Testing : เล่าถึงการทำ Test ในระดับต่างๆ โดยจะเน้นที่ Unit Test โดยมี library ที่พูดหยิบยกขึ้นมาพูด

              • Robolectric 4.0 support AndroidX และ Espresso

              สามารถอ่านต่อได้ที่นี่นะ เราอ่านไปรอบนึงแล้วแต่ลืม ฮ่าๆ

              Robolectric Testing with AndroidJunitRunner
              This article is going to show how to write a simple test with Robolectric 4-alpha1 and AndroidJunitRunner/Espresso.proandroiddev.com

                2) D8/R8 :

                  อันนี้เป็น case study จากแอป Agoda จ้า พบว่าลดทั้งขนาดและเวลากันเลยทีเดียวในการ build app แต่ละที

                  • R8 : ลดการใช้ proguard ทั้งหลายลง แต่ยังปลอดภัยอยู่นะเออ

                  3) ART : ก่อน lolipop จะใช้เจ้า Dalvik ใช่ไหมหล่ะ เขามีเปรียบเทียบความต่างให้ดูด้วยนะ

                  อันนี้เป็นเรื่องของ JIT จา

                  แล้วเรื่อง Inline Function เขาแนะนำให้อ่านบล็อกนี้ ฮ่าๆๆๆๆๆ (มีความ Tie-in รู้สึกดีใจ 555)

                  Inline Function ไม่ได้ยากอย่างที่คิดนี่นาาาา
                  แต่ตอนไปนั่งอ่าน Official Doc ดันไม่เข้าใจไงล่ะblacklenspub.com

                  และ video ที่เกี่ยวกับ session นี้ เผื่ออยากฟังเพิ่มเติม

                  ML Kit for Firebase : Jirawat Karanwittayakarn GDE Firebase, Virot Chiraphadhanakul GDE ML

                  อันนี้สนุกมากๆ มันส์สุดๆ tie-in ก็ด้วย ฮ่าาาๆๆๆ ไม่ใช่สิ demo อย่างเจ๋งเลยอ่ะ ใน session นี้มีพี่ต้ากับพี่ตี๋สลับกันเล่านะ

                  จริงๆแล้ว Deep Learning มันมีมานานแล้ว (เราก็เคยลงเรียนวิชาพวกนี้ตอนปี4) แต่เพิ่งมาบูมเอาช่วงนี้ เพราะเริ่มมีการนำ data มาใช้มากขึ้นนั่นเอง

                  รูปที่อธิบายเรื่อง Neuron Network เป็นอย่างดี คือรูปนี้นั่นเอง เป็นรูปที่เราเห็นแล้วชอบมากๆ เข้าใจง่ายดี

                  เราถึงขั้น save เก็บเลยทีเดียว ชอบรูปนี้มากๆเลย

                  เมื่อก่อนเจ้า Machine Learning ยังไม่แม่นเท่าสมัยนี้นะ แต่เขาก็พัฒนามาเรื่อยๆ จนมี error ~3% ซึ่งน้อยกว่าคน ซึ่งมี error 5%

                  ในสมัยนี้คนก็ใช้มือถือ smqrtphone กันเยอะเนอะ (ซึ่ง Smartphone ในทางทฤษฏี คือ เป็น Embedded Device ตัวนึง) ซึ่งมีการเอาไปใช้แบบ on-device ในหลายๆแอป เช่น

                  • Google Translate ถ่ายรูปป้ายแล้วให้มันแปลภาษาให้ ตอนนี้มี text-to-speech ด้วยหล่ะ
                  • Yousician สอนคนเล่นดนตรี มันจะรู้ว่าเรากำลังดีดกีตาร์คอร์สไหน คีย์อะไรอยู่ ซึ่ง implement ด้วยภาษา C++
                  • Evernote คือแอปจดโน้ตนั่นแหละ สามารถ detect ตัวหนังสือได้

                  ซึ่งเมื่อก่อนทำได้นะ ในแอป แต่ยาก

                  ดังนั้นจึงมีเจ้า TensorFlowLite มาช่วยทำ Machine Learning แบบ on-device

                  ซึ่งมือถือรุ่นนึงที่ใช้เจ้า Nerual Network API ของ Android นั่นคือ เจ้า P20 นั่นเอง

                  ML kit for Firebase จะทำให้ชีวิตเราง่ายขึ้น มี 5 ตัวเช่นกัน คือ Text Recognition, Image Labeling, Barcode Scanning (รวมพวก QR code ด้วยนะ), Face Detection และ Landmark Recognition

                  และเราสามารถ custom model ได้ด้วยนะ เช่น ดอกไม้นี้คือดอกไม้พันธุ์อะไร ปลาที่ตกได้คือปลาอะไร เราสามารถ upload model บน firebase ได้เลย

                  เจ้า Label Detection API ถ้า on-device ก็ฟรีนะ ส่วน on-cloud ใช้ฟรี 1,000 API call ของแต่ละ feature นะ หมายความว่า เราใช้ Image Labeling ได้ฟรี 1,000 ใช้ Text Recognition ได้ฟรี 1,000 นับแยกประมาณนี้นะ

                  ความแม่นยำของ on-cloud จะมากกว่า on-device นะ ดูรูปเอาได้

                  ใน Firebase จะเป็นไฟล์ TensorFlowLite นะ ซึ่งพอเอามาย่อจากเจ้า TensorFlow อาจจะมี overfit case เกิดขึ้นได้นะ

                  ระหว่างนี้มี demo ให้ดูแต่ละตัวเลย ซึ่งรูปที่จะอัพไปประมวณผลแบบ on-cloud นั้น พี่ตี๋แนะนำว่าควร resize รูปก่อนอัพขึ้นไปนะจ๊ะ

                  เริ่มที่ Text Recognition กันก่อนเลยจ้าาา ถุง Starbucks ก็อ่านได้อยู่แล้ว ส่วนขวดนํ้าในงานภาษาไทยและอื่นๆอ่าน on-cloud จะได้ผลแม่นยำกว่านะ และรูปปราบเซียนแบบคนอ่านตัวหนังสือไม่เห็น นางก็อ่านได้จ้า กราบบบบบ

                  ต่อมาคือ Face Detection พี่ตี๋ขออาสาสมัครขึ้นมาหนึ่งคน ให้หลับตาและทำหน้าบึ้ง และดูผลว่าเป็นอย่างไร ปรากฎว่าเห็นตาผิดสองข้างกับไม่ยิ้ม มั้ง

                  และลองรูปเฌอปราง (ซึ่งถ่ายรูปคามิโอชิตัวเองไม่ทัน ฮ่าๆ) กับแพตตี้ ผู้เป็นสมบัติของชาติฝ่ายหญิง

                  จริงๆช่วง Demo เริ่มมีคนแซวพี่ตี๋แล้วจ้า Tie-in บริษัทที่ทำงานอยู่ ฮ่าๆ Wallpaper แซลลี่กับแอปอะไรเขียวๆนะ ฮ่าๆ

                  ไหนๆโดนแซวขนาดนี้แล้ว ในส่วนของ Image Labeling นั้น พี่บราวน์ก็มาจ้าา คือไหนๆ ก็ไหนๆแล้ว ไหนๆจะแซวกันขนาดนี้แล้ว

                  ผลออกมาเป็นดังนี้ ขยายรูปเอาแล้วกันนะ ฮ่าๆ แต่ไม่เห็นว่าเป็นพี่บราวน์ เห็นเป็นตุ๊กตาหมีมั้งถ้าจำไม่ผิด

                  https://docs.google.com/forms/d/e/1FAIpQLSd7Uzx6eepXeF5osByifFsBT_L3BJOymIEjG9uz1wa51Fl9dA/viewform

                  จริงๆมีตัวอย่างอื่นๆอีกนะ ซึ่งอ่านในบล็อกพี่ตี๋น่าจะเห็นภาพชัดกว่า

                  รู้จัก ML Kit for Firebase ตั้งแต่ Zero จนเป็น Hero
                  ยุคนี้มีคนให้ความสนใจเรื่อง Deep Learning อย่างกว้างขวาง โดยข้อมูลจาก Google Trends บอกว่าความสนใจมีเพิ่มขึ้นกว่า 50…medium.com

                  ในอนาคตเราสามารถ convert file TensorFlow เป็น TensorFlowLite ใน Firebase ได้ด้วยนะ แล้วก็ตัวอื่นๆที่จะมาเสริมทัพ เช่น Face Contours ถ้าอยากเล่นก่อนใครไปสมัครที่นี่ได้เลย

                  ปล. เราอยู่ไม่ถึงตอนจบ แต่ได้ยินมาว่า Best Close Remark Speech เลยทีเดียว

                  แต่มีคนสรุปเสร็จก่อนเราอีก กราบจ้าาา

                  [Android] Google I/O Extended Bangkok 2018
                  สวัสดีครับ...กลับมาพบกับโพสท์ที่มีสาระอีกแล้วนะครับ (โพสท์ที่ผ่านมา มันไม่มีสาระหรือยังไง)…blog.jijakung.com


                  อันนี้เป็นเกร็ดเล็กเกร็ดน้อย

                    กด Text selection แล้วก็ก็อปวางได้เลย จัดวางนิดๆหน่อยๆ ไม่ต้องพิมพ์เอง, QR Code สบายหล่ะ, ส่วนที่จด note เออนางรู้เว้ยว่าพูดถึงนางอ่ะ

                    สุดท้ายนี้ขอบคุณทาง Google Developer Group Thailand ที่จัดงานนี้ขึ้นมานะคะ และสปอนเซอร์ที่มา support งานนี้ด้วยนะคะ

                    และท้ายสุด Android Developer ทุกท่านค่ะ มาเขียน Kotlin กันได้แล้วค่าาาาาาา เพื่อชีวิตที่ดีและแฮปปี้นะจ๊ะ และทาง Google นี่เขา First Support Kotlin เลยนะจ๊ะ

                    ปล. SongShakes เป็นแอปที่เขียนด้วย Kotlin นะ ใกล้คลอดแล้ว อย่าลืมมาเล่นกันนะ เป็นแอปประกวดเพลง cover ต่างๆน๊าาา

                    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.