Untuk memenangkan kompetisi pasar dan mengatasi mahalnya biaya akuisisi pengguna, diperlukan aplikasi iOS dengan performa tinggi yang siap saing dan pro pada retensi pengguna.
Seorang iOS Developer Expert adalah sosok yang mampu mewujudkan App paripurna tersebut. Minim bug, tinggi level keamanannya, dan kecilnya ukuran aplikasi adalah faktor yang harus ia pertimbangkan demi kenyamanan pengguna.
Sementara itu dari sisi kode, seorang iOS Developer Expert harus memastikan bahwa aplikasinya scalable alias tetap bekerja dengan baik saat produk berubah mengikuti kebutuhan bisnis. App tersebut juga harus robust alias dibangun dengan pondasi kode yang kuat.
Jika tidak, perusahaan akan terbebani biaya pengembangan yang tinggi karena sulitnya perbaikan akibat code smell, yakni kode yang berantakan atau berstruktur buruk.
Dalam IDCamp x Dicoding LIVE kali ini kita akan membahas hal-hal yang mesti seorang iOS Developer Expert pahami, yakni best-practice penerapan teknologi terbaru iOS Development yang industri perlukan, sesuai dengan kebutuhan bisnis.
Jika impianmu adalah menjadi iOS Developer Expert, kamu memerlukan insight ini agar kode menjadi lebih kokoh dan mudah untuk dikembangkan menyesuaikan dengan kebutuhan bisnis.
Poin-poin yang akan dibahas mencakup:
- Apa saja praktik terbaik dan keahlian yang wajib kamu miliki guna menjadi iOS Developer Expert? Kenapa penting?
- Bagaimana kelas Menjadi iOS Developer Expert di Dicoding dapat bantu kamu menjadi iOS Developer Expert?
8. iOS (formerly iPhone OS) is a mobile
operating system created and developed by
Apple Inc. exclusively for its hardware.
It is the operating system that powers many
of the company's mobile devices, including
the iPhone and iPod Touch; the term also
included the versions running on iPads until
the name iPadOS was introduced with
version 13 in 2019.
9. You’re able to do more with your iPhone
than ever before.
So iOS 14 reimagines the most iconic parts
of the experience to be even more helpful
and personal.
10. The Apple App Store has 1.96 million apps
available for download.
There are 2.87 million apps available for
download on the Google Play Store.
21% of Millennials open an app 50+ times
per day.
November 2020 - buildfire.com
11.
12. Diri harus siap!
● Mampu mengoperasikan komputer dengan baik.
● Berkomitmen, benar-benar punya rasa ingin tahu
dan tertarik pada subjek.
● Gigih, temukan topik yang menarik, bermain-
main, dan mengotak-atik ilmu yang Anda
dapatkan.
● Sebanyak apapun resourcenya, tak akan berguna
tanpa keseriusan Anda untuk belajar, berlatih, dan
mencoba.
Tools tambahan:
● MacOS/iPhone atau sejenisnya.
● Koneksi Internet.
13. • Searching
• Tanya Temen
• Masuk Ke Forum-Forum
• Ikut Webinar
• Join Komunitas
• Cek Dokumentasinya
14.
15. An algorithm is a step-by-step procedure,
which defines a set of instructions to be
executed in a certain order to get the desired
output.
A data structure is a particular way of
organizing data in a computer so that it can
be used effectively.
16. The powerful programming language that
is also easy to learn.
● Initializers
● Protocols
● Struct
● Enums
Swift is the 9th most preferred
programming language based on the
stackoverflow survey.
17. With an all-new design that looks great on
macOS Big Sur, Xcode 12 has customizable
font sizes for the navigator, streamlined
code completion, and new document tabs.
Xcode 12 builds Universal apps by default
to support Mac with Apple Silicon, often
without changing a single line of code.
18.
19. Construct and manage a graphical, event-
driven user interface for your iOS or tvOS app.
• UIApplication -> State
• UIView -> UITableView & UICollectionView
• Layout -> FrameBased & AutoLayout
• Navigation
• UIViewController -> Lifecycle
20.
21. SwiftUI is an innovative, exceptionally simple way to
build user interfaces across all Apple platforms with
the power of Swift.
Build user interfaces for any Apple device using just one
set of tools and APIs.
With a declarative Swift syntax that’s easy to read and
natural to write, SwiftUI works seamlessly with new
Xcode design tools to keep your code and design
perfectly in sync.
Automatic support for Dynamic Type, Dark Mode,
localization, and accessibility means your first line of
SwiftUI code is already the most powerful UI code
you’ve ever written.
22. Apple menyediakan 3 antrian yang bisa dipakai oleh
developer, yaitu:
1. Main dispatch queue
Akan dieksekusi secara serial. Bisa langsung
digunakan.
2. Global queues
Akan dieksekusi secara concurrent. Bisa langsung
digunakan.
3. Private queues
Bisa dieksekusi secara serial atau concurrent.
Developer harus membuatnya terlebih dahulu.
23.
24. How do pass data between objects.
Fortunately, there are many solutions for you to
choose from, but this causes a problem in itself.
Which one to choose for your situation?
It is important that you pick the correct solution for
what you are trying to achieve.
Four techniques are Notifications, Delegates,
Closures, and Observing.
25. Create network connections to send and
receive data using transport and security
protocols.
• URLSession
• Alamofire
• etc
There are 2 ways to handle JSON data in iOS.
• JSON Serialization
• Codable
26.
27. NSCache a mutable collection you use to
temporarily store transient key-value pairs that are
subject to eviction when resources are low.
UserDefaults an interface to the user’s defaults
database, where you store key-value pairs
persistently across launches of your app.
Core Data is a framework that you use to manage
the model layer objects in your application.
28.
29. Jangan Ngeluh, Analisa dulu
Debugging
Cetak/Print per Baris
Google Error-nya
Tanya ke Forum2 dengan Benar
30.
31.
32. In software engineering, a software design pattern
is a general, reusable solution to a commonly
occurring problem within a given context in software
design.
It is not a finished design that can be transformed
directly into source or machine code.
• Creational patterns
• Structural patterns
• Behavioral patterns
33. Singleton is a creational design pattern that lets you
ensure that a class has only one instance, while
providing a global access point to this instance.
• You can be sure that a class has only a single
instance.
• You gain a global access point to that instance.
• The singleton object is initialized only when it’s
requested for the first time.
34. “Any fool can write code that a
computer can understand. Good
programmer write code that
human can understand.”
Martin Fowler - Refactoring: Improving the
Design of Existing Code
35. Style guide yang sudah disepakati dan
direkomendasikan oleh banyak developer.
Banyak perusahan besar membuat code
convention-nya sendiri, seperti Google dan AirBnB.
Contoh code convention:
Berilah nama dengan jelas sesuai role/tugasnya, bukan
berdasarkan tipe data-nya.
Contohnya:
var string = "Hello Dicoding"
Menjadi:
var greeting = "Hello Dicoding"
36. A tool to enforce Swift style and conventions, loosely based on GitHub's
Swift Style Guide.
SwiftLint hooks into Clang and SourceKit to use the AST representation
of your source files for more accurate results.
37.
38.
39. Memiliki tujuan separation of concern, alias
pemisahan konsentrasi. Ide utama penggunaan
Clean Architecture yaitu untuk menghasilkan
sistem yang:
1. Independent of Framework
2. Testable
3. Independent of UI
4. Independent of Database
5. Independent of External
41. Reactive programming is simply to program
using, and relying on, events. instead of the order
of lines in the code.
Usually this involves more. than one event, and
those events happen in a sequence over time.
● RxSwift
● Combine
42. Dependency injection is a technique in which an
object receives other objects that it depends on.
These other objects are called dependencies. In the
typical "using" relationship the receiving object is
called a client and the passed (that is, "injected")
object is called a service.
● Cleanse
● Swinject
● Resolver
43. Create and run unit tests, performance tests,
and UI tests for your Xcode project.
● Unit Testing
● UI Testing
● Integration Testing
44. Test-driven development (TDD) is a software
development process relying on software
requirements being converted to test cases
before software is fully developed, and
tracking all software development by
repeatedly testing the software against all
test cases.
● XCTest
● Nimble & Quick
45. CI/CD or CICD generally refers to the
combined practices of continuous integration
and either continuous delivery or continuous
deployment.
CI/CD bridges the gaps between
development and operation activities and
teams by enforcing automation in building,
testing and deployment of applications.
46. Git is a free and open source distributed version
control system designed to handle everything
from small to very large projects with speed and
efficiency.
Git adalah version control system (VCS) yang
terdistribusi secara gratis dan open source. Ia
dirancang untuk menangani semuanya, mulai dari
proyek kecil hingga proyek dengan skala yang
sangat besar dengan kecepatan dan efisiensi.
49. https://www.dicoding.com/learni
ngpaths/7
Kurikulum disusun oleh Dicoding dan pelaku
industri di bidang iOS Development. Siswa
dipersiapkan untuk menjadi iOS Developer sesuai
standar kebutuhan industri.
● Memulai Pemrograman Dengan Swift
● Belajar Prinsip Pemrograman SOLID
● Membuat Aplikasi iOS untuk Pemula
● Belajar Fundamental Aplikasi iOS
● Menjadi iOS Developer Expert
dicoding.com/learningpaths/9