Showing posts with label java. Show all posts
Showing posts with label java. Show all posts
Sunday, June 14, 2020

Perkenalan dengan Android Studio

Introduction to Android Studio


Agar mulus menggunakan Android Studio, baiknya Anda tahu bagaimana strukturnya terlebih dahulu. 

Bila terbiasa menggunakan produk IntelliJ IDEA lainnya, maka akan mudah bagi Anda untuk menavigasi tata letak dan struktur Android Studio ini. Yang berbeda adalah komponen tambahan pendukung yang membantu pengembangan dan pembuatan aplikasi Android. Yuk, kita kenali Android Studio, right from the git-go!!

Project Android Pertama

Kali pertama menjalankan Android Studio, Anda akan melihat tampilan seperti berikut ini.
20190506144105091cedbef7d440d989092c6e99ce7b67.png
Untuk memulai proyek baru pilihlah “Start a new Android Studio project”.


Project Wizard

Setelah proses instalasi Android Studio, mari kita mulai membuat sebuah aplikasi Hallo World, aplikasi pertama Anda.
  1. Setelah melakukan “Start a new Android Studio project”, Anda diminta untuk melakukan konfigurasi dalam pembuatan proyek baru Anda. Dalam dialog ini Anda bisa memilih template dari Aplikasi yang akan Anda buat. Terdapat beberapa template yang bisa kita gunakan seperti Empty ActivityLogin ActivityNavigation Drawer Activity dan lain-lain. Di dalam dialog ini kita bisa memilih target devices dari aplikasi yang akan kita buat.
    201902011636462d17bdb2e5307f70303bc989300548c9
  2. Dalam dialog ini Anda bisa memberi nama dari aplikasi, lokasi proyek Anda dan nama package. Nama package akan digunakan dalam identifikasi unik dari aplikasi kita ketika sudah di-publish. Kita juga dapat mengganti dari direktori di mana proyek kita akan disimpan. Kita juga bisa mengganti nilai minimum SDK, yang berfungsi untuk membatasi penggunaan API pada sebuah aplikasi. Di dalam dialog ini juga Anda bisa memberi nama dari Activity yang pertama kali yang Anda buat. Selain itu Anda juga bisa mengganti bahasa default pada aplikasi tersebut menjadi bahasa Java atau Kotlin.
    20190819100739e756d296017025fbb26d97d852593aaf
    Catatan: Untuk Android Studio versi 3.4 ke bawah, penggunaan AndroidX belum menjadi default. Jadi, silakan beri tanda centang pada "Use AndroidX.* artifacts" di setiap kali membuat project. Informasi lebih detail mengenai AndroidX bisa Anda lihat di sini, dan untuk melihat perubahan antara sebelum dan sesudah AndroidX, atau cara migrasi menggunakan AndroidX bisa lihat di sini. Perlu Anda ketahui juga, ketika Anda sudah menggunakan AndroidX maka Anda tidak bisa menambahkan library lama atau sebelum AndroidX.

Antarmuka Android Studio

OK, membuat proyek pertama kali di Project Wizard, done! Kali ini kita akan menemui tampilan penuh Android Studio. Untuk meningkatkan produktivitas, mari kita bahas lebih jauh tentang antarmuka (interface) dari Android Studio ini.

201902011646577f46ea2d2c5cdc901e8c5ca0b438d53f
Di atas adalah screenshot tampilan penuh IDE Android Studio berbasis IntelliJ IDEA. Mungkin tampilan tersebut akan berbeda dengan tampilan di layar Anda karena perbedaan konfigurasi dan versi Android Studio.

Tools

201902011647457e1ab29c17896a0101ac1c3e6fc7b036
Merupakan Tools yang sering digunakan dalam development seperti copy/paste, build, menjalankan aplikasi, hingga menjalankan emulator.

Navigasi

201902011648029be70427f958630123071bf4f073049e
Membantu melihat struktur dari kedalaman (depth) dan posisi proyek yang saat ini sedang dibuka.  

Project Explorer dan Editor

2019020116500212782b0bbd95595af3ba105b41e512a4
Merupakan bagian utama dari IDE Android Studio di mana kita menuliskan kode. Pada tampilan di atas, sebelah kiri adalah struktur proyek kita dan sebelah kanan adalah editor. Bagian ini akan dibahas lebih detail di poin selanjutnya.

Tool window bar

201902011650570010e5b4b54b058e2670a5a97e45f36e

Tools menu yang mengelilingi editor ini merupakan button yang dapat di-expand ataupun untuk menampilkan Tools secara detail dan individual. 

Status Bar

20180425162204e48775d4ae6dccb52639e1fe5e0953d0.
Terletak di bagian terbawah di Android Studio, ia berfungsi untuk menampilkan status proyek kita dan pesan peringatan (warning message), bila ada.

Struktur Proyek

Setiap proyek di Android Studio berisi satu atau beberapa modul dengan file kode sumber dan file sumber daya. Jenis-jenis modul mencakup:
  • Modul Aplikasi Android
  • Modul Pustaka
  • Modul Google App Engine
Secara default, Android Studio akan menampilkan berkas proyek Anda dalam tampilan proyek Android, seperti yang ditampilkan dalam gambar berikut :
201812191103578295b0c3b01b6966d14d3e5745fcdc31
Tampilan disusun berdasarkan modul untuk memberikan akses cepat ke berkas sumber utama proyek Anda.
Secara default ketika kita membuat proyek baru, Android Studio akan menampilkan struktur yang lebih ringkas dan cepat sesuai dengan kebutuhan pengembangan Android. 
Bila ingin melihat struktur proyek dalam bentuk selain standar Android, kita dapat mengubahnya dengan tombol dropdown yang terdapat di atas project structure.

20190201165225526e4cd82fc10f217b67fe33e7ec1dc4
Pada bagian ini kita dapat mengganti tampilan project structure sesuai kebutuhan.
Mari kita bahas lebih detail tentang proyek yang baru saja kita buat.
20181219113245ecb503857f87b56004c7809ede4673af
Masing-masing modul aplikasi berisi folder berikut:

Android Manifest

an4dJwpIlcrVUVlj3L4zbdUrzozvsTiWdARFCQXHtKIALfjXsQZIvQ16BjNognzEz0IM3XGwRtBHiLFe9FyM_tXV3Eep0hXN5Y9Va-UhI2dE2ZA1EA27UegaVqcpDJ6-QzkTPX9UaIZyJqsgjQ
Manifest adalah salah satu berkas yang harus ada di dalam sebuah proyek Android. Manifest akan memberikan beragam informasi penting kepada sistem Android. Sistem perlu mengetahui apa yang akan digunakan oleh aplikasi sebelum dijalankan.
Beberapa fungsi yang ada di dalam manifest adalah sebagai berikut.
  • Nama Package

    1. <manifest xmlns:android="http://schemas.android.com/apk/res/android"

    2.     package="com.dicoding.picodiploma.myapplication">


    Package name merupakan sebagai identitas unik dari sebuah aplikasi. Identitas ini juga yang akan digunakan di dalam store untuk membedakan suatu aplikasi dengan aplikasi lainnya. Jangan pernah mengganti value di dalam package karena nantinya akan dikenali sebagai aplikasi yang lain, jika sudah masuk ke dalam store.
  • Komponen Aplikasi
    Berfungsi untuk mendeskripsikan komponen dari aplikasi mulai dari activity, services, broadcast receiver, dan content provider.

  1. <application
  2.     android:allowBackup="true"
  3.     android:icon="@mipmap/ic_launcher"
  4.     android:label="@string/app_name"
  5.     android:roundIcon="@mipmap/ic_launcher_round"
  6.     android:supportsRtl="true"
  7.     android:theme="@style/AppTheme">
  8.     <activity android:name=".MainActivity">
  9.         <intent-filter>
  10.             <action android:name="android.intent.action.MAIN" />
  11.  
  12.             <category android:name="android.intent.category.LAUNCHER" />
  13.         </intent-filter>
  14.     </activity>
  15.  
  16.     <service
  17.         android:name=".MyIntentService"
  18.         android:exported="false" />
  19.  
  20.     <receiver
  21.         android:name=".MyReceiver"
  22.         android:enabled="true"
  23.         android:exported="true"></receiver>
  24. </application>

  • Komponen aplikasi semuanya berada di antara tag <application>. Ia juga berfungsi sebagai penamaan kelas yang mengimplementasi komponen dan mendeskripsikan kemampuannya seperti intent-filter, di mana fungsinya mendeskripsikan bahwa komponen itu adalah yang pertama kali dijalankan. 
  • Permission
    Mendeklarasikan permission apa saja yang harus dimiliki oleh aplikasi untuk akses ke dalam komponen API seperti internet, external storage, contact, dan juga untuk berinteraksi dengan aplikasi lainnya. Sebagai contoh ini adalah kode untuk permission Internet

    1. <uses-permission android:name="android.permission.INTERNET"/>


    Kode ini biasanya diletakkan di atas tag <application> dan masih di dalam tag <manifest>

Java

2018121911345824784881efe0160a2cbe22cacdadd0d0Merupakan salah satu folder yang sering dipakai, berisi berkas source code kita yang ditulis dalam bahasa Java/Kotlin, termasuk juga kode Unit Test dan androidTest (Instrumentation Test).
Catatan: Penamaan folder "java" bisa juga diganti sesuai dengan bahasa yang dipakai, misal "kotlin." 

GeneratedJava
20181219113740843d8c1c8dbb5a821431b302de072769
Berisi file hasil dari generate library atau sebuah kelas dari proyek Android.

Res / Resource

mQZfb2XRhG8sLr7cmKoHEeIEWL1f0mXgTnVEXZPWb78ZGoH--sNMxD7n0LqKNAoiLfGD6n76aC_dEqpWHS4G98pagP6A7yguJVUXHbgX9kPTXF2e577LOgnwX5LWcUysDkxu8hE9WX8RugwAAQ
Mengatur resource di dalamnya, yang mana bukan berupa kode, melainkan layout aplikasi, sumber gambar, ikon, hingga style. Di dalam folder res ini juga terdapat sejumlah folder yang sudah diatur dan dikategorikan sesuai kebutuhan, seperti :
  • Drawable
    Untuk menyimpan file gambar maupun ikon.
  • Layout
    Salah satu folder yang sering dipakai untuk file desain aplikasi.
  • Mipmap
    Untuk menyimpan logo dalam berbagai dimensi.
  • Values
    Berisi berbagai macam sumber data, seperti colors.xml untuk warna, strings.xml untuk teks, dimens.xml untuk ukuran, dan styles.xml untuk membuat style atau template.

Gradle

Gradle merupakan open source build automation systemAutomation system berguna untuk mengotomatisasi proses pembuatan dari software build dan proses-proses terkait lainnya termasuk compile source code menjadi binary code, packaging binary code, dan menjalankan automated test.
201707030343177b0167719008dccb11bc02abf0fcd8dd.png
build.gradle (Project: MyApplication)
Merupakan software build tingkat teratas yang meliputi keseluruhan dari proyek dari sebuah aplikasi. Di dalamnya berisi konfigurasi semua modul yang ada di dalam proyek.
build.gradle (Module: app)
Merupakan software build yang ada pada setiap modul di dalam proyek sebuah aplikasi. Beberapa konfigurasi yang diedit di antaranya adalah android settingsdefaultConfig dan productFlavorsbuildTypes, dan dependencies.
  1. apply plugin: 'com.android.application'
  2.  
  3. android {
  4.     compileSdkVersion 29
  5.     defaultConfig {
  6.         applicationId "com.dicoding.picodiploma.myapplication"
  7.         minSdkVersion 15
  8.         targetSdkVersion 29
  9.         versionCode 1 //(Incremental)
  10.         versionName "1.0"
  11.         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
  12.     }
  13.     buildTypes {
  14.         release {
  15.             minifyEnabled false
  16.             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  17.         }
  18.     }
  19. }
  20.  
  21. dependencies {
  22.     implementation fileTree(dir: 'libs', include: ['*.jar'])
  23.     implementation 'androidx.appcompat:appcompat:1.0.2'
  24.     implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
  25.     testImplementation 'junit:junit:4.12'
  26.     androidTestImplementation 'androidx.test:runner:1.2.0'
  27.     androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
  28. }

  • Android Settings
    Di dalam block android kita bisa menetapkan compileSDKVersion dan buildToolsVersion.
  • Default Config
    Di dalamnya terdapat properties seperti applicationIDminSdkVersiontargetSdkVersion dan test information.
  • Build Types
    Di dalamnya terdapat properties dari debuggable, ProGuard enabling, debug signing, version name suffix dan test information.
  • Dependencies
    Di dalamnya terdapat informasi tentang library yang digunakan oleh aplikasi.
Yang perlu diperhatikan di sini yaitu di bagian versionCode,  misal kita sudah publish aplikasi ke PlayStore dengan version code 1, maka ketika kita ingin meng-update aplikasinya lagi ke Playstore, kita perlu merubah version code-nya menjadi 2 (incremental), kalau tidak kita ubah maka PlayStore akan menolak APK yang kita upload.

Sync Project

Setiap kali terjadi perubahan informasi di dalam build.gradle kita harus melakukan sinkronisasi terlebih dahulu. Tombol sync now akan muncul pada sebelah kanan atas ketika terjadi perubahan.

20190819104053000bcedabf469934a3101a9d60e0cc78
Setelah proses sinkronisasi selesai maka akan muncul informasi pada log apakah proses sinkronisasi berhasil atau tidak.

Resource Manager
20190506144657c4f8c70f84b0aa6b95031f55407da2c8

Resource Manager, berfungsi untuk memanajemen segala resource yang ada di proyek Anda seperti gambar, warna, layout dll. 
Jika Anda perhatikan struktur dari res, dengan menggunakan Resource Manager semua resource akan tampil di sini dan Anda bisa memanipulasinya sesuai kebutuhan Anda. 

Useful Tools pada Android Studio

Android Studio menyediakan fasilitas yang powerful di bawah IntelliJ IDEA ini. Banyak tools milik Android yang membantu kita saat mengembangkan Aplikasi. Mari kita bahas tools yang sering digunakan dan manfaatnya.  


Shortcut

Pencarian
  • Shift+Shift
    Search Everywhere, atau dapat dikatakan pencarian semua jenis berkas yang masih dalam 1 proyek.
  • Ctrl+F
    Find, pencarian teks dalam salah satu berkas.
  • Ctrl+Shift+F
    Find in path, pencarian teks di seluruh berkas proyek.
  • Ctrl+Shift+A
    Find action, pencarian aksi atau perintah-perintah yang ada di Android Studio.
  • Ctrl+R 
    Replace, mengganti teks di dalam berkas.
Navigasi
  • Ctrl+N 
    Find Class, navigasi ke kelas tertentu.
  • Ctrl+Shift+N 
    Find file, navigasi ke berkas.
  • Ctrl+B
    Go to declaration, lompat ke deklarasi yang dipilih.
  • Alt+↑ 
    Lompat ke method sebelumnya.
  • Alt+↓ 
    Lompat ke method sesudahnya.
  • Ctrl+G 
    Go to line, lompat ke baris tertentu.
  • Ctrl+E
    Membuka berkas teranyar (recent file).
  • Ctrl+Left Mouse (or) Ctrl+Alt+F7
    Melihat penggunaan pada variabel/objek yang diklik.
  • Alt+F7 / Ctrl+F7
    Melihat penggunaan variabel/objek yang dipilih di seluruh berkas proyek.
  • Ctrl+Shift+B 
    Mencari tahu implementasi dari variabel/objek yang dipilih.
Redaksi
  • Ctrl+D 
    Menggandakan bagian yang dipilih.
  • Ctrl+Q 
    Melihat dokumentasi dengan tampilan minimal.
  • Ctrl+P
    Melihat isi dari parameter, penting ketika melihat method dari Android atau library lain.
  • Ctrl+Space 
    Basic code completion, menampilkan saran untuk melengkapi kode Anda.
  • Ctrl+Shift+Space 
    Smart code completion, menampilkan saran kode untuk melengkapi kode Anda dengan lebih pintar (menampilkan apa yang benar-benar terkait dengan kode Anda).
  • Alt+Insert
    Generate code, menghasilkan (generate) kode. Perintah ini sangat memudahkan ketika membuat constructor dan setter/getter.
  • Ctrl+Alt+L
    Memformat ulang kode, merapikan kode.
  • Ctrl+Y
    Delete One Line, Menghapus satu baris kode.
  • Ctrl+V
    Create variable, Membuat teks yang diblok menjadi sebuah variabel.
  • Ctrl+M
    Create method, Membuat teks yang diblok menjadi sebuah fungsi.
  • Shift+F6
    Rename, untuk mengganti nama suatu file atau variabel maupun fungsi.
Run
  • Ctrl+F9
    Make project, build project.
  • Ctrl+Shift+F9
     Melakukan kompilasi pada berkas, package atau modul. 
  • Shift+F10
    Run. Menjalankan aplikasi ke emulator atau devices.
  • Shift+F9
     Debug. Menjalankan aplikasi ke emulator atau devices dalam mode Debug, biasanya untuk keperluan testing.


Code Completion

Untuk meminimalisir salah ketik (typo) dalam pemanggilan class, method hingga variabel sebaiknya kita memanfaatkan Code Completion di Android Studio. Terdapat dua (2) jenis Code Completion yang sering digunakan di Android Studio:
  • Basic Code Completion

    Ctrl+Space
    Pemanggilan Code Completion standar untuk membantu kita melengkapi kode.
    rH7dKsSkwblgZhiRQ-unM-DyLsCMH-lCVYQycdsCuxh4fDjZZkVIa4qLi727PEahZLUKoYnACKcirAcnFaDzU6v2NVhsf6BwpNYCIE2tzR-Tm8o-5NLyiMfBV-vZRS3Q7MRRwL1twAb0xnFmXA
    Ketika kita akan memanggil sebuah variabel, cukup ketikkan code completion di atas. Saran pun akan diberikan.
  • Statement Completion

    Ctrl+Shift+Enter
    Perintah ini sangat membantu karena kita bisa menyelesaikan kode tanpa harus mengetik lengkap dan tanpa tanda kurung, kurung siku, kurung kurawal, dan banyak macam pemformatan lainnya.
    Kode di bawah ini ditulis sebelum menggunakan shortcut:
    F8NPxB8j5FpHSKQ2UfetV4NOZWa4nwO7TdBChgAMwqtC_glqMHAKiPLPCzwB1nF5XOYPAe9oV_NeP_9ouzubIu2zp4Ogqz5j6AfY50E0M4NG1HRyTCmCoVZapxR-NnwcLNs9f1uMmHzbt9OoNg

    Kemudian kita menggunakan Statement Completion. Lihat apa yang terjadi!
    OOdQnqkTfGlLAPHr4uqcmzXz4-zfSKGJfNFMi6MHvqhVK-mtis1GML_NOH9WIlignPvnuRZiwu3wEPI5oKni_jR3mGJsKfmBRf2uR-Ed95PsqAuIUTn7arccQFoRzyjWzy0ObWbmCbMLi_hUmw

    Statement kita yang belum tuntas akan diselesaikan oleh Android Studio. Tentu hal ini akan mempercepat waktu kita dalam menggarap aplikasi. 
    Selengkapnya Anda dapat mempelajarinya di sini: https://www.jetbrains.com/help/idea/2016.1/code-completion-2.html

Style dan Formatting

Gaya penulisan kode adalah seni dalam pemrograman. Kita memiliki signature style masing-masing, Semua tergantung pilihan kita sendiri. Tetapi kita tetap perlu memperhatikan bagaimana tata letak kode, apalagi bila suatu saat nanti kita membuat aplikasi bersama orang lain. Kode yang rapi itu enak dilihat dan memudahkan, baik kita maupun orang lain untuk membacanya. Secara default Android Studio memberikan code style formatting untuk tata letak kode yang kita miliki. Untuk menyesuaikan setelan Code Style, klik File > Settings > Editor > Code Style (Android Studio > Preferences > Editor > Code Style pada Mac.)
V6a5-HLmJZMOKOcrq00nSZbTtbjsAs19pEfCP3brWRwMFovnStlYL5QCCQsgaKf-vEOD0Kz91NQKTDIoPgDAMohaP45LbSGVfkxnkZuC8t7QnFEdiEqv5xf_H1mUNPm3i48dXHkLlc9reBdCEg
Bagaimana menurut Anda tentang kode di atas? Ya tidak ada yang salah. Namun Code Style berantakan dan tidak indah untuk dilihat.
Nah, kini kita akan melakukan kode formatting dengan menggunakan shortcut Ctrl+Alt+L. 
n2N7Qm7H1WIyMs9TQvlvY8i3yBZDvMWndByqciPTGFnYBeJ69v9-gO-06a7DIvV_4GLvHs6IMw8QSzbaNuea3Tsh5hkf_h88nEOaF5vHW2FwMn8NZa-lxtKsVQEBlHbW-fYlAbzfy4XFyiCSPg
h4BLQ0qISZdWi3enEBu5e8JbzB7Un0KbR0dyWk4khhXUpuF9-8YXPSTQvBlcwltbb2WS-c7q6Bcze04_DuYSdYZsVUGLEN-qI2nfJWcmOOfjARHW7pTMh1ZbQXrVEk5WQOVREnRPB6HXChPwdA
Hasilnya lebih baik, bukan?
Mungkin bila kode yang kita miliki sedikit, tidak terlalu berpengaruh. Tapi bila baris kode sudah mulai kompleks, formatting code seperti ini akan sangat membantu.

Sample Code

Android Studio juga membantu kita menemukan kode yang berkualitas dan best practice-nya. Melalui Google, Android Studio memiliki sample code yang bebas kita gunakan dan manfaatkan untuk kebutuhan kita belajar atau membuat aplikasi Android. Dengan mengakses File > New > Import Sample, kita punya banyak pilihan contoh kode yang bisa dipakai. 

Selengkapnya dapat kita jumpai di sini: https://developer.android.com/studio/write/sample-code.html
Keren kan? Jadi biasakan diri Anda menggunakan alat bantu dari Android Studio ini. Tak lain agar membantu dan mempercepat pembuatan aplikasi kita
Saturday, June 13, 2020

Pengenalan Cara Membuat Aplikasi Android untuk Pemula


Apa itu Android

Android adalah sistem operasi yang dikeluarkan oleh Google. Android dibuat khusus untuk smartphone dan tablet. Berbagai macam produsen telah menggunakan Android sebagai sistem operasi untuk peranti (device) yang mereka produksi. Android juga mempunyai store dengan lebih dari 2 miliar pengguna aktif per bulannya, per Januari 2018.

 201706221926492bd2822e5fe8ea2017900aa582e66aab.jpg

Mengapa Android

Kenapa menggunakan Android ?
Android memanjakan penggunanya dengan fitur yang sangat canggih dan tampilan yang bagus. Sistem Android dapat digunakan sebagai alat multimedia seperti pemutar musik dan video. Ia juga memiliki perangkat keras seperti accelerometergyroscope dan sensor lainnya.
Di samping itu ada beberapa hal yang membuat Android menjadi sistem operasi yang memang layak digunakan oleh pengguna atau dikembangkan para developer, seperti yang akan diuraikan berikut ini.

Sistem Operasi Smartphone Terpopuler

Pada tahun 2013, Android menjadi operation system (OS) terlaris pada tablet dan smartphone. Kini market share Android sedikitnya 80 % dari total penjualan smartphone di tingkat global (statista.com). Tercatat pada tahun 2016 Android store memiliki lebih dari 2.8 juta aplikasi.
Android menarik bagi perusahaan teknologi yang membutuhkan barang siap jadi, biaya rendah dan kustomisasi OS untuk perangkat teknologi tinggi mereka. Hal ini menjadi daya tarik bagi banyak perusahaan, sehingga mereka memilih Android.
Source code dari Android bersifat open source. Ini adalah hal menarik bagi komunitas developer, karena lisensi open source sangat mendukung untuk mengembangkan produknya dengan aman.

Store

Aplikasi Android bisa didistribusikan menggunakan webcopy APK, dan store. Android store , yaitu Google Play, merupakan cara termudah bagi para developer untuk mendistribusikan aplikasinya ke pasar dengan miliaran pengguna.
201706221932109d3521dbd3b450715dab6882df5fe70a.png
Google play merupakan store resmi Android yang dikelola oleh Google. Pengguna bisa mencari dan mengunduh aplikasi yang dikembangkan dengan menggunakan Android Software Development Kit.
Google Play tak hanya menawarkan aplikasi. Ada beragam konten lainnya yang dapat dinikmati pengguna, misalnya media digital, musik, buku, majalah, film dan program televisi.
Bagaimana para developer memonetisasi aplikasi yang ada di dalam Google Play?
Strategi monetisasi aplikasi yang ditawarkan Google Play ada bermacam-macam. Dimulai dari app berbayar (paid distribution), pembelian dalam aplikasi (in-app purchase), langganan (subscriptions), dan iklan (ads). Tentunya developer harus mengikuti aturan yang ada untuk memastikan bahwa pengguna mendapatkan pengalaman (user experience) terbaik.

Development Kit untuk Developer

Android Software Development Kit (SDK) merupakan kit yang bisa digunakan oleh para developer untuk mengembangkan aplikasi berbasis Android. Di dalamnya, terdapat beberapa tools seperti debuggersoftware librariesemulator, dokumentasi, sample code dan tutorial.
Bahasa pemrograman yang sering digunakan untuk mengembangkan aplikasi Android adalah Java. Namun ada beberapa bahasa lainnya yang dapat digunakan, seperti C++ dan Go. Pada IO 2017 Google juga menetapkan Kotlin sebagai tambahan bahasa resmi.
201706221933087683ac5138be87f3d9d0bc0cec29749d.png2017062219332002f502346d38e4f279610a842f772c61.png
Berbicara tentang pemrograman tentunya tak lepas dari Integrated Development Environment (IDE). Pada 2014 Google mengeluarkan IDE yang bernama Android Studio yang berbasiskan Intellij IDEA.
Dengan menggunakan Android Studio, para developer dapat membuat aplikasi dari nol hingga dipublikasikan ke dalam store. Android Studio juga mempunyai beberapa fitur built-in yang sangat membantu para developer untuk memaksimalkan proses pembuatan aplikasi. Fitur-fitur ini misalnya Gradle, Code Completion, dan beragam integrasi dengan layanan dari Google, seperti Firebase.

Sejarah Perkembangan Android

Berikut adalah rangkaian sejarah perkembangan Android yang resmi diluncurkan oleh Google dari waktu ke waktu.
Version
Code name
Release date
API level
DVM/ART
New features
Icon
1010September 3, 201929ART
  • Live Caption
  • Smart Reply
  • Sound Amplifier
  • Dark Theme
  • Privacy & Security
  • Digital Wellbeing
Image result for android 10 logo'
9
Pie
August 6, 2018
28
ART
  • Adaptive Battery
  • Adaptive Brightness
20190823105240470f1bae782d8cdc78ac13112f62aea8
8.0-8.1
Oreo
October 25, 2017
26 - 27
ART
  • Picture-in-Picture
2018042514513598d24b0028bc7fa0a4f5441667ff73b5.
7.1 - 7.1.2
Nougat
August 22, 2016
24 - 25
ART
  • Multi window
  • GIF Keyboard
20180425145145bf02f3e00285e69746565d501ff6f095.
6.0 - 6.0.1
Marshmallow
October 5, 2015
23
ART
  • Now On Tap
  • Permissions
  • Battery (Doze & App Standy)
2018042514515182ef64d006e223e15bf1cb934a632e1a.
5.1 - 5.1.1
Lollipop
November 12, 2014
21 - 22
ART
  • Material Design
  • Multiscreen
  • Notifications
20180425145158da6a1f9653f83880c762f6bb8bb7b3b4.
4.4 - 4.4.4
KitKat
October 31, 2013
19 - 20
DVM (and ART 1.6.0)
  • Voice : Ok Google
  • Immersive Design
  • Smart Dialer
2018042514563077b30ce8b41c209eb35701a76879455a.
4.1 - 4.3.1
Jelly Bean
July 9, 2012
18
DVM
  • Google Now
  • Actionable Notifications
  • Account Switching
20180425145216dc0af7ee77508796f898347fc963f806.
4.0 - 4.6
Ice Cream Sandwich
October 19, 2011
15
DVM
  • Custom Home Screen
  • Data Usage Control
  • Android Beam
2018042514522480b9cc180288f600800bd1eb68faf9c3.
3.0 - 3.2.6
HoneyComb
February 22, 2011
11 - 13
DVM
  • Tablet-Friendly Design
  • System Bar
  • Quick Settings
2018042514523013020a0e0ac80f21a8d95f6c3a87ab1e.
2.3 - 2.3.7
Gingerbread
February 9, 2011
9 - 10
DVM
  • Gaming APIs
  • NFC
  • Battery Management
201804251455202374a8eb531d205fe53bf83a90003d1b.
2.2 - 2.23
Froyo
May 20, 2010
8
DVM
  • Voice Action
  • Portable Hotspot
  • Dalvik JIT
20180425145305131b62dd1b1f07a39a060786a60dd701.
2.0 - 2.1
Eclair
October 26, 2009
5
-
  • Google Maps Navigation
  • Home Screen Customization
  • Speech-to-Text
2018042514525716ab010c162fb8028778a497b57438e6.
1.6
Donut
September 15, 2009
4
-
  • Quick Search Box
  • Screen Size Diversity
  • Android Market
201804251452518f71a9304dee7dc68c5872411fdf30f8.
1.5
Cupcake
April 27, 2009
3
-
-
20180425145323100ab6e6c8eefc01b6b7e1053ac3c023.

ART dan DVM

Dari tabel sejarah perkembangan di atas dapat kita lihat ada kolom DVM / ART. Kolom ini menunjukkan eksekusi kompilasi ketika menjalankan aplikasi Android. Pada API KitKat dan sebelumnya Android menggunakan DVM (Dalvik Virtual Machine). DVM menerapkan pendekatan JIT (Just-In-Time), di mana kompilasi dijalankan ketika ada permintaan untuk menjalankan aplikasi.
Sedangkan ART (Android Runtime) menerapkan pendekatan berbeda yaitu AOT (Ahead-Of-Time). AOT melakukan kompilasi pada saat proses instalasi aplikasi.
Dari versi Lollipop hingga sekarang, Android sepenuhnya mengadopsi ART. Mengapa demikian?
DVM menggunakan JIT yang berarti kompilasi dilakukan setiap kali aplikasi dijalankan. Hal ini sangat mempengaruhi kecepatan respon aplikasi. Setiap kali kita menyentuh ikon aplikasi maka kompilasi akan dilakukan. Tentu proses ini menghabiskan CPU dan berimbas pada relatif lebih borosnya penggunaan baterai.
Beda dengan DVM, ART melakukan proses kompilasi pada saat proses instalasi. Jadi setiap kali aplikasi dijalankan, sudah tidak ada lagi proses kompilasi. Hal ini meningkatkan performa dalam menjalankan aplikasi. Selain itu karena penggunaan sumber daya CPU bisa dikurangi, pemakaian baterai jadi lebih hemat. Akan tetapi ART membutuhkan space (ukuran berkas) yang lebih besar jika dibandingkan dengan DVM.
Jika ingin mendalami proses run-time yang ada di Android, silakan klik tautan berikut ini: 
Beberapa bacaan dasar yang dapat menambah wawasan Anda, antara lain: 


Android Studio

Android Studio adalah Lingkungan Pengembangan Terpadu - Integrated Development Environment (IDE) untuk pengembangan aplikasi Android, berdasarkan IntelliJ IDEA . Selain merupakan editor kode IntelliJ dan alat pengembang yang berdaya guna, Android Studio menawarkan fitur lebih demi meningkatkan produktifitas Anda saat membuat aplikasi Android, misalnya:
  • Sistem versi berbasis gradle yang fleksibel.
  • Emulator yang cepat dan kaya fitur.
  • Lingkungan yang menyatu untuk pengembangan bagi semua perangkat Android.
  • Instant Run untuk mendorong perubahan ke aplikasi yang berjalan tanpa membuat APK baru.
  • Template kode dan integrasi GitHub untuk membuat fitur aplikasi yang sama dan mengimpor kode contoh.
  • Alat pengujian dan kerangka kerja yang ekstensif.
  • Alat Lint untuk meningkatkan kinerja, kegunaan, kompatibilitas versi, dan masalah-masalah lain.
  • Dukungan C++ dan NDK.
  • Dukungan bawaan untuk Google Cloud Platform, mempermudah pengintegrasian Google Cloud Messaging dan App Engine.

Persyaratan Sistem

Windows
Mac
  • Microsoft® Windows® 7/8/10 (64-bit)
  • RAM minimum 4 GB, RAM yang disarankan 8 GB; tambah 1 GB untuk Android Emulator
  • Ruang disk minimum yang tersedia 2 GB,
    Disarankan 4 GB (500 MB untuk IDE + 1,5 GB untuk Android SDK dan gambar sistem emulator)
  • Resolusi layar minimum 1280 x 800
  • Mac® OS X® 10.10 (Yosemite) atau lebih baru, hingga 10.14 (macOS Mojave)
  • RAM minimum 4 GB, RAM yang disarankan 8 GB; tambah 1 GB untuk Android Emulator
  • Ruang disk minimum yang tersedia 2 GB,
    Disarankan 4 GB (500 MB untuk IDE + 1,5 GB untuk Android SDK dan gambar sistem emulator)
  • Resolusi layar minimum 1280 x 800
Linux
Chrome OS
  • Desktop GNOME atau KDE
    Telah diuji pada gLinux yang berbasis Debian
  • Distribusi 64-bit yang mampu menjalankan aplikasi 32-bit
  • GNU C Library (glibc) 2.19 atau lebih baru
  • RAM minimum 4 GB, RAM yang disarankan 8 GB; tambah 1 GB untuk Android Emulator
  • Ruang disk minimum yang tersedia 2 GB,
    Disarankan 4 GB (500 MB untuk IDE + 1,5 GB untuk Android SDK dan gambar sistem emulator)
  • Resolusi layar minimum 1280 x 800
  • 8 GB RAM atau lebih yang disarankan
  • Ruang disk minimum yang tersedia 4 GB
  • Resolusi layar minimum 1280 x 800
  • Disarankan Intel i5 atau lebih (U series atau lebih) 
Perangkat yang direkomendasikan:
  • Acer: Chromebook 13/Spin 13, Chromebox CXI3
  • Lenovo: Yoga C630 Chromebook
  • HP: Chromebook x360 14, Chromebox G2
  • Dell: Inspiron Chromebook 14
  • ASUS: Chromebox 3
  • ViewSonic: NMP660 Chromebox
  • CTL: Chromebox CBx