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.

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
CategoriesProgramming

Aplikasi Video Conference dengan Flutter

Pandemi Covid-19 benar-benar mengubah kebiasaan masyarakat. Mulai dari sekolah sampai bekerja yang awalnya kegiatan dilakukan secara tatap muka, sekarang berubah menjadi serba online dengan memanfaatkan teknologi yang bernama Video Conference.

Video Conference memungkinkan kita berkomunikasi dengan lebih dari satu orang dalam waktu yang bersamaan. Kali ini kita akan mencoba membuat aplikasi Video Conference dengan menggunakan Flutter.

Continue reading
CategoriesInternetProgramming

Capture API Endpoint yang jalan di Aplikasi Smart Phone menggunakan Postman

API Endpoint hampir pasti digunakan di Aplikasi Android maupun IOS, tentunya misal pembaca adalah program akan penasaran apakah API yang dibuat kita aman dan apakah mungkin ter ekspose. Jawabannya iya sangat mungkin untuk di capture. Kali ini kita akan membahas tuntas salah satu cara untuk Capture atau sniffing API yang jalan di Aplikasi Smart Phone menggunakan Postman. Cara ini bisa dilakukan untuk Optimasi API yang kita Buat untuk menghindari data leaks. Di akhir akan saya jelaskan bagaimana cara untuk menghindari data leaks.

Berikut pengetahuan Dasar sebelum kita Bermain main lebih dalam:

1.  API Endpoint.

API(Application Programming Interface) merupakan sekumpulan (method, fungsi atau URL endpoint) yang digunakan untuk mengembangkan aplikasi lebih dari satu platform yang berbeda. Lalu apa kegunaan API ini? dengan menggunakan API maka kita dapat mengunakan sumber daya dari aplikasi lain tanpa perlu mengetahui bagaimana aplikasi itu dibuat. 

2. Postman.

POSTMAN adalah sebuah aplikasi (berupa plugin) untuk browser chrome, fungsinya adalah sebagai REST Client atau istilahnya adalah aplikasi yang digunakan untuk melakukan uji coba REST API yang telah kita buat. silakan download di link berikut: https://www.postman.com/downloads/

3. Proxy.

Proxy server (peladen proxy) adalah sebuah komputer server atau program komputer yang dapat bertindak sebagai komputer lainnya untuk melakukan request terhadap content dari Internet atau intranet. disini yang akan kita gunaan sebagai proxy server adalah PC.

 

Ayo kita Praktikan untuk lebih mudahnya:

Keterangan :  Pastikan menyiapkan PC dan Smart Phone.  PC dan Smart Phone harus dalam satu Jaringan. PC sebagai alat Capture sedangkan Smart Phone yang di Capture.

  1. Setting Postman klik tombol Capture Request and Cookies.
    Menu untuk Capture Request and Cookies
    Setting seperti Gambar berikut:
    Setting Capture requests an cookies Postman
  2.  Cek terlebih dahulu IP Address PC kita berapa, IP ini yang akan digunakan sebagai Hostname di proxy Smart Phone saya yaitu : 192.168.53.234
    IP Address PC
  3.   Setting Proxy di Smart Phone dengan menggunakan Hostname / IP PC kita dan masukan Port yang sudah kita setting di Postman(saya menggunakan Smart Phone Vivo Y31).
    Setting Proxy di Smart Phone
  4. Setting selesai. Sekarang waktunya Capture API, saya ingin Capture API dari Aplikasi KAI Access, buka aplikasi KAI access.
    Aplikasi KAI Access
  5.            Setelah dibuka dan melakukan beberapa proses di Aplikasi KAI Access, maka semua request akan ter Capture di Postman lengkap dengan URL, Header, Request dan response.

    Hasil Capture API saya taruh di History.
    Salah satu API Endpoint yang saya dapat dari Capturing.

Kesimpulan:

Ini adalah salah satu cara yang saya  gunakan untuk mencari celah / bug dari suatu aplikasi karena kebanyakan aplikasi API tidak ter bundle atau tidak double encrypt dan tidak ada ssl security sehingga sangat mudah data leaks atau rusak, tentu environment dasar dari sisi backend diperlukan untuk memperkuat suatu system. Salah satu cara preventif dasar adalah pastikan URL End Point API menggunakan ssl security dan pastikan data public dan private dibedakan dengan auth.

Semoga Bermanfaat

Wasallamualaikum.