CategoriesAndroidProgrammingSecurity

Mengamankan SharedPreferences pada Aplikasi Android

SharedPreferences merupakan penyimpanan key-value data sederhana pada Android. SharedPreferences seringkali digunakan untuk menyimpan setting pada aplikasi, sering juga digunakan sebagai session yang menyimpan info login yang memuat token user untuk login padahal sebenarnya menyimpan data penting seperti user token di SharedPreferences merupakan hal yang fatal dan bisa menyebabkan system di bobol oleh hacker karena SharedPreferences bisa diakses dan dibaca oleh user yang memiliki akses root pada devicenya.

Lalu bagaimana cara mengamankan SharedPreferences agar tidak mudah diakses oleh user ? caranya adalah dengan meng enkripsi SharedPreferences tersebut. Android Jetpack menyediakan satu security library untuk memenuhi kebutuhan ini, nama library ini adalah EncryptedSharedPreferences.

Apa itu EncryptedSharedPreferences ?
singkatnya, EncryptedSharedPreferences adalah SharedPreferences yang di enkripsi agar tidak mudah dibaca oleh user yang tidak dikehendaki. yang dienkripsi disini adalah key dan value nya, key dienkripsi dengan algoritma enkripsi deterministik dan value nya diekripsi menggunakan AES-256 GCM yang bersifat deterministik. agar dapat lebih mudah memahaminya kita praktekkan cara penerapannya.

Continue reading
CategoriesAndroidProgramming

Mengenal Architecture Pattern MVP pada Android Development

Architecture Pattern adalah bagaimana susunan kode kita pada saat membuat program / aplikasi. contoh dari Architecture Pattern adalah MVC (Model View Controller), MVP (Model View Presenter), dan MVVM (Model View ViewModel). sebagian dari kita mungkin lebih familiar dengan istilah design pattern bahkan salah menganggap kalau MVC, MVP, dan MVVM adalah design pattern. padahal Design Pattern dan Architectural Pattern adalah 2 hal yang berbeda. Design Pattern adalah istilah yang merujuk pada solusi umum yang digunakan untuk memecahkan masalah yang sering terjadi dalam konteks tertentu, contoh dari Design Pattern adalah Factory Pattern, Adapter Pattern, Singleton Pattern, Builder Pattern, dan lain sebagainya. Design Pattern akan saya bahas di artikel yang lain, tetap stay tune di blog ini.

Penggunaan Architecture Pattern cukup penting dan cenderung memudahkan kita dalam proses development, apalagi jika kita berada dalam satu tim development. karena Architecture Pattern membagi tiap koding sesuai dengan fungsinya masing-masing, jadi kita tidak melakukan koding di satu class saja namun dipisah-pisah menjadi beberapa class sesuai dengan fungsinya masing-masing.
disini kita akan membahas salah satu dari Architecture Pattern yang paling sering dipakai dalam Android Development, yaitu MVP.

Continue reading
CategoriesAndroidProgrammingUncategorized

Membangun Aplikasi yang ramah disabilitas

Smartphone diciptakan untuk mempermudah kehidupan manusia, termasuk yang memiliki keterbatasan fisik. OS Android juga diciptakan untuk mereka yang memiliki keterbatasan fisik, maka dari itu Android menyediakan fitur Accessibility secara default pada menu Pengaturan untuk membantu mereka dalam menjalankan Smartphone. fitur Accessibility tidak akan berjalan optimal jika Developer sembarangan dalam membuat aplikasi. terdapat beberapa guide agar fitur Accessibility dapat berjalan optimal dan bisa mempermudah pengguna disabilitas dalam menggunakan aplikasi kita.

Continue reading
CategoriesAndroidProgramming

Menyimpan data dengan Room di Android

Teori

Dalam membuat aplikasi Android kita terkadang harus menyimpan data yang dihasilkan dari aplikasi kita, baik tersimpan secara cloud ataupun local. di Android ada 2 library penyimpanan data yang dikenal yaitu SQLite dan Realm namun yang paling sering dipakai adalah SQLite. namun untuk menggunakan SQLite perlu banyak kode yang terkadang membingungkan untuk maintainingnya. karena itu Room diciptakan, Room menggunakan SQLite sebagai core nya namun dengan kode yang lebih simple dan mudah dimengerti.

“Room memberikan lapisan abstraksi pada SQLite untuk memungkinkan akses database yang lancar sekaligus memanfaatkan kemampuan SQLite secara optimal”

source : https://developer.android.com/training/data-storage/room
Continue reading
CategoriesAndroidAutomated testAutomated tests

Instrumentation Testing pada Android

Setelah kemarin kita membahas tentang unit testing, sekarang kita membahas jenis testing lainnya di android yaitu Instrumentation Testing. Instrumentation Testing atau biasa disebut dengan UI Testing bertujuan untuk menguji Aplikasi melalui instruksi-instruksi yang telah dibuat sebelumnya ke UI aplikasi kita, karena itu Instrumentation Testing membutuhkan emulator / real device untuk menjalankannya.
masih belum paham ? kita coba praktekkan sekarang.

Continue reading
CategoriesAndroidAutomated testProgramming

Unit Testing pada Aplikasi Android

Saat ngoding kita tentu harus menguji kodingan kita terlebih dahulu agar kita bisa tau kodingan kita benar atau error. tidak terkecuali saat ngoding aplikasi Android. mungkin kebanyakan dari kita melakukan pengujian aplikasi Android secara manual dengan melakukan prosedur yang telah kita tentukan secara berulang ulang, hal ini sebenarnya cukup melelahkan dan seringkali membuat kita jenuh.

Continue reading