Oleh: Julian Alimin
Cari saya di link-link berikut
List Tutorial ala Skillshare (Coming Soon)
Youtube Player (Coming Soon)
List Pembelajaran (Coming Soon)
About Page (Coming Soon)
Contact Me (Coming Soon)
Advanced
Login (Coming Soon)
Admin untuk baca Contact (Coming Soon)
Push Notification (Coming Soon)
Upload ke Google Play Store (Coming Soon)
Otomatisasi Upload ke Google Play Store (Coming Soon)
Upload ke Apple App Store (Coming Soon)
Otomatisasi Upload ke Apple App Store (Coming Soon)
Upload ke Huawei App Gallery (Coming Soon)
ngLint (Coming Soon)
Karma (Coming Soon)
Protractor (Coming Soon)
Sonarqube (Coming Soon)
Codecov (Coming Soon)
Atau navigasi kebawah untuk lihat versi Text
Tujuan Tuntas Belajar Ionic adalah sebagai salah satu pilihan untuk belajar Ionic berbahasa Indonesia.
Isi pembelajaran ini akan terus diupdate dengan harapan suatu saat benar-benar tuntas
Jika ingin memberikan masukkan Materi atau bahkan ingin menyumbangkan isian maka bisa lgs saja membuka Issue atau submit Pull Request ke.
Hi, nama Saya Julian Alimin
Saat ini saya menjabat sebagai VP of Engineering di GreatDay HR dimana kami membuat aplikasi HRIS Mobile First menggunakan Ionic dengan jumlah pengguna harian lebih dari 500 ribu
Saya memiliki 16 Tahun pengalaman kerja di Dunia IT mencakup Development, Implementasi & Maintenance Product ( dan kadang juga bantu Sales Support )
Hobby saya diantaranya adalah bermain Bola serta ngoprek-ngoprek technology terbaru ( jika ada budgetnya )
Dan di waktu senggang saya senang menghabiskan waktu dengan Keluarga
Cukup tentang saya, mari lanjut ke Materi
Tuntas Belajar Ionic
Atau navigasi kebawah untuk lihat versi Text
Menurut website resminya:
Ionic’s open source Framework and developer-friendly tools and services power apps for some of the world’s best-known brands
Kita ambil 3 Kata Benda yang digunakan oleh Ionic:
Bersifat Framework Agnostic sehingga bisa digunakan dengan Framework apa saja (Angular, React Vue) atau dengan Vanilla Javascript.
Ionic Appflow (dulunya Ionic Cloud) merupakan kumpulan Tools berbayar untuk membantu development Ionic. Beberapa Fiturnya:
Atau navigasi kebawah untuk lihat versi Text
Hal minimal yang dibutuhkan adalah Node JS dan sebuah IDE (Saya merekomendasikan VS Code)
Pro Trip: Gunakan NVM
## Cara yang direkommendasikan Ionic
npm install -g @ionic/cli
ionic start myApp tabs
## Cara yang saya rekomendasikan
npx --package @ionic/cli ionic start myApp tabs
atau
npx -p @ionic/cli ionic start myApp tabs
npx -p @ionic/cli ionic serve
## atau install @ionic/cli sebagai dev dependency
## agar npx tidak selalu menginstall
npm install -E -D @ionic/cli
## lalu jika ingin menjalankan cukup
npx ionic serve
## atau gunakan script npm
npm run start
Atau navigasi kebawah untuk lihat versi Text
Failing to Plan is Planning to Fail
Gagal berencana adalah berencana untuk Gagal
Hal terpenting sebelum mulai coding adalah perencanaan.
Banyak Tools yang bisa digunakan untuk Design. Figma dan XD adalah dua Tools yang sangat digemari sekarang. Setidaknya buatlah Mood Board agar tahu arah Aplikasinya akan kemana.
Pekerjaan perlu di pecah menjadi beberapa bagian. Biasanya saya menggunakan Trello tetapi Github dan Gitlab menawarkan Project Management sederhana yang terintegrasi dengan website mereka sehingga tidak memerlukan sistem lain.
Atau navigasi kebawah untuk lihat versi Text
Dikarenakan ini project Nodejs maka sudah pasti ada file package.json
dan package-lock.json
untuk mengatur daftar scripts dan dependencies dari npm yang perlu diinstall untuk menjalankan project ionic kita.
Dikarenakan kita menggunakan Angular para Project ini, maka saat memanggil script untuk menserve dia sebetulnya menjalankan perintah angular. Dimana Angular akan mengcompile dan membuat beberapa chunk dan menjalankan sebuah Web Server di localhost untuk melihat hasilnya di Browser.
Berisi rules linting dari Typescript.
Ini adalah configurasi dari typescript compiler kita. Contoh setupnya seperti apa target bahasanya misalnya es2015, informasi kemana hasil compiling akan diletakkan dan lainnya.
Ini configurasi Karma runner yang digunakan saat melakukan Unit Testing dengan Karma.
Digunakan untuk setup Ionicnya. Jika kita menggunakan beberapa fitur Ionic di Cloud (App flow) maka configurasinya akan diletakkan disini juga.
Untuk mencatat daftar target browser saat Angular membuild Project ini.
Configurasi Angular dari mulai nama Project, jenis-jenis isi di Projectnya, dll.
Untuk configurasi file-file apa yang tidak perlu masuk ke Git. Dari Ionic sudah dibantu dengan isian dari default template mereka seperti node_modules dan build folder tidak usah masuk Git.
Digunakan untuk seluruh Configurasi dan Script End-To-End Test. Lebih detil nanti
Seluruh dependency dari package.json didownload dan di build disini. Folder ini besar dan sengaja tidak dimasukkan ke Git.
Berisi seluruh coding aplikasi kita. Disinilah sebagian besar development terjadi.
File ini untuk mengatur change detection pada aplikasi Angular
File Test untuk Unit Testing. Ini yang akan dijalankan oleh Karma nanti.
Agar aplikasi kita dapat tetap berjalan pada jenis browser-browser yang lama maka file ini akan mengakali beberapa library agar tetap bisa digunakan. Tapi tetap saran saya sih user agar menggunakan browser jenis terbaru.
Ini adalah file root dari Angular yang akan meenjalankan seluruh aplikasi Angularnya.
Ini adalah file pertama yang akan dijalankan oleh Browser. Dan Angular akan menginject diri ke file ini sehingga aplikasinya bisa berjalan.
File ini mengatur styling css dari seluruh aplikasi. Jika ada library external yang mau dimasukkan secara global maka pastinya perlu dimasukkan kesini.
Variabel untuk mengcustomisasi styling biasanya diletakkan disini.
File-file disini digunakan untuk setting/parameter tambahan saat menjalankan Angular. Biasanya digunakan untuk membedakan url server production dan development atau flag-flag lainnya.
File-file seperti gambar, fonts, json, file untuk bahasa dan dokument diletakkan disini karena tidak perlu dicompile dan hanya dipanggil saja.
File main.ts akan memanggil file ini untuk memulai menginisasi module-module yang akan digunakan. Lalu apakah entry component (komponen pertama yang akan dipanggil) juga di konfigurasi disini.
Ini umumnya adalah Komponen pertama yang dipanggil. Sehingga biasanya script-script inisiasi Aplikasi ada disini.
Umumnya sebuah komponen akan menampilkan html. Ini disebut template. Template dapat ditulisan di dalam file .ts si Komponen atau menggunakan templateUrl diarahkan ke file html yang akan menjadi templatenya.
Setiap komponent jika memerlukan Styling maka dapat ditambahkan inlince styling atau styleurls. Dengan beitu sebuah file css/scss terpisah akan dipanggil untuk membantu styling.
Jika Aplikasi kita memiliki banyak page maka setiap Page perlu diarahkan ke URL pada Browser. Ini dilakukan di Routing Module. Setiap Module dapat memiliki Routing Module jadi setiap Module dapat bekerja secara autonom.
Atau navigasi kebawah untuk lihat versi Text
Ionic menyediakan Dokumentasi lengkap untuk semua Komponen
Setiap Komponen memiliki penjelasan, ada contoh tampilan langsung yang dan contoh implementasi kode yang bisa kita copy paste
Atau navigasi kebawah untuk lihat versi Text
Ionic menyediakan implementasi flexbox untuk membuat layout
Atau navigasi kebawah untuk lihat versi Text
Karena kita masih ingin Fokus ke Aplikasi kita sendiri tanpa memerlukan Server maka untuk Sumber data akan kita letakkan di file JSON di Folder Assets.
Kita akan menggunakan Angular HttpClient untuk membaca JSON ini dan menggunakan Service File agar seluruh Business Logic terpisah dengan Komponen.
## membuat file service
npx ng generate service shared/api/content
HttpClient digunakan untuk melakukan HTTP Request. Kembalian dari requestnya adalah observable jadi untuk mendapatkan data bisa dengan mensubscribe ke observablenya atau dengan memanfaatkan toPromise() yang tidak disarankan.
Agar dapat memaksimalkan typing dari typescript maka disarankan untuk membuat interface yang mendeskripsikan kembalian dari HTTP Request
## membuat file service
npx ng generate interface shared/api/models/kursus
Apa jadinya jika aplikasi yang dibuat tidak memiliki Routing? Aplikasinya menjadi single view dan tidak dapat mempertahankan state navigasi saat melakukan reload browser.
Ini adalah contoh dengan single state
Dari sisi Angular jauh lebih baik jika menggunakan Router sehingga aplikasi bisa menggunakan berbagai Komponent
Dan jika menggunakan Tabs seperti pada contoh Aplikasi yang sedang dikembangkan maka pastinya menjadi sedikit lebih rumit
Tentunya masing-masing Komponent dapat di Konversi menjadi Module sehingga menggunakan lazy Loading