พอดีกำลังศึกษาการพัฒนา Android app ด้วยภาษา Kotlin
แต่ดันไปเจอคำแนะนำหนึ่งที่น่าสนใจคือ
ให้ลด ละ เลิก การใช้คำสั่ง findViewById ซะ
ไม่งั้นชีวิตจะลำบากนะ
คำถามที่เกิดขึ้นมาคือ
- ทำไมล่ะ ?
- ถ้าไม่ใช้ แล้วจะใช้อะไรล่ะ ?
ดังนั้นเรามาหาคำตอบกันดีกว่า
Method findViewById(int) นั้นใช้สำหรับการหา view ต่าง ๆด้วย id
จาก Activity, View, Fragment และ Adapter
การใช้งานปกติก็ไม่น่ามีปัญหาอะไรมากนัก
แต่เมื่อระบบงานใหญ่ และ ซับซ้อนมากขึ้น
จึงเกิด code รูปแบบนี้ขึ้นมา !!!
[gist id="a04cce1323b2659a15a22ff81b6c0f5f" file="BigActivity.java"]
ซึ่งจะเห็นว่า code มันซ้ำซ้อนมาก ๆ
บางคนถึงกับบอกว่า ทำไมเราต้องเขียนแบบนี้กันด้วยล่ะ
คำถามที่เกิดขึ้นมาคือ มีวิธีการอื่น ๆ อีกไหม ?
คำตอบ มีนะ เพียบเลย
ทั้ง
Data binding library ที่มีมากับ Android เลย
ทั้ง 3-party library สำหรับทำ view binding เช่น
โดยวิธีการเหล่านี้ มันดีขึ้นกว่าเดิมนะ
แต่ต้องทำการเพิ่ม code และ configuration ต่าง ๆ ขึ้นมาอีกเช่นกัน
ตัวอย่างเช่น
[gist id="a04cce1323b2659a15a22ff81b6c0f5f" file="ButterKnife.java"]
คำถาม มันน่าจะมีวิธีการที่ดีกว่านี้อีกไหมนะ ?
ตอนนี้มาศึกษา
Kotlin for Android ทำให้พบว่า
มันมีแนวทางที่ง่ายกว่าอีกนะ
ไม่ต้องทำอะไรเพิ่มเติมมากนัก
เพียงแค่นำ Kotlin StdLib มาใช้ใน Android project
และเปลี่ยน Java File เป็น Kotlin ก็ใช้งานได้แล้ว
แสดงด้วย code ดังนี้
[gist id="a04cce1323b2659a15a22ff81b6c0f5f" file="MainActivity.kt"]
ชีวิตมันดีขึ้นมากมายเลยนะ
ของแบบนี้มันต้องนำมาพัฒนา Android app กันได้แล้ว
ตัวอย่าง source code อยู่ที่
Github::Up1::Hello Kotlin
Reference Websites
https://kotlinlang.org/docs/tutorials/kotlin-android.html
http://cirorizzo.net/2016/03/04/building-a-kotlin-project/
https://ragunathjawahar.wordpress.com/2015/03/23/kotlin-findviewbyid-dead-as-dinosaurs/