KEX
Overview
The app for food delivery of companies sub-brands
Worked on the project as an iOS Lead Developer
When was invited for the iOS Lead Developer position, the app was in the middle of the development phase, only one developer was working on the project and producing low-quality code, what was the reason for replacing him with me and 2 more teammates
​
I and my team rewrote most of the code, which delayed the project delivery for several months. At the end of the day, code quality became much higher by changing the Storyboards to UIKit and SnapKit, refactoring the Alamofire network layer to Moya, RxSwift and Alamofire, also had to refactor assets, localization, dependency injection etc.
Arcitecture
-
Clean Architecture alike with more dependent layers (same entities for the whole project, data layers storage and network accesses directly from the domain, no DI in storages)
-
Protocol Oriented Programming
-
Reactive Programming
-
Programmatic UI (UIKit, SnapKit)
-
Dependency injection using an open-source DependencyFactory
​
Data
-
User Defaults, KeychainAccess and Cache storages
-
API classes and Moya TargetTypes for network
​
Domain
-
Repository classes for business logic
​
Presentation
-
MVVM
-
UIKit and SnapKit
​
Routing
-
Coordinators
Code Access
Unfortunately, the Gitlab repository is private, because the app is closed source.
Tech Stack
Programming Language
-
Swift
Storage
-
Cache
-
KeychainAccess
-
UserDefaults
Push Notifications
-
FirebaseMessaging
Dependency Management
-
CocoaPods
Reactive Programming
-
RxSwift
-
RxCocoa
Images/Caching
-
Imaginary
Analytics
-
FirebaseAnalytics
-
FirebaseCrashlytics
Network
-
Alamofire
-
Moya
-
ReachabilitySwift
Maps
-
YandexMapKit
Version Control
-
GitLab
UI
-
UIKit
-
SnapKit
-
Reusable
-
DropDown
-
SVProgressHUD
-
IQKeyboardManagerSwiftx
-
InputMask
-
Cosmos
-
Lottie
-
Spruce
Payments
-
CloudPayments
CI
-
Git hooks
-
SwiftFormat
-
xUnique