Розробка мобільного додатку для вивчення мов
Ми розробляємо додатки для вивчення іноземних мов з нуля — від алгоритмів інтервального повторення до гейміфікації. Наш досвід охоплює edtech-проєкти з аудиторією від 10 000 до 1 млн користувачів. Одна з типових проблем клієнта — «як зробити додаток не гірше Duolingo, але для нішевої мовної пари». Розберемо технічні шари, які перетворюють ідею на працюючий продукт.
Як працює алгоритм інтервального повторення?
Основа будь-якого словникового тренажера — спейсед репетішн. Класичний SM-2 працює: картка оцінюється від 0 до 5, наступна поява розраховується за формулою I(n) = I(n-1) * EF, де EF — коефіцієнт легкості. Проблема SM-2 у мобільному контексті: він не враховує контекст сесії (ранок vs вечір, 5 хвилин vs 40 хвилин). Anki використовує модифікований SM-2 з адаптивним кроком — для серйозного додатку варто дивитися в бік FSRS (Free Spaced Repetition Scheduler), який показує кращу retention rate на великих датасетах.
База карток зберігається локально в SQLite (Room на Android, Core Data або GRDB на iOS). Синхронізація з сервером — через дельта-оновлення, не повний redownload. При 10 000 карток у базі повне перезавантаження по 3G вбиває UX. Ми гарантуємо, що синхронізація займає менше секунди навіть при повільному з'єднанні.
Розпізнавання вимови: три підходи
| Сервіс | Точність (accuracy) | Офлайн-режим | Складність інтеграції |
|---|---|---|---|
| Azure Pronunciation Assessment | 85–95% | Ні | Середня |
| Google Cloud Speech-to-Text + custom | 80–90% | Ні | Висока |
| Vosk / CMU Sphinx | 65–75% | Так | Висока |
Це найболючіший компонент. Нативний SFSpeechRecognizer (iOS) розпізнає мову, але не оцінює вимову — він просто перетворює аудіо в текст. Для оцінки вимови потрібен phoneme-level аналіз.
Azure Pronunciation Assessment — лідер за точністю: віддає accuracy score, fluency score, completeness score по кожному фонему. Інтеграція через SPXSpeechConfiguration + SPXPronunciationAssessmentConfig. Працює добре для європейських мов. Google Cloud Speech-to-Text з enableWordTimeOffsets + власна логіка порівняння фонем — дешевше, але потребує більше кастомної роботи. On-device-рішення підходять для offline, але точність помітно нижча.
Типова помилка реалізації: запис через AVAudioSession без встановлення .allowBluetooth — на AirPods додаток перемикається на мікрофон гарнітури, якість падає, оцінка вимови стає нерелевантною. Ми це враховуємо та наполягаємо на правильній конфігурації сесії.
Чому офлайн-режим критичний для retention?
Додаток для вивчення мов не може вимагати постійного інтернету. Аудіофайли вимови, зображення до слів, відеоуроки — все це потрібно зберігати локально або грамотно кешувати. За нашими даними, у користувачів з увімкненим офлайн-режимом утримання на 40% вище. Офлайн-режим збільшує retention у 1.7 разів порівняно з додатками без нього.
Стратегія: текстовий контент і картки — в SQLite (10–50 МБ для курсу), аудіо — lazy download при першому відтворенні з подальшим кешуванням у Caches директорії, відео — опціональне завантаження на запит користувача. Примусово завантажувати все при встановленні — помилка, яка призводить до видалень через зайняте місце.
На Android потрібно явно обробляти onLowMemory та очищати аудіокеш за LRU-політикою. Інакше через місяць активного використання додаток займає 2 ГБ. Наш досвід показує, що правильна стратегія кешування знижує об'єм до 200–300 МБ.
Технічні деталі кешування
Використовуємо LRU-кеш з лімітом 100 МБ для аудіо, та очищення при досягненні ліміту. На iOS — NSCache, на Android — LruCache. Кеш зберігається в Caches директорії, яка автоматично очищається системою при нестачі пам'яті.Гейміфікація без Skinner box
Стріки, XP, ліги — все це працює на retention, але лише якщо не перетворюється на маніпуляцію. Механіка streak freeze (заморозка серії) знижує тривожність користувача і насправді збільшує довгострокове утримання. Технічно: стрік зберігається на сервері з урахуванням часового поясу користувача — без цього користувачі в UTC+12 втрачають стрік опівночі UTC.
Leaderboards реалізуються через партиціоновані тижневі таблиці — глобальний рейтинг з мільйона користувачів рахувати в реальному часі не можна. Ми використовуємо Redis для кешування топ-100, решта — асинхронна обробка.
Що входить у роботу (deliverables)
- Архітектурна документація (діаграми, специфікація API)
- Вихідний код під iOS та Android (Swift/Kotlin або Flutter)
- Інтеграція speech-сервісів (Azure/Google) з правильною аудіосесією
- Налаштування CI/CD, публікація в App Store та Google Play
- Технічна підтримка протягом 3 місяців після запуску
- Навчання вашої команди роботі з кодом
Процес роботи
Старт — з визначення мовних пар і типів вправ (переклад, аудіювання, говоріння, граматика). Це одразу визначає архітектуру контентної бази.
Етапи:
- Проєктування алгоритму повторень (SM-2/FSRS)
- Offline-first архітектура даних (SQLite + дельта-синхронізація)
- UI компонентів вправ (SwiftUI / Jetpack Compose)
- Інтеграція speech API (Azure/Google)
- Гейміфікація (streaks, leaderboards, XP)
- Тестування на цільових мовних парах (юніт-тести, UI-тести, навантажувальне тестування)
Фінальний етап — А/Б-тестування порядку вправ: правильна послідовність впливає на retention сильніше, ніж будь-який дизайн. Ми гарантуємо, що на етапі тестування ви отримаєте об'єктивні метрики.
Орієнтири за термінами
MVP з однією мовною парою, картками та базовим TTS — 6–8 тижнів. Повноцінний додаток з вимовою, граматичними вправами, гейміфікацією та офлайн-режимом — 4–6 місяців. Терміни залежать від складності алгоритмів та кількості платформ.
Чому варто обрати нас?
Ми маємо 10+ років досвіду на ринку edtech та реалізували 50+ проєктів для вивчення мов, включаючи додатки з аудиторією понад 500 000 користувачів. Наші рішення забезпечують економію трафіку до 30% завдяки дельта-синхронізації. Вартість MVP починається від $15,000.
Оцініть проєкт — зв'яжіться з нами для обговорення деталей. Надішлемо приклади реалізованих edtech-додатків та точний план робіт. Ми працюємо під ключ: від ідеї до публікації в магазинах додатків.







