An app for an online school that reminds students about lessons and helps them practise pronunciation
A student at an online school misses a lesson because they forgot about it, and after that, coming back feels awkward. An iPhone app reminds them about every class, lets them practise pronunciation in any spare minute and shows their progress. By my estimate, the first version on SwiftUI and Firebase, with in-app payments, can go live in the App Store in about 9 weeks.
The schedule sits in a spreadsheet, and nobody reminds the student about the lesson
For the estimate, take an online English school with 4,800 active students. It runs on the usual setup for online courses: a website and student account on Tilda, lessons with teachers in Zoom, schedules and progress in Google Sheets. Before every lesson, a student has to open the site and look for where today's class is.
What would help a student: reminders a day, an hour and 10 minutes before class; homework and pronunciation practice they can open in any spare minute; and visible progress on CEFR, the international scale of language levels.
Without these, students drift away. They miss the first lesson because they forgot, the second because coming back feels awkward, and by the third they quit altogether. The school then has to replace every student who leaves with a new one from advertising.
An iPhone app with reminders, a pronunciation trainer and payments
The first version has three main features: a lesson schedule with reminders, a pronunciation trainer that runs right on the phone, and progress on the CEFR scale. The backend runs on Firebase, Google's ready-made cloud service for sign-in, data and notifications.
Schedule, lesson, trainer, progress, account: about 12 screens
The phone itself reminds the student a day, an hour and 10 minutes before class. Firebase Cloud Messaging reports a moved or cancelled lesson
Speech recognition built into the iPhone checks pronunciation right on the phone
The trainer subscription is an in-app purchase through the App Store. One-on-one live lessons are paid through YooKassa
Sign-in, a schedule database and storage for lesson materials
A SwiftUI interface
SwiftUI is Apple's modern framework for building iOS interfaces. With it, a school's
typical screens come together quickly and take little code. The app runs on iOS 17 and later,
so it can use
@Observable,
Inspector
and the new scrolling features right away, with no workarounds for older system versions.
Speech is recognized right on the phone
The pronunciation trainer is the heart of the app. It is built on Speech Framework, Apple's built-in speech recognition, which has been able to run on the device itself since iOS 13. The student says a phrase, and the phone recognizes it and checks it against the model phrase. The audio never leaves the phone, the result comes back at once, and the school pays nothing for processing: each trainer session costs 0 ₽.
Two ways to pay: StoreKit 2 and YooKassa
If the app itself sells the trainer subscription and materials, the App Store rules require an in-app purchase through StoreKit 2, and Apple takes a commission on each one. Group lessons sold in the app fall under the same requirement. One-on-one live lessons with a teacher may be paid for by other means, so for those the app offers payment through YooKassa or another payment provider.
Why the first version runs on Firebase
Firebase means no custom server at the start and, by my estimate, saves about 4 weeks. The migration plan is written down in advance: the Firestore database structure is designed to move to PostgreSQL, and data access sits in a separate layer of code. Once the school outgrows Firebase, the move should take about 3–4 weeks. If local law requires student data to stay in the country, the backend goes on a local server from day one, which adds about 4 weeks.
I prepare the App Store submission with a checklist
Before submitting, I check everything App Review looks at: a clear description of the features, a demo account with a filled-in schedule for the reviewer, a privacy policy, account deletion right inside the app, and the permissions for the microphone, speech recognition and notifications. According to Apple, on average 90% of submissions are reviewed in less than 24 hours.
Apple's own tools and Firebase
Apple's language for apps. Macros, added in version 5.9, cut repetitive code
The basis of the interface: @Observable, Inspector, new scrolling features
Speech recognition on the phone: checks whether the student's phrase matches the model
In-app purchases through the App Store, plus notifications from Apple's servers about payment status
Payment for one-on-one live lessons; YooKassa is a Russian payment service
Backend for the first version: sign-in, schedules and materials
Notifications from the server when a lesson is moved or cancelled
I learned Swift and SwiftUI at App Brewery and have built more than 20 apps with them, both training projects and my own. I tell the story on the About page.
How long the first version takes and what it costs
The estimate is for the same school: about 12 screens, a pronunciation trainer, two ways to pay and a Firebase backend.
from the start of work to release in the App Store. With a local server from day one, about 4 weeks longer
the exact amount depends on the number of screens and payment options
for 5,000 ₽: I'll look at how the school handles schedules and payments today and recalculate the timeline and budget
Development prices are on the Pricing page.
What each student who leaves costs the school
How many students the app keeps will only show after launch. In a school with 4,800 active students, one percentage point of retention is 48 students who are still studying a month later.
Multiply that by what the school spends to bring in one new student, and you get the value of each percentage point. That figure is a handy yardstick for the cost of the app.
Where else an app like this is useful
The general pattern: a first version on SwiftUI, a ready-made backend and a migration plan written in advance. It suits consumer products that already have an active audience and need to be on people's phones:
- → Online schools for any subject: programming, math, languages, music
- → Fitness clubs and yoga studios: workout schedules, reminders, progress
- → Paid subscription services: media, audio, courses
- → Web services: a mobile app for something that already works in the browser
- → Clubs and communities: associations, loyalty programs, classes on a schedule
- A SwiftUI base for a first version: navigation, styling, accessibility, basic components
- A separate data layer, with a ready plan to move to a custom server
- Two payment paths that follow the App Store rules: in-app purchases, and outside payment for one-on-one live lessons
- A checklist for the App Store submission
Blog article on this topic: What AI implementation costs
Related cases and ready-made solutions
A fitness studio app that installs from the browser and updates without the App Store
A progressive web app (PWA) installs on the iPhone home screen straight from Safari, works offline and sends…
Website, map listing and cloud phone system for a switchboard manufacturer
The manufacturer worked on referrals and had no presence online. Now it has an Astro website with a GigaChat…
A platform for launching ad campaigns: from a desktop app for myself to a web service
It started as a Tkinter desktop app for my own use and grew into a Telegram bot and a web app on Next.js…
Start with the 5,000 ₽ audit: a written report and a payback estimate
I'll tell you what to automate first, when it will pay for itself and whether your task needs AI at all. Sometimes it doesn't.
Or just ask a question. During business hours I reply within 2 hours