Як я зробив безкоштовний Flutter-застосунок з картками Домана для своєї дитини — і виклав його у відкритий доступ

💡 Усі статті, обговорення, новини про Mobile — в одному місці. Приєднуйтесь до Mobile спільноти!

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

Чому саме картки Домана

Коли моїй дитині було кілька місяців, дружина почала цікавитися методиками раннього розвитку. Метод Глена Домана — американського фізіотерапевта — з’явився ще в 1960-х, але батьки досі активно його використовують: коротке, часте показування яскравих карток з підписами добре працює на увагу і пам’ять малюків.

Паперові картки — це роздрукувати, порізати, заламінувати сотні штук. Ми спробували кілька застосунків — або англійською тільки, або з рекламою кожні 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. Тут не працює «зрозуміло для дорослого = зрозуміло для дитини». Я кілька разів переробляв навігацію, дивлячись, як 1,5-річна дитина тикає в екран. Але ще так і не отримав схвалення викладачами для них все не так. У кого є розуміння, що не так для них, вкажіть. Бо відповіді стандартні.

Застосунок живий, оновлюється, але моя дитина вже ним не користується, 4 роки вже пройщо і просто виросла

Якщо є питання по Flutter, архітектурі або досвіду публікації в Play — питайте в коментарях.

👍ПодобаєтьсяСподобалось4
До обраногоВ обраному0
LinkedIn
Ctrl + Enter
Ctrl + Enter

Цікавий та корисний застосунок, бажаю успіху в розвитку :)

Дякую. Вже підготував турецьку озвучку. На днях буду оновлювати апку

Гарний приклад пет-проекту. Підтримую таке. Успіхів.

Застосунок цікавий, і є куди розвивати.

Публікуйте також на інших платформах: Reddit, LinkedIn, Peerlist — одного DOU замало.

Підписатись на коментарі