Перейти к содержимому

Разрешить сайту считать ваши посещения с помощью Яндекс Метрики? Для этого она сохранит в браузере файлы cookie. Как сайт использует cookie

VC
Схему я расписал по шагам, но для заказчика такое приложение ещё не делал. Поэтому срок, стоимость и цифры ниже — расчёт для типичной онлайн-школы.
Схема 10 из 11 · Готовое решение · Мобильная разработка

Приложение для онлайн-школы напоминает об уроках и тренирует произношение

Ученик онлайн-школы пропускает урок, потому что забыл о нём, а после пропуска возвращаться неловко. Приложение для iPhone напоминает о каждом занятии, даёт потренировать произношение в любую свободную минуту и показывает прогресс. По расчёту первую версию на SwiftUI и Firebase с оплатой внутри приложения можно выпустить в App Store примерно за 9 недель.

Для кого
Онлайн-школы с живыми уроками
Технологии
Swift · SwiftUI · Firebase · StoreKit 2
Срок по расчёту
≈ 9 недель
Стоимость
от 1,2 млн ₽
01 · Проблема

Расписание лежит в таблице, и об уроке никто не напоминает

Возьмём для расчёта онлайн-школу английского на 4 800 активных учеников. Она работает на привычном для онлайн-курсов наборе: сайт и личный кабинет на Tilda, занятия с преподавателями в Zoom, расписание и прогресс в Google-таблицах. Перед каждым уроком ученику приходится открывать сайт и искать, где у него сегодня занятие.

Ученику помогли бы три вещи: напоминания за сутки, за час и за 10 минут до занятия; домашние задания и тренажёр произношения, которые можно открыть в любую свободную минуту; наглядный прогресс по CEFR — международной шкале уровней языка.

Без этого школа теряет учеников постепенно. Первое занятие пропускают, потому что забыли. Второе — потому что неловко возвращаться. К третьему уходят совсем. Каждого ушедшего приходится заменять новым учеником из рекламы.

02 · Как работает

Приложение для iPhone с напоминаниями, тренажёром произношения и оплатой

В первой версии три главные функции: расписание с напоминаниями, тренажёр произношения прямо на телефоне и прогресс по шкале CEFR. Серверная часть работает на Firebase — готовом облачном сервисе Google для входа в приложение, базы данных и уведомлений.

01
Интерфейс на SwiftUI

Расписание · Урок · Тренажёр · Прогресс · Кабинет — около 12 экранов

02
Напоминания

Телефон сам напоминает о занятии за сутки, за час и за 10 минут. О переносе или отмене урока сообщает Firebase

03
Speech Framework

Встроенное в iPhone распознавание речи проверяет произношение прямо на телефоне

04
StoreKit 2 + ЮKassa

Подписка на тренажёр — покупка внутри приложения через App Store. Живые уроки один на один — оплата через ЮKassa

05
Серверная часть на Firebase

Вход в приложение, база расписаний и хранилище учебных материалов

Интерфейс на SwiftUI

SwiftUI — современный способ строить интерфейс для iOS: типовые экраны школы на нём собираются быстро и занимают немного кода. Приложение работает на iOS 17 и новее, поэтому можно сразу использовать @Observable, Inspector и новые возможности прокрутки, не подстраиваясь под старые версии системы.

Речь распознаётся прямо на телефоне

Главное в приложении — тренажёр произношения. Он построен на Speech Framework, встроенном в iPhone распознавании речи, которое с iOS 13 умеет работать прямо на устройстве. Ученик произносит фразу, телефон распознаёт её и сверяет с образцом. Звук никуда не отправляется, ответ приходит сразу, и школа не платит за вычисления: каждое занятие на тренажёре обходится ей в 0 ₽.

Два способа оплаты: StoreKit 2 и ЮKassa

Если приложение продаёт подписку на тренажёр и материалы, правила App Store требуют встроенной покупки через StoreKit 2, и с каждой такой покупки Apple берёт комиссию. То же требование действует для групповых занятий. Живые уроки один на один с преподавателем правила разрешают оплачивать другими способами, поэтому для них в приложении есть оплата через ЮKassa.

Почему первая версия работает на Firebase

С Firebase на старте не нужен собственный сервер, и по расчёту это экономит около 4 недель. План переезда я описываю заранее: структура базы Firestore рассчитана на перенос в PostgreSQL, а работа с данными вынесена в отдельный слой кода. Когда школа дорастёт до своего сервера, переезд займёт примерно 3–4 недели.

Заявку в App Store готовлю по контрольному списку

Перед подачей я проверяю всё, на что смотрят проверяющие App Store: понятное описание функций, демонстрационную учётную запись с заполненным расписанием для проверяющего, политику конфиденциальности, удаление учётной записи прямо в приложении и разрешения на микрофон, распознавание речи и уведомления. По данным Apple, в среднем 90% заявок проверяют меньше чем за сутки.

Что проверить до запуска

Имя и почта ученика — персональные данные. Если среди учеников есть граждане России, по 152-ФЗ их данные нужно записывать и хранить в базе на территории России. Для такой школы я с самого начала размещаю учётные записи, расписания и прогресс на сервере в России, и Firebase для этих данных не используется. Тогда первая версия займёт примерно на 4 недели дольше.

03 · Технологии

Встроенные инструменты Apple и Firebase

Swift

Язык, на котором пишут приложения для iPhone. Макросы из версии 5.9 сокращают повторяющийся код

SwiftUI (iOS 17+)

Основа интерфейса: @Observable, Inspector, новые возможности прокрутки

Speech Framework

Распознавание речи прямо на телефоне: проверяет, совпала ли фраза ученика с образцом

StoreKit 2

Покупки внутри приложения через App Store и уведомления от серверов Apple о том, прошла ли оплата

ЮKassa SDK

Оплата живых уроков один на один российскими картами

Firebase Auth/Firestore

Серверная часть первой версии: вход в приложение, расписания и материалы

Firebase Cloud Messaging

Уведомления с сервера о переносе или отмене урока

SwiftSwiftUIiOS 17+Speech FrameworkStoreKit 2ЮKassaFirebase

Swift и SwiftUI я изучал на курсе App Brewery и сделал на них больше 20 учебных и собственных приложений. Как я к этому пришёл, рассказываю на странице «Обо мне».

04 · Расчёт

Сколько времени и денег займёт первая версия

Расчёт сделан для той же школы: около 12 экранов, тренажёр произношения, два способа оплаты и серверная часть на Firebase.

Срок
≈ 9 недель

от начала работ до публикации в App Store. С сервером в России — примерно на 4 недели дольше

Стоимость
от 1,2 млн ₽

точная сумма зависит от числа экранов и способов оплаты

С чего начать
Аудит

за 5 000 ₽: разберу, как школа сейчас ведёт расписание и принимает оплату, и пересчитаю срок и смету

Цены на разработку смотрите на странице «Цены».

Сколько стоит школе каждый ушедший ученик

Сколько учеников удержит приложение, станет видно только после запуска. В школе на 4 800 активных учеников один процентный пункт удержания — это 48 учеников, которые через месяц продолжают заниматься.

Умножьте это число на то, во сколько школе обходится один новый ученик из рекламы, — получится цена каждого процентного пункта. С этой суммой удобно сравнить цену приложения.

05 · Где ещё подойдёт

Где ещё пригодится такое приложение

Общая схема такая: первая версия на SwiftUI, готовая серверная часть и заранее описанный план переезда. Она подходит продуктам для частных клиентов, у которых уже есть активная аудитория и которым важно быть у неё в телефоне:

  • → Онлайн-школы по любому предмету — программирование, математика, языки, музыка
  • → Фитнес-клубы и студии йоги — расписание тренировок, напоминания, прогресс
  • → Сервисы с платной подпиской — медиа, аудио, курсы
  • → Веб-сервисы — мобильное приложение к тому, что уже работает в браузере
  • → Клубы и сообщества — ассоциации, программы лояльности, секции с расписанием занятий
Что переносится в другие приложения
  • Основа первой версии на SwiftUI: навигация, оформление, доступность для людей с ограниченными возможностями, базовые элементы интерфейса
  • Отдельный слой для работы с данными и готовый план переезда на собственный сервер
  • Две схемы оплаты по правилам App Store: покупки внутри приложения и оплата живых уроков через ЮKassa
  • Контрольный список для подачи заявки в App Store
Готовы начать?

Начните с аудита за 5 000 ₽: письменный отчёт и расчёт окупаемости

Расскажу, что автоматизировать в первую очередь, когда это окупится и нужен ли вашей задаче ИИ вообще. Иногда он не нужен.

Или просто задайте вопрос. В рабочее время отвечаю в течение 2 часов