Plus Minus Kotlin Dibanding Java

Top apps yang menggunakan Kotlin. Sumber: Appbrain

Pengantar

Kendala waktu dan produktivitas adalah dua hal utama yang perlu diingat saat mengerjakan project Android, dimana hal ini tidak mudah dicapai dengan boilerplate code dan exception handlers yang banyak sekali jumlahnya di Java. Jadi, sekarang saatnya mengenalkan bahasa baru dan yang lebih matang, seperti yang telah dilakukan secara efektif oleh JetBrains dengan memperkenalkan Kotlin.

Artikel ini akan mendiskusikan pada bagian penting di mana letak kekurangan Java sebagai bahasa pemrograman Android, dan mengapa Kotlin akan segera mengambil alih posisi Java.

Bahasa yang paling populer dan paling banyak digunakan di pemrograman Android saat ini adalah Java. Java sudah begitu dominan di dunia pemrograman dan kata  "Java" secara otomatis muncul di benak para programmer setiap kali mereka mendengar tentang kata pemrograman. Tidak diragukan bahwa Java mengambil alih pasar pemrograman secara prematur dan menjadi tidak tergoyahkan. Tetapi rupanya Java adalah bahasa pemrograman nomor satu yang umumnya dipilih oleh programmer untuk karirnya.

Mengapa Platform (Sistem Operasi) Android Gratis?

Strategi Google

Android jelas merupakan platform (sistem operasi) perangkat mobile yang hebat yang pasti sangat mahal biaya untuk development-nya. Jadi mengapa Google memberikan Android secara gratis?

Jawabannya bisa dimulai dengan melihat misi Google yang dengan jelas didefinisikan seperti berikut (dari corporate information):
Misi Google adalah mengorganisir informasi dunia dan membuatnya mudah diakses dan bermanfaat secara uiversal
Smarphone adalah perangkat konsumen yang paling populer, berjumlah lebih dari 4 miliar, jadi dengan menyediakannya secara gratis, Google yakin bahwa mereka memenuhi misi mereka tentang ‘dapat diakses secara universal’. Tapi, pastilah tetap harus ada suatu keuntungan bagi Google. Ketika semakin banyak orang online, akan semakin banyak orang menggunakan pencarian, yang pada akhirnya mendorong revenue iklan dimana hal ini adalah sumber pendapatan utama Google. Dalam suatu wawancara pada bulan Maret 2009, Andy Rubin (Andy Rubin adalah tokoh utama dalam development Android) menjelaskan:

20 Temuan Menarik Seputar App Piggybacking di Android

Ilustrasi Piggybacking
Piggybacking adalah proses menyuntikkan kode malicious ke dalam app Android asli atau menunggangi kode app asli dengan kode malicious. Model pengemasan app Android berpotensi memberikan peluang bagi para pembuat malware untuk menyuntikkan kode malicious ke dalam app normal, dengan cara membuat app malicious baru yang kemudian bisa di sebarkan ke para pengguna. Dengan adanya berbagai macam tool reverse engineering, app Android bisa dimidifikasi dengan mudah oleh pihak ketiga. Atau, yang lebih efektif adalah dengan mengubah suatu app yang populer. Jadi app normal ditunggangi oleh suatu kode malicious. Proses ini disebut dengan piggybacking (menunggangi). App asli yang sudah diubah disebut dengan piggybacked app (app yang sudah ditunggangi). App asli biasa disebut dengan Carrier (pembawa) dan kode malicious yang disuntikkan disebut dengan Rider (penunggang)

Market Android dan Jumlah APK

Gambar: Android Robot Toy, by Lucas Zallio, license: CC BY 2.0
Berikut dibawah adalah beberapa market dimana apps Android didistiribusikan dan jumlah app yang ada di market tersebut (data di bawah ini hanya data dari app yang didistribusikan secara free - bukan app yang berbayar). 

Nama Market  dan Jumlah APK
  • play.google.com
    • Market resmi Android (http://play.google.com, sebelumnya dikenal sebagai Google Market) atau disebut juga dengan nama Google Play        
    • jumlah APK: 4,024,891          
    • persentase: 71,11%
  • anzhi 
    • Anzhi market adalah market alternatif terbesar yang dijalankan dari China dan menargetkan pengguna Android berbabasis China (http://www.anzhi.com)
    • 742,894
    • persentase: 13,13%

AVD - android:versionCode vs android:versionName - strings.xml

1. Apa yang dimaksud dengan AVD?
AVD adalah singkatan dari Android Virtual Device. AVD adalah emulator Android yang berfungsi sebagai tiruan konfigurasi ertentu dari suatu perangkat Android riil.

2. Apa perbedaan antara atribut android:versionCode dan android:versionName dalam file AndroidManifest.xml?
Atribut android:versionCode digunakan untuk men-cek apakah suatu aplikasi bisa di-upgrade atau tidak. Atribut tersebut berisi angka yang sedang berjalan (aplikasi yang di-update akan diset dengan angka yang lebih tinggi nilainya dari versi sebelumnya). Sedangkan atribut android:versionName fungsi utamanya digunakan untuk menampilkan ke pengguna. Atribut ini adalah suatu string, misalnya "1.0.1".

3. Apa gunanya file strings.xml?
File strings.xml digunakan untuk menyimpan semua konstanta string di dalam aplikasi kita. File ini bisa digunakan untuk membuat aplikasi kita dengan mudah membuat berbagai macam versi bahasa lokal dengan menerjemahkan strings dan kemudian meng-compile lagi aplikasi kita.

Memahami Jenis-jenis Fragment Khusus - PreferenceFragment

Menampilkan PreferenceFragment

App Android kita mungkin akan dilengkapi dengan preferensi yang mengijinkan user untuk mengubah personalisasi app kita sesuai dengan keinginan mereka. Misalnya, kita mengijinkan user untuk mengingat login yang mereka gunakan untuk mengakses web, atau untuk mengingat informasi misalnya seberapa sering feed rss harus di-refresh (seperti di dalam suatu app rss reader) dan sebagainya. Di Android, kita bisa menggunakan class ‘PreferenceActivity’ untuk menampilkan activity untuk user mengedit preferensi tersebut. Pada Android 3.0 ke atas, kita bisa menggunakan class ‘PreferenceFragment’ untuk melakukan hal yang sama.

Berikut adalah contoh latihan bagaimana membuat dan menggunakan fragment preference di Android.

Memahami Jenis-jenis Fragment Khusus - DialogFragment

Menampilkan DialogFragment

Jenis lain dari fragment yang bisa kita buat adalah fragment dialog. Fragment dialog akan mengambang di atas activity. Fragment dialog akan sangat bermanfaat untuk hal-hal dimana kita perlu mendapatkan respon user sebelum melanjutkan dengan suatu eksekusi. Untuk membuat fragment dialog, kita perlu melakukan ‘extend’ class ‘DialogFragment’.

1. Kita buat project baru dengan nama “ContohDialogFragment”

2. Kita buat java class baru dengan nama “Fragment1.java” seperti berikut:
package id.co.blogspot.diansano.contohdialogfragment;

Memahami Jenis-jenis Fragment Khusus - ListFragment

Memahami Jenis-jenis Fragment Khusus

Dalam contoh latihan tentang fragment sebelumnya kita sudah mempelajari tentang fragment. Dengan menggunakan fragment kita bisa meng-kustom UI dari app Android kita dengan secara dinamis mengatur fragment supaya pas dengan ukuran layar kita.

Seperti yang sudah kita bahas dalam topik tentang fragment pada salah satu latihan sebelumnya, fragment adalah ‘mini-activity’ yang memiliki siklus hidupnya sendiri. Untuk membuat fragment, kita perlu suatu class yang melakukan ‘extends’ class ‘Fragment’. Selain class ‘Fragment’, kita juga bisa melakukan ‘extends’ dari beberapa subclass yang lain dari class ‘Fragment’ untuk membuat fragment yang lebih khas. Beberapa latihan berikut akan membahasa tentang tiga subclass dari Fragment, yaitu ‘ListFragment’, ‘DialogFragment’, dan ‘PreferenceFragment’.