About
Knumarket is a group-buying platform for college students.
It makes group purchases easier for items that are burdensome to buy in small quantities or come with high shipping costs.
Timeline
2021.11.03 - 2021.12.15
My work
- Removed Storyboards from the iOS app
- The app was originally built by one developer using storyboards. To reduce Git conflicts when working together, I proposed and carried out a switch to a code-based UI using SnapKit.
- New feature development
- For version 1.2, I implemented improvements based on user feedback, following the requirements documents and storyboards. I also reviewed and refactored code with teammates through GitHub.
- In code reviews, I shared knowledge with teammates and worked to improve code quality.
- Changed the iOS app's architecture
- Because MVVM has no standard implementation and styles vary by developer, I proposed adopting ReactorKit, a unidirectional flow library, to make the code more consistent. I introduced it gradually, starting with smaller parts of the app.
- Implemented dependency injection
- The app's MVVM structure used Singleton and delegate patterns, which left components tightly coupled. That became a drawback when we moved from one developer to feature-based collaboration, where conflicts were a concern. I introduced dependency injection so work could be divided more easily by feature.
- Refactored existing app code
- Used Reactive programming with RxSwift to organize inconsistent asynchronous code and scattered callbacks.
- Introduced network abstraction
- The existing Alamofire code was difficult to reuse. I proposed and adopted Moya, a library that makes Alamofire easier to reuse, to make the code more concise and readable. I was also able to separate the network layer.