A test assignment built with SwiftUI, featuring dark and light theme support, transition animations, localization, and seamless authentication via silent push.
- Build a phone number input form with automatic
+7prefix insertion - Star movement animation when transitioning to the next screen
- Error display when an incorrect code is entered
- Dark mode support
- SwiftUI — declarative UI framework; the entire app interface is built on it
- Swift — the development language, leveraging modern language features
- MVVM — separation of UI and business logic: the View renders state, while the ViewModel (ObservableObject) handles logic and exposes ready-to-use data via @Published
- Matched Geometry Effect — smooth transitions between screens while preserving element geometry
- Silent Push — silent delivery of an SMS code to the app without user confirmation
- Localization — multi-language support via the Localizable.xcstrings string catalog
- Logging — centralized logging for debugging network requests and screen lifecycles
- Combine — reactive streams: countdown timers, event handling, and binding @Published properties to the UI
- async / await — all network requests use structured concurrency: Task, TaskGroup, cancellation when leaving a screen
- Tinted Icon — an icon with tint color support: correctly recolors to match the theme and system accent color
- Dark Mode — light and dark theme support: colors are defined via assets with Any/Dark Appearance, and the UI rebuilds automatically
git clone https://github.com/your-org/star-project.git
cd star-project
open StarProject.xcodeproj