เมื่อสัปดาห์ที่ผ่านมาเห็นมีคนพูดถึง BMA Traffic app กันพอสมควร
ดังนั้นในฐานนะนักพัฒนา Mobile app คนหนึ่ง
เลยลองเข้าไปดูหน่อยสิว่า app พัฒนาอย่างไร ?
มีการใช้ library อะไรที่น่าสนใจบ้าง ?
ตลอดจนโครงสร้างและการทำงาน
แต่จะไม่พูดถึง UX/UI นะครับ
น่าจะทำให้เราเข้าใจการพัฒนามากยิ่งขึ้น มาเริ่มกันเลยปล. เพื่อการศึกษาและเรียนรู้การพัฒนาระบบนะครับ
เริ่มด้วย library ที่ใช้งาน
ก็จะเป็น library พื้นฐานทั่วไป ยกตัวอย่างเช่น- Picasso สำหรับจัดการข้อมูลรูปภาพ แถมยังใช้ Glide อีกด้วย
- Firebase สำหรับ Analytic, Authentication และ Cloud messaging และยังใช้ GCM อยู่นะ (Google Cloud Messaging) ในส่วน analytic มีการใช้งาน e-commerce tracker ด้วยนะ
- OrmLite สำหรับจัดการข้อมูลกับ SQLite
- Android GPUImage สำหรับทำ image fileter บน OpenGL
- OKHttp3 สำหรับติดต่อข้อมูลผ่านระบบ Network
- GoogleMap สำหรับเรื่องการแสดงแผนที่และตำแหน่ง
- การจัดการข้อมูล JSON ยังคงใช้ org.json ที่มากับ Android
- ksoap2 for android สำหรับติดต่อ WebService ด้วย SOAP
ต่อมาเรื่องการขอ Permission ก็เพียบนะ
มีเรื่อง badge ที่ขอตามยี่ห้อของ device เลยเยอะดี น่าสนใจดีนะ อันนี้ผมไม่เคยทำ แน่นอนว่า code ก็ต้องแยกตาม device เช่น- Samsung
- LG
- Sony
- Asus
- HTC
- Nova
- Xiaomi
- OPPO
- Apex
โครงสร้างของ app มี package ดังนี้
- model สำหรับ POJO class ต่าง ๆ
- dao (Data Access Object) สำหรับจัดการข้อมูลใน SQLite
- connector สำหรับจัดการข้อมูลผ่านระบบ network ด้วย SOAP Connector ไปยัง WebService
- task สำหรับการเรียกข้อมูลผ่าน connector ซึ่งยังคงใช้งาน AsynTask อยู่ทั้งหมด
- flow สำหรับจัดเก็บพวก Activity และ Fragment ต่าง ๆ ของ app ไว้ โดยในแต่ละ activity มีขนาดใหญ่น่าดู เนื่องจากยังเขียนในรูปแบบปกติ คือ รับ action ต่าง ๆ ผ่าน activity และเรียก class ต่าง ๆ เพื่อให้ได้ข้อมูลที่ต้องการ และแสดงผลกลับไป