Objective:
The client, "Бажаємо здоров’я" (translated as "Wishing Health"), is a network of pharmacies based in Vinnytsia, Ukraine, with a presence across the country. They operate as a distributor of pharmaceuticals, vitamins, supplements, beauty and skincare products, and medical equipment.
The client approached our team with existing Android and iOS applications, seeking improvements in performance and overall optimization.
Challenge:
The project involved the development of a mobile application concurrently on iOS and Android platforms. The design and functionality enhancements were detailed through Figma prototypes and promo screens, with a demo video showcasing the iOS version of the app.
Solution:
Over approximately 1.5 years, our development team focused on optimizing the existing applications. This involved a redesign of significant portions of the app, the implementation of new features such as product reservations, barcode scanning, online payments, and distance calculation to nearby pharmacies. Additionally, bug fixes were applied to existing features like list ordering and map displays.
Our team was comprised of a project manager, QA specialist, iOS developer, Android developer, and designer. Several offline meetings were conducted in Vinnytsia to address urgent matters and demonstrate the app's progress.
Technologies:
The project adopts the MVVM architecture to enhance code organization, mitigating state destruction challenges during configuration changes.
It comprises three main components:
- Model - managed by Retrofit and OKHTTP for API communication
- View - utilizing Jetpack's AndroidX libraries for UI elements;
- ViewModel - mediator with Koin for dependency injection and LiveData for lifecycle-aware data observation.
- Firebase is integrated for core functionalities like analytics, crash reporting, and messaging.
- UI enhancements use Lottie for animations and PinEntryEditText for input code views. Debugging tools include Chuck for API inspection and Timber for logging. User engagement features looping auto-scroll functionality via ViewPager2 for seamless screen swiping.
The tech stack adheres to modern Android development practices, incorporating Kotlin coroutines for asynchronous operations and WorkManager for efficient background tasks. This combination ensures a robust foundation for maintainability, scalability, and an optimal user experience.
iOS:
The Swift-based project follows the MVP (Model-View-Presenter) architecture, leveraging UIKit for the user interface. Essential libraries include ApplePay for secure and seamless transactions, GoogleMaps for location-based services, CLLocationManager for precise location tracking, and a Barcode reader for efficient data input.
The debugging library Wormholy is employed for streamlined debugging workflows.
Furthermore, the integration of Google Analytics enables comprehensive tracking and analysis of user interactions. Push Notifications enhance user engagement by providing timely updates and alerts.
This carefully selected tech stack ensures a robust and user-friendly iOS application, combining the power of UIKit with specialized libraries for seamless payment processing, precise location services, efficient debugging, and comprehensive analytics.
Android:
- MVVM architecture
- Retrofit
- OKHTTP
- Jetpack's AndroidX libraries
- Koin for dependency injection
- LiveData
- Firebase
- Lottie
- PinEntryEditText
iOS:
- MVP architecture
- UIKit
- ApplePay
- GoogleMaps
- CLLocationManager
- Barcode reader
- Wormholy
- Google Analytics
- Push Notifications
Results:
Our team provided flexible solutions throughout the development cycle, ensuring scalability and client satisfaction. The client expressed contentment with the app's functionality, features, and effective communication with our team. Key achievements include transforming the existing app into a fully functional, efficient platform for users.