top of page
KEX.png

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

bottom of page