Our team built this project from the ground up, creating a website and native apps for both iOS and Android.
We started with persons and user stories that we wrote together with our client. We used them to create detailed wireframes. At first, we designed the web version and then the apps. We started working on the style simultaneously and took into account the logo Our client wanted to use their existing logo, which predetermined the style and color palette. The overall look of the app conveys the feel of a friendly workspace, and the web application allows businesses to manage complex business processes.
Based on the user tasks and user flows described by our client, we aimed to manage appointments as elegantly as possible. Our main task was to visualize the workload at different levels, from individual employees to the whole branch. The second part of the task was to enable providers to manage new and existing appointments. For better visualization, we seriously customized Fullcalendar library.
We used the Django and Django REST framework to develop a RESTful API server to support the mobile and web applications.
We used Celery to send emails, push notifications, and text messages to users asynchronously.
We built a WebSocket server using Tornado to enable real-time notifications.
We used the DataTables plugin to conveniently display information regarding the branch, customer, service, service type, status, and so on in tables, and used WebSockets to dynamically update this information. We also used the Knockout library to enable dynamic data changes to individual page elements.
For the animation on the main page, we used ScrollMagic and GSAP. This combination allowed us to create a complex animation based on page scrolling that focuses attention on the advantages of the service.
The SteelKiwi development team integrated Google Maps to enable convenient location-based search and built in a push notification service that sends notifications about upcoming events. We also integrated various payment systems such as Checkout.com, My Fatoorah, and KNET to enable in-app purchases. Soon, we plan on integrating the widely-used Stripe payment system.
In 2014, we used Objective-C for the iOS application as it was popular, stable, and met all technical requirements for viewing information about services, booking a service, and paying for it. As Snaapy is an ongoing project, we made use of the MVC (Model-View-Controller) architecture to make the code easy to extend in future.
The Google Maps SDK allowed us to implement all the functionality that the iOS version of the app required in order to show maps and locations of businesses. We created many complex animations on our own without using any third-party libraries. What’s more, we created a multi-functional, easy-to-use daily and monthly calendar for the iOS app.
We developed the Android application using Java and the Android SDK. To enable communication with our backend, we integrated the well-known Retrofit library to send requests and handle responses. Using the MVP (Model-View-Presenter) architecture, we made our code maintainable and scalable. To implement new features going forward, we’ll be using Kotlin, which allows us to write cleaner code and develop more efficiently.
To increase the performance and responsiveness of the app and enable a frictionless user experience, we separated the UI flow and moved all resource-expensive operations into background threads using RxJava. RxJava allows us to effectively manage threads and handle events that come from threads.