8/19/2019 ID Android Dev Talk -- Observer Pattern, Event Bus Usage, Firebase&Geofire
1/20
Membangun AplikasiAndroid yang EventResponsive dan Real Time
8/19/2019 ID Android Dev Talk -- Observer Pattern, Event Bus Usage, Firebase&Geofire
2/20
Hi, Saya Sidiq•
Chief nnovation !"#er at $usantara %eta • &oogle 'eveloper E(pert for Android
• ntel Android Soft)are nnovator
• 'eveloper Menga*ar nitiator
•'+Android+'ev Te#hTalk Co+nitiator
• assionate #oder, mentor, traveller and div
8/19/2019 ID Android Dev Talk -- Observer Pattern, Event Bus Usage, Firebase&Geofire
3/20
Responsive App - !bserver attern di Android%agaimana&reenRobot Event%us %eker*a
8/19/2019 ID Android Dev Talk -- Observer Pattern, Event Bus Usage, Firebase&Geofire
4/20
!bserver attern
Hubungan dependensi antar obyek yang bersifat sabanyak dalam sebuah aplikasi yang *ika terdapat pepada sebuah ob*ek maka semua obyek yang behubumenerima noti.kasi dan melakukan proses update teperubahan tersebut se#ara otomatis/
Class A0ublisher1
Class %0Subs#riber1
Class C0Subs#riber1
Changes
$oti.es
'o
'o
3
4
5
Rea#t of
8/19/2019 ID Android Dev Talk -- Observer Pattern, Event Bus Usage, Firebase&Geofire
5/20
&ambaran di 2M6 'iagram
8/19/2019 ID Android Dev Talk -- Observer Pattern, Event Bus Usage, Firebase&Geofire
6/20
Hal yang perlu diperhatikan
•
Setiap obyek bisa men*adi publisher sekaligus sutergantung dari sudut pandang dependensi dan sevent yang ada
• !byek yang diamati disebut subyek dan obyek yamengamati disebut observer7listener
•
Setiap obyek yang akan men*adi observer harusdiregistrasikan terlebih dahulu 0di android padaonCreate017onResume011 dan dinonaktifkan 0deregketika obyek akan dimusnakan dari memory 0di amethod on'estroy011
• Setiap obyek turunan observable )a*id didaftarka
8/19/2019 ID Android Dev Talk -- Observer Pattern, Event Bus Usage, Firebase&Geofire
7/20
Manfaat Observer Pattern
•
Mempermudah komunikasi antar komponefragment, a#tivity dan servi#e
• Aplikasi dapat lebih reaktif7responsif terhadperubahan event7state yang ada/ Misal - updata dari )ebservi#e dan lo#al database
8/19/2019 ID Android Dev Talk -- Observer Pattern, Event Bus Usage, Firebase&Geofire
8/20
Contoh Kasus
Class A0ublisher1
Class %0Subs#riber1
Class C0Subs#riber1
Changes
$oti.es
'oes
'oe
3
4
5
Rea#t of n
memiliki 5 A#tivity yang mengimplementasikan !bserverivity A akan melakukan perubahan terhadap sebuah obyekivity % dan A#tivity C akan menerima perubahan tersebut dan bereaksi se#ara otomaap perubahan yang ter*adi
le tersedia di https://github.com/sidipermana/!ample
8/19/2019 ID Android Dev Talk -- Observer Pattern, Event Bus Usage, Firebase&Geofire
9/20
"acaan #an$utan
•
http-77)))/vogella/#om7tutorials7'esignattern!bi#le/html
• http-77)))/tutorialspoint/#om7design9pattern7obs
tern/htm• http-77
)))/#odepro*e#t/#om7Arti#les7:;:;
8/19/2019 ID Android Dev Talk -- Observer Pattern, Event Bus Usage, Firebase&Geofire
10/20
Penggunaan%reen&obot'ventbus
8/19/2019 ID Android Dev Talk -- Observer Pattern, Event Bus Usage, Firebase&Geofire
11/20
%reen&obot 'vent"us
•
mplementasi dari !bserverattern dalam blibrary pada Android
• Memudahkan komunikasi antar komponen A#tivity, Servi#e, >ragment dan %a#kgroundserta melakukan optimasi proses didalamn
• 6ess #ode, better quality/ And you don?t neeimplement a single interfa#e@
8/19/2019 ID Android Dev Talk -- Observer Pattern, Event Bus Usage, Firebase&Geofire
12/20
Cara ker$a 'vent"us
8/19/2019 ID Android Dev Talk -- Observer Pattern, Event Bus Usage, Firebase&Geofire
13/20
Contoh Kasus (modi)kasi denga'vent"us*
Class A0ublisher1
Class %0Subs#riber1
Class C0Subs#riber1
Changes
$oti.es
'oes
'oes
3
4
5
Rea#t of no
memiliki 5 A#tivity yang meng+instan#e obyek Event%usivity A akan melakukan perubahan terhadap sebuah obyekivity % dan A#tivity C akan menerima perubahan tersebut dan bereaksi se#ara otomaap perubahan yang ter*adi
le tersedia di - https-77github/#om7sidiqpermana7Sample&reenRobot
8/19/2019 ID Android Dev Talk -- Observer Pattern, Event Bus Usage, Firebase&Geofire
14/20
"acaan #an$utan
• http-77#odentri#k/#om7observer+pattern+in+mobile+d+noti.#ation#enter7
• https-77github/#om7greenrobot7Event%us
• https-77greenrobot/github/io7Event%us7
• https-77
github/#om7greenrobot7Event%us7blob7master7H!• https-77
github/#om7greenrobot7Event%us7blob7master7C!md
• http-77#ode/tutsplus/#om7tutorials7qui#k+tip+ho)+to
entbus+library++
https://github.com/greenrobot/EventBushttps://github.com/greenrobot/EventBushttps://github.com/greenrobot/EventBushttps://greenrobot.github.io/EventBus/https://github.com/greenrobot/EventBus/blob/master/HOWTO.mdhttps://github.com/greenrobot/EventBus/blob/master/HOWTO.mdhttps://github.com/greenrobot/EventBus/blob/master/COMPARISON.mdhttps://github.com/greenrobot/EventBus/blob/master/COMPARISON.mdhttps://github.com/greenrobot/EventBus/blob/master/COMPARISON.mdhttp://code.tutsplus.com/tutorials/quick-tip-how-to-use-the-eventbus-library--cms-22694http://code.tutsplus.com/tutorials/quick-tip-how-to-use-the-eventbus-library--cms-22694http://code.tutsplus.com/tutorials/quick-tip-how-to-use-the-eventbus-library--cms-22694http://code.tutsplus.com/tutorials/quick-tip-how-to-use-the-eventbus-library--cms-22694http://code.tutsplus.com/tutorials/quick-tip-how-to-use-the-eventbus-library--cms-22694https://github.com/greenrobot/EventBus/blob/master/COMPARISON.mdhttps://github.com/greenrobot/EventBus/blob/master/COMPARISON.mdhttps://github.com/greenrobot/EventBus/blob/master/COMPARISON.mdhttps://github.com/greenrobot/EventBus/blob/master/HOWTO.mdhttps://github.com/greenrobot/EventBus/blob/master/HOWTO.mdhttps://greenrobot.github.io/EventBus/https://greenrobot.github.io/EventBus/https://github.com/greenrobot/EventBushttps://github.com/greenrobot/EventBushttps://github.com/greenrobot/EventBushttps://github.com/greenrobot/EventBushttps://github.com/greenrobot/EventBus
8/19/2019 ID Android Dev Talk -- Observer Pattern, Event Bus Usage, Firebase&Geofire
15/20
&eal +ime +rackingdengan ,irebase %eo
8/19/2019 ID Android Dev Talk -- Observer Pattern, Event Bus Usage, Firebase&Geofire
16/20
&ealtime dengan ,irebase
•
>irebase merupakan sebuah platform #loudyang mena)arkan layanan Real Time databauthenti.kasi, dan hosting
• Contoh yang paling relevan adalah messag#hatting
• Silakan ke https-77)))/.rebase/#om7 untukdetail
• kuti kursus gratisnya dihttps-77)))/uda#ity/#om7#ourse7.rebase+es
r+android++
https://www.firebase.com/https://www.firebase.com/https://www.udacity.com/course/firebase-essentials-for-android--ud009https://www.udacity.com/course/firebase-essentials-for-android--ud009https://www.udacity.com/course/firebase-essentials-for-android--ud009https://www.udacity.com/course/firebase-essentials-for-android--ud009https://www.firebase.com/https://www.firebase.com/
8/19/2019 ID Android Dev Talk -- Observer Pattern, Event Bus Usage, Firebase&Geofire
17/20
8/19/2019 ID Android Dev Talk -- Observer Pattern, Event Bus Usage, Firebase&Geofire
18/20
-mplementasi %eo,ire
•
Co#ok untuk digunakan dalam aplikasi geomonitoring seperti aplikasi transportasi 0yakekinian, gak mau mensyen -'1 atau Tra#ki&ebetan, Mantan, Modusan, atau stri 8am
• 2mumnya dikombinasikan dengan >used6o
S#heduler Servi#e dan &oogle Maps
8/19/2019 ID Android Dev Talk -- Observer Pattern, Event Bus Usage, Firebase&Geofire
19/20
8/19/2019 ID Android Dev Talk -- Observer Pattern, Event Bus Usage, Firebase&Geofire
20/20
Matur 0u1un