Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

Android :: ลด ละ เลิกการใช้ findViewById() !!!

$
0
0

android-fin

android-fin พอดีกำลังศึกษาการพัฒนา 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/

Viewing all articles
Browse latest Browse all 1997

Trending Articles