
Menjadi iOS Developer Expert
Teknologi:
iOSLevel: Mahir - Profesional
Siswa Terdaftar
Teknologi:
iOSLevel: Mahir - Profesional
Siswa Terdaftar
Kelas ini merupakan langkah ke-lima Anda untuk menjadi iOS Developer.
Banyak perusahaan berkompetisi untuk menjangkau pasar iOS sebanyak mungkin. Namun, mahalnya biaya akuisisi pengguna menjadi kendala dalam membangun aplikasi. Maka diperlukan aplikasi dengan performa tinggi agar dapat bersaing dan meningkatkan retensi pengguna. Minimnya bug, keamanan, dan ukuran aplikasi adalah faktor yang perlu diperhatikan untuk kenyamanan user. Pelajarilah kelas ini untuk mengetahui cara membuat kode yang dapat mengikuti kebutuhan bisnis serta tidak rapuh ketika dikembangkan.
Kelas ini merupakan langkah ke-lima Anda untuk menjadi iOS Developer.
Peralatan Belajar
Spesifikasi minimal perangkat:
Prosesor
Intel Core i3 (Rekomendasi Core i5 ke atas).
Tools yang dibutuhkan untuk belajar:
Xcode
Minimal Xcode 11 (Rekomendasi Xcode 12 atau terbaru).
Lihat semua peralatan belajar
Lihat semua peralatan belajarKelas ini membutuhkan spesifikasi perangkat seperti berikut:
RAM
4 GB (Rekomendasi 8 GB).
Layar
1366 x 768 (Rekomendasi Full HD 1920 x 1080).
Sistem Operasi
MacOS
Prosesor
Intel Core i3 (Rekomendasi Core i5 ke atas).
Kelas ini membutuhkan beberapa tools berikut:
Xcode
Minimal Xcode 11 (Rekomendasi Xcode 12 atau terbaru).
Metode Ajar
Lihat semua metode ajar
Lihat semua metode ajarKontributor
1Curriculum Developer yang membangun kelas ini:
Gilang Ramadhan
Curriculum Developer at Dicoding Indonesia
Reviewer
8Code Reviewer yang akan me-review tugas dan kode Anda:
Khrisna dari Dicoding
Head of Reviewer at Dicoding Indonesia
Gilang Ramadhan
Curriculum Developer at Dicoding Indonesia
Ahmad Suyadi
External Code Reviewer at Dicoding Indonesia
Ari Supriatna
iOS Developer at Bibit
Alfian Yusuf Abdullah
Code Reviewer at Dicoding Indonesia
Lihat semua kontributor dan reviewer
Lihat semua kontributor dan reviewerKontributor kelas
Curriculum Developer yang membangun kelas ini:
Gilang Ramadhan
Curriculum Developer at Dicoding Indonesia
Tim Reviewer
Code Reviewer yang akan me-review tugas dan kode Anda:
Khrisna dari Dicoding
Head of Reviewer at Dicoding Indonesia
Gilang Ramadhan
Curriculum Developer at Dicoding Indonesia
Ahmad Suyadi
External Code Reviewer at Dicoding Indonesia
Ari Supriatna
iOS Developer at Bibit
Alfian Yusuf Abdullah
Code Reviewer at Dicoding Indonesia
Deden Muhamad Furqon
Academy Code Reviewer at Dicoding Indonesia
Abdul Chathil
Mobile Developer at Bhinneka.com
Windy
External Code Reviewer at Dicoding Indonesia
Khrisna dari Dicoding
Head of Reviewer at Dicoding Indonesia
Gilang Ramadhan
Curriculum Developer at Dicoding Indonesia
Ahmad Suyadi
External Code Reviewer at Dicoding Indonesia
Ari Supriatna
iOS Developer at Bibit
Alfian Yusuf Abdullah
Code Reviewer at Dicoding Indonesia
Deden Muhamad Furqon
Academy Code Reviewer at Dicoding Indonesia
Abdul Chathil
Mobile Developer at Bhinneka.com
Windy
External Code Reviewer at Dicoding Indonesia
Ribuan siswa sukses belajar di Dicoding Academy. Apa kata mereka? Berikut adalah testimoni asli mereka.
Lihat semua testimoni
Lihat semua testimoniBerikut adalah beberapa pertanyaan yang paling sering ditanyakan.
Materi yang akan Anda pelajari pada kelas ini.
Memahami HAKI, mekanisme belajar, forum diskusi, glosarium, dan daftar referensi.
Forum Diskusi
Cara Belajar Pemrograman
Glosarium
Daftar Referensi
Mengerti pentingnya menulis kode dengan bersih (clean code) agar program yang dibuat dapat terus dikembangkan (scalable).
Pengantar Clean Code
Style Guideline
Code Convention
Code Convention : Penamaan
Code Convention : Gaya/Style
Code Convention : Spasi/Horizontal Whitespace
Code Convention : Organisasi Kode
Linter
Metode Instalasi Library
SwiftLint : Instalasi dan Implementasi
SwiftLint : Konfigurasi Aturan/Rule
Memahami cara terbaik dalam mengatasi permasalahan yang berulang menggunakan Design Pattern, yakni dengan meningkatkan kualitas rancangan aplikasi pada aspek-aspek penggunaan ulang (reusability), perluasan fungsi (extensibility), skalabilitas (scalability), dan pemeliharaan (maintainability).
Pengantar Design Pattern
Creational Pattern
Creational Pattern : Singleton
Creational Pattern : Builder
Creational Pattern : Factory Method
Creational Pattern : Dependency Injection
Structural Pattern
Structural Pattern : Facade
Structural Pattern : Adapter
Behavioral Pattern
Behavioral Pattern : Observer
Mengerti pentingnya menggunakan architecture pattern dalam membangun aplikasi, serta menjelaskan Clean Architecture untuk membangun aplikasi yang tertata dan mudah dipelihara.
Pengantar Architecture Pattern
Contoh Architectural Pattern
Clean Architecture
VIPER
Latihan Clean Architecture
Bedah Kode Clean Architecture
Latihan Pengujian pada Clean Architecture
Bedah Kode Pengujian pada Clean Architecture
Cara mengimplementasikan materi Clean Code, Design Pattern, dan Architecture Pattern melalui sebuah project aplikasi iOS.
Starter Project
Mengganti URLSession dengan Alamofire
Bedah Kode Mengganti URLSession dengan Alamofire
Menambahkan Locale Database
Bedah Kode Menambahkan Local Database
Implementasi paradigma pemrograman deklaratif menggunakan dua library yang sudah cukup terkenal, yakni RxSwift dan Combine.
Pengenalan Reactive Programming
Data Stream
Transformasi Data
Manfaat Reactive Programming
Library Reactive di iOS
RxSwift
RxSwift : Konsep Dasar
RxSwift : Multi-Threading dengan Schedulers
RxSwift : Disposable
RxSwift : Subject
RxSwift : Continuations dengan Flatmap
Latihan ReactiveX (RxSwift)
Bedah Kode ReactiveX (RxSwift)
Combine Framework
Combine : Konsep Dasar
Combine : Schedulers dan Thread Handling Operator
Combine : Cancellable
Combine : Subject
Combine : Continuations dengan Flatmap
Latihan Combine
Bedah Kode Combine
Perbedaan RxSwift dengan Combine
Perbedaan RxSwift dengan Combine : Typed Errors dan Exceptions Handling
Perbedaan RxSwift dengan Combine : DisposeBag
Perbedaan RxSwift dengan Combine : Performance
Perbedaan RxSwift dengan Combine : API dan Backward Compatibility
Perbedaan RxSwift vs Combine : Kesimpulan
Cara mengimplementasikan materi Reactive Programming melalui sebuah project aplikasi iOS.
Mengganti Callback dengan RxSwift
Bedah Kode Mengganti Callback dengan RxSwift
Mengganti Callback dengan Combine
Bedah Kode Mengganti Callback dengan Combine
Belajar mengenai teknik membangun aplikasi yang robust, baik secara manual maupun menggunakan library seperti Swinject dan Cleanse.
Pengantar Dependency Injection
Manual Dependency Injection
Service Locator
Perbedaan Dependency Injection dengan Dependency Inversion
Swinject
Swinject : Konsep Dasar
Swinject : Fitur-Fitur yang Dimiliki
Cleanse
Cleanse : Konsep Dasar
Cleanse : Studi Kasus
Perbedaan Swinject, Cleanse, dan Manual Injection
Cara mengimplementasikan materi Dependency Injection melalui sebuah project aplikasi iOS.
Dependency Injection dalam Project Capstone
Menguji pemahaman dalam implementasi Clean Code, Design Pattern, Architecture Pattern, Reactive Programming, dan Dependency Injection melalui pembuatan sebuah aplikasi iOS yang dapat menampilkan informasi dari server atau API dan menyimpannya ke dalam database lokal.
Submission Capstone Project
Belajar menulis kode melalui pendekatan pengujian.
Pengantar Test Driven Development (TDD)
Apa itu TDD
Workflow TDD
Latihan Membuat Aplikasi Segitiga
Latihan Memvalidasi Masukan
Latihan Mendeteksi Segitiga Sama Sisi
Latihan Mendeteksi Segitiga Sama Kaki
Latihan Mendeteksi Segitiga Sembarang
Latihan Menemukan Fitur Tak Terduga
Kesimpulan Modul Test Driven Development
Belajar mengenai proses otomatisasi untuk mempermudah pengujian aplikasi.
Pengantar Continuous Integration
Tool untuk Continuous Integration
Alur Continuous Integration
Latihan Membangun Continuous Integration dengan Travis CI
Latihan Menghubungkan Project dengan GitHub
Latihan Memperbarui Kode di GitHub
Latihan Menghubungkan Project dengan Travis CI
Latihan Menjalankan Travis CI
Cara membangun aplikasi berskala besar melalui paham Modularization untuk membuat module.
Pengantar Modularization
Pendekatan untuk Membuat Modularization
Kapan Kita Harus Menggunakan Modularization
Perbandingan Framework dengan Static Library
Latihan Membuat Framework dengan Cocoapods
Komunikasi
Hubungan Antar Framework
Circular Dependency
Latihan Navigasi Antar Modul
Assets
Latihan Mengakses Gambar di Modularization
Font
Latihan Menambahkan Font Khusus
Latihan Mengakses Font di Modularization
Localization
Latihan Menambahkan Localization
Modul dan Clean Architecture
Latihan Clean Architecture dalam Modularization
Mempublish Modul ke Git Repository
Latihan Mengunggah Modul ke GitHub Melalui Podfile
Latihan Mengunggah Modul ke GitHub Melalui Carthage
Latihan Mengunggah Modul ke GitHub Melalui Swift Package Manager
Kesimpulan Modul Modularization
Cara mengimplementasikan materi Modularization melalui sebuah project aplikasi iOS.
Menambahkan Fitur
Mengimplementasikan Modularization
Membuat Modul Core
Membuat Modul Category
Refactor Aplikasi Utama
Menguji pemahaman dalam implementasi Test Driven Development, Continuous Integration, dan Modularization melalui pembuatan sebuah aplikasi iOS yang dapat menampilkan informasi dari server atau API dan menyimpannya ke dalam database lokal.
Submission Akhir Capstone Project