Google I/O 2017 ฉบับคู่มือนักพัฒนาเกมและ App (ตอนที่ 1)

Aun Taraseina
Aun Taraseina
Published in
5 min readMay 22, 2017
Sundar Pichai กล่าวเปิดตัวงาน Google IO 2017

เพิ่งจบกันไปสดๆ ร้อนๆ กับงาน Google IO 2017 ที่ผ่าน คิดว่าคนที่เป็นนักพัฒนาเกมและ app ได้ติดตามตัวงานคงตื่นเต้นกันไม่น้อย เพราะปีนี้ผมว่ามีหลายเรืองที่น่าสนใจมาก โดยจะมีผลกระทบต่อเหล่านักพัฒนาอย่างเราๆ โดยตรง ถึงตรงนี้บ้างคนยังอาจจะยังไม่ตื่นเต้นใช่ไหมครับ งั้นผมเกรินหัวข้อเด็ดๆ เรียกน้ำย่อยหน่อยแล้วกัน

ก่อนอื่นต้อง ขอขอบคุณผู้สนับสนุนการเดินทางครั้งนี้ด้วยซึ่งมีสองเจ้าด้วยกัน

  1. Kiragames CO LTD. ผู้อุปการะและอนุญาตการเดินทางในครั้งนี้ ผู้พัฒนาเกม Unblock Me และ เกมอื่นๆ อีกมากมาย หากใครยังไม่มีก็ไปโหลดซะนะ
  2. Google ที่ช่วยสนับสนุนตั๋ว Google I/O 2017 มาให้นะครับ

ตลอดทุกปีที่ผ่านมา Google IO จะเป็นเหมือนงาน ที่แสดงทิศทางและแนวคิดของ Google ว่า Google ต้องการจะขับเคลือนตัวเองและอุตสหกรรมไปในทางไหน ปีก่อนเราคงเห็นนโยบาย Mobile first ของ Google มาบ้างแล้ว ปีนี้สิ่งแรกที่ Google ประกาศเลย คือการที่จะเริ่ม shift จาก Mobile first เป็น AI first

Mobile First to AI First

นักพัฒนาหลายคนเห็นแบบนี้แล้วก็อย่าเพิงตกใจคิดว่า Google จะทิ้งโมบายแล้วนะครับ ผมมองว่าตอนนี้ Google มองว่าอัตราการเจริญเติบโตและการเข้าถึงของ Android อยู่ในสัดส่วนที่มั่นคงและเสถียรแล้ว ขั้นต่อไปที่ Google ต้องการคือการมอบ expereince ที่ดีสำหรับผู้ใช้งานผลิตภัณท์ของ Google Android จึงกลายเป็นเพียงภาหนะที่เชื่อมผู้ใช้กับ Google เท่านั้นเอง ดั้งจะเห็นได้จากภาพข้างล่างนะครับ ว่าปัจจุบัน ตัว AI ที่พัฒนามาจาก Machine Learning ของ Google ถูกนำไปใช้ในผลิตภัณท์อะไรบ้าง

Machine learning ที่ Google ใช้กับ พลิตภัณท์ต่างๆ

ในธีมของปี 2015–2016 ทาง Google พยายามเน้นเรืองการใช้ Data หรือข้อมูลสำหรับนักพัฒนามาตลอด ในปีนี้จึงไม่น่าแปลกใจว่าทำไม Google ถึงเริ่มเน้นไปทาง AI มากขึ้น เพราะ เชื่อว่า AI สามารถรวมและนำข้อมูลมาใช้ให้เกิดประโยชน์ต่อผู้ใช้งานได้อย่างไม่มีขอบเขต ตัวอย่างที่ Google เอามาแสดงเช่น

Google Lens

Google Lens กับอนาคตของ Google

ในงาน Sundar แสดงการทำงาน ของ Google Lens ว่าสามารถทำอะไรได้บ้าง ถ้าใครได้ดู slide คงจะรู้สึกตื่นตาตื่นใจไม่น้อย เพราะมัน amazing มากๆ

ซ้ายมือ : ระบุชื่อดอกไม้จากภาพ, กลาง : ระบุรายละเอียดร้านอาหารจากรูป, ขวา : อ่าน bar code แล้วตีความหมายของมัน

ตั้งแต่การใช้ Google Lens ซึ่งตอนนี้จะทำงานร่วมกับ Assistant ของ Google เพือ ระบุสิ่งต่างๆ ที่อยู่ในรูป ซึ่ง Sundar บอกว่า ตัว Assistant ไม่ใช่แค่สามารถวิเคราะห์ว่าอะไรอยู่ในรูป แต่ยังสามารถวิเคราะห์ว่า มีลักษณะและมีข้อมูลทางกายภาพยังไง เช่นรูปเด็กผู้ชาย ตัว Assistant จะสามารถวิเคาระห์ เพศ อายุ อารมณ์ นอกจากนั้น ตัว Assistant เองยังไม่ได้ทำแค่นั้นหากแต่ยังสามารถ เอื้ออำนวยความสะดวกให้ผู้ใช้งานต่อหลังจากทราบว่าอะไรอยู่ในรูป โดยการพยายามเชื่อความสัมพันธ์กับสิ่งต่างๆ ในรูป เช่นถ้าเป็นร้านอาหารก็จะค้นหารายละเอียดร้านอาหร หรือ หากเป็น bar code ก็จะดูว่าเป็นของสินค้าอะไรแล้วพยายามอำนวยความสะดวดในการใช้งานสินค้านั้นๆ คงต้องดูกันต่อไปว่า เราในฐานะนักพัฒนาจะสามารถใช้อะไรได้บ้าง และจะมีอะไรที่เราจะสามารถเชื่อมต่อได้ สามารถลองพัฒนาตัว Google Assistant ลง Device ของเราได้ทีนี้เลย

Kotlin & Android Studio 3.0

คนกรีดร้อง ชูมือด้วยความดีใจ ไอ่เรายังงงอยู่มันคือภาษาอะไร

อันนี้ต้องยอมรับเลยว่าผมไม่รู้จัก Kotlin รู้จักแค่เท่าที่เห็นในเดโมบนเวที เท่าที่ดูให้ความรู้สึกเหมือนเป็นภาษา Pyton เวอร์ชั่นเลเวลอัพโคตรๆ ซึ่งดูมันสะดวกสบายมาก เท่าที่ตีความได้คือตัวภาษาคงรันบน JVM เหมือน Java เพราะสามารถแปลง Syntax เป็น Java ได้ 100% กันเลยทีเดียว(แปลว่าคงใช้ lib เดียวกันได้ ?) เห็นแล้วก็อดตื่นเต้นแทนคนเขียน Android ไม่ได้ครับ เพราะต่อไปนี้ Android Studio 3.0 จะ Support Kotlin แบบเต็มตัว feature ต่างๆ ของ Android Studio 3.0 สำหรับการเขียน Kotlin ก็ดูไฮโสมาก เพราะตัว IDE feature ทุกตัวที่ Java มี Kotlin ก็มีหมดเช่นกัน ที่มีเพิ่มเติมเพื่อความตื่นเต้นสนุกสนาน เห็นจะเป็นตัวช่วยแปลงโค๊ด Java เป็น Kotlin และ แปลงจาก Kotlin เป็น Java เห็นแบนี้แล้วคงต้องรอดูว่าคนพัฒนา Java จะค่อยๆ เปลี่ยนไปใช้ Kotlin มากน้อยขนาดไหน

Tutorial เริ่มต้นสำหรับการใช้งาน Kotlin

คนทำเกมที่ใช้ Native หรือพวก C++ ก็ไม่ต้องตกใจนะครับ เพราะ Google ยืนยันว่าจะ ไม่ทิ้ง C++ หรือ Java แค่เพียงจะเพิ่ม Kotlin เข้าไปด้วยเท่านั้นเอง ฉะนั้นต่อไปนี้ ทำเกมหรือ App บน Android เราจะสามารถใช้ได้ถึง 3 ภาษา โดยตัว Kotlin คงจะสามารถเข้าถึง platform Android ได้ในระดับเดียวกับ Java

มาดูกันในเรือง Android Studio 3.0 กันบ้างครับ สำหรับเครืองมือหากินหลักของคนพัฒนา Android ตัวนี้ feature ทีเพิ่มเติมเข้ามาค่อนข้างเยอะและSession ต่างๆ ที่ผมเข้าฟังก็คงลงได้แค่ผิวๆ ทำให้ผมคงยังจะพูดถึงอะไรมากไม่ได้จนกว่าจะได้ลองใช้จริงๆ ซึ่งก็คงอีกสักพัก เพราะ Project Production ทั้งหลายถ้าจะขยับไป Android Studio 3.0 ก็เกรงว่าจะเจ๊งกันได้ ดั้งนั้นตอนนี้เราคงมาดูแค่ feature เด็ดๆแบบคราวๆ กันก่อนนะครับ

  • Kotlin : เป็นการ Support ในระดับเดียวกับที่กำลัง Support Java ในตอนนี้เลยทีเดียว
  • Instant App : Android Studio 3.0 จะมี module ที่ support ให้เราสามารถทำ Instant App ได้ภายในตัว ถ้าให้อธิบายแบบเข้าใจง่าย Instant App เป็นการเพิ่ม feature ให้ผู้ใช้ที่ใช้ Android 6.0+ สามารถทดลองเล่นเกมหรือapp เราได้โดยไม่ต้อง Install เกมหรือapp ตัวเราเองก็ต้องปรับเกมของเรานะครับ โดยตัดให้มีขนาดเท่าที่จำเป็นสำหรับให้ผู้ใช้เราได้ลองเล่นเกมเราครับ ทั้งนี้ Instant App เป็นส่วนหนึงเพือสนับสนุนเป้าหมาย Next Billion User ในการลดขนาด Data ที่ผู้ใช้ต้องเสียในการโหลดเกมครับ คงมีหลายคนไม่น้อยที่โหลดเกมขนาด 50 Meg แล้วพบว่าตัวเองไม่ชอบก็ต้องลบออกจากเครือง เป็นการเสีย Data โดยใช่เหตุครับ
  • Java 8 : เพียงแค่ปรับ source & target ก็จะสามารถใช้ ภาษา & toolchain ตัวใหม่ของ Java 8
  • Downloadable Font : เป็นอีกหนึง feature สำหรับ Android O ที่ออกมาเพื่อให้นักพัฒนาสามารถลดขนาด apk ได้ โดย Google พบว่านักพัฒนามักจะ bundle font ลงใน apk ของตัวเอง ตัว font เองก็ไม่ใช่ว่ามีขนาดเล็กๆ ที่สำคัญคือ app หลายๆ app มักใช้ font ที่ซ้ำๆ กัน Google จึงออก feature นี้มาเพือให้นักพัฒนาสามารถกำหนด url ให้ Android O download font เรามา cache เก็บไว้บนเครืองได้ โดยหากมี cache font ที่เราเรียกไว้อยู่แล้ว Android O ก็จะเรียกจาก cache นั้นๆ เป็นการ ประหยัด data และ หน่วยความจำของผู้ใช้ นักพัฒนาสามารถเลือกใช้ font ทั้งหมดได้ free จาก Repo font ของ Google และสามารถใช้จากที่อื่นได้แต่ต้องทำการเรียกใช้โดยมี cert เอง
Repo ของ Google Font
  • Faster Build Speed : ในงาน session ต่างๆ Goolge จะย้ำ มากว่า Android Studio 3.0 จะbuildเร็วกว่าเดิม เพราะทุกครั้งที่มีการ Meet & Greet ระหว่างนักพัฒนาและทีม Android Studio อันนี้เป็นขอเรียกร้องหลักกันเลยทีเดียว ทีม Android Studio ก็ไม่ได้นิ่งนอนใจ ในครั้งนี้ทางทีม Android Studio ทำการแตก API หลายตัวและตัว Android Gradle plugin เองด้วย ทำให้มีโอกาสเป็นไปได้ว่าหากเราไปใช้แล้วเกมเราอาจจะมีปัญหาได้ตอน build อย่าลืมทดลองดูก่อนนะครับว่าเป็นยังไง ใครเจอปัญหาอะไรก็เอามาแบ่งกันได้นะครับ ลองมาดูความเร็วที่เคลมว่าเร็วขึ้นเป็นยังไงครับ
ทดสอบโปรเจ็คเปล่าที่โหลด ~130 module & external dependencies
  • Smaller Apk Size : ในทุก session ที่เข้า Google จะพูดถึงการที่ Android Studio 3.0 สามารถทำ Apk ที่เล็กว่าเดิม เพราะนอกจากจะมีเครืองมือ Analyzer ใหม่(ก็เหมือนตัว 2.3 อยู่นะครับ แต่ upgrade ร่างใหม่ที่สามารถทำได้เยอะกว่าเดิมและฉลาดกว่าเดิม) ในการ optimize ขนาด Apk แล้วยังมีระบบการ Sign Apk แบบใหม่(ที่จะเขียนถึงต่อไป)ด้วยซึ่งน่าตื่นเต้นมาก เพราะ ระบบแบบใหม่เป็นการแทนที่เราจะ Sign Apk ด้วย key ของเราแล้ว upload ขึ้น Google Play จะเเปลี่ยนมาเป็น ที่เรากับ Google ใช้ key รวมกัน แล้วเรา upload Apk ที่ Google มีขึ้น Google Play เพื่อให้ Google Play ทำการ แตก Apk แยกเป็น Platform และ แยกตามขนาด Resources เช่น ผมทำการ upload Unblock Me ขึ้น Google Play แบบใหม่ Google Play ก็จะแตก Apk ผมเป็น armv6+xhdpi, armv6+xxhdpi, armv6+xxxhdpi, armv7+xhdpi, armv7+xxhdpi, armv7+xxxhdpi, x86+xhdpi, x86+xxhdpi, x86+xxxhdpi เป็นต้น จะเห็นว่าวิธีนี้ เครืองที่ download apk จะได้รับ apk ที่เจาะจงสำหรับเครืองนั้นๆ โดยเฉพาะ ทำให้เป็นขนาดที่ optimize มากที่สุดทีเป็นไปได้ แต่คงเพิ่มขั้นตอนการทดสอบขึ้นบ้างสำหรับทีมที่มีทีม QC เพราะ key เพิ่มมาอีกตัว และ Apk แยกเป็นหลากหลายเวอร์ชั่น(หากจำได้เมื่อหลายปีก่อน Google เคยให้ทำแบบนี้ แต่ให้นักพัฒนาจัดการ build เองซึ่งวุ่นวานมาก จนสุดท้ายต้องกลายเป็น bad practice ไป)
มาดูเรือง Apk Analyzer แบบลงลึกกันครับ
  • Android Profiler : เป็นตัวที่มาแทนที่ Android Monitor (หือ…ไอ่นี้มีประโยชน์อะไรนอกจากอ่าน log) เป็น profiler แบบ real time ทีจะรวม view profiler ต่างๆ ของ app เราไว้ ไม่ว่าจะเป็น CPU, Memory หรือ Network ซึ่งเราจะสามารถดู event ต่างๆ ที่เกิดใน app เทียบกับ profiler ทั้ง 3 เพื่อสามารถไล่หาปัญหา app เราได้ง่ายขึ้น
Android Profiler ตัวใหม่ใน Android 3.0
  • นอกจากนี้ เรายังสามารถดู profiler แยกเป็นเอกเทศตามการทำงานของ CPU, Memory หรือ Network
CPU profiler
Memory Profiler
Network Profiler

คงต้องขอจบตอนที่ 1 เพียงเท่านี้ก่อนครับ จริงๆ เนื้อหามีเยอะกว่านี้พอสมควรครับ ไม่ว่าจะเรือง IOT หรือ ML ใหม่ของ Google แต่อย่างที่หัวข้อเขียนไว้ครับ อยากให้บทความเน้นสำหรับนักพัฒนาเกมและนักพัฒนาapp ครับเพือประโยชน์สูงสุดของทุกคน ถึงตอนนี้ยังไม่ได้พูดถึง Android กันเลยนะครับ เพราะมีอะไรน่าตื่นเต้นเยอะเลย ยังไง เดียวไว้โอกาสต่อไปแล้วกันนะครับ จะพยายามเร่ง เขียนให้นะครับ :)

หากสนใจบทความอื่นๆ เกียวกับการพัฒนาเกมสามารถติดตามได้จาก https://www.auntara.com/ นะครับ

--

--

Aun Taraseina
Aun Taraseina

Google Developer Expert on Marketing & Thai Game Software Industry Association Committee Member. Worked on awesome games such as Unblock Me.