Новости и события » Hi-Tech » «Отойдите, я все сделаю сам»

«Отойдите, я все сделаю сам»

«Отойдите, я все сделаю сам»

Дизайнер компании «Злые марсиане» Антон Ловчиков рассказал 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 и в онлайне чиним баги, анализируем обратную связь и пишем новые функции.

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

«Отойдите, я все сделаю сам»

«Отойдите, я все сделаю сам»

«Отойдите, я все сделаю сам»

«Отойдите, я все сделаю сам»

«Отойдите, я все сделаю сам»

«Отойдите, я все сделаю сам»

«Отойдите, я все сделаю сам»


Под Днепром мошенники незаконно добывали руду и отправляли...

Под Днепром мошенники незаконно добывали руду и отправляли за границу (фото)

В Днепропетровской области разоблачили предприятие, которое незаконно добывало железную руду. Об этом передает "112-Украина". Правоохранители выяснили, что частное акционерное общество занималось добычей железной руды. Конечным подробнее ...

загрузка...

 

Вверх