Всем привет. Хотелось бы поделиться своей историей выпуска Android-приложения для изучения китайского языка.
С чего всё начиналось
Всё началось с того, что я как-то решил начать изучать китайский язык. Всё произошло неожиданно и рандомно. Для начала я решил поизучать, какие есть приложения и источники для изучения языка. Как оказалось, каких-то нормальных особо нет, тем более русскоязычных. На данный момент существуют различные приложения по типу HelloChinese, SuperChinese — они, конечно, классные, но стоят дофига денег. Без подписки они бесполезные. Лучше уж нанять репетитора за такие деньги. А если нет денег на репетитора, то можно достать старый добрый Anki. Я всегда ненавидел Anki за его неудобство, за кривой UX/UI, за долгое создание карточек и за слабое разнообразие. Поэтому я сразу понял, что с помощью Anki изучать мне будет сложно и неприятно. Поэтому было решено создавать своё приложение: без подписок, с интервальным изучением, с большим количеством тренировок и, конечно же, по большей части с офлайн-функциональностью. Было придумано название приложения — Abuchi.
Выбор технологий
Сам я Golang-разработчик, который перешёл с Java, поэтому изначально я думал выбрать обычный Kotlin. Однако из-за ненависти к Java/Kotlin всё же решил выбрать Flutter, так как мне там больше нравится синтаксис и в целом написание кода.
Начало разработки
Базовый минимум функциональностей, которые я планировал: тренировки произношения, тренировки написания, база всех иероглифов, интервальное повторение с помощью карточек.
Для тренировки произношения я решил использовать библиотеку Vosk, так как там есть легковесная модель под Android и в целом она работала лучше, чем тот же Whisper, если оценивать по характеристикам «размер-качество».
Для тренировки написания иероглифов я нашёл библиотеку makemeahanzi, где есть БД большого количества иероглифов и их написания. Также в БД даже есть уровень HSK для каждого иероглифа, что тоже полезно.
Для интервального повторения был придуман алгоритм, который я здесь описывать не буду, так как все уснут от скуки. Но в целом изучение также по карточкам, как и в Anki, но с более удобной системой их создания. Например, можно автоматически подтянуть картинки и аудио от носителей из Wikimedia по тексту. И в целом создание карточки в Anki занимает около трёх минут, а в моём приложении — 30 секунд.
Из-за того, что в Wikimedia аудио от носителей есть не для всех иероглифов, было решено добавить TTS. В целом TTS в телефонах для китайского хорош, там есть разные голоса и озвучка понятная, но многие тоны произносятся неправильно. Поэтому было решено добавить опциональные AI TTS-модели. Для этого я использовал sherpa_onnx библиотеку, и голоса, которые можно найти по ссылке.
Также для карточек нужно автоматическое распознавание пиньиня. К сожалению, для Flutter особо хороших библиотек нет. Они либо слишком устаревшие, либо плохо генерируют пиньинь. Поэтому пришлось портировать библиотеку с другого языка: pinyin-pro. Порт мой можно найти тут. Портировал я, к слову, с помощью Claude Sonnet 4.6.
Выход в прод
Бо́льший функционал я не описал, так как получится слишком большая статья, но если кого-то заинтересует приложение, то ниже я оставлю ссылки.
Если кому-то будет интересно, как я запускал своё приложение в различные магазины, то могу написать отдельную статью. Но вкратце: пришлось, как и всем, искать 12 тестировщиков и ждать 14 дней. Благо тут получилось легко.
Спасибо хоть RuStore позволяет запустить своё приложение в пару кликов. Жаль, что вообще непонятно, как приложение там продвигается и продвигается ли вообще.
Монетизация
Приложение абсолютно бесплатное, поэтому пришлось искать иные способы монетизации — рекламу. Из-за того, что я живу в стране под санкциями, монетизировать своё приложение с помощью AdMob никак не получилось. Пришлось искать альтернативы. Как оказалось, альтернатив особо и нет. Пришлось подключать Yandex Ads.
Приложение было монетизировано ещё во время закрытого тестирования. Тест был с 18 мая по 3 июня.
Много это или мало — я не знаю. Если у кого-то есть инфа по рекламе, пишите, сколько вы заработали с таким количеством показов.
В целом от идеи до продакшена прошло два месяца активной разработки. Для меня это новый опыт, так как я никогда подобным не занимался, и было интересно создать своё приложение с нуля и выложить в Google Play.Если моё приложение кого-то заинтересовало, то его можно скачать:
Google Play: https://play.google.com/store/apps/details?id=io.abuchi
RuStore: https://www.rustore.ru/catalog/app/io.abuchi
А также можете читать новости по приложению в Телеграм: https://t.me/io_abuchi.
ссылка на оригинал статьи https://habr.com/ru/articles/1045094/