- Project: Mobile framework for creating offline educational applications
- Duration: one year, ongoing
- Technologies: Kotlin, Swift, Node.js, Ruby on Rails
- Target audience: Mobile app users interested in learning
The Client is a non-profit organization exploring innovative ways to create lasting, positive change for the education level in the East Africa region. Concretely, the company aims to help people develop the necessary skills, attitudes, and confidence for employment and entrepreneurial success.
THE CASE
When the Client approached us, they had already launched their first version of the educational application for mobile on Android and iOS platforms. It provided a fast and fun way of learning the Somali language. However, the app had a few technical issues and, in general, the Client wanted to create not just an app, but an m-learning framework to develop similar educational tools for various subjects.
The Client’s Request
The Client was looking for a partner with expertise in creating scalable mobile solutions. The team required the app to be easily extended with various features and adopted to different areas of study, as the previous software vendor didn’t have such expertise. The company wanted to develop a comprehensive platform for authors to create new courses and apps quickly and effectively. Thus, the Client turned to us to enhance the existing application and create a suitable framework for future mobile learning apps.
Process
1. Analytics Module Redesign
The creation of a mobile learning framework had to start with fixing the first version of the app that was obtained from previous developers. First, we redesigned the analytics module which enabled our Client to make successful marketing campaigns. Additionally, the Client was able to get a clear picture of how people were progressing within the app and use that information to decide what other elements should be redesigned and how.
2. Developing a Framework for Mobile Learning
In the midst of planning app development for other subjects with the Client, we came to the conclusion that it would be optimal to create a framework. It would let us produce an application easily using common elements that each app has: courses, modules, topics, lessons, tests, type of activities, budgets, UI, etc.
The task was to design a basic application that could be expanded. Since we relied on Agile principles, each feature was implemented iteratively to see how it would perform with users. Naturally, it was difficult to know far in advance what features would have to be added in the future. So, it was imperative to remain flexible to work on any potential pivots in that regard. Furthermore, we had to build the application architecture in such a way that made it possible to add or remove project feature modules depending on their use in a particular solution.
3. Mobile Learning Framework Implementation According to TDD Best Practices
Thanks to the modern Android SDK, we proposed and implemented a highly modular architecture where each feature can be included or excluded from the app easily. It also lets us test each feature separately and work using TDD principles to ensure that the platform stays stable and modular.
We used JUnit and Espresso framework for autotests and covered features with test cases for manual testing. Also, we used CI/CD tools from Android SDK and GitLab to decrease development time and effort.
4. Agile Project Management Based on User Feedback
We used Agile methodology to pay greater attention to specific customer needs. Also, agile lets us use opportunities that the CustDev process provides. We contacted end-users, authors of context, and stakeholders to produce an app that allows learning things efficiently for the target audience.
Learn more about Agile Software Development
Challenges
As we were creating a mobile learning framework, our team faced a couple of challenges that required special attention.
Firstly, the app had to have the ability to work and update “offline” due to the lack or enormous cost of the internet. Thus, usual server-side interaction wasn’t suitable for the task. After several discussions we came up with an approach that lets the app work, update, and even collect analytics offline.
Discover how we implemented an offline mode into a Remote Patient Monitoring App
Another big challenge in the development was the support of product consistency when business requirements change constantly. It consumed additional time to support module architecture and the TDD process in such a scenario. Since it is the usual trade-off in the Agile style of development, we used our expertise to minimize losses.
Outcome
Our team had a great pleasure working with such a challenging and socially significant project. We used our expertise in mobile application development to build a universal framework for mobile learning that could be used for creating different apps for various training courses.
Since the Client currently concentrates on Android users due to 98% of the target audience having phones with that operating system, we developed this application version solely for Android.
The social impact of the application was great. The app was used by 100,000 users in total and more than 10,000 have successfully learned the Somali language in particular. We are confident that more and more people will use this opportunity to study and our application will continue to influence not just one person but thousands.
What’s Next
We continue to work with the educational app project and continuously have new aspects to work on and improve. Our team is enthusiastic about that and plans to:
- Test and add new courses for subjects like English, Science, and Mathematics
- Make the application even more interactive and interesting through scenario-based learning, gamification, and the setting of learning goals.
Our specialist will contact you to schedule a personalized consultation within one business day.
Velvetech offers complimentary consultations; after which, we will provide you with a proof of concept in just 3 days, an accurate outlook of the cost and timeline of your project and a competitive estimation, and an assembled team – ready to start your project within 7 days.
Proof of Concept in
Start Project within