Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Membangun Aplikasi Android yang Event Responsive dan Real Time

Membangun Aplikasi Android yang Event Responsive dan Real Time

Deck ini menjelaskan bagaimana Observer Patter diterapkan di android untuk mendukung responsivitas aplikasi terhadap perubahan state dan event serta penggunaan GreenRobot EventBus dalam implementasi ObserverPattern yang mudah diimplementasi plus Pengenalan Firebase GeoFire untuk membangun aplikasi real time tracking

Sidiq Permana

January 26, 2016
Tweet

More Decks by Sidiq Permana

Other Decks in Programming

Transcript

  1. Hi, Saya Sidiq • Chief Innovation Officer at Nusantara Beta

    Studio • Google Developer Expert for Android • Intel Android Software Innovator • Developer Mengajar Initiator • ID-Android-Dev TechTalk Co-Initiator • Passionate coder, mentor, traveller and diver
  2. Observer Pattern Hubungan dependensi antar obyek yang bersifat satu ke

    banyak dalam sebuah aplikasi yang jika terdapat perubahan pada sebuah objek maka semua obyek yang behubungan akan menerima notifikasi dan melakukan proses update terhadap perubahan tersebut secara otomatis. Class A (Publisher) Class B (Subscriber) Class C (Subscriber) Changes Notifies Does the Update (update()) Does the Update (update()) 1 2 3 React of notified changes
  3. Hal yang perlu diperhatikan • Setiap obyek bisa menjadi publisher

    sekaligus subscriber tergantung dari sudut pandang dependensi dan subyek event yang ada • Obyek yang diamati disebut subyek dan obyek yang mengamati disebut observer/listener • Setiap obyek yang akan menjadi observer harus diregistrasikan terlebih dahulu (di android pada onCreate()/onResume()) dan dinonaktifkan (deregistration) ketika obyek akan dimusnakan dari memory (di android pada method onDestroy()) • Setiap obyek turunan observable wajid didaftarkan di Custom Application
  4. Manfaat Observer Pattern • Mempermudah komunikasi antar komponen seperti fragment,

    activity dan service • Aplikasi dapat lebih reaktif/responsif terhadap perubahan event/state yang ada. Misal : updating data dari webservice dan local database
  5. Contoh Kasus Class A (Publisher) Class B (Subscriber) Class C

    (Subscriber) Changes Notifies Does the Update Does the Update 1 2 3 React of notified changes • Kita memiliki 3 Activity yang mengimplementasikan Observer • Activity A akan melakukan perubahan terhadap sebuah obyek • Activity B dan Activity C akan menerima perubahan tersebut dan bereaksi secara otomatis untuk melakukan proses Terhadap perubahan yang terjadi Sample tersedia di https://github.com/sidiqpermana/SampleObserver
  6. GreenRobot EventBus • Implementasi dari ObserverPattern dalam bentuk library pada

    Android • Memudahkan komunikasi antar komponen seperti : Activity, Service, Fragment dan Background Thread serta melakukan optimasi proses didalamnya. • Less code, better quality. And you don't need to implement a single interface!
  7. Contoh Kasus (modifikasi dengan EventBus) Class A (Publisher) Class B

    (Subscriber) Class C (Subscriber) Changes Notifies Does the Update Does the Update 1 2 3 React of notified changes • Kita memiliki 3 Activity yang meng-instance obyek EventBus • Activity A akan melakukan perubahan terhadap sebuah obyek • Activity B dan Activity C akan menerima perubahan tersebut dan bereaksi secara otomatis untuk melakukan proses Terhadap perubahan yang terjadi Sample tersedia di : https://github.com/sidiqpermana/SampleGreenRobotEventBus
  8. Bacaan Lanjutan • http://codentrick.com/observer-pattern-in-mobile-eventbus-and- notificationcenter/ • https://github.com/greenrobot/EventBus • https://greenrobot.github.io/EventBus/ •

    https://github.com/greenrobot/EventBus/blob/master/HOWTO.md • https://github.com/greenrobot/EventBus/blob/master/COMPARISON.md • http://code.tutsplus.com/tutorials/quick-tip-how-to-use-the-eventbus- library--cms-22694
  9. Realtime dengan Firebase • Firebase merupakan sebuah platform cloud backend

    yang menawarkan layanan Real Time database, authentifikasi, dan hosting • Contoh yang paling relevan adalah messaging atau chatting • Silakan ke https://www.firebase.com/ untuk lebih detail • Ikuti kursus gratisnya di https://www.udacity.com/course/firebase-essentials-for-android-- ud009
  10. GeoFire • Merupakan salah satu implementasi Firebase untuk menyimpan dan

    melakukan query berdasarkan lokasi. • Hasil query akan bersifat realtime berdasarkan update pada masing-masing item • GeoFire melakukan lebih dari sekedar pengukuran jarak antar item (node) tapi juga menseleksi data berdasarkan radius yang diberikan dan menjaga aplikasi tetap ringan dan responsif walau dengan set data yang besar sekalipun
  11. Implementasi GeoFire • Cocok untuk digunakan dalam aplikasi geo-tracking monitoring

    seperti aplikasi transportasi (yang kekinian, gak mau mensyen :D) atau Tracking Pacar, Gebetan, Mantan, Modusan, atau Istri Kamu :D • Umumnya dikombinasikan dengan FusedLocation, Scheduler Service dan Google Maps
  12. Case Study • Kita akan membuat aplikasi sederhana menampilkan titik

    dari user yang mendownload aplikasi dan tracking lokasinya! • Sample tersedia di https://github.com/sidiqpermana/SampleGeoFire • Contoh app : https://goo.gl/8Fq6yC