วันนี้พอแค่นี้เจอกันบล็อคหน้าเนาะ 😎

Table of contents

Nonthawit
CEO | Engineer | Designer
VIEW
2,011
CATEGORY
LAST UPDATED
December 8, 2017
Android developer ทุกคนคงไม่มีใครไม่รู้จัก selector กันเนาะย้อนไปตอน android lollipop เรามีสิ่งที่เรียกว่า Material Design เกิดขึ้น ทำให้เรามี design guidelines ใหม่ให้เราได้ follow กัน ไม่ว่าจะเป็นเรื่อง สี, layout, animation และอื่นๆอีกเยอะแยะ ทำให้ผู้ใช้มีประสบการณ์การงานแอปเราดียิ่งขึ้น (UX) ตามต่อกันได้ที่
ซึ่งหนึ่งในเรื่องที่เราจะหยิบมาพูดในวันนี้คือ ripple effect ใน material design นั่นเองว่ามันมีหลักการเขียน selector อย่างไร 😎


ภาพด้านซ้ายเป็น selector แบบธรรมดาไม่มีอะไร พอเป็นด้านขวาเราใส่ selector แบบ ripple effect เข้าไปก็
ทำให้ UX ในการใช้ ดูดีขึ้น ดูมีมิติ น่ากดมากขึ้น
ซึ่งใครหลายคนอาจมองข้ามจุดนี้ไป บอกเลยว่าแอบสำคัญมากนะมันสามารถเปลี่ยนอารมณ์การใช้งานเราทั้งแอปได้เลย
แต่มีข้อแม้อย่างหนึ่งของการใช้คือ ต้องเป็น api version 21 ขึ้นไปนะ
เพราะมันเป็น feature ที่มาพร้อมกับ android lollipop
น่าจะพอเห็นความสำคัญของมันกันไม่มากก็น้อย ต่อไปก่อนจะลงโค้ดกันเราต้องเข้าใจเรื่อง mask เสียก่อน

concept ของ mask ใครเคยใช้ photoshop หรือ illustrator มามันคือสิ่งเดียวกันเลย ซึ่งทาง android ก็ใช้เทคนิคนี้ในการทำ selector แบบ ripple effect เช่นกัน
มันคือการตัดภาพให้เท่ากับรูปร่างของ shape ด้านบนนั่นเอง
(ไม่สนเรื่องสีนะสีอะไรก็ได้)
แค่นี้แหละง่ายมาก

ไฟล์ที่เราใช้ตามนี้ตามหลักของการทำ selector
ให้สังเกตที่ไฟล์ lollipop_round_primary_selector.xml แยกไว้สองที่เพื่อแยก selector แบบธรรมดา กับ selector แบบ ripple effect นั่นเอง
ดูบรรทัดที่ 5
android:id="@android:id/mask" (ทำให้ item เป็น mask)
เราแปะ mask item ไว้ด้านบนสุดเพื่อให้ ripple effect มันอยู่ในกรอบของ “@drawable/lollipop_round_primary_mask” นั่นเอง
ซึ่ง shape ที่เราเอามาทำเป็น mask คือ rectangle shape สีดำธรรมดา (จริงสีอะไรก็ได้ไม่มีผลอะไร)
พอทำเสร็จเราก็จะได้ออกมาเป็น ripple สวยงามแบบนี้

คำถามคือถ้าเราเปลี่ยน mask เป็นอย่างอื่นหละมันจะเป็นอย่างไร
งั้นเรามาลองเปลี่ยนเป็นวงกลมธรรมดากัน

ripple effect จะอยู่แค่ในวงกลมนั่นเองซึ่งไม่ควรทำเนาะ
สรุป: เพราะฉะนั้น ripple effect มันจะอยู่ในกรอบ ของ mask เท่านั้น 😎
UX ของผู้ใช้เป็นเรื่องที่สำคัญมากที่เราควรตระหนักกันให้มากๆนะ
การเปลี่ยนอะไรนิดหน่อยในแอปเรา ไม่ว่าจะเป็น สี layout หรือ animiation ต่างๆ ก็สามารถส่งผลต่อผู้ใช้ได้โดยตรง อาจะทำให้แย่ลงหรือดีขึ้นก็ขึ้นอยู่กับว่าเราใช้มันถูกที่ถูกเวลาหรือไม่มันจึงเกิด design guidelines ต่างๆให้เราได้ follow กันซึ่งเราไม่ควรมองข้ามนะ

วันนี้พอแค่นี้เจอกันบล็อคหน้าเนาะ 😎
อย่าลืม share ให้มนุษย์ Android คนอื่นด้วยหละ 😎
KNOWLEDGE


Nonthawit
CEO | Engineer | Designer
20 สิ่ง ที่ได้หลังจากเป็น Android developer ที่ Nextzy 3 เดือน
บทความนี้แชร์ประสบการณ์ 3 เดือนแรกของการทำงานเป็น Android Developer ที่ Nextzy ครอบคลุมทั้งด้าน technical เช่น MVP architecture, Android Lifecycle, ProGuard, Git workflow และการเขียน Unit Test รวมถึงด้าน soft skill อย่างการสื่อสารกับทีม, การแชร์ความรู้, และการเขียนโค้ดให้ readable และยืดหยุ่น นอกจากนี้ยังสะท้อนวัฒนธรรมองค์กรที่เน้นทีมเวิร์ค การ review โค้ด และบรรยากาศการทำงานที่สนุกสนาน ซึ่งล้วนช่วยลด learning curve และพัฒนาทักษะได้เร็วกว่าการเรียนรู้คนเดียว
![[Tip/Trick] วิธีติดต่อกับ WebView ผ่าน JavascriptInterface มันเท่มาก](https://image.nextzy.tech/1_Aleix_TFC_7yz_Qh_Q_Sx_GV_Rqxw_a29e28219a.png)

Nonthawit
CEO | Engineer | Designer
[Tip/Trick] วิธีติดต่อกับ WebView ผ่าน JavascriptInterface มันเท่มาก


Nonthawit
CEO | Engineer | Designer
Quantum Computer จะมาปฏิวัติอุตสาหกรรมโลกครั้งต่อไป ไม่ต่างอะไรกับยุคที่เปลี่ยนจากแรงงานคนมาเป็นพลังไอน้ำในศตวรรษที่ 18
Quantum Computer คือ "เครื่องจักรไอน้ำ" แห่งศตวรรษที่ 21 — เมื่อกฎของมัวร์เริ่มถึงทางตัน นักวิทยาศาสตร์จึงหันมาสร้างคอมพิวเตอร์ที่ใช้ทรานซิสเตอร์ระดับอะตอม ประมวลผล 0 และ 1 พร้อมกันได้ในทีเดียว (Qubit) เร็วกว่าคอมทั่วไปหลายร้อยล้านเท่า บทความนี้พาย้อนดูตั้งแต่การปฏิวัติอุตสาหกรรมครั้งแรก มาจนถึง Quantum Computer ว่ามันคืออะไร ทำงานยังไง มีข้อจำกัดอะไรบ้าง และจะมา disrupt อุตสาหกรรมโลกอย่างไรในอีก 5-10 ปีข้างหน้า