กล่าวถึงงาน Android Bangkok 2018 ในฐานะ speaker ของงานนี้

Event Apr 6, 2018

ในเมื่อเราได้มีโอกาสได้เป็น speaker ของงานใหญ่ที่สุดของชาว Android Developer นั่นคืองาน Droidcon หรือ Android Bangkok 2018 พูดตามตรงว่าเป็นงานที่สองที่ได้ไปเป็น speaker งานนี้จัดวันเสาร์ที่ 31 มีนาคม 2561 ที่ KBank Siam Pic-Ganesha

งานแรกที่ได้ไปเป็น speaker คือ งาน Kotlin meetup 1.2 เมื่อเดือนธันวาคม 2560

ทดลองทำเว็บ PWA ด้วยภาษา Kotlin โดย Android Developer ก่อนไปโชว์ที่ meet-up นะฮะ
ตอนแรกว่าจะลงบล็อกตัวเอง ไปๆมาๆลงในนี้ดีกว่า เพราะ เรื่องราวซับซ้อนตั้งแต่ทีแรกเลยจ้าา ตามประสาคนทำเว็บงูๆปลาๆประมาณนึง

ขอแบ่งย่อยๆ ในส่วนนี้คือพูดถึงการเป็น speaker ล้วนๆ

เนื่องจากเราเองนั้น ก็ไม่ได้พูดเก่ง พูดดี อะไรมากมาย ออกจะพูดไม่ชัด ไม่รู้เรื่องด้วย 555 ภาษาอังกฤษก็ไม่ได้พูดเก่ง งานนี้จึงเกร็งเป็นพิเศษ

  1. เป็นงานใหญ่ประจำปีของ Android Developer
  2. session ในงานนี้ เป็น English Language (เราคิดว่าสังคม developer ชาวต่างชาติไม่ได้ strict กับภาษาอังกฤษแบบค่อนข้างไปทางไม่ค่อยดีของเราเท่าไหร่นัก จากการที่เจอคุณนากิมาก่อน และที่ทำงานเก่าเรานั้น พวกชาวต่างชาติเป็นลูกค้า ดังนั้นเขาดูเหยียดคนไทยที่คุยกับเขาไม่ค่อยได้)
  3. พูดเรื่องที่ไม่เคยพูดที่ไหนมาก่อน (แหงสิ)
  4. และไม่มีใครพูดเรื่องนี้มาก่อน (แหงสิ)
  5. ได้ขึ้นไปพูดที่ KBank Siam Pic-Ganesha ซึ่งจุคนเป็นพันๆคน คนเยอะกว่าคราวก่อนแน่นอน
  6. งานนี้เสียเงินซื้อตั๋ว ดังนั้น เราต้อง ทำให้เขาคุ้มค่าตั๋วเวลาเข้ามาฟัง session เราในเวลา 40 นาที

ได้คุยกับพี่ๆ GDG และ GDE ทั้งหลาย พี่ๆทุกคนส่งกำลังใจ เชื่อว่าเราทำได้ “You can do it” ระหว่างนั้นก็ได้อ่านบล็อกนี้ เป็นกรณีศึกษา อีกซะรอบนึง

Public Speaking ภาษาอังกฤษครั้งแรกของชีวิต ในงาน Droidcon Bangkok 2017
สำหรับชาว Android Developer แล้ว ถ้านอกเหนือจากงาน Google I/O ในแต่ละปีแล้ว ก็ต้องบอกเลยว่างาน Droidcon ก็ถือว่าเป็นหนึ่งในงานใหญ่ๆที่อยากได้ลองไปสัมผัสประสบการณ์บ้าง…
ตื่นเต้นกว่าเดิมอีก อห //พร้อมดมพิมเสนนํ้าด้วยท่าทางของเกตุสุรางค์

ข้างบนนี่อุทานเบาสุดแล้วนะ… พิมพ์เต็มเดี๋ยวตกใจกัน 555

ส่วนหัวข้อเรื่องนั้น ทำไมหยิบ Exoplayer มาพูด

  • เพราะฟังใจใช้อยู่ด้วยไง อีกอย่างก็ไม่มีใครพูดถึงจริงจัง
  • เอาความจริงคือเป็นเรื่องที่เตรียมได้ไวที่สุดแล้ว
  • ถ้าบางคนตามเพจฟังใจ แล้วมีโพสรับเด็กฝึกงาน แล้วจะเห็นคำว่า Song Shakes นั่นแหละคะ ที่ทีมเรากำลังทำกันอยู่ กำลังก่อร่างสร้างตัวลูกคนใหม่ นามว่า พี่เชค และถ้าหลายๆคนไปส่องเพจพี่เชค จะรู้ว่าเป็นชุมชนของคนคัฟเวอร์ นั่นแหละคะ ใช้ Exoplayer ทำ video player

ดังนั้น การเตรียมตัวของเรา เหมือนเข้าแคมป์ในการทำสไลด์ และรวบรวมข้อมูล ทำบล็อกไว้ด้วย แบบจบ session แล้ว ไม่ต้องมานั่งขอสไลด์อะไรกัน อ่านจาก medium ได้เลย แต่ยอมรับว่าใช้เวลาไปมากโขอยู่แหละ

ทำให้ต้องอดไปหลายๆงาน งาน Cat Foodival (อดไปอุดหนุนพายเลม่อนน้องอิมเมจเลย ฮืออ) งาน Fungjai Crossplay 2 (ไปงานนี้กลัวว่าทำสไลด์ไม่ทันอ่ะ ทั้งๆที่อยากดูณีอรเล่นสดๆ ฮือออออ) ส่วน django girls เขาให้ไปเป็น voluteer coach แทนนั่ง workshop เลย cancel ดีกว่า พะวงเกิน

ยาวไปหล่ะ เอาเป็นว่าเราเตรียมตัวทำสไลด์ภาษาอังกฤษ พร้อมโค้ด รูปภาพต่างๆ แล้วให้ในทีมลอง recheck ดู แล้วลองซ้อมในทีม แล้วแปะ template จริง ซ้อมเองคนเดียวที่บ้านก่อนวันจริงหนึ่งวัน


วันงาน ค่อนข้าง งง ในการขึ้นข้างบน พี่โอ๋บอกให้ขึ้นตรงสตาร์บัคก็งงว่าขึ้นยังไง สุดท้ายขึ้นตรงลิฟท์แถวร้านคาเฟ่คิตตี้

มาถึงก็รับบัตร speaker เสื้อ แวะขึ้นไปดูข้างบน ลงมาข้างล่างรับของจากบูธ Firebase และเอาเสื้อมาใส่ อิอิ และมีการถ่ายรูปหมู่ speaker ด้วย

คนเริ่มมางานกันแล้ว มีที่นั่งรอด้วยอ่ะ ดี๊ดี
บูธที่แจกของฟรีกันหนุกหนาน แน่นอนค่ะ ยกเว้นเสื้อที่แจกตอน codelab
ลงทะเบียน รับบัตร รับเสื้อจ้า
ชักภาพที่ระลึกระหว่าง speaker แต่ยังไม่ครบทุกคนนะ ขอบคุณรูปจากพี่ตี๋ค่า

เล่าถึงบูธสปอนเซอร์หน่อย มีเล่นเกมส์นิดๆหน่อยๆ ตอนแรกให้สแกนหน้าเราพร้อมใส่ชื่อที่ด้านหน้า จากนั้นเข้ามาเล่นที่ด้านใน ให้เราแต่งตัวนิดหน่อยแล้วให้ AI จำเราไม่ได้ และก็ได้สมุดกับปากกาไป เย้ แล้วมีทดลองการทำธุรกรรมผ่าน iBeacon

จากนั้นขึ้นไปบนห้องของโรงละคร ที่นั่ง speaker จะแบ่งเป็นสามแถวแรก เลยแบบแยกจากคนอื่นๆไปเลย

ไม่รอช้า มาสรุปแต่ละ session ในช่วงเช้าว่าได้อะไรบ้าง

ปล. ขอเขียนแบบสรุปๆนะ ไม่ค่อยละเอียด มีอังกฤษปนมาบ้างไม่เป็นไรเนอะ แบบขี้เกียจแปลไทยง่ะ แปลแล้วอาจจะแปลกๆไปเลย

คุณกวาง MC คนสวย ผู้ดำเนินรายการตั้งแต่ต้นจนจบ

Opening Remarks

มีพี่โอ๋มาพูด พร้อมกับ special guess และเกิด special thing

ช่วงแรกพี่โอ๋กล่าวถึงงานนี้โดยรวม จากนั้นพูดเรื่อง Market in SEA

ประเด็นต่างๆที่กล่าวถึงในงานอย่างย่อมากๆ เช่น Online cashless promptplay, การที่แต่ละธนาคารฟรีค่าธรรมเนียมในการทำธุรกรรมออนไลน์, การควบรวมกิจการ Uber ของ Grab ใน SEA, Crypto & robotic

ในช่วงนี้จะมีงาน Droidcon ที่สิงคโปร (4 เมษายน) และเวียดนาม (7 เมษายน) ปีก่อนที่กรุงเทพก็มีพาทัวร์เยาวราชยามคํ่าคืนด้วยนะ โดย Take Me Tour

ในงานมี Firestore codelab ด้วยนะ ทำเสร็จรับเสื้อ

แล้วมี workshop ที่น่าสนใจ คือ Google assistant workshop ใช้งานกับมือถือ และ Google Home mini ส่วนรายละเอียดน่าจะต้องรออีกทีอ่ะ ไปเปิดใน devcamp แล้วไม่เจอแหะ รอต่อไป~

และงาน Google I/O 18 ในวันที่ 7 พฤษภาคม รายละเอียดกิจกรรมในบ้านเราคงจะเป็นประมาณนี้

Google I/O Extended Bangkok 2018
Google I/O Extended will be back on 7 May, 2018

Special guess ใน session นี้คือคุณ Bok Thye Yeow เขาเป็น Google Developer Relations Program Manager ดูเรื่อง EcoSystem ของ Developer ด้วย

  • Community : Ecosystem จะเป็นประมาณนี้
  • Market share ให้ภาพอธิบายเองแล้วกันเนอะ อิอิ เขาแอบแซว Windows Phone ไปเล็กน้อยด้วย
  • Android version ล่าสุดเป็น Oreo
ชอบสไลด์นี้อ่ะ น่ารักดี ถึงแม้จะมีความชัดใจตรงจุดกลางสไลด์ที่ไม่เห็นเส้นกลาง เลยงงๆในตอนแรก ดูๆไป อ่อ timeline release version นั่นเอง
  • Android go : platform initiative and experience for users on <= 1 GB ram devices
  • Android P preview
  • Android thing developer preview 7 in this year
  • Increase IoT developer จำนวนไม่น้อยเลยแหะ มีแนวโน้มที่จะเพิ่มขึ้นไปอีก สาย embedded system น่าจะเพิ่มขึ้น เพราะมีอุปกรณ์ที่รองรับมากขึ้น
  • ภาษาไทยรอหน่อยนะเออ coming soon นะ
  • ARcore น่าสนใจ
ARCore Overview | ARCore | Google Developers
ARCore's motion tracking technology uses the phone's camera to identify interesting points, called features, and tracks…
  • Flutter UI framework : high quality native interfaces both iOS and Android in js แบบทำหน้าตาทีเดียว ได้ทุก platform เลย
  • เริ่มเปลี่ยนถ่ายยุคแล้ว Mobile first to AI first
It’s an exciting time to be a mobile developer
  • Tensor flow lite in mobile
  • Google cloud auto ML
  • Agency program in Thailand มีเปิดวิดีโอด้วย เป็นโปรแกรมให้บริษัทที่เป็น agency หรือ software house เข้าไปอบรมอะไรพวกนี้

เห็นคนเงียบๆเหมือนยังเช้าแล้วไม่ค่อยตื่น เลยให้คนที่มาร่วมงานคุยกันกับคนข้างๆ

ปล. special thing 1 เกิดตอนให้คุยกับคนข้างๆ เราเองนั่งโซน speaker ไม่ได้คุยอะไรกับใครนอกจากพี่สาวคนนึง ซึ่งไม่ค่อยได้พูดหรืออะไรเท่าไหร่

special thing 2 อันนี้เด็ดค่ะ จากน้องกาย web frontend ที่ประกาศตัวว่ารอโอชิน้องเต่าอยู่ (เราไม่ควรแกล้งน้องป่ะว่ะ) ยื่นนามบัตรไปหาน้องคนนึง ที่ส่งใบสมัครฝึกงานตำแหน่ง Android Developer แล้วเราไม่ได้เรียกน้องเข้ารอบสัมภาษณ์ เพราะน้องเขาไม่เคยเขียน Android มาก่อน น้องคนนี้เป็น Microsoft Student ด้วย น้องเขาเสียใจนะ พี่ขอโทษลูกกกกกกกกก พี่รับได้แค่คนเดียวอ่ะ T___T จบงานแล้วพี่ต้องเลือกน้องคนนึงเนี่ย กดดันxxxxx (เซนเซอร์คำหยาบนิดนุง เดาเอาว่าคำว่าไร)

ปล. ตอนเขียนบล็อกนี้เราได้เลือกน้องมาฝึกงานกับเราแล้ว อาจจะเขียนเล่าเมื่อมีโอกาส

Keynote : Dr.Thadpong Pongthawornkamol

อันนี้ยอมรับนิดนึงว่า ทาง K Bank เป็น sponsor งานนี้ เราจึงได้ฟัง session ของทางองค์กร ว่าทำงานร่วมกับ Google และนำไปใช้ปรับใช้อย่างไร

เขาบอกว่าทางเขาทำงานร่วมกันกับ Google มา 5 ปีแล้ว

product ที่ทาง KBTG ดูแลหลักๆจะมี K plus, origin cert (blockchain app, paperless solution)

เหมือนเขาจะเน้น Financial industrial นะ

และเขาเปรียบเทียบ common thing เทียบกันกับ Google
1. Clear purpose : ประมาณว่ามี mission และ commitment ที่แข็งแรง มุ่งไปสู่เป้าหมายเดียวกัน
2. Unknown setting : เหมือนดูภาพรวมล้อมรอบบริษัท อย่าง Google เขาจะยก Alphabet บริษัทแม่ขึ้นมา ส่วนของธนาคารก็จะเป็นดังรูปนี้

3. Vision :

  • Technology : android, web, golang(modified c++), re-imagining mobility
  • mobile banking(K+)
  • careless society(K+ shop)
  • intelligence (KADE K+ AI-driven experience)

4. Room to explore : design for suggestion

5. Empathy: understand & share another ex. Youtube, K+ Beacon

6. Good support

Build your app faster and smaller than ever : Jirawat Karanwittayakarn, Somkiat Wongkitwattana

เป็น session ที่ทุกคนรอคอย คนมาเล่นชิงบัตรในเพจเรา อยากฟังอันนี้เยอะมว๊ากกกกกกกกกกกกกกก และทุกคนนำไปปรับใช้ได้ เพื่อ improvement performance in your team นะ

เริ่มจากฝั่ง Faster ก่อนเลยจ้า จากพี่เอก

  • Colorize logcat mag ชื่นชมกับความสวยงามของสี เลยไม่ได้ถ่ายรูปมา สรุปคือการใส่สีให้กับเจ้า logcat ทำให้เราแยกประเภท และทำงานได้ง่ายขึ้น เพราะอ่านง่ายขึ้นนั่นเอง
  • Live template ตัวนี้ช่วยในการเขียนโค้ด เวลาเราพิมพ์อะไร จะโผล่ขึ้นมา เราไม่ต้องพิมพ์เองทั้งหมด อยู่ที่ Preferences > Editor > Live Templates สำหรับ MacOS เลือก AndroidKotlin ประมาณนี้
Live Templates - Help | IntelliJ IDEA
Learn how to use live templates in source code
  • Auto import เมื่อเราก็อปโค้ดอะไรสักอย่างมา มันจะทำการ auto import ให้ ถ้าเราเอาโค้ดส่วนนั้นออก มันจะ delete import ทันที เห้ยยยยย น่าสนใจตรงเอาออกนี่แหละ บางทีเราเอาโค้ดส่วนนึงออก แต่เจ้า import ยังอยู่ แล้วตามมาลบทีหลังเว้ย ซึ่งจะเห็นอีกทีตอน put code ขึ้น git ถ้าโชคร้าย ก็ไปเจอเองทีหลัง
  • Modular Architecture เข้าใจว่าเป็นการแบ่ง module ต่างๆ ตามการใช้งาน ไม่ควรอยู่ใน module app เพียงอย่างเดียว ในรูปนี้จะมี feature home profile database network สามารถแบ่งเป็นก้อนๆและนำมาเชื่อมโยงกัน ต่างคนต่างทำงานของตัวเองไป
  • Parcelable generator เนื่องจากการเขียน parcel นั้นดูซํ้าซ้อน และเป็นก้อน เหมือนเราต้องพิมพ์โค้ดน่าเบื่อและเยอะแยะจนครบ เลยมี plug-in ตัวนี้ที่ช่วยทำให้เขียนเร็วขึ้น
  • Keep gradle update เพื่อให้ build ได้เร็วขึ้น เน้น speed improvement
  • Slowly gradle building? ลบ resources ที่ไม่จำเป็นออกไปซะ และหลีกเลี่ยงการใส่ process ที่ไม่จำเป็น ตอนทำ debug build
  • Network profiler อันนี้ใช้ดูโหลดข้อมูลมา ใช้ไปเท่าไหร่
  • Android Drawable importer เป็น plug-in ที่ไว้ใส่ drawable ต่างๆในแอปของเรา แบบ material design เลย บอกเลยว่าใช้งานง่ายมาก หรือเราจะ import รูปเราแล้วให้มันแปลงเป็นขนาดต่างก็ทำได้นะ เหมาะสำหรับคนที่ทำแอปแบบลุยเดี่ยว แบบไม่มี UI Designer
  • Doze mode testing : adb shell dumpsys device idle force-idle
  • Use dagger2 : simply code, not use reflection, work at compile time
  • Use Kotlin ใช้เถอะ ชีวิตดีขึ้นจริงๆ เพราะช่วยลดปัญหาที่เกิดขึ้น เช่น พวก check null ทำให้โค้ดสั้นลง และซับซ้อนน้อยลง เช่น ใช้แทน findViewById ด้วยยยย

ตามมาด้วยฝั่ง smaller โดยพี่ตี๋ พร้อมแขกรับเชิญพิเศษ (จริงๆเห็นตอน run-through แล้วแหละ)

App size is a user cost พี่เนยเคยกล่าวไว้ว่า ทุกอย่างในแอปของเรา คือ resource ในเครื่องเขา ดังนั้นเราจะต้องลดขนาดของแอปลง เพื่อให้ใช้ resource ในเครื่องเขาให้น้อยที่สุด

Saving space, wherever it’s needed เราอาจจะเจอหน้าต่างที่ขึ้นว่า Not enough space เวลาเราลงแอปใหม่ หรือ update app เดิม ซึ่งพื้นที่ว่างที่มีอยู่ มันไม่พอจ้า แล้วแต่ละแอปที่ขึ้นมาบนหน้าตานี้ กินพื้นที่เครื่องเราไปมาก เราอยากเป็นแอปที่ขึ้นมาหน้าต่างนี้หรือไม่?

ตัวอย่าง แอป TrueMoney Wallet นั่นเอง ซึ่งมีการ improve performance จนมีขนาดแอปที่เล็กลง

แล้วเราจะทำอย่างไรดีหล่ะ

  • APK Analyzer (Build -> Analyze APK …)
  • Remove unused resources (Refactor -> remove unused resources…)
  • Add just dependencies : needed ./gradlew app:dependencies เพื่อเห็น subset of library
  • Build multiple APK for screen densities เลือกคัดเฉพาะบางอัน ไม่ต้อง build apk เข้าทั้งหมด เช่น เอาเฉพาะ mdpi และ hdpi เท่านั้น
  • Build multiple APK for ABIs
  • Build multiple APK for specific ABIs : abiFilters with architecture
  • Remove unused alternative resources : resConfigs
  • Shrink your code and resource : protect secure app, can optimise proguard file
  • Shape drawable : ขนาดของ mipmap น้อยกว่าขนาดของ drawable
  • WebP :

ตัวอย่างการใช้งานนนนนน พบว่ารูปเดียวกัน แต่ขนาดรูปของ webp นั้นเล็กกว่า และรองรับภาพพื้นใสด้วยนะ ตั้งแต่ API level 18 ขึ้นไป

พอเป็นรูปนี้ทำไมทุกคนแบบฮากันอ่ะ แล้วให้พี่เขาใช้รูปไหน BNK48 เหรอ
  • vectorDrawable: ขนาดเล็กกว่า bitmap และสามารถเปลี่ยนขนาดรูปได้ โดยที่รูปไม่เสียคุณภาพ คือ รูปไม่แตกนั่นเอง รองรับ api 21 ขึ้นไป ส่วน version น้อยกว่านี้ ใช้ support lib (เสริมนิดนุง ถ้าสาย Designer เขาจะทำไฟล์ที่ว่านี้จาก AI เนอะ เราน่าจะรู้กันดี)
  • D8 is compiler in android studio 3.1 : compile ได้เร็วกว่าเดิม และขนาดของเจ้า dex ลดลงด้วยย
  • What’s new in android studio 3.2 are new code shrinker and no support app for mips64 & armeabi

ก่อนกินข้าวก็ได้คุยกับพี่ตี๋และพี่เอก ผู้หลุดพ้นแล้ว เขาก็บอกว่าอย่าตื่นเต้น ให้จำแต่ keyword แล้วพี่ๆก็เผากันเอง คือพี่เอกกับพี่ตี๋ซ้อมพูดกันคนละ 25 นาที แต่เวลาจริงพี่เอกพูดจริงใช้เวลา 12.5 นาที ทำเอาพี่ตี๋ตกใจ ห๊ะ จบแล้วหรอ เม้าท์มอยสักพักลงไปทานข้าวเที่ยง เอาจริงๆ คนเยอะมว๊ากกกกกกกกกกกกก

ก่อนลงมาเจอน้องกาย web front-end จากนั้นก็หายไป ลงไปกินข้าวมองหาน้องๆ เพื่อนๆ เจอน้องต๋อง backend พอดี เลยมาร่วมโต๊ะกับแฟนน้องเขาด้วย สักพักดิสเพื่อนเราก็มา กินข้าวไป เม้าท์ไป สักพักเห็นน้องกายและเพื่อนแถวบูธ Firebase สักพักคุยๆ เรื่องเสื้อ Firebase อยากได้กันทุกคนงี้ อยากได้สีเทาดำกัน สุดท้ายน้องๆเข้าห้อง codelab ส่วนเราและดิสขึ้นมาข้างบน

ห้อง codelab ข้างล่าง คนเยอะมาก

ปกติเราจะลงรูปข้าวทุกงานใช่ป่ะ (คนที่อ่านบล็อกเราน่าจะจำได้) คือขี้เกียจแหละ ไม่มีไรมาก เราได้กินสปาเก็ตตี้แกงเขียวหวานหมู ซึ่งน้องๆบ่นว่า ไปเอาจากไหน น่ากินจัง ทำไมไม่มี สิทธิพิเศษของ speaker หรือเปล่า น้องคะ พี่ก็หยิบๆเอาตรงนั้น และมันเหลือกล่องสุดท้ายแล้ว

Cloud Firestore Workshop : Kalyan Reddy

เราเข้าเลทด้วย ด้วยความที่บูธ Firebase มีแจกเสื้อ 300 คนแรกที่ทำ codelab เสร็จ ซึ่ง session ด้านบนนั้น จะเหมือนกับ codelab ด้านล่าง และเราไม่ได้จดอะไรมาก ส่วนใหญ่ก็ก้มหน้าก้มตาทำเพื่อได้เสื้อที่ made in honduras ที่ speaker ทุกคนใส่กัน

เราเองก็อยากทำแหละ แต่คิดว่าคงจะไม่ทัน เดี๋ยวลองทำตามหลังอีกที เผื่อจะเขียนบล็อกได้ ซึ่งทำตาม codelab นี้เลย

Cloud Firestore Android Codelab
In this codelab you will build a restaurant recommendation app on Android backed by Cloud Firestore. You will learn how…

ปล ภาพบรรยากาศห้อง codelab ฮะ

รูปจากช่างภาพในงาน ได้จากพี่โอ๋อีกทีค่ะ

Exoplayer : Monthira Chayabanjonglerd

session นี้ข้ามๆไปแม่มไปเถอะ 55555555 มีคนเดินออกน๊าาาาา ตอนแรกเจ้าของ session ตกใจ ไปๆมาๆคือมาในช่วงที่เขาเข้าด้ายเข้าเข็ม จะไปเอาเสื้อ Firebase ฟรี เดี๋ยวเสื้อหมด

รูปจากช่างภาพในงาน ได้จากพี่โอ๋อีกทีค่ะ
รูปจากคุณดิส เพื่อนของเธอ

แล้วเจ้าของ session เขาฝากมาบอกว่า เขาทำเต็มที่ที่สุดแล้ว พูดรู้เรื่องบ้าง ไม่รู้เรื่องบ้าง ขี้ลืมจนมีคนที่ฟังหลุดหัวเราะออกมาด้วย แย่จังเลยเนอะ กลัวงานเขาเสียด้วย

สุดท้ายนางมีบล็อกให้เราอ่านย้อนหลัง เพราะรู้ตั้งแต่แรกแล้วว่า คนกำลังมุงที่ codelab กันอยู่ และน้องๆที่น่ารักของนางนั้น อยากได้เสื้อ Firebase ขั้นสุด

Playing video by ExoPlayer
Hello everybody, I write this blog for speak in Android Bangkok (or Droidcon) 2018 at 31 March 2018 and my topic is about ExoPlayer which…

บล็อกภาษาไทย

มาเล่นวิดีโอด้วย ExoPlayer กันเถอะ
เมื่อมีท่านนึงบอกว่าอยากอ่านบล็อก ExoPlayer ที่เป็นภาษาไทย และน้องบอกว่า แฟนอยากอ่านมาก แต่เป็นภาษาอังกฤษเลยกดปิดไป เอออออ…

Google Assistant is a new platform of app : Warat Wongmaneekit

อันนี้มาไว เคลมไว แบบงงๆ

  • Chatbot / assistance / AI
  • Dialogflow รองรับ 18 ภาษา รวมทั้งภาษาไทยด้วย
  • Action in google sdk
  • Smart home in google home app
จำไม่ได้ว่ารูปนี้อธิบายอะไร แง แถมดันได้ซ็อตแบบนี้อย่าง งงๆ
  • มีบางอันที่คล้ายๆ UI chatbot เลยแหะ และในอนาคตจะรองรับเรื่อง payment ด้วย
  • Google assistant SDK
  • Workshop Google Assistant รายละเอียดตามด้านบน เข้าใจว่าไป workshop แล้วจะได้ประมาณใน session นี้อ่ะ

มี demo เล็กน้อย ที่ DialogFlow เหมือนเจ้าตัว demo นางจะตื่นคนนิดนุง

Connect your Android Things with Firebase : Doug Stevenson

อยากได้ Android Thing ทำไงดีค่ะ เผื่อจะทำระบบเข้าออกงานแบบสวยๆแบบไม่ต้องสแกนนิ้วอะไรงี้ หรือทำกล้องวงจรปิดดีหล่ะ

รูปจากช่างภาพในงาน ได้จากพี่โอ๋อีกทีค่ะ ที่ถ่ายเองรู้สึกไม่ impact พอ
  • Android Thing & Rainbow Hat

และ library ท่ีใช้

  • Type of peripheral I/O ใส่ผิดที่ไหมไม่แน่ใจ แต่รวมร่างแล้วจะเป็นประมาณนี้
  • Cloud function : node.js + express.js
  • Android thing + firebase
  • Capture image by android camera2 api goo.gl/mSDPm3
  • Working is capture image, save file, and send to cloud storage and trigger cloud function
ทั้งหมดทั้งมวลก็เป็นประมาณนี้ เริ่มจาก hardware แล้วเส้นทางการทำงานคือ วนขวาไป
  • Nearby api : nearby message

Android CI with Kubernetes : Anton Malinskiy

เรื่อง CI/CD เรามีประสบการณ์และความรู้น้อยมากๆเลยนะ เลยทักแชทไปหาน้องๆ ช่วยพี่ฟังล่วยยยยยยยย

อันที่ชอบอีกอันคือ มี Q&A link ใน silde ด้วย เราเองลังเลในตอนแรกว่าจะทำดีไหมอ่ะ 555

  • ปัญหาเกิดจากมี log ใน git เยอะมาก แล้วเขาแบ่งออกเป็น phase ตั้งแต่เริ่มทำโปรเจก จนขึ้น store แนวมากคนมากความ แล้วมันซับซ้อนมากอะไรงี้
  • CI/CD เอาจริงๆเรายัง งงๆ ตรงนี้อยู่อ่ะ
  • 5 topic in session เอาจริงๆเราไล่ตัวหัวข้อไม่ครบแหะ ขออภัยด้วยจ้าาา แง

Prerequisites : docker & hardware

2) Deployment of CI : Deploy CI/CD installation on kubernetes (teamcity/jenkins, docker registry)

ตรง pipeline ตอนนี้เริ่มงงหล่ะ ว่าใส่ถูกที่ไหม -_-

จากนั้นเขาเริ่มเล่าการ test ของแต่ละที่ เช่น Emulator เอาจริงๆเราก็ยัง งงๆอีกหล่ะ

  • Deploy in CI image

3) Unit testing with junit (maxParallelForks, forkEvent as a stability fix), robolectric, mockito, xmx/xms, jam considerations

  • Application deployment in GitHub
Triple-T/gradle-play-publisher
GPP is Android&#39;s unofficial release automation Gradle Plugin. It can do anything from building, uploading, and then promoting your App Bundle or APK to publishing app listings and other metadat...
  • Real device & Emulator
  • Kakao ตัวทำ Test เป็นภาษา Kotlin ซึ่งเรายังไม่ได้ลองใช้ซะที
agoda-com/Kakao
Nice and simple DSL for Espresso in Kotlin. Contribute to agoda-com/Kakao development by creating an account on GitHub.
  • license issue
  • มีคนถามว่า ต้องแก้โค้ดเพื่อ support CI ไหม เห็นเขาบอกว่าใช้ firebase test lab นะ

ปล เห็นบล็อกของ speaker ท่านนี้ใน medium ด้วย เรื่องนี้เลย เราปัก bookmark เลยเพิ่งกลับมาอ่าน

Android CI with kubernetes
So you want to scale your CI/CD beyond what’s possible with docker? Or you’ve seen the word kubernetes and you’re eager to apply it to your Android development work process? Either way, you’ve come…

Homo Kotlin: A brief History of Kotlin Development in Agoda : Verachad Wongsawangtham, Tipatai Puthanukunkit, Inaki Villar

งงคอนเซปยุคหินตอนแรก คือเราไม่เก็ทและไม่อินพวกประวัติศาสตร์ ที่เราเข้าใจนะ จริงๆแล้วคือก่อนมีคอมพิวเตอร์ ไปจนยุคที่เราเขียนแอปด้วย JAVA และตอนนี้เป็นยุครุ่งเรื่องที่ Kotlin และสามารถนำตรงนี้ไปปรับใช้ในทีมได้

เนื่องจากเบลอไปกับ session ก่อน เลยสรุปแบบโค่ด keywork มาเลย ว่าแต่ละคนพูดประเด็นไหนที่สำคัญ

1) มีการเปรียบเทียบที่ละยุค ซึ่งเราเองก็งงๆเว้ยยย เอาเป็นว่าสองยุคสุดท้ายเป็น JAVA และ Kotlin แล้วกันเนอะ ง่ายดี

ข้างล่างสไลด์นี่……..

มีการเปรียบเทียบกันระหว่าง JAVA และ Kotlin ในหลายๆเรื่อง เช่น performance, การ build project, การเขียนโค้ด

2) คราวนี้เริ่ม Convert JAVA ไป Kotlin แล้วแหละ และเราก็สรุปเป็นหัวข้อๆนะ อ่านแล้วอาจจะงงๆ

  • for many test case : จัดการกับ test case อันมากมายได้อย่างไร
  • high-order functions
  • integration test with screen : Kakao espresso in Kotlin

3) อันนี้เป็นหัวข้อการ handle กันในทีมในการเขียน Kotlin

  • Set plan for starting to write new feature with Kotlin : วางแพลนในการเขียน feature ใหม่ด้วย Kotlin ในบริบทของเราเองอาจจะรวมไปถึงการ convert code เก่าๆที่เป็น JAVA ไปเป็น Kotlin ด้วย เพราะมันต้องใช้เวลา อาจจะมากกว่าเขียนใหม่ด้วย
  • knowledge sharing in the team : มีการแชร์ความรู้กันในทีม
  • define code style : อันนี้สำคัญมากกก ควรมี guidelines ให้ทุกคนในทีมเขียนในสไตล์เดียวกัน เพื่อให้สามารถอ่านหรือแก้โค้ดได้ง่าย

ผลประกอบการ เอ้ยยย ผลการดำเนินงานในระยะเวลา 6 เดือน

อันนี้น่าจะเป็นตัวช่วยอย่างนึงนะ ดูจากรูป

#kotlin-kodestyle อันนี้อยู่ใน slack ถ้าอยากรู้วิธีการ coding Kotlin style

4) Scientific Revolution

ไม่ได้ถ่ายมาทุกสไลด์ที่ยกตัวอย่างนะ แต่เขียน Kotlin โค้ดสั้นลงเยอะมาก คนว๊าวกันเยอะมาก ลดความซับซ้อนด้วย ไม่มี get/set จะเหลือแบบในรูปอ่ะ

เอาเป็นว่า ทั้งหมดทั้งมวลบทสรุปเป็นวันนี้ เขียน Kotlin แล้วจะติดใจเนอะ ^^

แต่ละคนก็มี open source library เป็นของตัวเอง มา star/fork กันได้เน้อ เราว่าเราต้องลองทำสักอันแล้วแหละ …

TensorFlow for Mobile Poets : Enrique Mana

สมมุติว่าเราทำแอปหาชื่อเพลง จะหายังไงให้ถูกต้อง หรือปกอัมบั้มอันนี้ อ่านว่าอะไร แปลว่าอะไร

  • ทำงานกับ AI แต่ไม่ได้ใช้ใน production มีทวิตนึงที่เขาเอามาพูด ซึ่งถ่ายมาไม่ทัน บอกว่าถ้าถามว่าทำงานกับ AI ไหม คนยกมือหมด แล้วถามต่อว่าใช้ใน production ไหม พวกที่ยกมือมะกี้ เอามือลงกันหมด
  • AI, ML, neural networks or some keyword เราเข้าใจตรงกันนะ
  • แยกหมากับแมวออกจากกัน

นึกถึงบล็อกนี้เลย

How to quickly setup Google’s Tensorflow image recognition
  • แต่ละ product ของ Google ใช้ Machine Learning แล้ว ยกตัวอย่างง่ายๆก็ Google Photos อ่ะ
  • แก้ปัญหาเกี่ยวคนไม่ค่อยตอบเมลล์ มี auto reply มาให้
  • ปรับปรุงการแปลใน Google Translate
  • Machine Learning + mobile use case
  • TensorFlow สามารถสอนได้เกือบทุกระบบเลย และใช้ในการพยากรณ์ได้บน Android, iOS, Rasberry PI

อันนี้ของ Android

ขอยกการใช้กับ iOS และ Raspberry PI ไว้ตรงนี้แล้วกัน

ฝั่ง Raspberry Pi เขาใช้ในการวัดขนาดของในโรงงานอุตสาหกรรม ประมาณนี้

และคนเหล่านี้เขาก็ใช้ TensorFlow

  • from training to app เช่น ใส่รูปลงไป และเข้า cloud storage and training with cloud ML engine
  • TensorFlow Lite vs. Mobile
  • ใช้ ML ต่อจิ๊กซอร์
  • Community ก็จำนวนเพิ่มขึ้นเรื่อยๆนะ
  • Bazel : speaker ถามว่า Do you like this? แล้ว speaker session อื่นด้านหน้า 3 คน คนนึงตอบว่า Google like พ่ามมมม
  • อันนี้ก็เป็นตัวอย่างนะ เป็นแอปที่สามารถเปลี่ยนสิ่งที่เราเห็น ให้เป็นภาพวาดได้
  • TF defect : analyse what is this
  • Written in c++
  • Resource

สุดท้าย ทุกงานมีแบบสอบถาม งานนี้ก็เช่นกัน ไปที่ลิ้ง https://bit.ly/androidbkk ได้เลย


สุดท้ายพี่โอ๋กล่าวปิดงาน

และชักภาพร่วมกันเป็นที่ระลึก ระหว่างนั้นก็มีเม้าท์มอยบ้าง พี่ตี๋ถามทุกคนว่าพี่เอกไปไหน รู้อีกทีหลังถ่ายรูปเสร็จ ลงมาข้างล่าง นั่งเล่น RoV กันอย่างเคร่งเครียดทั้งโต๊ะ…

รูปจากช่างภาพในงาน ได้จากพี่โอ๋อีกทีค่ะ ตอนแรกงงๆจะเห็นแถวแรกไหม เห็นแหะ
มันจะมีงงๆนิดนึงตอนขึ้นมาชักภาพรวมบนเวที

ระหว่างที่เดินหาของกินไป ก็มีหลายๆคนเดินเข้ามาคุยและ selfie ด้วยฮะ ขอบคุณมากๆเลย ที่ยังไม่ด่าเราที่พูดไม่รู้เรื่อง หลายๆคนก็โอเคนะ

จริงๆหลังถ่ายรูปคุณนากิก็มาคุยกับเรา เนื่องจากเราป่วยเป็นหวัดมาตั้งแต่ต้นอาทิตย์ ซึ่งไม่รู้ติดใครมา ก็งงๆอยู่ แล้วอัดยาไปเยอะอยู่ อาจจะมีเบลอๆ สมาธิสั้น เลยยังงงๆระหว่างที่คุยกับคุณนากิอยู่ เขามาพูดขอบคุณ แล้วก็ชอบที่มี sample ออกมาให้ดู แล้วจำเราตอนงาน Firebase App Fest ได้ด้วย ซึ่งนี่เบลอๆงงๆ จำได้ไม่หมดว่ามีอะไรบ้าง โอเคต่างชาติพอฟังเรารู้เรื่อง

อาหารเย็นในงาน มีตึ๋มซำ ขนมปังเบาๆ

ส่วนนี่ก็หนักไปนะเห้ยยยย หมดไว มีการเอาออกการใต้โต๊ะแกะใหม่ น่าจะตุนไว้เยอะ หมดโค่ดไวอ่ะพูดเลย

อยากจะเซนเซอร์เผื่อน้องๆเยาวชนมาเห็น แต่แบ่บบบ…..

ระหว่างนั้นมีดีเจมาเปิดเพลง ชื่อว่า DJ Paka คือเขาไม่ได้เปิดเพลง EDM แนวตึ๊ดๆ เต้นยับ เต้นบดๆอะไรนะ เป็นแนวชิวๆ

รูปจากช่างภาพในงาน ได้จากพี่โอ๋อีกทีค่ะ หุยยยย ทั้งสวยทั้งเก่งง่ะ อยากเล่นแบบนี้เป็นบ้าง รู้สึกโค่ดเท่อ่ะ

ก่อนกลับ พี่เบิร์ดชวนไปกินข้าว มีหลายๆคนเลย สรุป ไปกินข้าวเย็นกับพี่เบิร์ด แฟนพี่เบิร์ด น้องจู พี่เบ็บ และน้องอีกคน ขออภัยที่จำชื่อไม่ได้หมด ฮือออออออออ ร้านนี้อิ่มมากๆเลยหล่ะ คุ้มมาก

เราจะไดเอตแล้วนะ ตัดภาพไปเย็นวันจันทร์ ไปปิ้งเนื้อที่ร้านบุฟเฟต์ย่านอารีย์

สรุปสุดท้าย

ข้าวร้านนี้อิ่มมากเลย อ้าว ผิดๆๆๆๆๆๆๆ สรุปสิ่งที่ได้จากงาน

  • หน้าเพจมีลงหลายอัน อันนึงที่เราว่าเด็ดสุดจากทุก session ที่ฟังมา คือ มาใช้ Kotlin กันเถอะคะ มามะๆๆๆๆๆๆ เราทำโปรเจกใหม่ด้วย Kotlin จนรู้สึกว่าชีวิตดีขึ้นมากกกกกกกกกกก เบาสบายทั้งทีม แต่งานก็แน่นเหมือนเดิม อาจจะทำยังไม่ดีมากเท่าไหร่ แต่เอาเถอะ เขียนแล้วจะติดใจแน่นอนจ้าาา ออเจ้ารับประกัน โปรเจกเก่าๆก็ลองแปลงเป็น Kotlin ได้เลยน๊าาา ;)
ละครจะจบ ยังไม่ได้เขียนบล็อกเพิ่มแล้วใส่รูปออเจ้าเลย
  • ได้ซื้อ Android Collectible ด้วย น่ารักน่าชัง เดี๋ยวๆๆๆๆๆๆๆ คือในงานขายตัวละ 300 บาท สำหรับ series คุกกี้เสี่ยงทาย เอ้ยยย เราซื้อ series 5 ไป ในงานจ่ายด้วยพร้อมเพย์ หรือเงินสดก็ได้นะ อิจคนได้ตัวสีเงินอ่ะ
ดิสได้ตัวซ้าย นางบ่นว่า เราโกง ทำไมได้สองตัว อ้าววว ก็แกะกล่องมาได้แบบนี้อ่ะแกรรรร
พาน้องมาฝากตัวกับน้องเขียว
  • session ที่แนะนำ แน่นอนค่ะ Build your app faster and smaller than ever session ของพี่ตี๋และพี่เอก ที่ทำอย่างไรให้แอปเราทำงานเร็วขึ้นและเล็กลง คิดว่าโดนทุกคนอ่ะ อันอื่นๆอย่างของเราหรือหลายๆคนเป็นแนวทางในการใช้ในอนาคตมากกว่าแหละ อื้มมมม
  • อีกอันนึงที่ชอบ คือ TensorFlow for Mobile Poets สนุกมากเลย ทำให้เราฟังได้จบจนโดยไม่มีความวอกแวกไปกับมือถือและคอมที่เปิดอยู่เลย สังเกตุจากเพจว่า ไม่ได้อัพอะไรเกี่ยวกับ session นี้เลย มีมุกที่ทำเราลั่น ทั้งๆที่เราไม่ได้เก่งภาษาด้วย
  • จริงๆจุดนึงที่น่าจะโดนทุกคนคือ Homo Kotlin: A brief History of Kotlin Development in Agoda ตอนแรกๆงงๆคอนเซป แต่จริงๆอันนี้ดีมากเลยนะ นำไปปรับใช้ในทีม ในองค์กรได้ ในการ transfer code จาก JAVA เป็น Kotlin เพราะทุกอย่างเป็นต้นทุนหมดเลยเนอะ
  • สุดท้ายจริงๆหล่ะ ขอบคุณพี่ๆที่ให้โอกาสเรามาพูดในงานนี้ เป็นงานที่ใหญ่มาก แถมเป็นภาษาอังกฤษอีก ตอนที่หลุดๆบนเวทีกลัวคนดูไม่ชอบ กลัวงานเขาจะพัง แต่ทุกๆคนก็ให้กำลังใจกันอย่างดี เชื่อว่าเราทำได้ แต่จริงๆก็ทำได้ไม่ดีเท่าไหร่ ฮืออออออออออออ

ขอบคุณเป็นพิเศษ

  • ขอบคุณพี่เบิร์ดที่ชวนหนูมาพูดงานนี้
  • ขอบคุณพี่โอ๋ที่ดูแลทุกคนและงานนี้เป็นอย่างดี ทั้งบัตรแจก และทุกสิ่งอย่างในงานนี้
  • ขอบคุณพี่เอกที่มาป่วนช่วงก่อนและหลัง session ตัวเอง เอ้ยยยย ให้กำลังใจและคำแนะนำอยู่ห่างๆ รวมถึงพี่ตี๋ด้วยค่ะ พี่ทั้งสองให้คำแนะนำมาอย่างดี (ขี้เกียจเผาพี่เอกว่าป่วนอะไรเราบ้าง บล็อกมันยาวเกินจะใส่ ;P)
  • ขอบคุณดิส ที่อุตส่าห์ซื้อบัตรมางานนี้ แถมอยู่ไม่จบงานด้วย แอบเกรงใจ 555
  • ขอบคุณพี่บอล พี่แชมป์ แห่งฟังใจ ที่คอยช่วยดูแล ให้คำแนะนำ
  • ขอบคุณน้องภัทร ช่วยปรับแต่งสไลด์จนดูดีขึ้น แต่เสียดายหน้าแรกไม่ได้ใช้ ฮืออออออ และดูคอน BNK48 อย่างมีความสุขเผื่อเราด้วยบ้างนิดนุง (เอาจริงๆพอแชร์คลิปคอนจากฟังใจซีน ทุกคนบอกว่าคอนสนุกมาก ฮืออออออ เหมือนซํ้าเติมเราเบาๆ) ขอบคุณทีม SongShakes (คือตอนนี้ทีมเราชื่อนี้แล้ว ไม่ได้มีแค่ dev และ designer อย่างเดียวหล่ะ มีฝั่ง content มาอีก) ที่นั่งฟังเราซ้อมจนจบ และให้คำแนะนำ โดยเฉพาะแจ็คกับน้องมิว ฝ่าย content ที่ไม่รู้เรื่อง dev อะไรพวกนี้เลย ก็นั่งฟังจนจบ
  • และที่สำหรับ ขอบคุณคนที่ได้บัตร Android Bangkok 2018 ทุกคน ไม่ว่าจะซื้อ หรือได้ฟรีจากไหนก็ตาม ที่มานั่งฟังเราพูดหรือไปเอาเสื้อ Firebase ฟรีก็ตาม ขอบคุณที่มางานครั้งนี้นะคะ

กล่าวปิดท้าย ด้วยเนื้อเพลงวันแรก ของ BNK48 อ่านแล้วเต้นตามก็ได้ไม่ว่ากัน เดี๋ยวๆๆๆๆๆๆๆ

ความฝันต้องเกิดหยาดเหงื่อจึงได้มา
ใช้เวลาและค่อยเป็นค่อยไป ดอกไม้จึงบาน
คำว่าพยายาม ไม่เคยทำร้ายซักคนที่ตั้งใจ
ความฝันเท่ากับหยาดเหงื่อรินรดไป
เพื่อให้เหล่าเมล็ดพันธุ์นั้นเติบโตและสูงใหญ่
และคงต้องมีซักวัน จะได้ดังใจสมปรารถนา

สวัสดีค่ะ :)

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.