Last updated on 27 Nov. 2025
Introduction
I recently completed the study, code-along and small modifications of an interesting React Native and Expo education (LMS) tutorial app by Simon Grimm. I found the tutorial very helpful to learn these topics. I thank Simon Grimm for creating such a detailed learning resource.
The tutorial app repos are shared publicly but are not open source. I see interesting possibilities that an open source equivalent of this app would have. This post describes the features of the tutorial app and covers possibilites of an open source equivalent. It also shares the Android APKs, web app deployment links and source code of my slightly modified app (two versions).
Quick Info: My slightly modified version apps
The regular (slightly modified) version app needs a Google login. It uses free-tier Clerk authentication and Google SSO option in it.
But for visitors who want to try out the app without using a Google login, I made a variant app which has a 'Use Dummy Login' feature.
Note that for both app variants, the first Strapi (data) request may take up to a minute due to free-tier 'Cold start' on Strapi cloud. Subsequent requests should be faster.
Regular (slightly modified) tutorial app APK download and web deployment
Dummy Login (DL) (slightly modified) tutorial app APK download and web deployment
Note: Because Dummy Login uses a single shared Dummy Login ID, the app may behave oddly if many users use it simultaneously
App source code
The main branch of the GitHub repository below has the regular (slightly modified) tutorial app code. The dummylogin branch has the Dummy Login (slightly modified) tutorial app code.
Tutorial App
Original Tutorial App frontend code on GitHub . The Readme of this repo has a
Demo section with animated demos of the mobile app, followed by mobile app screenshots and web app screenshots. That's followed by Strapi screenshots showing how the course content is organized and specified at the Strapi backend using Strapi admin panel.
I could not find a live web app deployment link, nor any Android/iOS mobile app download link. So the README visuals seem to be the primary way of showcasing the app’s UI/UX and features.
Tutorial App Features
This tutorial app teaches how to develop a small LMS app which:
- Allows easy creation of course overviews and lessons (with images and rich text) using the Strapi admin panel
- Supports associating a video with each lesson
- Implements Google and Apple SSO authentication using Clerk
- Hides course content from unauthenticated users
- Renders course overview and lessons along with a video player on mobile and web
- Supports multiple courses, each with multiple lessons
- Allows courses to be free or premium
- Uses RevenueCat for in-app purchases of premium courses
- Tracks user progress through a course
- Includes attractive UI elements such as animations and parallax effects
- Lets users access the app interchangeably from mobile and web
The tutorial app is a Yoga courses app with two courses - one free and one premium. The course overview pages have images and rich text content. But the course lesson pages are essentially placeholder pages with only one sentence and one video. The same short cartoon video clip is used for all lessons in both courses.
But it seems that incorporating images and rich text content for all lessons would be a straightforward content editing task (no programming) using Strapi admin panel. Similarly, if separate lesson videos are available, linking them to appropriate lessons would be a straightforward content editing task (no programming) using Strapi admin panel.
Open Source Equivalent App Possiblities
The tutorial application code is not shared with an open-source license, which limits its use beyond learning. However, it demonstrates the possibilities that an open source equivalent React Native and Expo application would have, with mobile and web application versions based on single source codebase. Perhaps such an open source application is available. If not, it could be created.
Such an open source React Native and Expo application (with Android/iOS and web versions) could be used for many small education apps, with only content changes needed (no programming work) via the Strapi admin panel, and the app code - both frontend and backend API - being the same. It might also be usable for non-education apps that follow a similar two-level structure to course → lessons, such as therapy program → exercises (covering physiotherapy, occupational therapy, speech therapy, rehabilitation programs, etc.), but small modifications to the app code will be needed. See footnotes for more details about therapy program → exercises possibilities.
Tutorial App Study, Code-Along and Mods
In the tutorial video, the author develops and demos the LMS (Learning Management System) app for iOS and web. However, he does not demonstrate it on Android. I did my code-along for Android and web, and I encountered several issues on Android that required fixes. I also made a few small improvements to the web app.
The modified frontend App repo has quite a few mods but the backend API repo is virtually the same as the tutorial API repo.
Modified Tutorial App APK and Web Deployment (regular and DL variants)
The modified tutorial app's Android version (regular and DL variants) are shared as APK files and the web versions are deployed on expo.dev. They are only intended as demonstration apps to showcase learning outcomes and the potential of such small LMS-style apps.
I removed the Apple login as I don't use Apple devices. So the app currently supports Google login only.
I am using Strapi cloud free tier for hosting the API backend whose runtime behavior is 'Cold start'. This causes the first Strapi data request for both the web app and Android app to often take as long as around a minute to complete. Subsequent requests don't take so long. In a production app whose API backend is hosted on paid Strapi cloud or AWS/Azure, the runtime behaviour would be 'Always on' and so even the first Strapi data request will complete quickly.
Modified tutorial APK links are given in Quick Info section at the top of this post.
- These release APKs have been scanned using VirusTotal, a reputable online service that aggregates antivirus engines and online scan results. The scan reported the APK files to be clean i.e. "No security vendors flagged this file as malicious". You can view the VirusTotal scan report for the regular app's APK. This scan provides an independent verification that the app is free from known malware and other threats.
- I tested the regular variant both on my Android mobile and on Android emulator on my PC (downloaded APK from above link on emulator).
- I also did some testing of the Dummy Login variant. Here is the "No security vendors flagged this file as malicious" VirusTotal scan report for the Dummy Login app's APK.
Modified tutorial web app links are given in Quick Info section at the top of this post.
- The web app can be viewed on mobile too, though the Android app on mobile has better UI/UX. Some of my mods improved web app rendering on mobile.
How to use the app?
Issues the app has
The app does have some relatively minor issues, but as the app is a tutorial app used on free-tier Strapi Cloud backend, I think some such issues are perhaps to be expected.
Tutorial App Notes Posts
================================================
================================================
Footnotes
Therapy program → exercises possibilities provided by ChatGPT:
Here are parallel “lesson-equivalent” items for each therapy type, matching the idea of course → lessons or therapy program → exercises.
These examples are standard categories and safe to mention.
✅ Physiotherapy (PT)
Therapy program → exercises
-
Knee mobility exercises
-
Shoulder strengthening exercises
-
Lower-back stability exercises
-
Neck posture correction exercises
-
Ankle balance exercises
✅ Occupational Therapy (OT)
Therapy program → functional activities
-
Fine-motor skill tasks (e.g., hand dexterity drills)
-
Daily living practice (buttoning, dressing, grooming tasks)
-
Grip-strength and hand-coordination activities
-
Sensory integration activities
-
Upper-limb functional strengthening
(Here “exercises” are usually “functional tasks”, but structurally they are the same as lessons.)
✅ Speech Therapy (SLP)
Therapy program → practice exercises
-
Articulation exercises (for specific sounds)
-
Speech fluency practice
-
Voice control exercises
-
Oral-motor strengthening tasks
-
Language comprehension drills
✅ Rehabilitation Programs (Post-surgery or Neuro Rehab)
Rehab program → rehabilitation tasks
-
Gait-training exercises
-
Balance and coordination tasks
-
Post-operative strengthening routines
-
Cognitive rehabilitation tasks
-
Range-of-motion exercises
Comments
Post a Comment