«Отойдите, я всё сделаю сам» — Дизайнер «Злых марсиан» рассказал, как разрабатывал приложение для запоминания информации

Понедельник, 1 августа 2016 г.

Следите за нами в ВКонтакте, Facebook'e и Twitter'e



Дизайнер компании «Злые марсиане» Антон Ловчиков рассказал vc.ru, как придумал приложение «Ремемба», чтобы облегчить себе запоминание иностранных слов, потратил на его разработку полмиллиона рублей и научился программировать.

«Ремемба» — это личный проект, который я развиваю в свободное время с 2012 года. Задача «Ремембы» — помогать запоминать информацию: слова из иностранных языков, заумные термины родного языка, билеты по физике, что угодно.


Я начинал делать проект в первую очередь для себя: у меня очень плохая память. Читая книги на иностранном языке, я встречаю новые слова и смотрю их значение в словаре. Читаю дальше, переворачиваю страницу — и уже не помню перевод. Приходится постоянно сверяться со словарём. Время идёт, а удовольствия от чтения никакого. Исследование

Однажды я узнал про метод пополнения словарного запаса под названием Golden list. Каждую неделю нужно брать расчерченный листок и заносить в него 25 новых слов. Через две недели надо найти этот листок, проверить, какие слова выпали из памяти, и записать их во вторую колонку. Ещё через две недели повторить операцию и перенести забытые слова в третью колонку, и так далее.

Метод показался мне интересной, потому что в нем постоянно контактируешь с новыми словами —, но сразу не понравились необходимость вручную переносить забытые слова и какой-то странный, будто взятый с потолка, период в две недели. Я подозревал, что периоды должны быть прогрессирующими: вначале видишь карточку часто, со временем — всё реже и реже.

Начал изучать другие методики: оказалось, что их довольно много. В основном они строятся на идее лотков, по которым раскидываются карточки: при добавлении карточка попадает в первый лоток; при изучении переходит по второй, третий и так далее; если карточку забыть, то она возвращается на n шагов назад. Каждый лоток определяет, через какое время карточку надо повторить.

Дальше я изучил рынок подобных приложений. По запросу Flash cards App Store выдал великое множество приложений — но, конечно, ни одно из них мне не понравилось. И интерфейс слишком запутанный, и идея лотков реализована так себе, и добавление карточек неудобное.

Проанализировав свои потребности и существующие приложения, я сформулировал список особенностей, которые должны быть у моего:

Офлайн-режим. Приложение должно заполнять свободное время: в пробках, в очередях, на скучных лекциях и так далее.
Приложение-инструмент. Основным способом появления карточек должен быть ручной ввод. Я пользовался массой сервисов, которые возятся с тобой, как с ребёнком: составь слово из кубиков, выбери правильный перевод из четырёх. Все эти сервисы мне не подходили, потому что предлагали учить ненужные мне слова. А я Тафти читаю и хочу запомнить конкретную фразу.
Фразоориентированность. Учить отдельные слова очень непродуктивно. К тому же мозг запоминает и воспроизводит во время речи не отдельные слова, а их связки, куски фраз — это я вычитал в каком-то исследовании. Но очень многие сервисы зациклены на словах. А что толку от слова, особенно от глагола, если не знаешь, с каким управлением оно употребляется.
Мультиязычность. Приложение не должно быть привязано к определённому языку.
Адаптивность. У всех разная скорость запоминания, поэтому интервалы должны подстраиваться под человека, желательно с использованием машинного обучения.
Нормальный дизайн. На самом деле этот пункт шёл одним из первых: я же дизайнер.

Рисуй, ведь ничего другого ты не умеешь

Первые наброски сделал за один вечер. На следующий вечер они мне уже не нравились, и я всё переделал.

Первые наброски приложения для iPhone

Конечно, дизайнерская мысль, оседлав графический редактор, улетает в небеса, поэтому я нарисовал макетов 50 и замахнулся на функциональность, которая не реализована до сих пор. Затем начались долгие поиски разработчика, который бы помог собрать приложение. А будет ли оно вообще работать

Пока искал разработчика, решил не тормозить процесс — запустить минимально работающую версию в виде веб-приложения и протестировать механику.

Перерисовал дизайн под веб, выбросив всё, кроме добавления карточек и изучения. Знакомые веб-разработчики довольно быстро собрали прототип и приватно развернули его на моём сайте, и я начал тестировать механику.

Первая версия веб-приложения

Новые слова и выражения действительно стали запоминаться. Я тренировал свой английский, который к тому моменту был на уровне общения во время туристических поездок: костяк грамматики я знал, но словарный запас был на довольно примитивном уровне.

Чтобы проверить, как «Ремемба» поможет с нуля пополнять словарный запас, я начал изучать новый язык. Где-то за год использования приложения и листания самоучителя я смог на разговорном уровне освоить датский и набил словарный запас около 2000 слов (правда, считались уникальные словоформы, а не лексемы). Это доказало мне, что механика приложения работает и может приносить пользу. Отойдите, я всё сделаю сам

Мне периодически писали подписчики в Twitter с просьбой дать им доступ к приложению. Так как изначально сервис проектировался для одного человека, приходилось дёргать программистов и добавлять новых пользователей вручную. Шлифовка логики и развитие функциональности отнимали у ребят много почти не оплачиваемого времени, поэтому я решил продолжить развивать сервис самостоятельно.

Первым делом сформировал список функций, о которых просили мои первые пользователи. Эти изменения повлекли за собой небольшие доработки интерфейса —, а где небольшие доработки, там и редизайн:

Вторая версия веб-приложения

У меня были кое-какие навыки вёрстки и JavaScript, а написанию серверной части пришлось учиться с нуля. Я обратился к знакомому программисту. Сам он использовал Zend Framework — его же посоветовал и мне. Показал и объяснил, что там к чему, и потихоньку я написал серверную часть.

Вторая версия веб-приложения просуществовала больше года. На ней я отточил механику и понял, как всё должно работать. Третья версия приложения, команда, планы

Наконец я нашёл iOS-разработчика и занялся обратным портированием дизайна на iPhone, так как макеты, нарисованные в начале 2012 года, устарели функционально и эстетически.

Вторая версия дизайна приложения для iPhone

С разработчиком мы договорились на формат, при котором я выкупал 50% его рабочего времени и платил за это $1000 каждый месяц. Это был 2013 год, я работал на московскую компанию, а сам жил в Воронеже. Схема казалось выгодной.

Пока шла разработка приложения, я задумался о развитии продукта. Понял, что не смогу самостоятельно поддерживать веб-версию и мне нужны помощники. Обратился к знакомому верстальщику, который переверстал всё нормально; тот привёл фронтэндера, который переписал весь фронтовый JavaScipt. В Twitter я нашёл бэкендера, который навёл порядок на сервере. Всем им я платил сдельно за оговоренные заранее куски работы. Каждый месяц на оплату моих экспериментов уходило где-то 40 тысяч рублей.

Освободившееся время я потратил на очередное ревью стиля веб-приложения и приведение в порядок интерфейса. Кроме веба и мобильного приложения, я решил сделать расширение для браузера. В расширении, которое полностью повторяет функциональность веба, смысла мало. Расширение должно помогать вебу в том, что у того получается плохо, а плохо у веб-приложения получается добавлять карточки.

Встретив где-то незнакомое слово, приходится идти во вкладку с открытым словарём, смотреть перевод, затем идти во вкладку с «Ремембой», нажимать плюсик, вписывать изучаемое слово, возвращаться во вкладку со словарём, копировать перевод, снова идти во вкладку с «Ремембой». После этого легко забыть, что ты вообще делал.

Расширение должно было облегчить этот процесс. Плюс расширения в том, что оно живёт на любой вкладке браузера, поэтому форма для добавления карточки может открываться прямо поверх словаря или читаемого текста при нажатии на «горячую клавишу»:

Расширение для Google Chrome

Нашёл специалиста по расширениям, мы быстро его сделали и протестировали вживую. Добавлять карточки стало действительно удобнее. Расширение сейчас доступно в магазине Chrome.

Какая платформа осталась неохваченной? Десктоп. Копировать веб-приложение и переносить его на десктоп тоже не имеет смысла. На десктопе люди работают, общаются в соцсетях, смотрят видео и так далее. Приложение, требующее мозговых усилий, не может конкурировать с котиками, — оно должно аккуратно вписаться в повседневное поведение человека. Для этого пусть оно будет висеть в трее и раз в пять минут в правом вернем углу экрана показывает карточку, которую надо выучить. Двенадцать карточек в час, восемь часов в день — итого 96 выученных карточек без отрыва от повседневных задач.

Приложение для Mac

Нашёл разработчика под Mac, за пару недель сделали приложение, я протестировал механику, но дальше развивать это направление не стал.

В лучшие времена над проектом со мной работало шесть человек. 2014 год, кризис, $12 тысяч

В 2014 году начался кризис, я уволился с работы и занялся фрилансом, iOS-разработчик поднял ценник, деньги закончились, и мне пришлось заморозить разработку.

По итогу годовой работы я потратил на разработку для iPhone $12 тысяч и получил наполовину готовое приложение, которое в целом работало, но было слишком нестабильно для публикации. Мне удалось попробовать офлайн-изучение в деле и получить ощутимые результаты. Судя по онлайн-тесту словарного запаса, за полтора года я поднял свой словарный запас английского примерно с 4000 слов до 8500.

Из-за нехватки денег и вялого развития проекта ребята, которые помогали мне с вебом и расширением, постепенно покинули команду. Остался только серверный программист, с которым мы работаем до сих пор.

Всего на этот проект я потратил 568 тысяч рублей, не считая хостинга и оплаты сертификата iOS-разработчика. 2015 год, выход из кризиса, программирование

Весь 2014 год я искал того, кто помог бы мне закончить приложение, но никого найти не удалось. Ребята, с которыми я общался, выставляли ценник в 800 тысяч рублей и выше.

Единственное решение, которое я видел, — закончить приложение самому. Для этого в декабре 2014 года я открыл Xcode (среда для написания приложений для iOS) и начал её изучать. Но я же всё ещё дизайнер, поэтому перед этим обновил дизайн:

Третья версия приложения для iPhone, которая сейчас в App Store

Изучать программирование под iPhone было одновременно и сложно, и просто. Сложно — потому, что выражение «объектно-ориентированное программирование» пугало меня непонятностью, и потому, что знание HTML и JavaScript совершенно не помогало при изучении Objective-C. Я выбрал этот язык, так как Swift на тот момент был ещё молод, да и на Stack Overflow проще было найти примеры кода, написанные на Objective-C. Ну, а просто было благодаря отличному гайду для новичков от Apple. Сейчас этого гайда больше нет, но зато есть ещё лучше по Swift.

Первые недели я приходил с работы домой, всё забывал и садился изучать этот новый волшебный мир. Моё настроение менялось по несколько раз за вечер, как у беременной женщины: от ликования из-за реализации ScrollView до глубокой депрессии из-за непонимания концепции делегирования. Первые попытки что-то написать были похожи на прогулку по лабиринту Минотавра: два часа что-то пишешь и не знаешь, сможешь в итоге реализовать, что задумал, или выбранный путь изначально неверен.

Я кодил каждый вечер по два-три часа, по выходным дома или в парке, когда жене всё-таки удавалось меня вытащить на улицу, в аэроэкспрессах, самолётах и даже на работе во время обеденного перерыва. В какие-то моменты даже задумывался о смене профессии — такое удовольствие я получал от программирования.

В Skype у меня было три знакомых iOS-программиста, которые, как мне кажется, меня возненавидели. Им я задавал вопросы, ответы на которые не мог найти на Stack Overflow. Иногда задавал всем троим один и тот же вопрос, чтобы поскорее получить ответ и двигаться дальше.

Сложнее всего было разобраться со взаимодействием объектов друг с другом, понять, как работать с сетью и локальной базой данных и как устроены встроенные покупки. Пытаясь понять, как работает протокол делегирования, я делал к нему около десяти подходов, смотрел курсы Стэнфорда и видео с WWDC.

В конце 2015 года первая сборка приложения ушла на проверку в Apple. Приложение вернули из-за неправильной работы встроенных покупок. Ещё месяц понадобился на переделку, затем ожидание нового ревью — и 27 февраля приложение было опубликовано. Что получилось

Сейчас в App Store лежит версия 1.2 и готовится к выпуску 1.3. Я реализовал все пункты (кроме машинного обучения), которые наметил в самом начале.

Приложение собирает огромное количество статистики об интерфейсном поведении пользователей: какой экран открыли, на какую кнопку нажали, что произошло дальше. При изучении каждой карточки я сохраняю историю из 15 параметров:

время вспоминания перевода (как долго человек смотрел на карточку, перед тем как выучить);
длительность сессии (физическое утомление);
количество карточек, ожидающих изучения (психологическое утомление) и другие параметры.

Как только пользователей будет больше, я надеюсь обнаружить интересные закономерности и оптимизировать интервалы изучения.

Посещаемость приложения и доходы очень низкие. С момента запуска приложение было установлено на 563 устройства, заработано на нём $30. Это, в общем-то, логично, ведь я делал приложение, опираясь на свои потребности. Только сейчас я начинаю получать обратную связь от платящих пользователей и учитывать их пожелания. Работа над ошибками

Комбинация «Делаю приложение для себя и плачу за разработку» означает 100% убытки. Вероятность попасть в потребности рынка и вернуть инвестиции ничтожна. Но я по-прежнему верю, что если делаешь качественный инструмент, которым сам пользуешься каждый день, то найдутся люди, которые увидят в нём пользу.

Только теперь я не плачу за разработку. Приложение развиваю сам, серверной частью занимается партнёр-программист. Проектом мы занимаемся в свободное от основной работы время. Чтобы не терять тонус, каждый вторник вечером созваниваемся в Skype и в онлайне чиним баги, анализируем обратную связь и пишем новые функции.

Создавайте полезные приложения, не повторяйте мои ошибки и будьте счастливы.

Следите за нами в ВКонтакте, Facebook'e и Twitter'e


Просмотров: 958
Рубрика: Hi-Tech
(CY)

Архив новостей / Экспорт новостей

Ещё новости по теме:

RosInvest.Com не несет ответственности за опубликованные материалы и комментарии пользователей. Возрастной цензор 16+.

Ответственность за высказанные, размещённую информацию и оценки, в рамках проекта RosInvest.Com, лежит полностью на лицах опубликовавших эти материалы. Использование материалов, допускается со ссылкой на сайт RosInvest.Com.

Архивы новостей за: 2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003