Mempercepat proses gradle build

Masalah yang sering dihadapi seorang developer Android adalah berhadapan dengan IDE Android Studio. IDE ini memang dikenal memakan banyak resource RAM dan harddisk, bahkan RAM yang disarankan cukup besar 8 GB. Jika di bawah itu ya, siap-siap saja menunggu lama compile aplikasi sambil ditinggal tidur, ngopi dan makan.

Jika sudah memenuhi spesifikasi install Android Studio, namun dirasa masih cukup lambat, terutama ketika melakukan “build” aplikasi menggunakan gradle, ada baiknya mencoba tips berikut:

  1. Update versi gradle ke versi terbaru. Saat ini (April 2017) versi terbarunya adalah versi 3.5 (https://docs.gradle.org/current/release-notes.html)
    Cara updatenya bisa ikuti di tutorial berikut: https://gradle.org/install
  2. Buat file baru dengan nama gradle.properties, taruh di lokasi berikut:
    /home/<username>/.gradle/ (Linux)
    /Users/<username>/.gradle/ (Mac)
    C:\Users\<username>\.gradle (Windows)

    Setelah itu copas teks berikut ke gradle.properties:

    org.gradle.daemon=true
    org.gradle.parallel=true
    org.gradle.jvmargs=-Xmx2048M   

    Untuk org.gradle.jvmargs, apabila RAM yang dimiliki sekitar 4 GB, cukup set di angka 2048M, namun jika lebih ya lebih bagus, bisa diset di angka 8192 bagi yang memiliki RAM sekitar 16 GB.
    Jika sudah, save, dan lanjut ke bagian android Studio. Buka Preferences/Settings Android Studio, masuk ke bagian “Build, Execution, Deployment”, pilih “Gradle” dan beri centang pada “Offline Work” seperti pada gambar di bawah ini, dan set directory-nya ke lokasi gradle.properties yang sudah dibuat tadi.
    lseqd

  3. Beri parameter –offline pada Compiler seperti pada gambar di bawah ini:
    gjrrv
  4. Masuk ke Aplikasi yang sedang dibuat di Android Studio, klik build.gradle.
    Setelah itu tambahkan line berikut di dalam tag android:
    Screen Shot 2017-04-30 at 6.00.47 PM

    dexOptions {
        incremental true
        javaMaxHeapSize "4g"
    }

    beri angka “4g” apabila RAM yang dimiliki 4GB, dan beri angka 8g bila RAM yang dimiliki 8GB. Dokumentasinya ada di sini: google.github.io/android-gradle-dsl/current/

  5. Perbesar heapsize untuk mempercepat build di gradle.properties dengan menambahkan parameter berikut:
    # Specifies the JVM arguments used for the daemon process.
    # The setting is particularly useful for tweaking memory settings.
    # Default value: -Xmx10248m -XX:MaxPermSize=256m
    org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

    *peringatan: memperbesar heapsize beresiko membuat software lain yang dibuka menjadi lambat. Karena RAM akan terfokus ke gradle Android Studio.

  6. Done, selamat mencoba 😀

Memasang harga untuk sebuah aplikasi

Kekeliruan yg pernah saya alami dan jg bbrp tmn2 developer yg terjun ke dunia proyek aplikasi mobile (kebetulan sy blm pernah ngalamin yg model bisnis berjualan, tetapi model request by user/client dan donasi) adalah terlalu cepat menyimpulkan, terkadang tanpa disadari, memberikan layanan ke klien/user dengan kurang cermat.

Menerapkan performa dan kualitas yang sempurna itu hampir mustahil dilakukan, semestinya itu disadari bersama, baik developer maupun user, karena segala yang sudah besar seperti facebook app, dll. Itu dilakukan melalui riset yang panjang dan bekerja bertahap mengikuti kebiasaan pengguna (dan lagi-lagi ini menyangkut User Experience ataupun kebiasaan pengguna)

Ide yang solid dibarengi dengan potensi pasar yang siap dieksekusi adalah kuncinya. Namun, dapet ide yang orisinil juga bukan sesuatu yang mudah (dan ide itu mahal, jadi kalo ada orang yg share status : “kalo temen2 minta dibuatkan aplikasi di OS blabla..apa yg pgn temen2 inginkan?” berarti orang tsb lg kekurangan ide hehehe), mungkin wajar bagi kita selaku developer untuk meniru. Tapi yang perlu digarisbawahi adalah, hindari godaan untuk sukses dengan instant. Lebih baik sedikit demi sedikit berjalan, tidak apa pas launching app masih sederhana, tetapi lambat laun terus diriset, dikembangkan, mendengar tanggapan dari user, ditampung dan ditelusuri lebih lanjut sehingga tercipta gagasan baru untuk membuat aplikasi tersebut bertahap menjadi besar.

Membangun aplikasi bukan serta merta untuk mencari duit, perlu di-explore juga jenis aplikasi apa yang bisa/boleh dijadikan uang. Ada beberapa kategori yang semestinya tidak boleh dijadikan lahan uang.

Aplikasi kategori sosial : jejaring, messaging, religi dan app yg hits yang mencakup semua kalangan pengguna, konten beragam, tapi biasanya harga rendah bahkan gratis (loh kok bisa? gk rugi tuh?). Mereka berani memasang harga rendah karena cakupan pasarnya luas, campaignnya mudah (ntah dengan viral, memasarkan via iklan di jejaring, dsb), dan semua orang bisa pakai. Contoh : chat macem WA yang menarik pembayaran tiap tahunnya dengan harga murah (dan tentu target download sudah lebih dari 1000 pengguna)

Sedangkan yang harga tinggi biasanya menargetkan konsumen yang serius/tertentu. Sebagai contoh app. multimedia/office, biasanya harganya mahal, bahkan sampai mencapai $100, seperti : photoshop, fruity loops, officetogo, dll.

Dan ada yang model premium, konten besar, profit yang didapat besar juga dari per penggunanya. Biasanya model ini lebih sedikit dibandingkan 2 jenis sebelumnya. Dan terkadang menerapkan sistem berlangganan per tahun. Sebagai contoh : game karaoke yang tiap lagunya harus berlangganan, microsoft office, aplikasi kolaborasi, dll.

Dan beberapa kegagalan yang sering terjadi adalah developer tidak memahami target penggunanya, memasang harga yang tidak pas.

UI Automation di Android (bagian dari unit testing)

pernah melakukan Unit Testing di sebuah aplikasi?

Nah, berikut ini adalah contoh Automation test di Android. UI Automation Test merupakan bagian dari Unit testing yang bertujuan membiasakan tester terhadap komponen UI (termasuk view dan control) dari aplikasi yang ditargetkan.
Selain itu, kita bisa menganalisa aplikasi orang lain untuk mengetahui komponen apa saja yang digunakan di aplikasi tersebut.
Output yang dihasilkan berupa screenshot UI dan komponen-komponen penyusun UI secara hirarki dari parent to child (seperti halnya di XML layout)

untuk menganalisa komponen-komponen UI dari sebuah aplikasi, dapat dilakukan via Android SDK, yaitu via terminal (arahkan ke <android-sdk>/tools/), ketik :

$ uiautomatorviewer [enter]

Tampilannya seperti berikut :

Image

Lengkapnya dapat dilihat di : http://developer.android.com/tools/testing/testing_ui.html

Speaktoit – Your Android Assistant

Ever dreamed of having a personal assistant? 😀

Now you can realize that dream, on your android phone! 😀

This is Speaktoit Assistant, an application that runs on Android OS that offers smooth operation of the phone through voice commands and text. In this application you will find a virtual assistant who can perform a functional mobile phones such as command to call someone, send sms, open an application, to update your facebook status and twitter just with your voice or text.

Speaktoit have an abilities :

  1. Talk : basic dialog situations, general topics, and about itself and STI
  2. Find something : Information, Images, Music, Maps, News, Stock Information, Weather forecast.
  3. Call : Call someone on your contact phone.
  4. Send : SMS, Email
  5. Music : Search Music, Play Music
  6. Tell about : Things around you, people, palces.
  7. Organize : Time, Task List, Notes, Events, Agenda
  8. Translate : From English to any languages
  9. Calculate : Units Conversion, Currency Conversion, Basic Math
  10. Check-in : with your foursquare, exacly. 😀

For more information : http://www.speaktoit.com/

For download on the Android market : http://market.android.com/details?id=com.speaktoit.assistant

[Tips for Android Developer] Move your applications to External Storage (SDcard)

Many android users have a big problem with disk space. Every Applications on the device should be installed on the device’s internal memory.

But, in Froyo and above allows you to install application on the external storage (SD Card), but if only the developer actually enables that feature in his application.

According to the http://developer.android.com/guide/appendix/install-location.html, developer can set his application’s install location to the external storage by set android:installLocation attribute with a value of “auto” or “preferExternal” in the <manifest> element.

How about usual or ordinary users?

Yeah, it’s easy to do that with command prompt or terminal window and of course, you need ADB Tools (or Android SDK).

  1. Please, make sure that you enabled “USB debugging” mode on your phone.
  2. You need the Android SDK or ADB tools. Please install it to your computer.
  3. Connect your phone to a USB port, open up a terminal window (command prompt), and type “adb shell pm setInstallLocation 2” (without the quotes). (ADB is part of the Android SDK.
    This will enable the move to SD card option for all applications.)
  4. Now, press menu button, go to the Settings menu > Applications menu and move your apps to your SD card.
  5. To restore this setting back to default type “adb shell pm setInstallLocation 0“.

Done! 😀
You’ve got the point of success with this. And enjoy your applications..they should be stored on the sd card. 🙂

Aplikasi sederhana update status facebook via apapun untuk Android

Beberapa bulan yang lalu saya pernah iseng mainin WebView di Android dan bagaimana memanggil file html di assets ataupun menjalankan url langsung.

Kemudian dapat ide untuk membuatnya ke dalam bentuk app iseng :p update status facebook via apapun. Check this out!

Sederhana c..kapan-kapan saya coba perbaharui jadi lebih simple dan lebih baik.

Kalau mau download app Androidnya, silahkan klik link ini.

Thanks 😀