Як я зробив безкоштовний Flutter-застосунок з картками Домана для своєї дитини — і виклав його у відкритий доступ
Дитина росла, хотілося чогось кориснішого за YouTube. Я Flutter-розробник. Результат — Doman Flashcards у Google Play. Безкоштовно і повністю офлайн.


Чому саме картки Домана
Коли моїй дитині було кілька місяців, дружина почала цікавитися методиками раннього розвитку. Метод Глена Домана — американського фізіотерапевта — з’явився ще в
Паперові картки — це роздрукувати, порізати, заламінувати сотні штук. Ми спробували кілька застосунків — або англійською тільки, або з рекламою кожні 30 секунд, або TTS-озвучка роботяжним голосом. Україномовного нічого нормального не було.
Я подумав: це ж типовий CRUD з картинками і аудіо. Зроблю за вихідні.
Зробив за три місяці. Як завжди.
Стек і архітектурні рішення
Вибір Flutter був очевидним — я на ньому пишу комерційні проєкти, і для такого застосунку це ідеальний fit: одна кодова база, швидкий рендеринг зображень, і не треба тягнути нативних розробників.
Контент повністю в assets. Це свідоме рішення, а не лінь. Повний офлайн — одна з ключових вимог: заняття в дорозі, на дачі, в черзі до лікаря. Якщо контент на сервері — завжди є ризик «немає інтернету». Мінус: розмір APK росте разом із каталогом. Зараз 170+ карток у 17 категоріях — ще терпимо, але якщо буду розширювати, доведеться дивитися на Play Asset Delivery.
Стан — без зайвого. Для такого застосунку не потрібен Redux або складний BLoC. Простий ChangeNotifier + Provider, і цього достатньо. Не треба стріляти з гармати по горобцях.
Озвучка. Це те, на чому я не захотів економити. TTS для дітей — погана ідея: діти дуже чутливі до інтонації, і роботяжий голос відштовхує. Записали живу озвучку з Анною Рєзнік — і це, мабуть, найбільша різниця між моїм застосунком і конкурентами в ніші. На жаль, озвучка тільки українська жива, англійська і ще планується турецька (просять користувачі) штучний інтелект.
Що під капотом у контенті
- 170+ карток, 17 категорій: тварини, фрукти, овочі, транспорт, одяг, кольори, комахи, посуд, електроніка, музичні інструменти, морські мешканці, ягоди, інструменти, їжа, творчість
- Кожна картка — назва українською + англійською одночасно. Двомовність з народження — чому ні?
- Гра «Знайди картинку» — вибір з кількох варіантів. Для 2—3-річної дитини це вже повноцінний інтерактив і перша перевірка знань
Намалювати всі ілюстрації самому було нереально, тому працював з ілюстраторами. Це зайняло більше часу, ніж написання коду.
Монетизація: її не було, і це свідомо
Наразі додав рекламу (чисто мотивація для розвитку, і то це пару нижніх банерів, але чесно, це не набігає і $1 на день). Без підписок. Без «преміум-категорій».
Я розумію, що це не бізнес-модель. Але я робив це насамперед для своєї дитини, і думка про те, що посеред заняття з’явиться банер — мені була неприємна. Якщо застосунок набере аудиторію і я захочу його розвивати серйозніше — подумаю над моделлю типу «базовий контент безкоштовно, нові тематичні паки за символічну ціну». Але не зараз.
Що хочу зробити далі
Список фіч, які крутяться в голові:
- Налаштування темпу. Метод Домана передбачає конкретну швидкість показу карток — зараз вона фіксована, хочу дати батькам контроль.
- Статистика і прогрес. Батькам цікаво бачити, скільки слів дитина вже «пройшла». Старшим дітям від 3+ — теж.
- Власні набори і власна озвучка. «Мама», «тато», «наш кіт», «наш будинок» — персоналізовані картки з фото. Це складніше технічно, але дуже затребуване.
- Розширення каталогу. 170 карток — непоганий старт, але хочу довести до 500+.
- Турецька версія. Просять в приватних повідомленнях. Чому б ні
Що я виніс із цього проєкту
Дитячі застосунки — це окремий жанр UX. Тут не працює «зрозуміло для дорослого = зрозуміло для дитини». Я кілька разів переробляв навігацію, дивлячись, як
Застосунок живий, оновлюється, але моя дитина вже ним не користується, 4 роки вже пройщо і просто виросла
Якщо є питання по Flutter, архітектурі або досвіду публікації в Play — питайте в коментарях.
6 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарівЦікавий та корисний застосунок, бажаю успіху в розвитку :)
Дякую. Вже підготував турецьку озвучку. На днях буду оновлювати апку
Гарний приклад пет-проекту. Підтримую таке. Успіхів.
Дякую))
Застосунок цікавий, і є куди розвивати.
Публікуйте також на інших платформах: Reddit, LinkedIn, Peerlist — одного DOU замало.
Дяка за пораду