Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Dicoding Ignite #2 - Langkah Awal: Mulai Karier...

Avatar for Zahrina Zahrina
January 13, 2025
6

Dicoding Ignite #2 - Langkah Awal: Mulai Karier iOS Development-mu!

Dicoding Ignite: Path to iOS Engineering adalah acara spesial bagi siapa saja yang ingin belajar pengembangan aplikasi iOS di Dicoding. Dengan pendekatan yang ramah untuk pemula, peserta akan belajar dasar-dasar pemrograman Swift dan membangun aplikasi sederhana. Tidak diperlukan pengalaman coding sebelumnya—cukup antusiasme untuk belajar!

Avatar for Zahrina

Zahrina

January 13, 2025
Tweet

More Decks by Zahrina

Transcript

  1. Learning Objectives • Pengenalan iOS Development • Dasar-dasar Pemrograman Swift

    • Membuat Aplikasi Pertama • Panduan belajar iOS Development lebih mendalam melalui kelas Dicoding Ignite #2: iOS Dev
  2. Banyak Developer menggunakan codebase terpisah ketika membangun aplikasi Multi-platform 75.5%

    Sumber: Apple Platform Development – 2019 Results Ignite #2: iOS Dev
  3. Device Used To Access The Internet Sumber: Digital 2023 Global

    Overview Report — DataReportal Ignite #2: iOS Dev
  4. iOS Developer adalah… • Membangun aplikasi berbasi iOS (iPhone dan

    iPad). • Menggunakan bahasa pemrograman Swift. • Menggunakan Xcode untuk membangun aplikasi. Ignite #2: iOS Dev
  5. Membangun Aplikasi iOS • Dasar-dasar pemrograman. • Fundamental membangun Aplikasi

    iOS. ◦ Membuat tampilan aplikasi. ◦ Berinteraksi dengan data, baik dengan internet atau lokal. • Problem Solving • Membangun aplikasi iOS yang lebih kompleks. Ignite #2: iOS Dev
  6. Apple ID • Sebagai iOS Developer, harus memilikinya. • Digunakan

    untuk login ke device Apple Environment. • Download Xcode dan Swift Playground via App Store, butuh Apple ID. • Melakukan tugas iOS Developer lainnya~ Ignite #2: iOS Dev
  7. Xcode • IDE resmi dari Apple 🍎 • Tools untuk

    mengembangkan aplikasi iOS, macOS, iPadOS, dan Apple Environment lainnya • Punya segudang fitur di dalamnya 🎉 Ignite #2: iOS Dev
  8. Anda bisa melakukan… 1. Pinjam teman yang punya MacBook 󰛝

    2. Beli, macBook Air juga ok 🫣 3. Menyewa macBook 🤫 Ignite #2: iOS Dev
  9. MacInCloud Secara keseluruhan, MacinCloud adalah platform virtual macOS yang terjangkau,

    fleksibel, dan mudah digunakan untuk developer. Langsung saja kunjungi: macincloud.com Ignite #2: iOS Dev
  10. Swift adalah… • Bahasa pemrograman yang dikembangkan oleh Apple Inc.

    • Digunakan untuk membuat Aplikasi iOS, iPadOS, macOS, watchOS, tvOS, dan OS X. • Memiliki fitur fast, safe, modern, dan interactive. Ignite #2: iOS Dev
  11. Tipe Data Swift • Int • Floating • Double •

    Bool • String Ignite #2: iOS Dev
  12. Operator di Swift • Arithmetic (+, -, *, /) •

    Comparison (==, !, >, <, >=, <=) • Logic (!, &&, ||) • Bitwise (0b00001111) • Assignment (=, +=, -=, *=, /=, dll) • Distance (a...b, a..<b, a…, …b) • Misc (+a, -b, q?a:b) • Nil-Coalescing (??) Ignite #2: iOS Dev
  13. Control Flow • Konditional ◦ If else ◦ Switch •

    Perulangan ◦ For-in ◦ While • Control Transfer ◦ Continue, break, return, throw, fallthrough Ignite #2: iOS Dev
  14. Function • Potongan kode mandiri yang berfungsi untuk melakukan tugas

    tertentu. • Memiliki input berupa parameter. • Memiliki output berupa return value. Ignite #2: iOS Dev
  15. Closure • Blok kode yang dapat disimpan dan di-passing sebagai

    variable, parameter, atau return value dari function lain. • Mirip dengan Function, tetapi dapat ditulis dengan sintaks yang lebih ringkas. Ignite #2: iOS Dev
  16. Enumeration Jenis data yang terdiri dari serangkaian nilai. 1. enum:

    Kata kunci yang digunakan enumeration. 2. CompassPoint: Nama dari kelas enumeration. 3. case: Kata kunci untuk memperkenalkan case enumeration baru. 4. north, south, east, west: Nilai-nilai yang didefinisikan dalam enumerasi. Ignite #2: iOS Dev
  17. Class vs Struct Keduanya dapat… 1. mendefinisikan properties untuk menyimpan

    nilai. 2. mendefinisikan methods untuk menyediakan fungsionalitas. 3. mendefinisikan subscript untuk memberikan akses ke nilainya. 4. mendefinisikan initializers untuk mengatur keadaan awal mereka. 5. di-extend untuk memperluas fungsionalitasnya. 6. menyesuaikan dengan protocols. Ignite #2: iOS Dev
  18. Keistimewaan Class • Inheritance atau pewarisan, memungkinkan satu kelas mewarisi

    karakteristik dari kelas lain. • Type casting, memungkinkan untuk memeriksa dan menafsirkan tipe data instance saat runtime. • Deinitializers, memungkinkan untuk membebaskan resource apapun yang telah ditugaskan. • Reference counting, memungkinkan lebih dari satu referensi ke instance kelas. Ignite #2: iOS Dev
  19. Properties • Stored properties akan menyimpan nilai konstanta atau variabel

    sebagai bagian dari instance, sedangkan computed properties akan computed sebuah nilai. • Stored properties tersedia dalam class dan struct, sedangkan computed properties hanya tersedia pada sebuah class, structure, dan enumeration. • Dalam stored properties terdapat: ◦ Variable stored properties (var) ◦ Constant stored properties (let) ◦ Lazy stored properties (lazy) Ignite #2: iOS Dev
  20. Methods • Sebuah function yang terkait dengan sebuah tipe tertentu,

    seperti struct, class, atau enum. • Gunakan self properties untuk memanggil sebuah properti dalam sebuah method. • Gunakan mutating dalam method untuk memodifikasi sebuah properties. Ignite #2: iOS Dev
  21. Inheritance Sebuah class dapat mewarisi atau inherit method, property, dan

    karakteristik lainnya dari class lain. Class inherited atau yang diwarisi disebut dengan subclass, sedangkan class inherit atau yang mewarisi bernama superclass. Ignite #2: iOS Dev
  22. Initialization Merupakan proses mempersiapkan instance class, structure, atau enumeration untuk

    digunakan. Deinitialization Dipanggil segera sebelum instance class dibersihkan dari memory atau deallocation. Ignite #2: iOS Dev
  23. Menyediakan blue print untuk method, property, dan persyaratan fungsionalitas lainnya.

    Extension Menambahkan fungsionalitas baru ke kelas, struktur, enumerasi, atau tipe protokol yang ada. Protocol Ignite #2: iOS Dev
  24. UIKit • Menyusun dan mengelola tampilan untuk aplikasi iOS, iPadOS,

    atau tvOS. • Mengelola interaksi yang dilakukan oleh pengguna. • Menyediakan fitur untuk mengatur animasi, dokumen, teks, pencarian, dll. Ignite #2: iOS Dev
  25. UIKit UIKit adalah seperti toolbox untuk membuat aplikasi di iPhone

    dan iPad. • UIApplication → State • UIView → UITableView & UICollectionView • Layout → FrameBased & Autolayout • Navigation • UIViewController → Lifecycle Ignite #2: iOS Dev
  26. View and Control View mewakili berbagai komponen yang tampil dalam

    layar. Control mewakili interaksi yang ada di dalam View tersebut. Ignite #2: iOS Dev
  27. Auto Layout adalah … “caraˮ yang dapat Anda gunakan untuk

    mengatur view dengan lebih mudah. • Auto Layout tanpa Constraint Ignite #2: iOS Dev
  28. Auto Layout adalah … “caraˮ yang dapat Anda gunakan untuk

    mengatur view dengan lebih mudah. • Auto Layout tanpa Constraint • Auto Layout dengan Constraint Ignite #2: iOS Dev
  29. Attribute Auto Layout Secara umum sebuah View memiliki: • 4

    attribute untuk membatasi object ◦ Leading ◦ Trailing ◦ Top ◦ Bottom • 2 attribute untuk menentukan ukuran ◦ Height dan Width • 2 attribute untuk menentukan lokasi ◦ Vertical Center dan Horizontal Center Ignite #2: iOS Dev
  30. Interface Builder berfungsi untuk layouting atau menyusun tampilan dalam pembuatan

    aplikasi iOS, iPad OS, dan mac OS. • IBOutlet: untuk mengubah tampilan ketika runtime. • IBAction: untuk menambahkan aksi pada sebuah View ketika runtime. Ignite #2: iOS Dev
  31. Navigation berfungsi untuk berpindah dari View Controller satu ke View

    Controller lainnya. • Segue • NavigationController Ignite #2: iOS Dev
  32. Table View Sebuah view yang berfungsi untuk menampilkan banyak informasi

    dalam bentuk daftar atau list. • Static Table View • Dynamic Table View Ignite #2: iOS Dev
  33. Static Table View • Dibuat langsung di Storyboard. • Datanya

    statis atau tidak berubah-ubah. • Penyusunannya cukup sederhana. • Kompleksitasnya akan meningkat seiring banyaknya data dalam TableView. Ignite #2: iOS Dev
  34. Dynamic Table View • Tampilannya disusun di storyboard, datanya dimasukkan

    di ViewController. • Datanya dinamis atau berubah-ubah. • Lebih banyak tahapan yang perlu dilakukan. Ignite #2: iOS Dev
  35. Delegate Table View • Membuat dan mengelola header dan footer

    khusus dari view. • Menentukan tinggi dari sebuah row, header, dan footers. • Memberikan perkiraan tinggi yang tepat untuk mendukung fitur scrolling. • Melakukan indentasi row content. • Menanggapi row yang terpilih. • Menanggapi swipe dan tindakan lainnya dalam row. • Mendukung pengeditan untuk konten tabel. Ignite #2: iOS Dev
  36. Tahapan Membangun Table View di Xcode • Menambahkan TableView di

    Storyboard. • Hubungkan TableView dengan View Controller. Ignite #2: iOS Dev
  37. Tahapan Membangun Table View di Xcode • Menambahkan TableView di

    Storyboard. • Hubungkan TableView dengan View Controller. • Membuat TableViewCell beserta XIB file-nya. Ignite #2: iOS Dev
  38. Tahapan Membangun Table View di Xcode • Menambahkan TableView di

    Storyboard. • Hubungkan TableView dengan View Controller. • Membuat TableViewCell beserta XIB file-nya. • Susun tampilan TableViewCell. Ignite #2: iOS Dev
  39. Tahapan Membangun Table View di Xcode • Menambahkan TableView di

    Storyboard. • Hubungkan TableView dengan View Controller. • Membuat TableViewCell beserta XIB file-nya. • Susun tampilan TableViewCell. • Hubungkan TableViewCell dengan kelas UITableViewCell. Ignite #2: iOS Dev
  40. Tahapan Membangun Table View di Xcode • Siapkan data yang

    diperlukan. • Menambahkan delegation dataSource di TableView. iOS Developer
  41. Tahapan Membangun Table View di Xcode • Siapkan data yang

    diperlukan. • Menambahkan delegation dataSource di TableView. • Mendaftarkan TableViewCell ke TableView. Ignite #2: iOS Dev
  42. Tahapan Membangun Table View di Xcode • Siapkan data yang

    diperlukan. • Menambahkan delegation dataSource di TableView. • Mendaftarkan TableViewCell ke TableView. • Mengatur delegation dari TableView. Ignite #2: iOS Dev
  43. Tahapan Membangun Table View di Xcode • Siapkan data yang

    diperlukan. • Menambahkan delegation dataSource di TableView. • Mendaftarkan TableViewCell ke TableView. • Mengatur delegation dari TableView. • Menjalankan Aplikasi. Ignite #2: iOS Dev
  44. Menjalankan Aplikasi iOS Anda bisa menggunakan Real Device dan Simulator

    untuk menjalankan aplikasi iOS. Catatan: jangan dijalankan di device Android ya! 🤭 Ignite #2: iOS Dev
  45. Mengatasi Error/Masalah • Analisa ekspektasi dengan realita. • Mencari solusi

    di internet. • Bertanya dengan baik di forum diskusi. • Gunakan tools untuk mengatasi masalah. Forum Diskusi di Ignite #2: iOS Dev
  46. Networking Digunakan untuk berinteraksi dengan data di Internet. • Multithreading

    & Concurrency ◦ Grand Central Dispatch GCD ◦ Async/Await • Interaksi dengan API ◦ NSURLSession, Alamofire, dll. • Convert JSON ◦ JSON Serialization ◦ Codable Ignite #2: iOS Dev
  47. Data Persistence Kemampuan aplikasi untuk mengingat dan menyimpan informasi. •

    NSCache • UserDefaults • Core Data • Realm Database Ignite #2: iOS Dev