ห่างเหินจากการเขียนบล็อกมานาน ขอเขียนถึงแอพ** Photolog 48** ที่ตัวเองเขียนและอัพเดตมาเรื่อยๆ ตลอดปีนี้ซักหน่อย
วันนี้แอพ iOS Photolog 48 แอพดูรูปเมมเบอร์ AKB48 Team 8/HKT48/NGT48 ออก ver 3.0.0 แล้ว โหลดได้ที่ https://itunes.apple.com/app/id1107350866 ครับ
ฟีเจอร์หลักๆ ของเวอร์ชั่นนี้คือ
-
เปลี่ยนโฉมแอพทั้งหมด ให้เป็นโทนดำ ลบเมนูที่ไม่ค่อยจำเป็นออกไป UI สะอาดตา ใช้ง่ายขึ้น
-
เพิ่มฟังก์ชั่นแปลภาษา สามารถแปลโพสต์ของเมมเบอร์ได้แล้ว
เปรียบเทียบหน้าแรก v2 เทียบกับ v3
เปรียบเทียบหน้าโพสต์ของเมมเบอร์แต่ละคน
เปรียบเทียบหน้ารายละเอียดโพสต์ v3 ใช้วิธีปัดซ้ายขวาเลื่อนโพสต์ได้
และที่สำคัญคือมี UI สำหรับ iPad โดยเฉพาะแล้ว :D
เล่าถึงความเป็นมาในการเขียนแอพนี้ ตอนแรกเราเรียน iOS Developer Course ของ Udacity เพื่อฝึกสกิลไปใช้ในที่ทำงาน (ตอนนี้ทำงานเป็น Full time iOS Developer อยู่) จากที่ไม่เคยเขียนแอพ iOS เลย ก็สามารถรีลีสแอพขึ้น App Store ได้ในเวลาสองเดือน ตอนนั้นเป็น v1 หน้าตาแบบนี้ ชื่อแอพ** Photolog for NGT48 เปิดให้โหลดวันที่ 5/5/2016**
หน้าตาแอพเวอร์ชั่นแรกสุด
สิ่งที่ทำได้คือโหลดโพสต์ของเมมเบอร์ NGT48 จากเว็บ ngt48.com มา จุดขายของแอพคือมันสามารถเซฟรูปได้ ไม่เหมือนดูจากเว็บที่โดนบล็อกไว้ ก็เลยมีผู้ใช้อยู่เรื่อยๆ จนถึงตอนนี้เมมเบอร์ NGT48 ก็เป็นที่นิยมสุดในแอพไม่เปลี่ยนแปลง
อินเตอร์เฟสใช้ control พื้นฐานของ iOS รองรับเฉพาะไอโฟนแนวตั้ง เพราะคอร์ส Udacity สอนแค่นั้น แต่พอดูสถิติคนใช้แอพ (จาก Fabric.io SDK ยอดนิยมของ mobile app developer) มีคนใช้ไอแพดอยู่ราว 30% ก็เลยรู้สึกว่าต้องเพิ่มฟีเจอร์ให้ใช้กับ iPad ได้
จากนั้นก็อัพเดต เพิ่ม AKB48 Team 8 เข้ามาใน v1.3 พร้อมเปลี่ยนชื่อเป็น** Photolog 48** และใน v2 ก็เพิ่ม Google+ HKT48 ปรับโฉมให้รองรับ iPad และหน้าจอแนวนอนซักที v2 รีลีสวันที่ 16/5/2016
iPad UI ช่วงแรก
หลังอัพเดตเสร็จก็พักไปยาวๆ เพิ่มได้แค่ฟีเจอร์เล็กๆ น้อยๆ เพราะเริ่ม develop แอพจริงจังที่ทำงานแล้ว ยุ่งมาก แทบจะอ้วกเป็นโค้ด ที่ยากคือเราเรียน Udacity ด้วย Swift แต่โค้ดที่ทำงานเขียนด้วย Objective-C และยังแทบจะสร้าง UI ด้วยโค้ดทั้งหมด ไม่เหมือนกับการใช้ Storyboard แบบที่เรียนมาเลยซักนิด… แต่ตอนนี้ผ่านไปได้ละ เขียน UI ด้วยโค้ดบางทีก็อิสระกว่า Storyboard เยอะ ถ้าเข้าใจก็ไม่ใช่เรื่องยาก :)
v2.2 17/8/2016 อัพเดตฟีเจอร์สำคัญ Background Fetching & Local Push Notification พูดง่ายๆ คือโหลดโพสต์ใหม่ของเมมเบอร์โดยอัตโนมัติ และแจ้งเตือนเมื่อพบ หลักการทำงานคือแอพจะไล่เช็คโพสต์ของเมมเบอร์ที่เรากดดาว (Like) ไว้ทีละคนๆ จนครบหมด ถ้าเจอโพสต์ใหม่ก็แจ้งเตือนให้
อ่านแล้วคงรู้ว่าการทำอย่างนี้ถือว่าเป็นภาระต่อทั้ง Client และ Server มาก ถ้าไลค์เมมเบอร์ไว้ 10 คน ก็ต้องโหลด 10 ครั้ง แต่เราไม่มีวิธีอื่น เพราะไม่มี API ที่จะเช็คได้ว่าเมมเบอร์คนไหนมีโพสต์ใหม่ จะให้สร้างเองหมดก็เกินความสามารถและเวลา… จนถึงตอนนี้ก็ยังใช้วิธีนี้เช็คโพสต์ใหม่อยู่ ซักวันว่าจะลองเขียนสคริปต์ฝั่ง server-side ดู ให้มี API ใช้เป็นตัวเป็นตนซักที
v2.4 2/9/2016 อัพเดต UI โพสต์ของเมมเบอร์จากตารางเป็น collection แทน ทำให้รูปภาพใหญ่ขึ้น ดูสวยขึ้น
v2.5 2/10/2016 อัพเดตโค้ดจาก Swift 2 เป็น Swift 3 และซัพพอร์ตเฉพาะ iOS 9 ขึ้นไป (เดิม iOS 8)
v2.6 17/10/2016 เพิ่มโหมด Timeline ดูโพสต์ที่โหลดมาแล้วทั้งหมดได้ในหน้าเดียว ไม่ต้องเช็คเมมเบอร์ทีละคนๆ และก็โหลดโพสต์ใหม่ของเมมเบอร์ทุกคนที่กดไลค์ไว้ได้ในคราวเดียวด้วย ค่อนข้างสะดวกสำหรับเรา แต่ปรากฏว่าคนใช้ไม่เยอะเท่าไร ฮา
v2.7 25/10/2016 เพิ่ม Search box ใน Timeline ให้เซิร์ชหาข้อความในโพสต์ได้ อันนี้ใส่ไว้เล่นๆ เป็นการฝึกฝีมือมากกว่า เพราะต้องใช้ในแอพที่ทำงาน ผลปรากฏว่าแทบไม่มีใครเซิร์ชเลย แน่ล่ะ ใครมันจะมาเซิร์ชหาข้อความในอดีตกัน 😂
และ** v3.0 14/12/2016** เปลี่ยน UI หมดอย่างที่กล่าวไปตอนต้น แน่นอนว่าการ develop app จะไม่จบแค่นี้ หลังจากนี้ก็กะอัพเดตแอพไปเรื่อยๆ เท่าที่มีเวลา ยังมีฟีเจอร์ที่อยากใส่อีกเพียบ เช่น
-
เซิร์ชชื่อเมมเบอร์
-
เปิดโพสต์ใหม่โดยตรงจาก Push notification (ตอนนี้แค่เปิดแอพขึ้นมา)
-
สร้าง Server-side API มาใช้ จะได้เร็วขึ้น (ตอนนี้ scrape จากเว็บทื่อๆ)
แต่ลำดับความสำคัญของการอัพเดตคงไม่สูงเท่าไร เพราะตอนนี้กำลังเรียนเขียนแอพ Android ด้วย คิดว่าทำแอพ Android v1 ออกมาก่อนน่าจะสำคัญกว่า เพราะฐานผู้ใช้และเสียงเรียกร้องเยอะมาก ก็ต้องกลับไปเริ่มใหม่ตั้งแต่ต้น นึกถึงความลำบากตอนเรียน iOS ครั้งแรกแล้วก็หนักใจเลย แต่เพื่อความก้าวหน้าในอาชีพ และตอบสนองผู้ใช้งาน สู้ตาย!
ผู้ใช้ iPhone/iPad ถ้ายังไม่ได้โหลดแอพก็ช่วยโหลดไปใช้กันด้วยนะครับ โดยเฉพาะแฟน NGT48 ที่ติดตาม Photolog พวกเธออยู่ รับรองชีวิตง่ายขึ้นเยอะ ฮ่าๆ https://itunes.apple.com/app/id1107350866