Hello fellas! It’s been a while since I wrote my last article (it’s almost 3 years) #lol

Yeah, it’s not your fault… just Me, have been so busy during my daily activity as an Engineering Manager at one of the B2B eComms in Indonesia (I know it, you’ll notice that later) #lmao

Anyway, let’s talk about android development (again). Maybe this is one of the most (still) hot topics within Android Developer’s life. I think everybody already learned this things, because nowaday this is the most important part for anyone who will try to learn android development

Today, I want to introduce you to an awesome unit testing framework that written by JetBrains team. We called it as SPEK 👍 So, What is it ? It’s a Kotlin Specification framework for the JVM, Used to be a kind of new unit testing based on TDD (Test driven development) and BDD (Behavior driven development) concept. As far as I Know (AFAIK), Spek run well with jUnit5 libraries.

Like any other unit testing framework, Spek brings a default step on writing a test, but with a declarative way 😃 … before going further, we have to define dependencies that…

Hi folks! back again to my story, and this is the last part of my story telling about Anko as one of the most famous helper library in Kotlin (especially for Android 😃)… if you need to read my previous story, you can check on this link.

Right now, I’ll tell you a short background on Kotlin Coroutines. Based on Kotlin official documentation

Coroutines provide a way to avoid blocking a thread and replace it with a cheaper and more controllable operation: suspension of a coroutine


Coroutines simplify asynchronous programming by putting the complications into libraries. The logic of…

Hi, back again with story series of Anko 👍 … in the last article we already told about the basic of Anko. So, in this session I’ll continue explaining about how to create a simple SQLite DB using Anko.

First of all, we need to add dependencies… to enable Anko SQLite function;

dependencies {
implementation 'org.jetbrains.anko:anko-sqlite:0.10.5'

Usually we need to define SQLite helper to manage the creation of our database. In Anko, we also need to define that things… with simple way like this;

class DBOpenHelper(context: Context) : ManagedSQLiteOpenHelper(context, "user.db", null, 1) {override fun onCreate(db: SQLiteDatabase?) {…

Hey guys! it’s been a while since I’m writing last stories in Medium 😄 … Today, I will tell you a little bit about one of the most famous helper libraries in Android that also written by JetBrains team. It’s called ANKO stands for “Android-Kotlin” (I think) 😆

So, what is it ? refer to their documentation on GitHub https://github.com/Kotlin/anko

Anko is a Kotlin library which makes Android application development faster and easier. It makes your code clean and easy to read, and lets you forget about rough edges of the Android SDK for Java

It states that “It…

Halo kawan-kawan semua! apa kabar nih ? udah lama ya Saya gak nulis lagi 😄 … Kesibukan kerja saat ini membuat Saya agak terhambat untuk melanjutkan tulisan dari artikel sebelumnya

Tanpa basa-basi lagi, kita mulai aja yuk! Bagi yang sudah paham tentang reactive programming mungkin tidak akan mengalami kesulitan untuk mencoba migrasi dari versi 1 ke versi 2 😜… Dan bagi yang belum paham apa itu reactive, ada baiknya baca kembali di artikel Saya yang pertama

Pada versi 2 ini, kita akan di suguhi berbagai macam tipe reactive yang bisa kita pakai sesuai kebutuhan. Apa saja sih tipe-tipe tersebut …

Pada artikel sebelumnya, kita telah membahas tahap awal pengenalan pemrograman di Android menggunakan bahasa Kotlin. Pada artikel kali ini, kita akan coba mempelajari apa itu Kotlin Extensions. Berdasarkan dokumentasi dari kotlin itu sendiri extension yaitu seperti berikut ini…

Kotlin, similar to C# and Gosu, provides the ability to extend a class with new functionality without having to inherit from the class or use any type of design pattern such as Decorator. This is done via special declarations called extensions. Kotlin supports extension functions and extension properties

Sederhananya adalah ada beberapa fungsi yang biasa kita jadikan sebagai common function yang tujuannya…

Kotlin merupakan Bahasa Pemrograman modern yang bersifat statically-typed yang dapat di jalankan di atas platform Java Virtual Machine (JVM). Kotlin juga dapat di kompilasi (compile) ke dalam bentuk JavaScript. Lalu, siapakah tim di balik pengembangan bahasa tersebut ? ya, tidak lain adalah JetBrains yang juga mengembangkan salah satu tools pemrograman (IDE) yang saat ini di adopsi oleh google untuk di gunakan sebagai tools pengembangan aplikasi di Android (Android Studio).

Lalu, apa saja sih kelebihan dari kotlin tersebut dibandingkan dengan bahasa pemrogaman lainnya (dalam hal ini Java) ? …

Welcome back to My Story. Today I’ll share something about how to make a compressed APK using Facebook Redex. Redex is an Android bytecode (dex) optimizer originally developed at Facebook. It provides a framework for reading, writing and analyzing .dex files, and a set of optimization passes that use this framework to improve bytecode. An APK optimized by Redex should be smaller and faster than its source.

Before we start to make a compressed APK using this tools, we have to build them from source. You can see the step of how to build Redex tools from Facebook Redex Website.

Once the tools already build, you can sign your APK using this command…

ANDROID_SDK=$ANDROID_HOME redex --sign --keystore <your_keystore_file> --keyalias <your_keyalias> --keypass <your_keypass> <your_apk_file> -o <path_to_your_new_signed_apk>

Then, you can see the different size and speed from your APK before and after using this tools :)

Hola bro! back again to my story. Right now I’ll share a little things about how to export realm file into your PC. It just because you wanna know if the database that you’ve been created or object you’ve just insert into realm are work properly for example :)

If you don’t know what is realm, you can go directly to this page. Ok let’s talk with simple example here. Assume that you’ve already add the realm plugin. I’ll create a RealmObject called User.

public class User extends RealmObject {

private String email…

Budi Oktaviyan

The only way to do great work is to love what you do

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store