How to become Junior iOS developer ?
First of all ;
You need to be patient. This is a not a short journey. Why ?
When i create my first project in swift , i didnt know literally anything about swift. If you have some skills about coding,algorithms,debugging of course you will be comfortable when you learning swift programming. Even you know some process you have to learn specific parts of swift.
Here is a structure of iOS Development
The IDE
The Language
Source Control
Apple’s HIG(Human Interface Guidelines)
Development Needs
Coding Skills
UI Components
Application Architecture
Networking
Debugging
Threading and Concurrency
The iOS SDK
Xcode
Xcode is the IDE to use to develop iOS apps. It’s the only way to edit storyboards, xibs, and Core Data files. Make sure that you’re working with the latest version and that your course, book, tutorial, or screencast is, too. If they’re teaching a different version from what you have, you may have trouble following along. Apple is pretty quick about deprecating old versions of Xcode and forcing developers to submit apps with the latest version, so don’t waste your time on an older version.
Here’s what you should know about Xcode:
- How to create a new project, add files and classes
- How to build and run your app
- How to set breakpoints and debug
- How to browse and search Apple’s documentation
Swift
Swift is a powerful and intuitive programming language for iOS, iPadOS, macOS, tvOS, and watchOS. Writing Swift code is interactive and fun, the syntax is concise yet expressive, and Swift includes modern features developers love. Swift code is safe by design, yet also produces software that runs lightning-fast.
- Basic syntax
- Optionals
- Control Flow (If and Switch Statements)
- Classes, inheritance & initialization
- Error handling
- Objective-C Interoperability
This site is the official guide for swift.. If you care about exact information.
Use it, play with it,change it, develope it.
iOS
The iOS platform is what gives you access to all the great hardware in iOS devices as well as an extensive library of user interface widgets. It defines lifecycles for applications and views that you need to know, in addition to the basics like how to build a UI. Of course, you should be learning on the latest version of iOS so you don’t waste your time learning the old UI, frameworks, and classes.
Here’s what you should know about iOS…
- Building a UI
- The application lifecycle (UIApplication, UIApplicationDelegate)
- The UIViewController lifecycle
- Navigation (navigation bar, tab bar, page control)
- Table views (UITableView, UITableViewController)
- Handling user interaction
- Displaying and transitioning between views
- How to get data from a REST API (NSURLSession)
- Parsing JSON (NSJSONSerialization)
- The latest version of iOS
Source Control
- Source control refers to tracking and managing changes to code. This ensures that developers are always working on the right version of source code.
- Source control management (SCM) refers to tools that help you keep track of your code with a complete history of changes.
- Source control is important for maintaining a single source of truth for development teams. Plus, using it helps facilitate collaboration and accelerates release velocity.
- That’s because it allows multiple developers to work on the same codebase. They can commit and merge code without conflicts. And they can even make edits to shared code, without unknowingly overwriting each other’s work.
Apple’s HIG
- Understand several UI components as defined in the HIG (Human Interface Guidelines) in iOS
- Understand and reason about basic Auto Layout in iOS
- Be able to reason about both programmatic and storyboard-driven interfaces
- Produce basic designs to a specification using a storyboard or through a programmatic interface
Development needs:
There can be no complete list of technical skills for a Junior developer, so consider this to be a guide, and a subjective one at that.
Coding skills
- Don’t force-unwrap optionals in Swift
- Use the Delegate Protocol pattern while creating iOS applications
- Understand Capture Lists in Swift
UI Components
- UITableView with default and perhaps a custom cell
UICollectionView
with default and perhaps a custom cell- Subclass
UIView
for a purpose - Some understanding of the reusability of components
Application architecture
- Have some understanding of the MVC architecture, and perhaps the advantages of MVVM
- How the structure of an App might help with Unit testing
Networking
- Know something about URLSession and decoding JSON
- Be able to use Codable, or at least be aware of it
Debugging
- Some basic knowledge of lldb
- Be able to use the Visual Debugger
- Be able to use Xcode’s memory graphs
Threading and concurrency
- Understand the difference between parallel and concurrent execution
- Have some knowledge of threads and reference counting (ARC)
The iOS SDK
- Some knowledge of UIKit (this could be replaced with SwiftUI)
- Some understanding of OOP in software design and programming
- The Delegate protocol pattern
- Some understanding of SwiftUI (although for jobs this may still be relatively early)
- Be able to use StackView
- Protocol orientated programming
- Some knowledge of CI/CD and the implications for an iOS developer
- Some understanding of Code Principles (i.e. SOLID), as applied to iOS applications
- Storyboard constraints
- Modularisation of iOS applications
- Perhaps some knowledge of Combine
- Perhaps some understanding of offline support (possibly Core Data)
- Possibly some understanding of reactive programming, perhaps RxSwift
- Possibly Core Graphics, and animation
- Perhaps gain some understanding of the difference between developing for iPhone and iPad (you might extend this to TvOS and WatchOS, depending on the target company)
So what you can do about it?
You are then best off trying to create a new project from scratch, parse and process JSON from an API endpoint. Many technical projects will ask you to do this, and getting prepared for them will be a great use of your time (rather than endlessly) following tutorials.
You can of course follow tutorials, but you need to be able to think about what you are doing and reason through your project. In order to do so you would be well advised to make your own project, and then find tutorials that help you to build the feature you are looking for.
Conclusion
Creating a list of things you need to know has really brought it home to me how much we expect developers to know.
Good luck!