CategoriesAndroidFlutteriOSProgrammingUncategorized

Implementasi Deep Link di Flutter

Pernahkah kalian mengklik suatu link pada Smartphone kalian tapi link tersebut tidak mengarah ke browser melainkan mengarah ke suatu aplikasi ?
hal itu dinamakan Deep Link. Deep Link adalah sebuah hyperlink yang akan mengarahkan user ke sebuah fitur di pada aplikasi. biasanya Deep Link dimanfaatkan untuk link referral, link detail produk, dan banyak fungsi lainnya.

Continue reading
CategoriesAndroidFlutteriOSProgramming

Threading di Flutter dengan Isolate

Pernahkan device kalian terasa berat atau mungkin sampai aplikasinya not responding saat menjalankan suatu method atau function dari kodingan flutter kalian ? kenapa bisa terasa berat padahal sudah dijalankan menggunakan async/await ? itu karena async/await berjalan di thread utama yang bertugas untuk memproses UI / Tampilan atau bisa disebut dengan UI Thread. jika method/function yang membutuhkan waktu lama untuk diproses dijalankan di UI Thread akan menyebabkan Not Responding. biasanya method/function yang berhubungan dengan ImageProcessing yang membutuhkan waktu lama untuk memproses. solusinya agar tidak Not Responding adalah memproses method/function tersebut di Thread lain agar tidak mengganggu UI Thread. salah satu metode Threading di Flutter adalah menggunakan Isolate.

Continue reading
CategoriesAndroidFlutteriOSProgrammingSwift

Berkenalan dengan Sealed Class

Perkembangan bahasa pemrograman semakin memudahkan programmer untuk membuat Aplikasi. semakin banyak metode yang membantu meningkatkan efisiensi dan makin memudahkan dalam Maintenance Aplikasi. salah satu hasil perkembangan tersebut adalah “Sealed Class”.

Sealed Class adalah class yang semua turunannya harus di definisikan di dalam class tersebut. jadi tidak boleh menurunkan class tersebut di luar dari sealed class yang dibuat.

Continue reading
CategoriesAndroidiOSLinuxProgrammingPythonSwift

Open CV untuk Pengolahan Citra dan Penglihatan Komputer.

OpenCV (Open Source Computer Vision) adalah perpustakaan open-source yang berisi berbagai fungsi dan algoritma untuk pengolahan citra dan penglihatan komputer. OpenCV ditulis dalam bahasa pemrograman C++ dan mendukung berbagai platform seperti Windows, Linux, macOS, iOS, dan Android. Selain itu, OpenCV juga menyediakan antarmuka untuk bahasa pemrograman lain seperti Python dan Java. 

Continue reading
CategoriesAndroidProgramming

Bikin List di Jetpack Compose

pada artikel yang lalu kita sudah berkenalan dengan Jetpack Compose, cara baru bikin UI tanpa perlu bikin file xml. kali ini kita akan membahas gimana cara bikin list di jetpack compose yang pasti lebih simpel dan mudah daripada bikin list di xml, apakah benar begitu ? mari kita buktikan.

pada UI lama kita harus melalui beberapa tahapan seperti bikin view untuk tiap item, bikin model untuk data pada list item, bikin adapter, konfigurasi adapter biar bisa terhubung sama recyclerview, dan memasukkan data ke adapter biar datanya bisa tampil di UI. di Jetpack Compose, kita hanya memerlukan beberapa baris kode saja tanpa perlu bikin Adapter. ada 2 cara di Jetpack Compose, yang bisa digunakan untuk membuat list, yaitu pakai Column/Row dan pakai Lazy Layout. kita coba bikin pakai Column terlebih dahulu.

Continue reading

CategoriesAndroidAutomated testsProgramming

Menggunakan EspressoIdlingResource untuk UI Testing di Android

UI Testing di Android sangat bermanfaat dalam development, karena mempercepat proses development dan debugging. Developer tidak perlu capek-capek klik klik dan scroll hp untuk testing aplikasi karena semua serba otomatis di UI Testing. ada satu masalah yang sering dihadapi saat UI Testing yaitu saat ada Activity yang me request data dari API seringkali membuat Activity stuck tampilannya hingga membuat testing yang berjalan jadi Error. untuk menghadapi kasus seperti ini kita memerlukan EspressoIdlingResource.

Continue reading
CategoriesAndroidProgramming

Belajar Dependency Injection Koin di Android

Penggunaan Dependency Injection cukup penting dalam development aplikasi Android, karena selain membuat kode menjadi lebih clean code dan testable, juga membuat performa aplikasi jadi lebih baik.

Google merekomendasikan Dependency Injection Dagger, namun Dagger terkadang masih susah dipelajari untuk pemula dan terkadang mudah error karena memerlukan class yang digenerate oleh dagger. ada satu library Dependency Injection yang bisa mengatasi hal tersebut, library itu adalah Koin. Koin adalah Library yang Ringan dan Pragmatic. Koin dibuat dan digunakan di Kotlin. Koin tidak menggunakan class yang digenerate jadi meminimalisir error.

Continue reading
CategoriesAndroidProgramming

Tips Android Developing dengan Kotlin

dalam membuat aplikasi android kita seringkali terpaku pada satu metode, padahal metode tersebut telah usang dan sudah digantikan dengan metode lain yang lebih efektif. kita memang harus selalu update kalau jadi seorang Software Engineer, termasuk update juga tentang metode-metode dalam developing aplikasi. kali ini kita akan membahas metode-metode apa yang disarankan untuk dipakai saat men-develop aplikasi android saat artikel ini ditulis.

Continue reading
CategoriesAndroidAutomated testAutomated testsProgramming

Testing API di Android dengan MockWebServer

Dalam membuat Aplikasi kita banyak bergantung ke REST API untuk mendapatkan data maupun mengirimkan data. tentunya kita memerlukan akses internet yang lancar agar proses development berjalan tanpa hambatan, itu karena kita langsung mengakses server REST API menggunakan koneksi internet kita. sebenarnya tidak ada salahnya melakukan testing dengan langsung call API dari server namun hal ini membuat kita bergantung ke kelancaran koneksi internet untuk mendapatkan data. hal ini dapat dicegah dengan membuat server tiruan / mock dengan data yang sama dengan server asli.

Continue reading
CategoriesAndroidModularProgramming

Mengenal konsep Modular pada Android

Sebagian besar dari kita pasti seringkali bikin Aplikasi Android yang Monolith. Monolith berarti kita membuat semua code di aplikasi menggunakan 1 Module yaitu Module app. lalu apa masalahnya jika kita hanya membuatnya di 1 module saja ? seharusnya memang tidak ada masalah dan Aplikasi pasti masih bisa di run dengan lancar. masalah terjadi jika suatu aplikasi sudah besar dan memiliki banyak fitur, pasti agak membingungkan semua ditaruh di hanya pada 1 module saja, kita perlu membaginya menjadi beberapa module berdasarkan fitur. ini juga akan mempermudah jika kita ingin mengcopy fitur yang ada ke aplikasi lain tanpa harus mengatur ulang nama package pada tiap file.

Continue reading