Evernote, он же Обормот, как мы называли его в процессе разработки - это самый крутой мобильный проект, над которым приходилось работать. Как же о нем не рассказать-то?

У нас было три веб-странички, несколько BlackBerry и только что появившийся Android…

То самое, ага

Evernote пришел в Axmor уже имея бешеные тыщи пользователей. Версия под Android уже была сделана и вполне неплохо работала. Версия под BlackBerry состояла из пяти веб-страничек с кривоватой авторизацией. Это было больно, так что они очень хотели нативный клиент.

Парсинг HTML регулярками

Часть разметки заметок Android-приложение парсило омерзительными регулярками. Не то чтобы мы это потом не убрали (конечно убрали, это ад и израиль биться с навеской регулярок на SAX-parser), но в начале проекта, прикинув, сколько времени потребуется, чтобы без проблем переписать эти куски, я понял, что переписывать (как и всегда) не вариант.

И за неделю портанул java.regexp из OpenJDK целиком. Неделю я вырезал дженерики из кода, выкашивал JNI из нутра очередной сортировки и протчая, и протчая и протчая. В пятницу в 9 вечера я запустил в симмуляторе одну из регулярок и она заработала с первого раза. Все остальное заработало еще через неделю.

Ничеси

Бонусом я получил почти нормальные коллекции и еще до черта полезного джавого фарша, который потом использовал. После этого мне всегда было смешно слышать на собеседованиях запросы типа “напиши вот такую сортировку” - пацаны, сугубо вряд ли вы когда-либо напишете ее лучше, чем она уже сделана в той же JDK.

Нельзя так просто взять и загрузить заметку

И загрузить

Про веселье с сетью на BlackBerry я уже писал тут. Но в случае Evernote юзер мог еще и создать заметку, которая одна, без всяких там рисунков, занимала метров двадцать, если не больше. Стандартный HttpConnection на Blackberry делать flush() больше одного раза не умел, так что тут мы еще и написал свой HTTP over Socket, потратив недели две на отладку флагов сокета, которые работали вопреки любой логике ровно в одном сочетании.

И отобразить тоже нельзя

После того, как прил стал бодро грузить здоровенные заметки, мы выяснили, что браузер радостно падает при попытке отобразить здоровенный HTML. Бились долго, перепробовали едва ли не все, что только было можно. В итоге показывали “Грузи на вебке, тут не получится”.

Трудности перевода

В первый раз в жизни я столкнулся с таким акцентом на стороне заказчика, который понять мог раза с третьего и то если повезет. Главный по QA был китайцем, и разговаривал так, что уши в трубочку сворачивались даже у тех, кто слышал сотни разных акцентов за время работы. Через пару месяцев мы с Соло научились понимать его почти с первого раза.

Девочка из далекой Латинской Америки

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

Прекрасные сотовые операторы

Про зоопарк BIS-BES-MDS я уже писал, но хуже всего дела обстояли именно в Латинской Америке. Казалось, что на самом деле наркотрафик просто шел через админов этих серверов и они регулярно употребляли что-то настолько забористое, что сложно было даже предположить - что именно.

Бессмысленный и беспощадный саппорт

Бооооооооооль

На саппорт я серьезно попал где-то на втором году работы. Прил был в основном сделан и мы упали в трясину багфикса. Благо заказчик уже тогда использовал нормальный трекер и можно было закрывать тикеты сотнями при сдаче очередной версии, что я и делал. Именно тогда я по сути в первый раз понял, что это такое - активная база юзеров, которая за что-то платит.

Meego Harmattan

Когда на Хабре объявили конкурс Nokia Portfolio Challenge, я работал над Evernote уже третий год. Так что мое письмо по поводу клиента для заметок было практически беспроигрышным. Круче того - я это дело согласовал с HQ, они дали добро, бо платформу поддерживать не собирались и я получил месячный проект с оплатой в 10 килобаксов. Как потом я периодически говорил в лицо некоторым фаундерам, “не каждый стартап получает столько за всю свою недолгую жизнь”, и это было правдой.

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

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

Еееее

Единственное, что осталось у меня от этого звездного получаса - это Nokia N950, который бесплатно выдавали разработчикам. Вот он кстати:

Nokia N950

На EverN9 я тогда поднял порядка 100 баксов, потому что особо и не стремился. При этом платная версия была полностью идентична обычной за исключением иконки - на платной была звездочка, мол, поддержал, на тебе ачивку.

Вскоре умер Meego Harmattan, так что сорцы я выкинул в открытый доступ. С их помощью понаделали еще чутка клиентов, докинув редактирование заметок.

Последний привет от Meego

Последний привет от Meego долетел до меня на конференции в Польше. Это была первая конфа, на которую я приехал от JetBrains, будучи уверенным, что я-то вообще все знаю. На деле я сунулся на speaker dinner, где меня аккуратно бортанули от спикеров орги, мягко объяснив, что бабки плати, а разговаривать тут с тобой никому особо не надо.

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

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

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

В процессе совместного занудства выяснилось, что он был инженером Nokia из команды, проектировавшей корпуса. И вот тут он упоенно часа два рассказывал мне, как они проверяли акустику, как засчет корпуса выжимали практически невозможное из относительно простых микрофонов, яростно материл Элопа, который все totally fucked up и вещал, вещал, вещал. Я едва не всплакнул - настолько это было интересно. И я ему верил - мой N950 записывал аудио так, что мы запросто писали им концерты с крайне неплохим качеством.

Аврораось

Я до последнего надеялся, что из Meego Harmattan вырастят что-то разумное, доброе и вечное. В итоге получилась поделка для частных компаний, ну и Аврораось конечно. И мне до сих пор жаль, что все так закончилось.