Kembali ke Q3 / Q4 2016, ketika saya masih menjadi siswa tahun ketiga, saya memiliki kesempatan untuk mulai membentuk karier saya sebagai pengembang perangkat lunak, terutama untuk pengembangan iOS. Pada waktu itu, sebelum saya merujuk oleh teman baik saya dan juga ahli Android, saya tidak pernah melakukan pemrograman di lingkungan Apple, saya tidak pernah mengkode aplikasi iOS sebelumnya, baru mulai mempelajari permukaan pengembangan iOS, dan berhenti karena beberapa kegiatan di perguruan tinggi .
Dan, saya ditunjuk untuk menangani pengembangan aplikasi online ojek mereka untuk perangkat iOS (tetapi sampai sekarang, aplikasi itu tidak berfungsi), dan itu sangat melelahkan bagi saya, untuk pertama kalinya mengerjakan proyek besar tanpa pengalaman sebelumnya dalam pengembangan iOS . Dillema, saya bisa menyelesaikan proyek itu atau tidak pernah, karena kemampuan saya yang terbatas saat itu.
Hal pertama yang membuat saya kewalahan di dunia pengembangan iOS saat itu adalah Auto Layout. FYI, tata letak otomatis adalah sistem tata letak berdasarkan kendala yang diterapkan pada komponen UI pada tampilan Anda, yang membuat kami membuat tata letak tetap konsisten & responsif pada berbagai ukuran layar perangkat, misalnya, tombol Masuk harus diletakkan di bagian bawah bidang teks kata sandi dengan offset 20 poin, dengan tinggi 45 poin, dan inset kiri kanan diatur ke 45 poin untuk superview. Itu seperti, wtf, mengapa membuat tata letak tidak ringkas dan mudah, dibandingkan dengan tata letak berbasis Android XML. Setelah saya berjuang untuk mempelajari tata letak Otomatis, disertai dengan berbagai bahan bacaan di Apple docs, raywenderlich.com, dan banyak solusi Stack overflow, maka saya memiliki pemahaman yang lebih baik tentang hal itu. Oh, itu tidak sesulit yang dibayangkan sebelumnya, dan sekarang saya menikmatinya.
Tata Letak Otomatis dipelajari bersama dengan belajar cara membuat tata letak UI untuk aplikasi iOS, menggunakan Storyboard, XIB, atau kode. Saat itu, saya menggunakan storyboard untuk menyelesaikan proyek. Sangat menarik dan menyenangkan, membuat UI di storyboard, menentukan navigasi, tapi saya tidak suka lagi sekarang. Sampai sekarang, saya lebih suka membuat tata letak UI baik dalam XIB atau kode lengkap. Selain belajar cara membuat tata letak UI, maka saya belajar tentang View Controller yang mengelola tampilan, menangani interaksi pengguna, menyajikan tampilan, dan juga memahami siklus hidup mereka.
Setelah saya mempelajari beberapa hal tata letak UI, saya mulai belajar, bagaimana membuat panggilan jaringan. Apple telah menyediakan URLSession untuk melakukan panggilan jaringan, tetapi bagi saya, itu terlalu rumit dan sulit dimengerti, dan pilihan saya adalah, Alamofire. Itu adalah perpustakaan yang bagus untuk membuat panggilan jaringan, mudah digunakan, dan ringkas. Saat itu di tahun 2016, saya sering menggunakan SwiftyJSON untuk memetakan data respons ke kamus (pada waktu itu, saya tidak tahu bagaimana memetakan respons ke struct, lol). Waktu berlalu, kemudian Codable muncul, dengan Swift 4.
Jangan lupa untuk mempelajari Grand Central Dispatch untuk menangani konkurensi, mengirim antrian, dan juga untuk tujuan multithreading.
Pada saat itu, kembali ke ketika saya pertama kali memulai pengembangan iOS, saya tidak pernah mempertimbangkan tentang kualitas kode, testability, dan juga pemisahan perhatian. Semuanya dimasukkan ke View Controller, lol.
Setelah itu, saya mulai belajar hal baru. MVVM dan RxSwift. Saya menggunakan arsitektur itu dan pustaka reaktif itu pada proyek & tujuan pembelajaran kedua saya. Kesan pertama? Wah, bagus.
Sebagai contoh, ketika saya membuat UITableView, untuk memberi makan tampilan tabel dengan data kami, kami biasanya membuat objek terpisah (atau VC itu sendiri) menjadi delegasi tampilan tabel dan sumber data, sehingga tampilan tabel dapat meminta delegasikan dan sumber data untuk mengelola aksi tampilan tabel atau mengumpankan data. Dengan RxSwift, saya hanya menggunakan kode berikut untuk memberi makan data, dan mengembalikan sel masing-masing
Tetapi, penggunaan RxSwift tidak hanya untuk memberi makan tampilan tabel secara reaktif, itu lebih dari itu, misalnya digunakan untuk aliran data antara satu lapisan ke lapisan lain, atau mengemudi UI.
Oke, MVVM dan RxSwift sudah selesai, jadi apa yang saya pelajari selanjutnya?
Mempelajari konsep arsitektur bersih, pengujian unit, menerapkan prinsip-prinsip SOLID, dan juga tertarik untuk bereksperimen dengan arsitektur VIPER, sepertinya menarik, bukan?
Ringkasan
Jadi, saya mulai belajar pengembangan iOS dengan hal-hal ini:
- beli mac
- belajar membuat tata letak UI
- tata letak otomatis
- mengikat tata letak UI di XIB / Storyboard ke kode
- lebih banyak komponen UIKit
- pengiriman grand central
- panggilan jaringan
- arsitektur selain MVC
- RxSwift
- pengujian unit
dan banyak hal ...: D
Jadi, jika Anda ingin mempelajari pengembangan iOS, pastikan Anda memiliki Mac terlebih dahulu, lalu baca dokumentasi resmi Apple, baca tutorial dan konsep lain, dan mulailah kode. Ciao