It's not about ideas. It's about creating mobile apps and making ideas happen
The mobile apps on this page were all designed, developed, and published by myself. My case studies are a valuable resource for those looking to create mobile apps and embrace the power of mobile apps for their business.
Plinper - A mobile shopping app for your existing online stores
Performed all roles of creating mobile shoppping app from scratch starting with UI design to writing code using Swift. To create the mobile app’s UI, I used just code to avoid coupling between the code and UI, which can lead to crashes with Stoyboard. I used Swift 4 new feature Decodable to reduce boilerplate while parsing JSON files.Explore Detail
I used SnapKit to skip the verbose and the Visual Format Language based on strings, which effectively prevents compile-time checking. Fortunately, the issue was addressed in iOS 9.
To avoid bloating my view controllers with logic. I used the architecture Model-View-ViewModel to treat view controllers as views, thereby greatly reducing their complexity.
Integrated using Braintree Payment that can accept and process payments. It supports several payment methods such as PayPal, Venmo, and Credit or Debit Card.
No coding required to create mobile apps
Plinper is a native mobile shopping app that seamlessly integrates with the current online stores such as Shopify and WooCommerce to provide a rich user experience with a beautiful and elegant layout.
EsyFit - Quick Workout App for Busy People
It's a ready to use quick workout app which try to replace the personal trainer and the gym entirely and serves as the purpose of having your own personal trainer just within user's pocket. EsyFit includes features such as workout routines, voice over, calories counters synced with Apple Health and Fitbit.
The main challenge with development was the Firebase Storage integration. On the first stages, I had some troubles with performance. The request from the client's side to the backend took too long. I set up a system that update the user interface progressively using the Texture Framework to have a thread safe user interface and avoid lagging.
Only 1 month into the project, the quick workout app was ready to go. I designed, and developed an iOS, and WatchOS app that can help personal trainers stand from the crowd.Learn More »
I used Texture Framework to make user interface thread safe and shift all the expensive views into background threads for a fluid and responsive navigation.
I adopted Viper architecture on this product as I had to make it modular. It means easier changes of modules, better testability, and I can add any new feature faster.
I utilized coded graphs to render data for tracking and reporting the activities extracted from HealthKit using Charts Framework to reduce boilerplate code.
REALTIME DATABASE & CLOUD STORAGE
Firebase. The Firebase platform was used to store and synchronize data in realtime to the connected client. This was challenging as it has to adapt with the architecture.
Implemented with a thread safe interface using Texture Framework. It wasn't easy to layouts the cards and introduce the swipe-based navigation using the framework.
I had to make the product compatible with the WatchOS for a quick access to the workouts. I used WatchConnectivity to communicate between the iOS app and its watchOS app.
I chose Swift to create mobile apps, the modern alternative to Objective-C with a simpler syntax. Swift also helps to keep my code clean with Generics and Protocols and avoid mistakes.
Alamofire is the most popular HTTP networking library written in Swift. While URLSession is surprisingly powerful, Alamofire remain unbeaten when it comes to actually managing queues of requests.
I used the Realm Mobile Database, which is a lightweight solution that allows us to work with live and native objects. In my opinion, Realm is the fastest solution for data persistence.
HealthKit was used to read and write health and activity data to the Health app. A user can easily track measurable fitness and health data over a period of time.