SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
Depedency Injection dengan
Dagger, Hilt & Koin
Alfian Yusuf Abdullah
Google Associate Android Developer, Code Reviewer Dicoding
Dependencies
Let’s take a sample
Not implemented Dependencies Injection
What’s we get
● Class Car dan Engine saling terhubung erat
(tightly coupled). Sehingga ketika ingin
membuat object baru dengan Engine yang
berbeda, Anda harus membuat Class Car yang
baru lagi.
● Membuat unit testing menjadi lebih sulit.
Karena Anda harus menggunakan real object
Engine secara langsung, Anda tak bisa
menerapkan test-double seperti membuat
fake object atau mock object.
Approaching Dependencies Injection
Manual Dependency
Injection
Constructor
Injection
Engine ke dalam Constructor. Sehingga
implementasi pada kode sebelumnya
akan menjadi seperti disamping
Method/Field
Injection
Beberapa kelas mungkin tidak bisa
ditambahkan constructor karena
memang sudah dibuat oleh sistem,
contohnya seperti Activity dan
Fragment. Jadi, cara yang bisa dilakukan
yaitu mengirimkan dependency
tersebut melalui setter setelah kelas itu
dibuat seperti disamping
Service Locator
Service
Locator
Service locator berbeda dengan
dependency injection dalam hal
mengontrol dependensi. Pada service
locator class Car yang mengontrol
untuk mengambil object mana yang
akan di-inject. Sedangkan pada
dependency injection Application-lah
yang memiliki kontrol untuk
memberikan / meng-inject object yang
membutuhkan.
Common Problems
Injection Library
Dagger adalah library yang sebelumnya dibuat oleh Square dan kini
di-maintain oleh Google. Library ini termasuk yang banyak digunakan oleh
industri sejak lama. Library ini akan otomatis men-generate kode untuk
injection saat di-compile daripada menuliskannya satu per satu. Sehingga
kode Anda menjadi lebih mudah untuk di-refactor, lebih mudah dites, dan
lebih mudah digunakan kembali. Saat ini Dagger terus mengalami
perkembangan dan support yang lebih bagus dengan Android Studio.
Koin adalah library dependency injection yang dibuat 100% Kotlin oleh
Arnaud Giuliani bersama dengan komunitas. Dengan menggunakan Koin
Anda bisa membuat dependency injection dengan lebih simpel karena
tanpa generated code yang berlebih seperti Dagger. Walaupun banyak
yang menyebut bahwa Koin bukan dependency injection -melainkan
service locator-, banyak industri yang menggunakan Koin karena lebih
mudah dipelajari daripada Dagger.
Let’s get start with Dagger
Basic concepts
Ada 3 (tiga) syarat supaya Dagger bisa melakukan injection, yaitu:
● Field yang akan di-inject harus public.
● Field yang akan di-inject harus diberi annotation @Inject.
● Method inject(client) harus dipanggil dari activity/fragment yang
membutuhkan.
Dagger Dependencies
In Action: Without Dagger
In Action: With Dagger
In Action: With Dagger
Dagger Module Creation
@module
@component
Activity injection
Activity injection
Let’s move to Koin!
Basic concepts
Ada 3 (tiga) syarat untuk melakukan injection pada Koin, yaitu:
● Field yang akan di-inject harus bertipe val.
● Field yang akan di-inject harus menggunakan lazy evaluation by inject().
● Constructor yang di-inject tidak boleh private.
Koin Dependencies
In Action: Without Koin
In Action: With Koin
Koin Module Creation
module
startKoin()
Constructor Injection
What about constructor injection with Dagger?
What about constructor injection with Dagger?
Koin vs Dagger?
Function
Pros and Cons
Dagger-hilt?
Contact:
@alfianyabdullah
THANKS!
Follow us: @dicoding

Weitere ähnliche Inhalte

Was ist angesagt?

Apa yang Baru di Android Studio 4.1 - Arif Faidzin
Apa yang Baru di Android Studio 4.1 - Arif FaidzinApa yang Baru di Android Studio 4.1 - Arif Faidzin
Apa yang Baru di Android Studio 4.1 - Arif FaidzinDicodingEvent
 
Panduan Instalasi Android Studio
Panduan Instalasi Android StudioPanduan Instalasi Android Studio
Panduan Instalasi Android StudioAgus Haryanto
 
Software Engineering 1 (Software Development Process Model)
Software Engineering 1 (Software Development Process Model)Software Engineering 1 (Software Development Process Model)
Software Engineering 1 (Software Development Process Model)Adam Mukharil Bachtiar
 
1.suryo_atmojo-materi react-native 1 (mengenal react-native)
1.suryo_atmojo-materi react-native 1 (mengenal react-native)1.suryo_atmojo-materi react-native 1 (mengenal react-native)
1.suryo_atmojo-materi react-native 1 (mengenal react-native)Suryo Atmojo
 
Sharring session : Understanding QA Collaboration within Project Development
Sharring session : Understanding QA Collaboration within Project DevelopmentSharring session : Understanding QA Collaboration within Project Development
Sharring session : Understanding QA Collaboration within Project DevelopmentID CORE INDONESIA
 
Codeigniter by faiz
Codeigniter by faizCodeigniter by faiz
Codeigniter by faizNyoNyo Chii
 
mengenal inertia js solusi membangun web spa tanpa harus membuat api
mengenal inertia js solusi membangun web spa tanpa harus membuat apimengenal inertia js solusi membangun web spa tanpa harus membuat api
mengenal inertia js solusi membangun web spa tanpa harus membuat apiAdi Nata
 

Was ist angesagt? (8)

Android Workshop beginner
Android Workshop beginnerAndroid Workshop beginner
Android Workshop beginner
 
Apa yang Baru di Android Studio 4.1 - Arif Faidzin
Apa yang Baru di Android Studio 4.1 - Arif FaidzinApa yang Baru di Android Studio 4.1 - Arif Faidzin
Apa yang Baru di Android Studio 4.1 - Arif Faidzin
 
Panduan Instalasi Android Studio
Panduan Instalasi Android StudioPanduan Instalasi Android Studio
Panduan Instalasi Android Studio
 
Software Engineering 1 (Software Development Process Model)
Software Engineering 1 (Software Development Process Model)Software Engineering 1 (Software Development Process Model)
Software Engineering 1 (Software Development Process Model)
 
1.suryo_atmojo-materi react-native 1 (mengenal react-native)
1.suryo_atmojo-materi react-native 1 (mengenal react-native)1.suryo_atmojo-materi react-native 1 (mengenal react-native)
1.suryo_atmojo-materi react-native 1 (mengenal react-native)
 
Sharring session : Understanding QA Collaboration within Project Development
Sharring session : Understanding QA Collaboration within Project DevelopmentSharring session : Understanding QA Collaboration within Project Development
Sharring session : Understanding QA Collaboration within Project Development
 
Codeigniter by faiz
Codeigniter by faizCodeigniter by faiz
Codeigniter by faiz
 
mengenal inertia js solusi membangun web spa tanpa harus membuat api
mengenal inertia js solusi membangun web spa tanpa harus membuat apimengenal inertia js solusi membangun web spa tanpa harus membuat api
mengenal inertia js solusi membangun web spa tanpa harus membuat api
 

Ähnlich wie Dicoding Developer Coaching #33: Android | Depedency Injection dengan Dagger, Hilt, & Koin

Tugas Rekayasa Web 1
Tugas Rekayasa Web 1Tugas Rekayasa Web 1
Tugas Rekayasa Web 1fahreza yozi
 
Tugas[1] 0317-[dewiapriliani]-[1412510602
Tugas[1] 0317-[dewiapriliani]-[1412510602Tugas[1] 0317-[dewiapriliani]-[1412510602
Tugas[1] 0317-[dewiapriliani]-[1412510602dewiapril1996
 
Tugas i rekayasa web arie firmandani
Tugas i rekayasa web arie firmandaniTugas i rekayasa web arie firmandani
Tugas i rekayasa web arie firmandaniArie Firmandani
 
Seri 5 : Mengaktifkan dan menggunakan emulator Pada App Inventor
Seri 5 : Mengaktifkan dan menggunakan emulator Pada App InventorSeri 5 : Mengaktifkan dan menggunakan emulator Pada App Inventor
Seri 5 : Mengaktifkan dan menggunakan emulator Pada App InventorIki Mazadi
 
Seri 7 : Mengakses aplikasi kamera dgn intent pada app inventor
Seri 7 : Mengakses aplikasi kamera dgn intent pada app inventorSeri 7 : Mengakses aplikasi kamera dgn intent pada app inventor
Seri 7 : Mengakses aplikasi kamera dgn intent pada app inventorIki Mazadi
 
Tugas 1 0317 individu
Tugas 1 0317 individuTugas 1 0317 individu
Tugas 1 0317 individueko nofrianto
 
Fundamental android application development
Fundamental android application developmentFundamental android application development
Fundamental android application developmentGoogle
 
Seri 2 mengenal app inventor lebih dalam 2012
Seri 2 mengenal app inventor lebih dalam 2012Seri 2 mengenal app inventor lebih dalam 2012
Seri 2 mengenal app inventor lebih dalam 2012Iki Mazadi
 
Modul praktikum 17 - Android Sudaryatno
Modul praktikum 17 - Android SudaryatnoModul praktikum 17 - Android Sudaryatno
Modul praktikum 17 - Android SudaryatnoYatno Sudar
 
Tugas[1] 0317-[tryanita]-[1411511676]
Tugas[1] 0317-[tryanita]-[1411511676]Tugas[1] 0317-[tryanita]-[1411511676]
Tugas[1] 0317-[tryanita]-[1411511676]trya nita
 
Google cloud platfrom
Google cloud platfromGoogle cloud platfrom
Google cloud platfromAliimran367
 
Pengenalan App Inventor_1.pdf
Pengenalan App Inventor_1.pdfPengenalan App Inventor_1.pdf
Pengenalan App Inventor_1.pdfJustYahiko
 
FIC - Flutter Basic.pdf
FIC - Flutter Basic.pdfFIC - Flutter Basic.pdf
FIC - Flutter Basic.pdfherminsusilo2
 
Live coding andorid
Live coding andoridLive coding andorid
Live coding andoridArif Huda
 
Pemrograman Mobile - (Pengenalan dan Instalasi Android)
Pemrograman Mobile - (Pengenalan dan Instalasi Android)Pemrograman Mobile - (Pengenalan dan Instalasi Android)
Pemrograman Mobile - (Pengenalan dan Instalasi Android)eltwordy
 
Android Study Jams - Introducing kotlin
Android Study Jams - Introducing kotlinAndroid Study Jams - Introducing kotlin
Android Study Jams - Introducing kotlinalfinazilah
 
Tugas 1 (rekayasa web)
Tugas 1 (rekayasa web)Tugas 1 (rekayasa web)
Tugas 1 (rekayasa web)Linda Lestari
 

Ähnlich wie Dicoding Developer Coaching #33: Android | Depedency Injection dengan Dagger, Hilt, & Koin (20)

Tugas Rekayasa Web 1
Tugas Rekayasa Web 1Tugas Rekayasa Web 1
Tugas Rekayasa Web 1
 
Tugas[1] 0317-[dewiapriliani]-[1412510602
Tugas[1] 0317-[dewiapriliani]-[1412510602Tugas[1] 0317-[dewiapriliani]-[1412510602
Tugas[1] 0317-[dewiapriliani]-[1412510602
 
Tugas i rekayasa web arie firmandani
Tugas i rekayasa web arie firmandaniTugas i rekayasa web arie firmandani
Tugas i rekayasa web arie firmandani
 
Seri 5 : Mengaktifkan dan menggunakan emulator Pada App Inventor
Seri 5 : Mengaktifkan dan menggunakan emulator Pada App InventorSeri 5 : Mengaktifkan dan menggunakan emulator Pada App Inventor
Seri 5 : Mengaktifkan dan menggunakan emulator Pada App Inventor
 
Seri 7 : Mengakses aplikasi kamera dgn intent pada app inventor
Seri 7 : Mengakses aplikasi kamera dgn intent pada app inventorSeri 7 : Mengakses aplikasi kamera dgn intent pada app inventor
Seri 7 : Mengakses aplikasi kamera dgn intent pada app inventor
 
Tugas 1 0317 individu
Tugas 1 0317 individuTugas 1 0317 individu
Tugas 1 0317 individu
 
Fundamental android application development
Fundamental android application developmentFundamental android application development
Fundamental android application development
 
Seri 2 mengenal app inventor lebih dalam 2012
Seri 2 mengenal app inventor lebih dalam 2012Seri 2 mengenal app inventor lebih dalam 2012
Seri 2 mengenal app inventor lebih dalam 2012
 
Pengenalan ReactJS
Pengenalan ReactJS Pengenalan ReactJS
Pengenalan ReactJS
 
Modul praktikum 17 - Android Sudaryatno
Modul praktikum 17 - Android SudaryatnoModul praktikum 17 - Android Sudaryatno
Modul praktikum 17 - Android Sudaryatno
 
Tugas[1] 0317-[tryanita]-[1411511676]
Tugas[1] 0317-[tryanita]-[1411511676]Tugas[1] 0317-[tryanita]-[1411511676]
Tugas[1] 0317-[tryanita]-[1411511676]
 
Google cloud platfrom
Google cloud platfromGoogle cloud platfrom
Google cloud platfrom
 
Pengenalan App Inventor_1.pdf
Pengenalan App Inventor_1.pdfPengenalan App Inventor_1.pdf
Pengenalan App Inventor_1.pdf
 
FIC - Flutter Basic.pdf
FIC - Flutter Basic.pdfFIC - Flutter Basic.pdf
FIC - Flutter Basic.pdf
 
Live coding andorid
Live coding andoridLive coding andorid
Live coding andorid
 
Pemrograman Mobile - (Pengenalan dan Instalasi Android)
Pemrograman Mobile - (Pengenalan dan Instalasi Android)Pemrograman Mobile - (Pengenalan dan Instalasi Android)
Pemrograman Mobile - (Pengenalan dan Instalasi Android)
 
Live coding #1
Live coding #1Live coding #1
Live coding #1
 
Android Study Jams - Introducing kotlin
Android Study Jams - Introducing kotlinAndroid Study Jams - Introducing kotlin
Android Study Jams - Introducing kotlin
 
Tugas 1 (rekayasa web)
Tugas 1 (rekayasa web)Tugas 1 (rekayasa web)
Tugas 1 (rekayasa web)
 
Pengantar telematika part 3
Pengantar telematika part 3Pengantar telematika part 3
Pengantar telematika part 3
 

Mehr von DicodingEvent

Developer Coaching #114.pdf
Developer Coaching #114.pdfDeveloper Coaching #114.pdf
Developer Coaching #114.pdfDicodingEvent
 
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...DicodingEvent
 
tantangan menjadi developer di abad 21
tantangan menjadi developer di abad 21tantangan menjadi developer di abad 21
tantangan menjadi developer di abad 21DicodingEvent
 
Mengenalkan augmented reality (ar) pada snapchat
Mengenalkan augmented reality (ar) pada snapchatMengenalkan augmented reality (ar) pada snapchat
Mengenalkan augmented reality (ar) pada snapchatDicodingEvent
 
Membangun Aplikasi Serverless di Platfrom AWS
Membangun Aplikasi Serverless di Platfrom AWSMembangun Aplikasi Serverless di Platfrom AWS
Membangun Aplikasi Serverless di Platfrom AWSDicodingEvent
 
IDCamp X Madrasah: Pengenalan Computational Thinking
IDCamp X Madrasah: Pengenalan Computational ThinkingIDCamp X Madrasah: Pengenalan Computational Thinking
IDCamp X Madrasah: Pengenalan Computational ThinkingDicodingEvent
 
Membuat Produk Digital Terbaik ala Startup Unicorn
Membuat Produk Digital Terbaik ala Startup UnicornMembuat Produk Digital Terbaik ala Startup Unicorn
Membuat Produk Digital Terbaik ala Startup UnicornDicodingEvent
 
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peran IT Security dalam Penerapan DevOpsTechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peran IT Security dalam Penerapan DevOpsDicodingEvent
 
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CDTechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CDDicodingEvent
 
Membuat Solusi Bermanfaat dengan Programming - Nur Rohman
Membuat Solusi Bermanfaat dengan Programming - Nur RohmanMembuat Solusi Bermanfaat dengan Programming - Nur Rohman
Membuat Solusi Bermanfaat dengan Programming - Nur RohmanDicodingEvent
 
Potensi karier menjadi ios developer di masa depan
Potensi karier menjadi ios developer di masa depanPotensi karier menjadi ios developer di masa depan
Potensi karier menjadi ios developer di masa depanDicodingEvent
 
Id camp x dicoding live : persiapan jadi software engineer hebat 101
Id camp x dicoding live : persiapan jadi software engineer hebat 101Id camp x dicoding live : persiapan jadi software engineer hebat 101
Id camp x dicoding live : persiapan jadi software engineer hebat 101DicodingEvent
 
Tips sukses berkarir sebagai developer dan programmer 2021
Tips sukses berkarir sebagai developer dan programmer 2021Tips sukses berkarir sebagai developer dan programmer 2021
Tips sukses berkarir sebagai developer dan programmer 2021DicodingEvent
 
Teknologi Baru Android di Google I/O 2021 - Andrew Kurniadi
Teknologi Baru Android di Google I/O 2021 - Andrew KurniadiTeknologi Baru Android di Google I/O 2021 - Andrew Kurniadi
Teknologi Baru Android di Google I/O 2021 - Andrew KurniadiDicodingEvent
 
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...DicodingEvent
 
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...DicodingEvent
 
Pengantar Cloud Computing dengan AWS - Petra Novandi Barus
Pengantar Cloud Computing dengan AWS - Petra Novandi BarusPengantar Cloud Computing dengan AWS - Petra Novandi Barus
Pengantar Cloud Computing dengan AWS - Petra Novandi BarusDicodingEvent
 
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...DicodingEvent
 
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...DicodingEvent
 
Dicoding Developer Coaching #32: Android | Reactive Programming dengan RxJava...
Dicoding Developer Coaching #32: Android | Reactive Programming dengan RxJava...Dicoding Developer Coaching #32: Android | Reactive Programming dengan RxJava...
Dicoding Developer Coaching #32: Android | Reactive Programming dengan RxJava...DicodingEvent
 

Mehr von DicodingEvent (20)

Developer Coaching #114.pdf
Developer Coaching #114.pdfDeveloper Coaching #114.pdf
Developer Coaching #114.pdf
 
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...
 
tantangan menjadi developer di abad 21
tantangan menjadi developer di abad 21tantangan menjadi developer di abad 21
tantangan menjadi developer di abad 21
 
Mengenalkan augmented reality (ar) pada snapchat
Mengenalkan augmented reality (ar) pada snapchatMengenalkan augmented reality (ar) pada snapchat
Mengenalkan augmented reality (ar) pada snapchat
 
Membangun Aplikasi Serverless di Platfrom AWS
Membangun Aplikasi Serverless di Platfrom AWSMembangun Aplikasi Serverless di Platfrom AWS
Membangun Aplikasi Serverless di Platfrom AWS
 
IDCamp X Madrasah: Pengenalan Computational Thinking
IDCamp X Madrasah: Pengenalan Computational ThinkingIDCamp X Madrasah: Pengenalan Computational Thinking
IDCamp X Madrasah: Pengenalan Computational Thinking
 
Membuat Produk Digital Terbaik ala Startup Unicorn
Membuat Produk Digital Terbaik ala Startup UnicornMembuat Produk Digital Terbaik ala Startup Unicorn
Membuat Produk Digital Terbaik ala Startup Unicorn
 
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peran IT Security dalam Penerapan DevOpsTechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
 
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CDTechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
 
Membuat Solusi Bermanfaat dengan Programming - Nur Rohman
Membuat Solusi Bermanfaat dengan Programming - Nur RohmanMembuat Solusi Bermanfaat dengan Programming - Nur Rohman
Membuat Solusi Bermanfaat dengan Programming - Nur Rohman
 
Potensi karier menjadi ios developer di masa depan
Potensi karier menjadi ios developer di masa depanPotensi karier menjadi ios developer di masa depan
Potensi karier menjadi ios developer di masa depan
 
Id camp x dicoding live : persiapan jadi software engineer hebat 101
Id camp x dicoding live : persiapan jadi software engineer hebat 101Id camp x dicoding live : persiapan jadi software engineer hebat 101
Id camp x dicoding live : persiapan jadi software engineer hebat 101
 
Tips sukses berkarir sebagai developer dan programmer 2021
Tips sukses berkarir sebagai developer dan programmer 2021Tips sukses berkarir sebagai developer dan programmer 2021
Tips sukses berkarir sebagai developer dan programmer 2021
 
Teknologi Baru Android di Google I/O 2021 - Andrew Kurniadi
Teknologi Baru Android di Google I/O 2021 - Andrew KurniadiTeknologi Baru Android di Google I/O 2021 - Andrew Kurniadi
Teknologi Baru Android di Google I/O 2021 - Andrew Kurniadi
 
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
 
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...
 
Pengantar Cloud Computing dengan AWS - Petra Novandi Barus
Pengantar Cloud Computing dengan AWS - Petra Novandi BarusPengantar Cloud Computing dengan AWS - Petra Novandi Barus
Pengantar Cloud Computing dengan AWS - Petra Novandi Barus
 
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...
 
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...
 
Dicoding Developer Coaching #32: Android | Reactive Programming dengan RxJava...
Dicoding Developer Coaching #32: Android | Reactive Programming dengan RxJava...Dicoding Developer Coaching #32: Android | Reactive Programming dengan RxJava...
Dicoding Developer Coaching #32: Android | Reactive Programming dengan RxJava...
 

Dicoding Developer Coaching #33: Android | Depedency Injection dengan Dagger, Hilt, & Koin