Setahun Ngoding iOS, Ini Pesan Saya Untuk Yang Mau Mulai.

macbook & ipad

Belajar sesuatu yang baru memang tidak mudah, tapi bukan berarti tidak bisa. Awal Maret 2020 saya memulai belajar iOS Development, karena apa? karena saya join Apple Developer Academy dan saya punya device yang mumpuni (Macbook Pro 2019 & iPhone 11) serta memiliki waktu untuk belajar.

Setiap memulai belajar sesuatu yang saya lakukan adalah mengosongkan gelas. saya mulai mencari sumber belajar iOS development, bertanya pada teman yang sudah memulai lebih awal belajar dan juga join forum forum terkait iOS development.

Sebenarnya memulai belajar iOS Development tidak perlu menunggu punya macbook atau ikut Apple Developer Academy terlebih dahulu. teman teman bisa coba belajar Swift-nya dulu lewat Online Swift Compiler. Jika nanti sudah dapat pinjaman macbook atau sudah bisa beli sendiri, maka teman teman sudah lebih siap. Opsi lain jika memang teman teman rebel dan suka ngulik, bisa coba untuk menginstall Hackintosh. Ah, tapi rasanya perangkat apple sekarang sudah relatif murah. bahkan tidak lebih mahal daripada laptop gaming yang di-idam-idamkan Mahasiswa Teknik Informatika. So, tentukan pilihanmu sendiri.

Dalam belajar iOS development terkadang kita mesti berbenturan antara idealisme dan kebutuhan Industri. Contohnya: UIKit vs SwiftUI, Storyboard vs UIKit Programmatically. Bahkan, ketika sudah menentukan untuk tidak pakai storyboard pun kita terkena politik mau menyusun layout menggunakan constraint (NSLayoutConstraint)atau frame (CGRect). Namun berikut adalah apa yang bisa saya sharing agar teman teman bisa memiliki sedikit guide dalam belajar hal ini.

  1. Mulailah membuat project dengan storyboard dan rasakan pengalaman drag & drop object serta mengatur constraint melalui UI. ini akan memberikan pemahaman ketika nanti kita akan membuat UI secara programmatical. Dimana kita akan mengerti apa itu safearea, margin, serta ketergantungan antar komponen. Jangan pake extension anchor dulu atau pakai library dulu. Belajar dari awal, jangan loncat loncat.
  2. Belajar Networking.
    Terkadang kita terlalu senang ketika membuat aplikasi sederhana seperti todolist dan bermain dengan komponen seperti imageview, kamera, coredata, label dll. Namun ada baiknya mulai belajar membuat aplikasi yang mengkonsumsi data dari API. boleh menggunakan URLSession, Alamofire atau Moya. Akan lebih baik jika bisa dikombinasikan dengan framework seperti RxSwift atau Combine. Berikut adalah list api yang bisa teman gunakan dalam project belajar teman teman. Global | Local
  3. Jangan Takut Mencoba SwiftUI.
    Kita melihat saat ini industri di Indonesia belum banyak yang mengadopsi SwiftUI untuk aplikasinya, tapi tidak ada salahnya untuk dipelajari. siapa tahu nanti ada sebuah perusahaan baru dan mereka hiring ios developer yang memiliki kemampuan SwiftUI, maka kamu sudah siap.
  4. Sering sering latihan membuat Aplikasi.
    Usahakan disetiap aplikasi yang kita buat baiknya memiliki komponen komponen yang umum dipakai seperti TableView, CollectionView, SegmentedController, TabBar dan lain lain. Juga implementasi fungsi atau framework yang ada pada Apple Sistem seperti Face ID, Sign With Apple, iCloud dll. Ini akan membantu kamu saat nanti kamu melakukan user interview saat melamar kerja. pertanyaan pertanyaan tentang komponen itu tidak jarang ditanyakan. Maka persiapkanlah.
  5. Pikirkan Tentang Backward Compability.
    salah satu hal yang sering saya abaikan adalah tentang backward compability, sering saya mengadopsi framework atau teknologi baru namun berakibat pada tidak support-nya sistem operasi versi lama. contoh penggunaan SwiftUI atau Combine Framework yang hanya support mulai dari iOS 13 ke atas.

Tips Singkat:
- Sisihkan Storage paling tidak 40GB agar mudah untuk mengupdate Xcode
- Rajin rajin membaca Swift Interview Question disini
- Pelajari operator-operator seperti map, flatmap, concatMap, filter dll. Jangan sampai memanipulasi array saja tidak bisa.
- Jangan lupakan hal hal basic seperti Big O Notation, iOS lifecycle, Bedanya Struct Vs Class dll. Ini tidak jarang ditanyakan ketika user interview.
- Kalau ada waktu, pelajari TDD, Unit Testing dan CI/CD.

Tempat Online dimana saya bisa belajar.

  1. Raywenderlich
  2. HackingWithSwift
  3. Telegram Group Apple Swift Indonesia
  4. Youtube iOS Academy
  5. Dicoding iOS Learning Path

Itu saja yang bisa saya bagikan, semoga bisa bermanfaat. jika ingin tanya tanya feel free untuk hubungi saya lewat Discord atau Telegram.

Thank You. Semangat Menuntut Ilmu.

Swift, Kotlin and Flutter Developer | Tech Geek, Passionate Writer — ihwan.id