วันนี้ไปร่วมงาน Google I/O 2016 Extended Bangkok
เป็นงานที่สรุปเนื้อหาต่าง ๆ จากงาน Google I/O 2016 มาให้อย่างเต็มอิ่ม
อาจจะบอกได้เลยว่าข้อมูลมันเยอะมาก ๆ (Information Overflow)
โดยเนื้อหาประกอบไปด้วย
- Google Assistant
- Google Home
- Mobile Development
- Web Development
แต่ในงานครั้งนี้ผมเลือกที่จะฟังเฉพาะ Mobile Development เท่านั้น
มาดูว่ามีอะไรที่น่าสนใจบ้าง ?
1. มาดูความสามารถต่าง ๆ ของ Android N
โดยมี session นี้จะทำการแนะนำความสามารถใหม่ ๆ
ทั้งสำหรับ Android development และ Android N
ขอบอกเลยว่ามันเยอะมาก ๆ เช่น
- Constraint Layout ซึ่งต่อไปน่าจะเป็น layout หลักของการพัฒนา App เหมือนกับ Auto Layout ใน iOS เลยนะ
- Multi-window หรือ Split screen สิ่งที่ต้องสนใจมาก ๆ คือการจัดการ Life cycle ของ Activity ให้ดี มิเช่นนั้นต้องแก้ไขกันวุ่นวาย !!
- Picture-in-Picture mode ใน TV ซึ่งสามารถ Drag & Drop รูปข้าม Activity หรือหนาจอได้
- Notification รูปแบบใหม่ทั้ง template, custom view และ direct reply ที่ iOS ทำได้นานล่ะ !!
- ในส่วน Setting ของ Android phone เช่น
- Display size คือสามารถขยาย size ของทั้งหน้า ไม่ใช่เฉพาะ font ทำให้ App สวยขึ้น
- Quick setting
- Multi Locale
- Doze ใน Android N หรือโหมดหลับลึกของ Android เพื่อช่วยทำให้มือถือประหยัด Batt เมื่อไม่ใช้งาน เป็นเรื่องที่นักพัฒนาต้องเรียนรู้และเข้าใจ
- Project Svelte แปลว่าผอมเพรียว เพื่อปรับปรุงให้ Android สามารถทำงานบน hardware หรือ อุปกรณ์ที่เก่า ๆ หรือ spec ต่ำ ๆ ได้ ทั้งลดการใช้งาน RAM และ Batt นั่นเอง โดยงานหลาย ๆ อย่างจะถูกตัดทิ้งเช่น CONNECTIVITY_ACTION, ACTION_NEW_PICTURE และ ACTION_NEW_VDO ซึ่งให้ไปใช้งานผ่าน JobScheduler ที่เป็น background process แทน
- Data saver mode ใน Android N ช่วยลดจำนวน data ที่ใช้งานของ App
- Direct boot ปรับปรุงการทำงานของ app เมื่อเครื่องทำการ reboot ขึ้นมาใหม่
- Scoped Directory Access เป็นการกำหนด permission ในการเข้าถึง external storage บนเครื่องจาก App ซึ่งสามารถกำหนดเฉพาะ directory ที่ต้องการเท่านั้น เนื่องจากในรูปแบบเดิมสามารถเข้าถึงได้ทั้งหมดเลย ซึ่งน่ากลัวมาก ๆ เป็นการปรับปรุงที่ดีมาก ๆ
- ว่าด้วยเรื่องของ Vulkan ซึ่งเป็น 3D render ใหม่ซึ่งเหมือน ๆ กับ Open GL นั่นเอง
จากนั้นมาเรื่องที่เกี่ยวกับ Development กันบ้าง
ซึ่งก็มิใช่น้อยหน้าไปกว่ากันเลย
- ADB shell ที่ทำงานรวดเร็วขึ้น นั่นแสดงว่าติดตั้ง App ได้เร็วขึ้น
- NDK ตัวใหม่
- สนับสนุน VR หรือพูดง่าย ๆ คือ 3D mode นั่นเอง
- ตัวที่สำคัญมาก ๆ สำหรับนักพัฒนาคือ Support Library แน่นอนว่าพลาดไม่ได้เลย เช่น
- Vector Drawable (VD) ช่วยทำให้ขนาดของ App เล็กลง ซึ่งมีความสำคัญอย่างมาก
- การเลือกใช้การบีบอัดของรูปภาพมันสำคัญมาก ๆ ทั้ง VD -> WebP -> PNG -> JPG
- Night mode
- ใช้งาน RecyclerView เป็นหลักเลยนะ
- Design Support Library คือสิ่งที่นักพัฒนาอย่าพลาดนะ
- Bottom sheet
- Chrome Custom Tab
ยังไม่หมดนะ มี Instant App มาอีก
ทำให้ผู้ใช้งานสามารถใช้งาน App ได้โดยไม่ต้องติดตั้ง
ถือว่าเป็น killer feature ของ Android เลยก็ว่าได้
แต่มันก็ส่งผลกระทบต่อนักพัฒนาไม่น้อยนะ
เนื่องจากต้องทำการ build app แยกออกมานิดหน่อย
และตอนนี้ยังเป็น beta อยู่ซึ่งสามารถขอทดสอบใช้งานได้นะ
พักหายใจหายคอกันหน่อยนึง ….
2. มาดูความสามารถใหม่ ๆ ของ Android Studio 2.2
ขอบอกอีกแล้วว่า มันเยอะมาก ๆ โดยแบ่งออกเป็น 4 กลุ่มใหญ่ ๆ คือ
- Design
- Develop
- Build
- Test
มาดูกันว่าในแต่ละกลุ่มมีอะไรที่น่าสนใจกันบ้าง
กลุ่มที่ 1 :: Design ประกอบไปด้วย
Layout Editor, Constraint Layout และ Layout Inspector
ซึ่งทำให้การออกแบบ UI ของ APP ง่าย สะดวกและรวดเร็วขึ้นมา
รวมทั้งปรับปรุงเรื่องของ Responsive และ Performance อีกด้วย
เนื่องจาก Constraint Layout ช่วยลดความซับซ้อนของ View ลงไปอย่างมากนั่นเอง
ชีวิตของนักพัฒนาน่าจะดีขึ้นกว่าเดิมมาก ๆ ที่ต้องมานั่งแก้ไขไฟล์ XML กันเลย
กลุ่มที่ 2 :: Develop ประกอบไปด้วย
- เริ่มด้วยตัวทีเด็ดคือ Firebase plugin ช่วยทำให้การพัฒนา App มันง่ายและสะดวกขึ้นอย่างมาก
- Sample code browser ช่วยทำให้นักพัฒนาสามารถดูตัวอย่าง code สำหรับการใช้งาน API ต่าง ๆ จาก Google Sample
กลุ่มที่ 3 :: Build ประกอบไปด้วย
- Instant Run ซึ่งตอนนี้ทำการปรับปรุงดีขึ้นอย่างต่อเนื่อง ทำให้การ build project รวดเร็วขึ้น (ใครปิดไว้ ก็เปิดซะนะ !!)
- Merge Manifest Viewer
- Project Structure Dialogue ยังไม่ออกมาให้ใช้นะ !!
- ปรับปรุง Jack compiler ช่วยทำให้ใช้การ build รวดเร็วขึ้น แต่จากการใช้งานจริง ๆ ยังไม่ดีเท่าไรนัก !!
กลุ่มที่ 4 :: Test ประกอบไปด้วย
- การปรับปรุง Android Emulator ให้ดีขึ้นเป็นอย่างมากรวมทั้งความสามารถครบครัน ทำให้ไม่ต้องไปใช้ Emulator อื่น ๆ แล้ว แถมยังบอกว่าเร็วกว่า device จริงอีกนะ !!
- Espresso Test Recorder ช่วยทำให้การทำสอบ UI ง่ายขึ้น ซึ่งมีใน Android Studio 2.2 Preview 3 ขึ้นมานะครับ
- APK Analyzer ช่วยทำให้เราวิเคราะห์ไฟล์ APK ว่าเป็นอย่างไร เช่นขนาดของไฟล์ จำนวน method และขนาดของ resource ต่าง ๆ ทำให้เราสามารถรู้ปัญหาและหาทางแก้ไขได้ง่ายขึ้น
- Firebase Test Lab ช่วยทำให้เราสามารถทดสอบ App ได้เลย แต่ต้องเสียเงินนะ !!
ปล. มีข้อมูลเกี่ยวกับ Web Development นิดหน่อยคือ Progressive Web App (PWA)
เน้นย้ำว่า เป็นแนวคิดที่น่าสนใจมาก
ไม่ใช่เครื่องมือ หรือ เทคโนโลยีอะไร
โดยที่ PWA ประกอบไปด้วยความสามารถต่าง ๆ ดังนี้
- Push notification
- Service Worker
- Tool ประกอบไปด้วย Angular Mobile Toolkit, Polymer App Toolkit และ SW-Toolbox, SW-Prefetch
- ทำงานร่วมกับ 3-parties ต่าง ๆ ได้ เช่น ionic framework
ยังมีการสรุปใน Part 2 ไว้อีกเรื่อง Espresso UI Test และ Firebase