Period.
2022.01.03 - 2022.07.15
2023.07.03 - 2023.10.03
2023.12.27 - 2024.09.30
What I've done.
2023.12 - 2024.09
- iOS App-tech Launch
- Launched an app-tech where users can type on the keyboard and earn points.
- Led the introduction of PureDI, Combine, and OneWay to support various features while preparing for the app-tech transition to become a super app.
- Web Input Flickering Mitigation
- Analyzed the flickering issue during web input, a common problem across all iOS keyboard extensions that everyone said was impossible to solve, and persistently found a solution to apply and deploy. (World's first)
Before and after comparison (left: before, right: after)


- Combine Introduction
- Removed legacy code and made views reactive, writing code that could flexibly respond to future SwiftUI transitions.
- Introduced Pin&Flex Layout to Keyboard Extension
- Introduced Pin&Flex Layout to the Keyboard Extension to improve keyboard performance, successfully raising stability from the low 60% range to 98-99%.
- Contributed to the FlexLayout open source during this process.
- Medium article (KR)

- Multi Thread Management
- Experience writing thread-safe code using Modern Concurrency and GCD for efficient resource utilization and performance improvement within the limited resources of iOS keyboard extensions.
- Swift Concurrency & OneWay Introduction
- Introduced Swift Concurrency with Alamofire, using networking abstraction for flexible use.
- Introduced the MVI architecture OneWay to use Concurrency more cleanly, separating View and ViewModel roles, and contributed to building a testable environment by using PureDI together.
- PureDI Introduction & Storyboard Code Removal
- Designed a PureDI service container using protocols to flexibly build a test environment for TDD introduction, and removed Storyboard code for implementation.
- Keyboard Autocomplete Feature
- Contributed to creating and deploying keyboard autocomplete feature using UITextChecker.
- BaseViewController Introduction
- Introduced BaseViewController to standardize view classes and reviewed overall code style.
- AirBridge Introduction & Deeplink Logic Organization
- Introduced Airbridge to replace the problematic Firebase dynamic link, and organized deeplink & deferred deeplink logic using link schemes.
- Keyboard ASCII Art Feature
- Contributed to creating and deploying the feature to send ASCII art from the keyboard.
- CI/CD Pipeline Maintenance
- Maintained the introduced CI/CD pipeline and updated/optimized the environment.
- Improved build speed by 20% through build caching.
- Maintained the introduced CI/CD pipeline and updated/optimized the environment.
- Realm Dependency Removal
- Removed the heavy Realm library dependency for keyboards to reduce app size and improve keyboard performance.
- SPM Library Migration
- Migrated libraries to SPM in preparation for future Tuist introduction.
- Other bug fixes and maintenance
2023.07 - 2023.10
- My Theme Feature Launch
- Implemented and launched the My Theme feature within a limited 2-week period, allowing users to insert their own photos to create custom keyboards.
- Used image downscaling to meet the keyboard's limited 50MB memory requirement.
- Used image composition for thumbnail functionality.
- Studied and used Gif optimization techniques.
- Touch Area Correction
- Verified incorrect touch areas through hitArea visualization and readjusted view spacing to make touch areas work as originally intended.
- CI/CD Pipeline Construction
- Rebuilt the deployment pipeline automation using Fastlane and Circle CI that was not working due to errors.
- RxSwift Code Removal and Migration to Combine
- Performed partial conversion of RxSwift to Swift Concurrency and Combine following industry trends.
- 2022.01 - 2022.07
- iOS App Management through Firebase
- Detected crashes when entering the app's charging station through Firebase Crashlytics, identified the scale of affected users, and quickly fixed it by prioritizing the issue. The API was incorrectly called in layoutSubviews(), which was changed to update at the appropriate lifecycle.
- Collected various user events through Firebase and worked to use them for data verification of added features.
- Worked on tasks like survey form link changes and forced app updates through version control via Remote Config without going through app review.
- Gift/Request Features
- Developed new features according to design guidelines to increase keyboard product purchase conversion rate.
- After launch, 34% of sales came through gift/request features. (2 weeks after launch)
- Implemented using Firebase Dynamic Links.
- RxSwift Migration
- Converted some legacy code to reactive programming using Rx in certain areas.
- Too many asynchronous events were being managed simultaneously on one page, which could be cleaned up more neatly using RxSwift.
- Keyboard Optimization
- Improved indexing speed of the live theme keyword response feature using hashing instead of array search, thereby increasing response speed.
- Partially converted UI drawing from AutoLayout to PinLayout & FlexLayout, enabling multi-thread usage unlike the previous main thread-only UI method, improving keyboard loading speed.
- Theme Free Trial Feature
- Previously, you had to purchase to use popular themes. Thinking the high payment hurdle was reducing active users, I added Google Admob to the app to provide free theme trials through ads.
- Ranking System Addition
- Added a ranking system to the app to increase free trials and purchase conversion rates.
- When distinguishing between users who visited the ranking page and those who didn't, free trials increased by about 5.5x and purchases by about 2x.
- NUX Improvement Update
- Improved the app's NUX flow to reduce user churn rate.
- Although overall churn rate wasn't reduced, increased theme purchase conversion rate from 3% to 10-15%, and increased conversion rate to main screen after keyboard activation by about 8%.
- Removed some legacy storyboard code and converted to code-based UI to prevent conflicts.
- Keyboard Emoticon Feature
- Added the ability to use emoticons from downloaded live themes to increase the value of live theme products that respond to keywords.
- Previously, live themes could only be used when that theme was applied, but updated to allow selecting and using all stickers from owned themes even while using other themes.
- If all stickers (photos) were displayed directly on the keyboard, the iOS keyboard's 30MB memory limit would cause the keyboard to terminate. Memory rose to critical levels with each collection view scroll, and I added the sticker feature that was thought impossible due to memory issues through ideas like image downprocessing and gif frame loading management.
- Overall iOS App Maintenance
- Understood the existing project structure through handover and was responsible for additional feature development and maintenance.
- Conducted QA through internal testing and was responsible for deployment.