Officially Joined Kudo!

After my graduation in Juni 2014, then I officially joined Kudo in the next 2 months (August 2014). So excited to be there. Kudo is a early phase tech startup company based on Jakarta, Indonesia. Kudo build a point of sales that enable cash payments for online transactions. I am the 6th member of this company, and join this company as front-end Android developer.

 

Advertisements

#LessonLearned : JIT (just-in-time) in Android

Setelah beberapa bulan ini ga pernah buka-buka Eclipse buat koding Android lagi (karena harus ngerjain proyek web pake PHP Laravel), akhirnya malem ini gw putuskan untuk sedikit bernostalgia dengan Android. So excited.

Tp kali ini gw ga banyak koding sih, cuma pengen baca-baca tentang Unit Test di Android dan sedikit performance tips. Nah, kebetulan pas lagi baca kitab sucinya Android (developer.android.com) bagian performance tips nemu istilah JIT. So apa itu JIT? Akan sedikit dibahas disini berdasarkan hasil googling-googling.

JIT atau just-in-time sebenarnya bukan istilah yang hanya digunakan dalam dunia programming. Istilah JIT juga biasa digunakan dalam bisnis, terutama dalam logistik. Ketika akan melakukan produksi, ada sejumlah bahan baku yang kita butuhkan. Kadang kali kita menyimpan banyak bahan baku sebagai persiapan untuk long-term production. Nah konsep tersebut cenderung tidak hemat biaya. Sedangkan JIT, adalah kebalikan dari konsep tersebut. Bahan baku yang ada hanyalah apa yang kita butuhkan untuk produksi saat itu, just-in-time. Jadi tujuan utama JIT ini adalah untuk meningkatkan efisiensi produksi.

JIT in Computing

Ketika kita menulis bait-bait kodingan, baik itu dengan bahasa C, C#, Java, Objective C, Pascal, dll, sebenernya tidak ada satu pun yang akan berjalan di komputer, smartphone, atau tablet. Kenapa? Because they need to be “compiled” to run.

compiling

Compiling

Terkadang untuk melakukan compiling kita membutuhkan waktu. Tapi dalam modern programming languange, waktu yang digunakan untuk compile semakin singkat.

Lalu bagaimana dengan Android? Oke, pada dasarnya Android mengimplementasikan konsep JIT seperti ini : setiap apps yang terinstall dalam Android berada dalam posisi uncompile, artinya untuk menjalankan apps tersebut, Android akan melakukan kompilasi. Wondering why setiap kita buka app it takes time sehingga akhirnya app tampil dan kita bisa berinteraksi? Nah! pada saat itu Android melakukan kompilasi terhadap aplikasi yang kita buka, menyimpannya di RAM, baru dieksekusi.

Kebayang kalau semua aplikasi yang terinstall di Android berada dalam posisi precompile, semakin banyak app yang terinstall maka semakin sempit RAM kita.  Begitulah kurang lebih, lets discuss!

First Attempt of Australia Awards Scholarship

Siang ini saya mengirimkan lamaran beasiswa ke Australia Awards Office, untuk mendaftar sebagai applicant Australia Awards Scholarship. Ya, saya berniat untuk melanjutkan study saya ke Australia. Beasiswa Australia Awards adalah salah satu beasiswa yang diberikan pemerintah Australia sebagai bentuk kerja sama dengan Indonesia untuk mendorong pembangunan bangsa. Jadi penerima beasiswa tersebut, diharapkan dapat berkontribusi dalam membangun Indonesia.

Beasiswa ini terbuka untuk umum, walaupun mereka menaruh kuota yang lebih besar untuk PNS dan applicants dari wilayah timur Indonesia. Mungkin karena PNS akan lebih mudah dan realistis dalam berkontribusi dalam membangun Indonesia. Jurusan yang ditawarkan terbagi menjadi 4 area, yang merupakan priroty development areas dalam kerja sama antara Australia dan Indonesia. Area tersebut adalah : sustainable growth and economic management, democracy justice and good governmace, investing in people, safety and peace. Untuk lebih lengkap mengenai priority study dimasing-masing areanya bisa cek langsung di websitenya.

Meskipun saya bukan PNS, bukan applicants dari wilayah timur Indonesia dan bahkan proposed course saya tidak termasuk dalam 4 priority development areas, saya tetap optimis untuk mengikuti beasiswa tersebut. Jurusan yang saya ajukan adalah Master of Engineering (Software with Business) dan Master of Computer Science, sesuai dengan background S1 saya.

Jika ingin melamar beasiswa ini, ada beberapa syarat yang harus dipenuhi, diantaranya TOEFL > 500, IPK > 2.9, dst (untuk lebih lengkap silahkan langsung cek aja di websitenya). Kita juga diharuskan menjawab beberapa pertanyaan essay yang jawabannya mengarah kepada langkah praktis apa yang akan kita lakukan dalam berkontribusi terhadap pembangunan Indonesia.

Persiapan beasiswa saya lakukan kurang lebih 1.5 bulan, tapi tidak terlalu intense. Mulai dari mengikuti test TOEFL ITP, karena ternyata test TOEFL yang saya selama ini saya ikuti di kampus tidak bisa digunakan untuk daftar (TOEFL Prediction). Saya test TOEFL di Pusat Bahasa IPB, dengan membayar biaya 400rb. Dan alhamdulillah, saya berhasil memenuhi syarat dengan mencapai skor 553.

Selanjutnya adalah mengisi form, termasuk essay yang tadi saya sebutkan diatas. Nah, saya pikir disini lah kesempatan saya harus menutupi kelemahan-kelamahan saya. Saya menguraikan mengenai apa yang akan saya lakukan untuk berkontribusi kepada bangsa dengan knowledge, skill dan connection yang akan saya dapatkan di Australia nanti. Saya mencoba menjadikan teknologi (khususnya software) sebagai solusi dari permasalahan-permasalahannya yang dimiliki oleh UKM-UKM di Indonesia, terutama dalam meningkatkan efektivitas pemasaran dan efisiensi produksi. Selain itu juga sebagai penunjang pemerintah lokal untuk menciptakan good governance, dengan melakukan Open Data. Salah satu contoh langkah sederhananya adalah merelease data informasi public sector (geografis, statistik, transportasi, dll) dan merelease data anggaran daerah.

Setelah TOEFL dan form diisi, sisanya kita hanya tinggal melengkapi berkas-berkas seperti akte kelahiran, legalisir ijazah dan transkrip, foto kopi ktp, dll. Untuk ijazah dan transkrip kita tidak diwajibkan mentranslatenya ke bahasa Inggris untuk proses seleksi berkas. Namun jika kita shortlisted ke tahap selanjutnya, yaitu interview dan test IELTS, kita diwajibkan menyerahkan ijazah, transkrip dan akte kelahiran yang sudah di translate.

Semua usaha telah dilakukan untuk memberikan yang terbaik, sekarang tinggal berdoa menunggu pengumuman di bulan Desember. Waktu ini juga akan saya manfaatkan untuk belajar bahasa Inggris, terutama untuk persiapan IELTS. Bismillah, wish me luck from the very first attempt.

Developing, Developers, Love

If you are a developer, or you love to develop, you’re gonna love this video

“Mix and match, put them all together, make the thing you wanna make, not the thing you have to make” – Larry Osterman, Principal Software Design Engineer Windows Runtime Experience Team, Microsoft

“The geekiest thing about me is I actually code in the weekend for fun, but don’t tell anybody” – Tracey Trewin, Developer Division Microsoft

People in the video :

source : http://channel9.msdn.com/Blogs/C9Team/Build-Developer-Video

First 4 things to Build Startup

First 4 things to build startup :

  1. Dirikan Startup untuk menyelesaikan masalah, agar startup dapat mudah diterima di kalangan masyarakat. Contohnya : Sulit mencari toko online yang bisa memberikan harga murah, solusinya dirikan sebuah toko online yang bisa memberikan fitur tawar menawar.
  2. Mulai membangun produk, jangan terlalu banyak pertimbangan (over-analyzed). Baru setelah itu produk disempurnakan.
  3. Hemat dalam marketing, manfaatkan social media seperti facebook dan twitter.
  4. Merumuskan estimasi kebutuhan dana untuk minimal lima tahun ke depan.

That’s it.

Ekonomi Syariah dalam Genggaman??

Hah ? Ekonomi Syariah dalam Genggaman ? maksudnya…???

Sharee

Dimulai dari cerita saya sekitar 2 bulan yang lalu (Agustus 2012) ketika bertemu dengan 2 orang teman, Ridha Danjanny dan Asep Saefullah yang sama – sama kuliah di jurusan Perbankan Syariah dan sama – sama aktif di organisasi Lisensi (Lingkar Studi Ekonomi Syariah) UIN Jakarta, kita ngobrol disitu dan timbul pertanyaan,

“Fi, bisa ga bikin aplikasi android semacam kamus, tapi kamus istilah ekonomi islam?”

Saya adalah mahasiswa jurusan Teknik Informatika di UIN Jakarta, jujur aja hal itu terdengar agak asing di kuping. Tapi setelah dijelaskan lebih lanjut, saya menyanggupinya dan ini ide bagus yang sayang kalau enggak diwujudkan.

Latar belakangnya jelas, teknologi dan ekonomi syariah sama – sama berkembang saat ini, teknologi telah membuat adanya perubahan habitual masyarakat, yang tadinya kalau lagi jalan atau lagi duduk di bis kepala lurus kedepan, sekarang lebih sering nunduk sambil update status atau googling, kenapa ga kita coba manfaatkan momen ini untuk menciptakan sebuah inovasi.

Tujuannya juga jelas, mengedukasi masyarakat mengenai ekonomi syariah, misalnya ketika ada nasabah konvensional yang ingin beralih menjadi nasabah perbankan syariah biasanya ditemukan istilah – istilah yang belum begitu mereka pahami, dengan adanya kamus yang bisa diakses mobile tentu akan memudahkan.

Dari situ kita bentuk tim bertiga, saya sebagai Android Developernya, Asep dan Ridha sebagai Content Manager dari aplikasi ini, mereka nantinya yang akan memberikan supply content secara continue ke aplikasi.

Sebatas kamus aja ? Kenapa ga kita create yang lebih dari sekedar kamus ? Mau mengedukasi ya jangan tanggung – tanggung, kalau sebatas kamus, banyak di google pdf nya, orang bisa download, masukin ke smartphonenya, ga ada bedanya deh.

Nah, kami memutuskan untuk juga menyelipkan fitur – fitur lain di aplikasi yang nanti kami akan bangun, sehingga akhirnya nanti aplikasi ini akan menjadi one-stop learning center dari ekonomi syariah, dengan target utama masyarakat umum, pelajar dan para praktisi ekonomi syariah. Dan tidak hanya mengedukasi, tapi juga mensosialisasikan ekonomi syariah kepada masyarakat.

“Ekonomi Syariah dalam Genggaman”

Serius tuh ekonomi syariah bisa di genggam ? Mari kita skip dulu masalah ekonomi syariah yang bisa di genggam.

Setelah kami bentuk tim, kami menentukan nama dari aplikasi ini adalah Sharee yang merupakan akronim dari Sharia Economics Education (edukasi ekonomi syariah). Sampai akhirnya tanggal 19 Oktober kemarin, aplikasi ini di-soft launching di acara #Revenue2012, acara yang diselenggarakan oleh Lisensi UIN Jakarta yang mempunyai konsep yang unik dan inovatif, yaitu memadu padankan Teknologi, khusunya Teknopreuner dan Digital Startup dengan Ekonomi Syariah.

soft launching sharee

Alhamdulillah, setelah soft launching aplikasi ini mendapatkan beberapa sambutan positif dari para peserta #Revenue2012 juga Direktur Bisnis BNI syariah yang diliput di Hidayatullah.com. Selain di Hidayatullah.com juga berita soft launching aplikasi ini beberapa kali masuk media online seperti Republika Online, PKES Interaktif, VOA-Islam, dan Islampos.

Sharee di Republikas Online

Dan sampai saat ini (29/10/2012), Sharee sudah 2 hari nongkrong di Play Store, dan alhamdulillah lagi sambutan positif berdatangan dari para pengunduh. Sampai saat ini ada 3 fitur utama yang dimiliki Sharee.

  1. Kamus Ekonomi Syariah. Untuk menemukan arti istilah-istilah dalam ekonomi syariah, seperti akad, mudharabah, murabahah, dll. Bersumber dari Kamus Securel Ekonomi Syariah PKES.
  2. Update Berita Ekonomi Syariah. Update berita terbaru mengenai ekonomi syariah (perbankan syariah, keuangan syariah, dll). Sumber berita dari http://ib.eramuslim.com
  3. Sharee Blog (http://shareeducation.wordpress.com), sebagai media pembelajaran ekonomi syariah. Berisi artikel – artikel mengenai teori maupun hasil penelitian yang ditulis oleh mahasiswa, dosen maupun praktisi ekonomi syariah.

Tentu hanya dengan 3 fitur tersebut Sharee masih belum pantas menyandang tagline “Ekonomi Syariah dalam Genggaman”,  tapi jangan kira kami akan berhenti sampai disini.

Kami lebih suka menjadikan “Ekonomi Syariah dalam Genggaman” ini adalah visi dari Sharee, akan seperti apa Sharee kedepannya. Yang sedang kami lakukan sekarang adalah terus memperkaya konten dari Sharee dan melakukan riset terkait dengan fitur selanjutnya dari Sharee.

Sharee saat ini diibaratkan bayi yang baru lahir, butuh dukungan yang besar agar terus berkembang. Maka dari itu, segala bentuk kritik dan saran untuk pengembangan aplikasi sangat kami harapkan, melalui email di edusharee@gmail.com atau twitter di @sharee_app atau facebook fan page : Sharee

Bagi pengguna Android yang belum download Sharee, bisa langsung download di Play Store, search “Sharee Ideaplay” atau “Sharia Economics” untuk mempermudah pencarian.

Terima kasih telah meluangkan waktunya membaca, semoga Sharee bermanfaat untuk kemajuan Ekonomi Islam terutama di Indonesia. Aamiin ya Rabbal Alamin.

How to Use Android SharedPreferences

Some saying about SharedPreferences

SharedPreferences is an API from Android SDK to store and retrieve application preferences. SharedPreferences are simply sets of data values that stored persistently. Persistently which mean data you stored in the SharedPreferences are still exist even if you stop the application or turn off the device. SharedPreferences available at the Activity level or shared across all Activity in application package.

When I use it ?

Whenever your app requires data to be stored persistenly, even you close the application or turn off the device, or you need to share your data across all Activity in application package. For example, your application might want to store the user’s name, or you want to store game current score, current level, etc

When the app use Single Sign On Facebook it use SharedPreferences to store access_token, access_expire, etc. After you complete log in with facebook in the app, it store some data including access_token and access_expire to the app preferences. And when you reopen, it will check the access_token and access_expire values, if access_token return null, the session is no more valid and you have to login with facebook again.

Ok, enough theory i’ll show you how to create application-level SharedPreferences

let’s get a cup of coffee…

Step 1 : Specify data and create specific class for handle SharedPreferences

In this step you will  specify data that you want to store it in SharedPreferences. For example, i will store user’s name and user’s id after a sucessfull login.

Create specific class for handling SharedPreferences.

package uin.luthfihariz.simplebankclient;

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;

public class AppPrefs {
 private static final String USER_PREFS = "USER_PREFS";
 private SharedPreferences appSharedPrefs;
 private SharedPreferences.Editor prefsEditor;
 private String user_name = "user_name_prefs";
 private String user_id = "user_id_prefs";

public AppPrefs(Context context){
 this.appSharedPrefs = context.getSharedPreferences(USER_PREFS, Activity.MODE_PRIVATE);
 this.prefsEditor = appSharedPrefs.edit();
 }
public int getUser_id() {
 return appSharedPrefs.getInt(user_id, 0);
 }

public void setUser_id(int _user_id) {
 prefsEditor.putInt(user_id, _user_id).commit();
}
public String getUser_name() {
 return appSharedPrefs.getString(user_name, "unkown");
 }

 public void setUser_name( String _user_name) {
 prefsEditor.putString(user_name, _user_name).commit();
 }

}

Actually you don’t have to create one specific class for handling SharedPreferences. But i prefer this way because it ease, moreover if you will store a lot of data variable. Then how those codes work ?

These preferences are retrieve using getSharedPreferences method from the application Context class. And you may want to declare your preference set names so that you can easily store and retrieve data preferences from any Activity within your application. Edit() method from SharedPreferences class are used for store or update data in the preferences.

private static final String USER_PREFS = "USER_PREFS";
public AppPrefs(Context context){
 this.appSharedPrefs = context.getSharedPreferences(USER_PREFS, Activity.MODE_PRIVATE);
 this.prefsEditor = appSharedPrefs.edit();
 }

The following data types are supported by the SharedPreferences class:

  • Boolean, use putBoolean() method to store and getBoolean() to retrieve
  • Float, use putFloat() method to store and getFloat() to retrieve
  • Integer, use putInt() method to store and getInt() to retrieve
  • Long, use putLong() method to store and getLong() to retrieve
  • String, use putString() method to store and getString to retrieve

Step 2 : Store, Retrieve or Update data in SharedPreferences

To store or update data you can initiate AppPrefs class by passing application context and call setter method. Here is the snippet code for storing data.

String name = "Luthfi Hariz";
int id = "5";
Context context = getApplicationContext();
AppPrefs appPrefs = new AppPrefs(context);
appPrefs.setUser_name(name);
appPrefs.setUser_id(id);

And for retrieve data, as simple as this.

Context context = getApplicationContext();
 AppPrefs appPrefs = new AppPrefs(context);
 int id = appPrefs.getUser_id();
 String name = appPrefs.getUser_fname();

Conclusion

SharedPreferences can be easily use to store application data persistently, you also available to store data accross all activities in the application package. SharedPreferences are stored as key-value pairs, the following data types supported are integer, float, double, string and boolean.

This post is inspired by the tutorial from mobile tutsplus

Please introduce my first Android Application, Sharee (Sharia Economics Education) now on Play Store.

and here is My post (in Bahasa) about Sharee.

Share Internet Connection via Virtual Access Point in Windows 7

Before we start, make sure you’re not using Windows 7 Starter, because it is not supported to use ICS (Internet Connection Sharing) Service that allowed you to share your Internet Access from your Internet Devices (mobile broadband, dial up, or other Internet gateway).

Ok, for the Internet Connection i’m using Mobile Broadband (Smartfren) and I want share the Internet Access to my Android Device or Another Laptop. You can use tools like Connectify, or something else but i prefer to use Command Prompt (avoid installing to much software on my laptop) cause it works the same.

Open your cmd (make sure to run it as administrator).

open cmd

open cmd

Continue reading

Tagged , ,

Create Android App with SQLite using Phonegap + Jquery mobile

Phonegap as a framework allows mobile developers to develop their apps using HTML 5 + CSS 3 + Javascript that can run in 6 platforms (iOS, Android, BlackBerry, WebOS, Symbian, and Bada).

If you are new  in using Phonegap Mobile Framework for developing android application, go here to get started.

Now download Jquery mobile and place the js, css and images under folder ‘projectname/asset/www/’

project tree android phonegap Continue reading

Tagged , , , ,