Responsibilities
We expect the following from a Strong Junior iOS Developer candidate:
•Good knowledge of Swift — optionals, closures, protocols, generics, value/reference types, ARC and memory management (retain cycle, weak/unowned).
•Practical experience with UIKit — Auto Layout (programmatically), UITableView/UICollectionView, navigation, ViewController lifecycle.
•Knowledge of SwiftUI basics — state management (@State, @Binding, @StateObject, @ObservedObject), integration with UIKit.
•Architecture — understanding of MVVM and Clean Architecture principles, SOLID, Dependency Injection.
•Asynchronous and reactive programming — GCD, async/await, basics of Combine.
•Working with networking — REST API, URLSession, JSON (Codable), proper error handling.
•Data storage — UserDefaults, Keychain, Core Data or other local storage tools.
•Working with Git (branching, merge/rebase, pull request, code review) and Xcode tools (Debugger, Instruments).
•Soft skills — ability to work independently, work in a team, accept code review properly, and strive for continuous development.
Requirements
•Swift, UIKit, SwiftUI.
•MVVM, Clean Architecture, Coordinator pattern.
•GCD, async/await, Combine.
•REST API, URLSession / Alamofire, Codable.
•Keychain, UserDefaults, Core Data.
•Swift Package Manager / CocoaPods.
•Git (GitHub / GitLab), Jira.
•Xcode Instruments.
•Firebase (Crashlytics, Push Notifications).
•Working with Agile/Scrum methodologies.
•Technical English — at the level of reading documentation.