Empty Data Sets Pattern

การใช้ UITableView, UICollectionView เป็นวิธีการยอดนิยม
สำหรับข้อมูลที่มีลักษณะเป็นลำดับ (List) ซึ่งก็มีคำถามต่อมาว่า

"ทำอย่างไรดี เมื่อไม่มีข้อมูลบน List เลย"

ผู้คนมักปล่อยว่างเป็นหน้าขาวๆ ซึ่งเป็นวิธีที่ไม่ดีนักสำหรับผู้ใช้
โดยการที่ไม่มีข้อมูลบน List เลยอาจจะมาจากได้หลายสาเหตุ

  • ไม่มีข้อมูล อาจจะเป็นการสมัครครั้งแรกและยังไม่มีข้อมูลใดๆ
  • ไม่ได้เชื่อมต่อ Internet
  • ดึงข้อมูลมา แล้วเกิด Error

ซึ่ง App ที่ดี ก็ควรจะบอกผู้ใช้ด้วยว่า มันเกิดอะไรขึ้นดังเช่น App ดังๆ ทำกันแบบนี้




ผู้ใช้ควรจะรู้ว่าสถานะของ App เป็นอย่างไรเนอะ แล้วมันทำยังไงล่ะ ? วันนี้จะมาแนะนำ Library ตัวนึงชื่อ DZNEmptyDataSet เพื่อจัดการเหตุการณ์แบบนี้กันครับ :)

โดยวิธีการใช้งาน ก็ไม่ยากเลยเพียงแค่เซต Datasource และ Delegate ให้ UITableView หรือ UICollectionView ที่เราใช้อยู่


จากนั้นก็ทำการเขียน Datasource methods เพื่อจัดการข้อความและรูปที่จะแสดงเวลาไม่มีข้อมูล (แม้กระทั่งสร้าง Custom View มาแปะเลยก็ได้) และ Delegate methods เพื่อจัดการเหตุการณ์ที่จะเกิดขึ้นกับ View ของ Empty Data Set เช่นสามารถกดเพื่อทำอะไรบางอย่างได้ (ถ้าต้องการ)


และที่สำคัญมากคือ
เรา  "จำเป็นต้อง" เซต datagate และ datasource ให้เป็น nil ใน dealloc method ด้วย
เนื่องจากถ้าเข้าไปดูใน delegate custom setter method จะเห็นว่ามีเพิ่ม observer ด้วย และตามปกติเราต้องนำ observer ต่างๆ ออกทุกครั้ง เมื่อ controller ถูกใช้งานเสร็จแล้ว (crash นะครับ ถ้าไม่เขียน)


เท่านี้ล่ะ ลองนำไปใช้กันดูนะครับ :)

Popular posts from this blog

[Android Dev] การติดตั้ง Eclipse+AndroidSDK เพื่อพัฒนาโปรแกรมบน Android

12 วิธี การบริการและดูแลลูกค้าในร้าน Starbucks

5 TED Talk ที่จะช่วยให้คุณทำงานดีขึ้น