19
Fundamental Android Application Development Sidiq Permana (nouvrizky10) CIO of Nusantara Beta Studio Professional Android Application Trainner Google Developer Expert and Intel Android Software Innovator [email protected]

Fundamental android application development 150726141127 Lva1 App6892

Embed Size (px)

DESCRIPTION

Program komputer

Citation preview

Page 1: Fundamental android application development 150726141127 Lva1 App6892

Fundamental Android Application

DevelopmentSidiq Permana (nouvrizky10)CIO of Nusantara Beta Studio

Professional Android Application TrainnerGoogle Developer Expert and Intel Android Software Innovator

[email protected]

Page 2: Fundamental android application development 150726141127 Lva1 App6892

Konsep pengembangan aplikasi Android• Kebutuhan pemahaman dasar dalam mengembangkan aplikasi

Android adalah :• Pemahaman tentang Algoritma dan struktur data• Pemahaman tentang Object Oriented Programming• Pemahaman tentang Java Standard Edition Programming• Pemahaman tentang penggunaan Android Studio dan Pemanfaatan Android

SDK dan API didalamnya

Page 3: Fundamental android application development 150726141127 Lva1 App6892

Tools yang dibutuhkan

• Android Studio (Stable build)• Java SDK 8

Page 4: Fundamental android application development 150726141127 Lva1 App6892

Referensi Utamahttp://developer.android.com • Android Application Development Guide (

http://developer.android.com/guide/index.html) • Android Application Development Training (

http://developer.android.com/training/index.html) • Buku : Professional Android 4 Application Development by Reto

Meier (PA4AD)

Page 5: Fundamental android application development 150726141127 Lva1 App6892

Pola Pikir Dasar Mengembangkan AplikasiApapun platformnya konsep dasar dalam mengembangkan aplikasi adalah Bagaimana menampilkan informasi di layar, melakukan proses yang dibutuhkan dan berpindah dari satu halaman ke halaman lain dengan atau tanpa data

Page 6: Fundamental android application development 150726141127 Lva1 App6892

Komparasi antara Web App Dev dengan Android App Dev

Komponen Web Android

Halaman Page Activity dan Fragment

UI komponen HTML, CSS XML

Logic PHP, ASP, JSP, RUBY etc Java

Berpindah halaman dengan Tag <a href></a> Intent

Page 7: Fundamental android application development 150726141127 Lva1 App6892

Activity

• Activity adalah Komponen android yang menyediakan tampilan didalam sebuah aplikasi dimana pengguna akan berinteraksi dengannya. Misal layar list chat pada aplikasi whatsapp android, user timeline yang ada di aplikasi twitter dan facebook anda, layar inbox pada aplikasi gmail anda dan lain sebagainya.

• Setiap class Java dinyatakan sebagai sebuah Activity jika class tersebut meng-extends pada class Activity

• Activity umumnya memiliki sebuah tampilan dalam format layout .xml• Activity memiliki lifecycle di memory dimana para developer android harus peduli dan

tau kapan sebuah Activity diciptakan (create) hingga dimatikan (destroy) dari memory• Setiap Activity yang dimiliki dan akan digunakan di aplikasi harus di registrasikan di file

AndroidManifest.xml • Activity menganut konsep Stack : Last in First Out (LIFO)

Page 8: Fundamental android application development 150726141127 Lva1 App6892

Activity Lifecycle

Baca Lebih Lanjut : http://developer.android.com/guide/components/activities.htmlPA4AD page 86 - 93

Page 9: Fundamental android application development 150726141127 Lva1 App6892

Last in First Out Stack pada Activity

• Activity menggunakan konsep Stack Last in First Out yang mana setiap activity yang terakhir diciptakan atau ditampilkan dilayar akan keluar pertama kali dari stack jika :• Pengguna menekan tombol physical back button• Back button pada Action Bar Aplikasi

Page 10: Fundamental android application development 150726141127 Lva1 App6892

Intent

• Intent adalah mekanisme untuk melakukan Action pada komponen aplikasi lain. Pemanfaatannya sebagai berikut :• Untuk berpindah halaman dari satu Activity ke Activity lain dengan atau tanpa

data• Untuk menjalankan background Service misal dibutuhkan sebuah proses

service untuk mengambil lokasi pengguna, download file atau sikronisasi ke server• Untuk menyampaikan sebuah objek dari komponen Broadcast misal jika ingin

mengetahui jika device Android sudah selesai booting setelah diaktifkan

Page 11: Fundamental android application development 150726141127 Lva1 App6892

Tipe-tipe Intent

• Explicit Intent• Untuk mengaktifkan komponen-komponen dalam satu aplikasi yang sama

misal : Berpindah Activity atau mengaktifkan service untuk mendownload file secara background

• Implicit Intent• Untuk mengaktikan komponen dari aplikasi lain. Misal : mengaktifkan dial

phone pada aplikasi Telp, mengaktifkan driving direction pada Google Maps atau mengirimkan pesan via Gmail, sms atau aplikasi lainnya.

Page 12: Fundamental android application development 150726141127 Lva1 App6892

Ilustrasi umum

Ilustrasi bagaimana Intent mengaktifkan Activity pada aplikasi lain. 1. Activity A membuat Intent untukmelakukan sebuah Action dengan data object yang ada. 2. Sistem Android akan mencari aplikasi yang cocokBerdasarkan Intent filter yang ada dan 3. Activity pada aplikasi yang cocok akan ditampilkan.

Baca lebih lanjut : http://developer.android.com/guide/components/intents-filters.html PA4AD : Page 166 – 172

Page 13: Fundamental android application development 150726141127 Lva1 App6892

AndroidManifest.xml dan Gradle (Module app)• File yang akan mengontrol semua komponen, level SDK dan

permission yang ada di aplikasi• File yang akan mengontrol semua dependency library yang digunakan

oleh Aplikasi

Page 14: Fundamental android application development 150726141127 Lva1 App6892

Fragments

• Fragment adalah bagian user interface dalam sebuah Activity. • Fragment menjadi sebuah tampilan UI dalam Android dipecah-pecah menjadi kecil-

kecil dan bisa mempermudah untuk digunakan ulang (reusable) • Satu Activity dalam sebuah aplikasi Android dapat menampung lebih dari 1 fragment.• Tidak seperti Activity, fragment tidak perlu diregistrasikan di file AndroidManifest.xml

cukup dengan menggunakan fragment transaction• Satu class Java dinyatan sebuah fragment jika class tersebut meng-extends dari class

Fragment• Sama dengan Activity, Fragment juga memiliki Lifecycle• Analogi yang paling mendekati fragment adalah komponen Frame pada

pengembangan aplikasi berbasis Web

Page 15: Fundamental android application development 150726141127 Lva1 App6892

Fragment Lifecycle• onCreate() : method yang pertama kali dieksekusi ketika fragment diciptakan.

Inisiasikan library yang akan digunakan disini• onCreateView() : method yang digunakan untuk melakukan inflate User

Interface menggunakan layout xml• onPause() : method ini dieksekusi ketika user meninggalkan fragment tapi

dengan artian fragment tidak dalam posisi dihancurkan (onDestroy()) contohnya ketika user menerima panggilan telp

• onActivityCreated() : method ini ketika method onCreate() pada Activity yang ditempeli dieksekusi dengan artian ketika Activity diciptakan secara otomatis fragment yang menempel akan diciptakn pula. Letakan kode terkait logik disini.

Page 16: Fundamental android application development 150726141127 Lva1 App6892

Contoh Implementasi Fragment

Penggunaan fragment banyak diimplementasikan pada aplikasi-aplikasi yang membutuhkan flexibilitas pada tampilan misal pada aplikasi berita. Dengan menggunakan Fragment proses perubahan pada tampilan landscape di layar tablet yang besar akan lebih proposional dan akan menyesuaikan jika berubah ke tampilan portraitpada layar smartphone umum.

Baca lebih lanjut : http://developer.android.com/guide/components/fragments.html PA4AD : 114 - 126

Page 17: Fundamental android application development 150726141127 Lva1 App6892

Contoh Lain Implementasi Fragment : Sliding Tab UI (Kombinasi ViewPager, TabLayout dan Fragment)

Page 18: Fundamental android application development 150726141127 Lva1 App6892

Tips dan Trik Pemrograman Android

• Penulisan kode dengan memanfaatkan code assistant pada Android Studio • Sering-sering memanfaatkan Ctrl (tahan) + Space• Rajin baca referensi, blogs dan online tutorials• Rajin latihan bikin aplikasi Android

Page 19: Fundamental android application development 150726141127 Lva1 App6892

Thank You