Как я создала прибыльное Android приложение по распознаванию текста
Всем привет. В прошлой статье я рассказывала, как заработать свои первые 100$ в Google Play Market. В этой статье я больше расскажу о разработке и управлении проектом.
Предмет статьи — Android приложение по распознаванию текста, которое в маркете 4 месяца и имеет почти 10 000 инсталлов, монетизируется посредством платных подписок, покупок в приложении и рекламы.
Приложение умеет распознавать текст (Google Vision OCR API), переводить распознанное (Bing Translate API), формировать Searchable PDF, хранить историю в Cloud.
Немного про распознавание, выбор API
Идея создать свое Android приложение по распознаванию текста возникла давно. Тематика была выбрана случайно. Я хотела содать OCR приложение на скорую руку, потому что уже имела готовый OCR функционал на базе Tesseract. Ранее на Хабре я писала, как создать простое OCR приложение на базе Tesseract. В то время мне казалось, что работа выполнена чуть ли не на половину, что стоит лишь быстро накатить красивую морду — и в продакшин! О, как я ошибалась.
В процессе работы стало понятно, что выполнять OCR на андроид устройстве — плохая идея, производительность устройства низкая, приходится долго ждать результат. Кроме этого Tesseract OCR модуль занимает много места на диске (17 МБ), и это только Light версия с минимальным словарем английского языка. Я приняла решение создать backend часть, и вынести туда OCR модуль. Качество распознавания увеличилось на 20–30% благодаря тому, что словари стали полнее, а так же появилась возможность использовать версию Tesseract посвежее (Java wrapper для Tesseract обновляется чаще, чем Android wrapper).
Но все равно качество распознавания было так сказать оупенсорсное:), что и следовало ожидать от оупенсорс библиотеки. Тогда один случайный знакомый с GitHub предложил мне затестить Google Vision OCR API. Библиотека не бесплатная, но у меня появилась психологическая готовность платить за API. Google Vision дал намного более точный результат и это именно то, что я сейчас использую. В месяц я плачу около 20 долларов за использование только этого API.
Google предлагает хорошую библиотеку и для переводов текста, но она показалась мне дорогой — перевод тянул в 2–3 раза больше денег, чем распознавание, и с целью экономии я перешла на Bing Translate API от Microsoft. Качество не упало, но в рекламе уже не могу кричать про 100+ языках для перевода, их тут всего 64. Бесплатных хороших API по переводу вроде нет.
Все остальные сервисы, которые я использую, гугловые. Google App Engine для хостинга приложения, Google Database, Google Storage для хранения данных.
Мне удобно использовать готовые решения — я работаю одна и времени на разработку мало (я молодая мама).
Немного про дизайн, управление командой
Разработку вела в одиночку, но привлекала дизайнера и Junior Android разработчика натянуть новый дизайн.
Хочу немного написать про поиск дизайнера. Дизайн приложения, иконки, промографика мне обошлись в 55 долларов. Я полагаю, это очень дешево и цена более чем соответствует качеству. Дизайнера нашла на русском фриланс сайте. У дизайнеров, которые берут мало есть общая особенность — они работают хорошо, только когда тз подробно расписано, вплоть до того, какой формы будет каждая кнопка и какой RGB код цвета этой кнопки. Это значит, что вам надо быть креативным директором и тратить свое время на подробное тз.
Junior Android девелопера нашла на Upwork. Просто хотела получить опыт работы со стороны заказчика. Дала ему простое задание — натянуть дизайн. Заплатила 70 долларов. Конечно, интереснее было бы нанять Senior dev-a, поручить оценить архитектуру приложения, научиться у него чему-то, но не рискнула много тратить денег.
Хочу отметить, что привлечение в проект других людей позволяет вам лучше контролировать проект. Когда вы планируете для других, ставить сроки — вы планируете и для себя, и вы вашу часть работы начинаете делать быстрее и осознаннее.
Немного про распространение
Когда приложение вышло в Play Market, я запустила рекламу на AdWords, привлекая пользователей со всех стран мира. Наибольшая часть пользователей пришла из Индии (15% от общего числа). При этом люди из этих стран ни разу не купили подписку. Они много раз оформляли подписку, но в течении 7 бесплатных пробных дней отменяли ее, что бы избежать платежей. Кроме этого их клики по рекламе ни стояли почти ничего. Обслуживать таких пользователей оказалось не выгодно, ведь мне платить за API и я решила удалить приложение из стран, которые не входят в топ 30 по ВВП на душу населения, при этом Россию и Украину решила оставить.
Надеюсь мой опыт был полезен. Если вы занимаетесь похожими проектами или просто хотите обменяться опытом — пишите или добавляйтесь в linkedin.