10 keterampilan dan pengetahuan yang diperlukan untuk pengembang iOS pemula

gambar

Profesi pengembang iOS sekarang cukup diminati, dibayar dengan baik, dan bahkan mungkin modis, dan karenanya menarik banyak orang.

Banyak kandidat untuk lowongan terbuka mendatangi saya dan kolega saya untuk wawancara, dan saya jelas melihat di antara banyak pendatang baru kurangnya pengetahuan dasar atau hanya pengetahuan yang tidak pasti tentang itu. Meskipun ada banyak artikel, buku, dan kursus (berbayar dan gratis) di Internet, dari mana Anda bisa mendapatkan pengetahuan yang diperlukan, tidak selalu mudah untuk memahami topik mana yang harus dikonsentrasikan.

Pada artikel ini saya akan berbagi informasi tentang keterampilan dan pengetahuan apa yang saya anggap penting untuk pengembang iOS pemula, mencoba menjelaskan mengapa mereka dibutuhkan dan memberikan tautan ke materi untuk studi mereka.

Materi ini ditujukan terutama bagi mereka yang ingin memulai pelatihan, mengisi kekosongan atau memahami kesediaan mereka untuk bekerja sebagai pengembang iOS. Saya akan mencoba menjelaskan semuanya dengan kata-kata sederhana.

Saya harus segera mengatakan bahwa sebagian besar materi yang akan saya berikan tautannya adalah dalam bahasa Inggris. Saya mengerti bahwa belajar bahasa Inggris bisa lebih sulit dan lebih lambat pada awalnya, tetapi itu akan membuahkan hasil di kemudian hari - Anda tidak selalu dapat menemukan materi relevan yang baik dalam bahasa Rusia.

Langkah pertama


Sebelum mempelajari topik-topik berikut, saya sarankan menyiapkan yayasan, yaitu, mengambil (mendengarkan dan mereproduksi semua tugas) kursus CS 193P gratis dari Stanford University dan membaca dokumentasi Swift di situs web Apple.

Sangat normal jika Anda tidak memahami atau mengingat semua topik, tetapi Anda akan memiliki dasar - pemahaman dasar terstruktur tentang aplikasi iOS perangkat dan konstruksi bahasa Swift. Menghabiskan waktu pada hal-hal ini di awal, akan jauh lebih mudah bagi Anda untuk menambah pengetahuan tentang setiap topik.

1. Tata Letak Otomatis, Storyboard, tata letak dari kode


Membuat antarmuka aplikasi berbasis tata letak adalah keterampilan dasar untuk seorang programmer iOS. Anda harus tahu tidak hanya komponen utama dari mana antarmuka dirakit (UIView, UILabel, UIButton, UIImageView, dll.), Tetapi juga bagaimana mengaturnya di layar untuk mencapai posisi dan ukuran yang diinginkan pada layar berukuran berbeda, termasuk saat memutar perangkat. Untuk kesederhanaan, saya akan menyoroti 3 cara untuk membuat antarmuka:

  • cara visual melalui Interface Builder
  • sepenuhnya menggambarkan antarmuka dari kode
  • opsi gabungan, ketika bagian dari isi layar dimasukkan melalui Interface Builder, dan pengaturannya dipindahkan ke kode.


Keterampilan tata letak antarmuka hanya melalui Pembuat Antarmuka di StoryBoard mungkin tidak cukup untuk Anda. Selain tidak dapat melakukan semuanya melalui StoryBoard, Anda perlu memahami bahwa beberapa pengembang sedang mengerjakan aplikasi besar, dan sistem kontrol versi (paling sering Git) digunakan untuk menggabungkan hasil pekerjaan mereka. Ketika beberapa orang mengerjakan sepotong kode, hasil pekerjaan mereka tidak selalu memungkinkan untuk digabungkan secara otomatis. Jika antarmuka dirancang oleh programmer dari kode, penggabungan lebih mudah dan lebih cepat daripada saat kode dihasilkan oleh Interface Builder.

Untuk menguasai topik, saya sarankan:


Bagaimana memahami bahwa Anda telah menguasai topik dengan cukup? Ambil salah satu aplikasi yang Anda gunakan di iPhone Anda. Anda dapat mulai dengan yang standar, misalnya, Apple Music. Cobalah untuk mereproduksi sepenuhnya satu atau beberapa layar yang Anda lihat, dan juga perilakunya saat berputar.

gambar

2. Siklus hidup ViewController


Untuk mempermudah, anggaplah bahwa setiap layar dalam aplikasi seluler adalah ViewContoller, atau lebih tepatnya, itu adalah turunan dari kelas UIViewContoller. Penting bagi pengembang iOS untuk mengetahui bagaimana siklus hidup layar bekerja, atau lebih tepatnya, metode apa yang akan dilakukan selama persiapan, penampilan, rotasi, penghancuran, dan kondisi layar lainnya.

gambar

Bahan terkait:


3. Bekerja dengan UITableView dan UICollectionView


Sebagian besar antarmuka aplikasi seluler berbasis tabel. Anda harus dapat menambahkan tabel ke layar, menyiapkan sel, mengimplementasikan protokol yang diperlukan, menetapkan delegasi dan sumber data.
Selain itu, penting untuk memahami mengapa pengidentifikasi diperlukan, dan apa yang dimaksud dengan penggunaan kembali sel.

Bahan terkait:


4. Grand Central Dispatch


Aplikasi harus dapat secara bersamaan memecahkan beberapa masalah. Misalnya, saat pengguna membuka feed berita, data diunduh dari jaringan, dan antarmuka tidak diblokir.

Grand Central Dispatch adalah salah satu topik penting dan agak sulit yang harus Anda ketahui jika Anda akan memprogram untuk iOS.

Bahan terkait:


5. Jaringan, menerima data dari JSON


Manakah dari aplikasi favorit Anda yang terus berfungsi tanpa koneksi internet? Saya pikir jika Anda membuang kembali gim, Anda akan melihat bahwa sebagian besar aplikasi bekerja dengan data dari jaringan. Apa, dalam hal ini, yang harus bisa untuk pengembang iOS pemula? Saya pikir itu untuk membuat permintaan jaringan, menerima dan memproses data. Pengetahuan tentang URLSession harus cukup untuk memulai. Ini adalah pendekatan paling dasar, dan saya sarankan pertama-tama untuk menguasai aplikasi itu. Mungkin tidak keluar dari tempatnya untuk mengetahui tentang keberadaan perpustakaan populer seperti Alamofire , tetapi ini tidak boleh merugikan URLSession.

Paling sering, data yang datang ke aplikasi melalui jaringan ditransmisikan dalam format JSON. Anda harus dapat menerima dan memproses data ini, misalnya, untuk mendapatkan beberapa daftar berdasarkan itu. Pada saat yang sama, disarankan agar Anda tahu cara melakukan ini tidak hanya dengan bantuan salah satu perpustakaan populer, misalnya, SwiftyJSON , tetapi juga memiliki alat bahasa standar, terbiasa dengan Codable.

Sedikit tentang bekerja dengan URLSession dijelaskan dalam sebuah artikel dari Audrey Tam . Ada banyak materi tentang bekerja dengan JSON, Anda dapat melihat artikel oleh Anand Nimje .

Untuk mempelajari topik dalam praktik, saya sarankan membuat aplikasi dengan ramalan cuaca, di mana ada bidang untuk memasukkan nama kota, permintaan API dibuat ( OpenWeatherMap cocok), dan informasi cuaca ditampilkan berdasarkan JSON yang diterima.

6. Pengetahuan Swift


Membaca dokumentasi akan banyak membantu di sini. Belajar Swift mungkin memakan waktu, tetapi saat keluar Anda harus membawa serta bebas menavigasi topik berikut:

  • kelas
  • struktur
  • transfer
  • protokol
  • koleksi
  • metode bekerja dengan koleksi (enumerasi, pemilahan, pemfilteran, peta, pengurangan, dll.)
  • bekerja dengan opsi dan pengecualian

Topik-topik ini perlu diketahui dan dikuasai dalam volume yang mereka berikan dalam dokumentasi - semua ini akan berguna dalam pekerjaan. Sangat bagus jika untuk setiap topik Anda bisa memberikan contoh masalah yang bisa diselesaikan dengan bantuan mereka.

Menganalisis dengan cermat perbedaan antara struktur dan kelas - bukan hanya karena Anda akan ditanyai pertanyaan ini pada wawancara dengan probabilitas tinggi, itu hanya akan diperlukan dalam pekerjaan Anda.

Bersamaan dengan membaca dokumentasi tentang Swift, Anda dapat menonton video maraton di Swift oleh Alexei Skutarenko. Maraton ini tidak akan menggantikan pembacaan dokumentasi karena fakta bahwa tidak semua topik diungkapkan di dalamnya, dan juga diterbitkan 4 tahun yang lalu, dan selama waktu ini ada perubahan kecil dalam Swift. Alexey melakukan pekerjaan yang luar biasa, ada banyak bahan dan pemikiran yang berguna.

7. Tautan kuat dan lemah, ARC, kebocoran memori


Bagaimana cara memastikan bahwa aplikasi tidak memiliki masalah dengan kekurangan memori?
Apa itu tautan, apa jenis tautannya? Apa sebenarnya yang dilakukan ARC, dan bagaimana cara menghindari Siklus Pertahankan, dan tentang apa semua ini? Topiknya tidak rumit, tetapi sangat penting. Anda dapat membiasakan diri, misalnya di SwiftBook .

8. Protokol dan delegasi


Saat mengembangkan untuk iOS, Anda akan sering menghadapi delegasi, atau lebih tepatnya transfer tanggung jawab dari satu objek ke objek lainnya. Misalnya, tugas klasik adalah tabel dengan sel, yang masing-masing memiliki tombol "tambahkan item ke favorit". Anda harus dapat membuat protokol untuk situasi ini, menunjuk seorang delegasi, dan mengimplementasikan dukungan protokol untuknya.

Bahan terkait:



9. Pendekatan arsitektur: MVC, MVVM, MVP, VIPER


Untuk memudahkan pembuatan dan dukungan produk perangkat lunak selama pengembangan, mereka dibagi menjadi blok-blok terpisah. Misalnya, satu blok hanya bertanggung jawab untuk bekerja dengan data, dan yang lainnya untuk penampilan. Pendekatan ini memiliki sejumlah keunggulan, misalnya, Anda dapat mengubah tampilan tanpa menyentuh logika, atau jika perlu, Anda dapat mengubah sumber data, lagi tanpa mengubah sisa aplikasi. Jelas, pendekatan ini digunakan tidak hanya di iOS, saya akan mengatakan lebih banyak - mereka datang ke sini dari platform lain. Ada beberapa pendekatan mapan untuk berbagi tanggung jawab antara blok yang berbeda, untuk bekerja dengan iOS, saya merekomendasikan pemahaman yang baik tentang MVC dan MVVM.

Alih-alih penjelasan normal tentang pembagian tanggung jawab dalam arsitektur, saya sering mendengar dalam wawancara, sesuatu seperti "MVC buruk karena itu adalah Pengendali Tampilan Besar-besaran dan MVVM jauh lebih baik."

Bahan terkait:


10. Penyimpanan Data, Data Inti


Seperti yang kami katakan di atas, banyak aplikasi bekerja dengan data dari jaringan. Anda harus dapat menyimpan data ini di perangkat, serta menyimpan apa yang dimasukkan pengguna. Set dasar cara untuk menyimpan data untuk programmer iOS pemula, menurut saya, termasuk


Tidak ada SQLite, Realm, Firebase dalam daftar ini. Mereka dapat dikuasai jika diinginkan, tetapi tentu saja tidak merugikan metode di atas. Jika Anda sudah memiliki pengalaman bekerja dengan SQL, maka saya sarankan menggunakan SQLite di iOS terlebih dahulu, sangat mungkin bahwa Anda akan menemukan pendekatan ini untuk penyimpanan lebih nyaman.

Bahan terkait:


Ringkasan


Saya percaya bahwa mendistribusikan topik-topik di atas secara merata dan mengabdikan mereka untuk belajar dari 20 jam seminggu, sangat mungkin untuk menguasai semuanya dari awal dalam jangka waktu 4-5 bulan.
Dengan kekayaan pengetahuan ini, Anda dapat mulai menerima pesanan untuk aplikasi kecil atau pergi untuk wawancara. Misalnya, jika ada lowongan, kami akan membawa seseorang dengan set pengetahuan ini ke tim seluler kami.

Tulis aplikasi Anda yang sudah selesai


Saya yakin bahwa pengembang iOS harus memiliki aplikasi sendiri. Kami berbicara tentang aplikasi lengkap yang menyelesaikan beberapa masalah atau masalah yang diperlukan (tidak apa-apa jika hanya untuk pembuat aplikasi). Dalam proses penulisan aplikasi Anda, Anda akan menghadapi tugas-tugas kreatif untuk menemukan solusi yang sesuai, ini tidak hanya memungkinkan Anda untuk lebih mengonsolidasikan pengetahuan teoretis, tetapi juga memberi Anda kesenangan.

Jangan malu tentang aplikasi Anda, tunjukkan di wawancara. Sekalipun aplikasi itu sederhana, sekalipun desain itu dikerjakan sendiri, dan ternyata itu bukan aplikasi yang paling indah (jika aplikasi itu diperlukan, fungsinya kemudian bisa diperluas, dan desainnya bisa dibuat baru).

PS


Tolong beri tahu di komentar topik apa yang Anda anggap penting untuk pengembangan pengembang iOS baru

Source: https://habr.com/ru/post/id437300/


All Articles