id android dev talk - observer pattern, event bus usage, firebase & geofire

20
Membangun Aplikasi Android yang Event Responsive dan Real Time

Upload: dicoding

Post on 16-Apr-2017

699 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: ID Android Dev Talk  - Observer Pattern, Event Bus Usage, Firebase & Geofire

Membangun Aplikasi Android yang Event Responsive dan Real Time

Page 2: ID Android Dev Talk  - Observer Pattern, Event Bus Usage, Firebase & Geofire

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

Page 3: ID Android Dev Talk  - Observer Pattern, Event Bus Usage, Firebase & Geofire

Responsive App : Observer Pattern di Android dan Bagaimana GreenRobot EventBus Bekerja

Page 4: ID Android Dev Talk  - Observer Pattern, Event Bus Usage, Firebase & Geofire

Observer PatternHubungan 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

Page 5: ID Android Dev Talk  - Observer Pattern, Event Bus Usage, Firebase & Geofire

Gambaran di UML Diagram

Page 6: ID Android Dev Talk  - Observer Pattern, Event Bus Usage, Firebase & Geofire

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

Page 7: ID Android Dev Talk  - Observer Pattern, Event Bus Usage, Firebase & Geofire

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

Page 8: ID Android Dev Talk  - Observer Pattern, Event Bus Usage, Firebase & Geofire

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 prosesTerhadap perubahan yang terjadi

Sample tersedia di https://github.com/sidiqpermana/SampleObserver

Page 10: ID Android Dev Talk  - Observer Pattern, Event Bus Usage, Firebase & Geofire

Penggunaan GreenRobot Eventbus

Page 11: ID Android Dev Talk  - Observer Pattern, Event Bus Usage, Firebase & Geofire

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!

Page 12: ID Android Dev Talk  - Observer Pattern, Event Bus Usage, Firebase & Geofire

Cara kerja EventBus

Page 13: ID Android Dev Talk  - Observer Pattern, Event Bus Usage, Firebase & Geofire

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 prosesTerhadap perubahan yang terjadiSample tersedia di : https://github.com/sidiqpermana/SampleGreenRobotEventBus

Page 15: ID Android Dev Talk  - Observer Pattern, Event Bus Usage, Firebase & Geofire

Real Time Tracking dengan Firebase GeoFire

Page 16: ID Android Dev Talk  - Observer Pattern, Event Bus Usage, Firebase & Geofire

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

Page 17: ID Android Dev Talk  - Observer Pattern, Event Bus Usage, Firebase & Geofire

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

Page 18: ID Android Dev Talk  - Observer Pattern, Event Bus Usage, Firebase & Geofire

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

Page 19: ID Android Dev Talk  - Observer Pattern, Event Bus Usage, Firebase & Geofire

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

Page 20: ID Android Dev Talk  - Observer Pattern, Event Bus Usage, Firebase & Geofire

Matur Nuwun