Dicoding Developer Coaching merupakan webinar, yang membahas tuntas kendala maupun pertanyaan yang sering ditanyakan di Academy Dicoding.
Tema kali ini adalah "Melakukan Testing secara Otomatis pada Android".
Di sini kamu belajar mengenai background thread, di mana kita dapat menciptakan thread baru dan menjalankan proses di thread tersebut. Terciptanya thread baru dapat memenuhi aturan nomor 1 tentang pengalaman pengguna yang baik, yaitu dengan tidak memblokir UI thread. Penasaran?
Saksikan selalu Dicoding Developer Coaching di: dicoding.id/dicodingdevelopercoaching.
4. Aturan Thread di Android
Long task -> Hang/Lag/Freeze UI
Lebih dari x (dulu 5) detik -> ANR (Application Not Responding)
Dua (2) Aturan simpel terkait dengan UI Threads:
1. Jangan block UI Threads
2. Jangan akses UI/View dari luar UI Threads
6. Update UI
Sesuai dengan Rule no 2, update UI harus di UI Thread.
Jadi, ketika sudah berbeda Threads, perlu kembali ke UI Thread.
Di Android, bisa dengan menggunakan Handler.
8. Asynchronous & Multi Threading
Ini adalah 2 hal yang berbeda.
● Asynchronous : Non blocking Operation
● Synchronous : Sequence Operation
● Single Threading : Satu Thread
● Multi Threading : Banyak Thread
16. Executors
Komponen pada Android yang memiliki kemampuan untuk memanajemen banyak
thread sekaligus, baik dari segi urutan proses, penjadwalan, maupun menjalankan
proses secara paralel.
Bisa sebagai replacement dari Asynctask.
Macam-macam:
● newSingleThreadExecutor
● newFixedThreadPool(nThreads)
● newCachedThreadPool
17.
18. Coroutines
● Bagian dari Kotlin
● Lightweight
● Fewer Memory Leaks
● Built-in Cancellation Support
● Jetpack Integration
20. Coroutines Dispatcher
● Dispatchers.Main : UI Thread
● Dispatcher.IO : Disk or Network IO
● Dispatcher.Default : CPU intensive di luar Main Thread
● Dispatcher.Unconfined
● newSingleThreadContext("MyOwnThread")
21. Skenario:
1. Menjalankan proses lama di UI Thread.
2. Menjalankan proses lama di UI Thread secara asynchronous dengan Coroutines.
3. Menggunakan Executors untuk menjalankan proses lama.
Demo Sample App