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

iOS in 2023: Way to go

iOS in 2023: Way to go

I discovered that very few people in the industry choose to become iOS developers. For the most part, it has been a black box, not to mention the hardware constraints. However, for those who can afford a Mac computer and want to do iOS development, I'd like to share step-by-step instructions on how to become an iOS developer in 2023. Everyone claims the road toward being a mythical 10x developer is complicated and vague, but it doesn't have to be. Let's see if you can be one of them, earning the highest salary in the industry.

Avatar for Kyaw Zay Ya Lin Tun

Kyaw Zay Ya Lin Tun

January 22, 2023
Tweet

More Decks by Kyaw Zay Ya Lin Tun

Other Decks in Programming

Transcript

  1. It’s me 👋 • iOS Engineer @Codigo • A community

    builder • Very passionate about iOS development and programming in general • Write articles on Medium Kyaw Zay Ya Lin Tun
  2. Where to start? You fi rstly need to possess a

    MacBook. I am not gonna lie, it is quite expensive ☹ But, if you have managed to get one, I hope you have had, then, this talk is for you. Vishal, a friend of mine, once told me anyone can learn iOS development without costing a single penny. Today, let me show you how you can be one of self-taught devs.
  3. Xcode An IDE loved and hated by iOS Devs •

    Text editor and interface builder • O ff er project templates for iOS, iPadOS, macOS, tvOS, watchOS etc. • Built-in source control and package manager • Build system, schemes and can generate ipa fi le for deployment • 1st party CI/CD via Xcode Cloud • Tools like Instruments, CreateML, Reality Composer and many more
  4. Learning Xcode It will be a life-long journey. Xcode is

    a very powerful yet complicated tool to master. For someone like you who just start learning iOS development, it would be su ff i cient if you know - How to create a new project, and fi les - How to use interface builder - How to run on a simulator Later on, you will need to learn how to debug your codes.
  5. Swift Fast, Modern, Safe, Interactive • A de facto standard

    programming language for all Apple development technologies • A complete replacement of Objective-C, which opens up new possibilities • Swift package manager instead of Carthage and CocoaPods. • SwiftUI, a declarative UI framework • Codable, Async-await, Combine etc. • Server-side Swift, Swift for IoT
  6. Basic Swift • Variable • Control fl ow • Functions

    and closures • Objects and Classes • Enumerations and Structures
  7. Views Basic Layout Basic Transitions Intermediate Animations Rendering Advanced Navigation

    Intermediate Gestures Advanced UIKit Intermediate CoreAnimation Advanced CoreGraphics Advanced Tap Basic Long press Basic Swipe Intermediate Rotation Intermediate Pinch Advanced Pan Advanced
  8. UIKit Views • Basic views • UIView, UIImageView, UIActivityIndicatorView, UIPickerView,

    UIWebView, UIProgressView, UICalendarView • Container views • UIStackView, UIScrollView, UITableView, UICollectionView • Text views • UILabel, UITextField, UITextView, UISearchTextField • Controls • UIButton, UISwitch, UISegmentedControl, UIDatePicker, UISlider, UIStepper, UIPageControl, UIColorWell
  9. SwiftUI A declarative framework • Introduced in 2019 • Can

    use starting from iOS 13 • I would recommend starting with SwiftUI 2.0, which requires iOS14 • SwiftUI 4.0 o ff ers the greatest developer experience so far, but, needs iOS16 minimum
  10. I do not have much experience with SwiftUI so I’d

    instead share some learning resources with you.
  11. Frameworks Networking • URLSession (native) • Alamo fi re (3rd

    party) JSON Encoding/Decoding • Codable (native) • Object mapper (3rd party)
  12. Frameworks O ffl ine caching • CoreData (native) • Realm

    (3rd party) • SQLite3 (3rd party) Reactive programming • Combine (native) • RxSwift (3rd party) • ReactiveSwift (3rd party)
  13. Frameworks Not mandatory, but good to know • StoreKit (native),

    RevenueCat (3rd party), Adapty (3rd party) • WebKit • AVFoundation, AVKit • MapKit, CoreMotion • SpriteKit • ARKit, CoreML • Metal Remark: Both CoreAnimation and CoreGraphics are as part of UI development. If you want to do outstanding computer graphics, you also need to learn Metal.
  14. Frameworks Architecture patterns and practices • MVC • MVP •

    MVVM, MVVM+C • VIP, VIPER • TCA • Test driven development
  15. ⭐ RECOMMENDED ⭐ Can Great Programmers Be Taught? - John

    Ousterhout The E ff ective Engineer - Edmond Lau Preparing for Growth: Architecting Giant Apps for Scalability and Build Speed -Bruno Rocha Scalable Modular iOS Architecture - Alberto de Bortoli
  16. Tools • SourceTree or GitHub client • Carthage, CocoaPods, Swift

    package manager • Jenkins, Fastlane, Bitrise, Xcode Cloud • SwiftGen, XcodeGen • Bazel
  17. ⭐ RECOMMENDED ⭐ Remove your Xcode workspace from Git -

    Firas Safa Command-line automations: unchain your Xcode projects! - Stefano Mondino Keeping Things Modular With Swift Package Manager - Tunde Adegoroye
  18. The only reason to learn • Every 8/10 Senior iOS

    positions require you to know Objective-C
  19. 3 steps toward better developer • Make it work. •

    Then, make it good. • And fi nally, make it scalable.
  20. Other resources • SwiftBySundell • SwiftLee • Donny Wals •

    Nil Coalescing • NSHipster • https://www.youtube.com/@StewartLynch • https://www.youtube.com/@LetsBuildThatApp • https://www.youtube.com/@KodecoDev • https://www.youtube.com/@DesignCodeTeam • https://www.youtube.com/@iOSAcademy • https://www.youtube.com/@rebeloper • https://www.youtube.com/@azamsharp • https://www.youtube.com/@BrianAdvent • https://www.youtube.com/@v_pradeilles • https://www.youtube.com/@swiftandtips • https://www.youtube.com/@PhysicsNerdDev