Яндекс.Метрика

    Реклама

    Pocket Lists. Чеклисты для iPhone



    В начале этого года я решил сделать небольшое iPhone-приложение для походов в магазин и сбора вещей в поездку — такое, в котором можно было бы создать несколько списков дел и была бы совместная работа через Bluetooth (удобно было бы ходить в магазин за покупками с женой). Приложение хотелось сделать бесплатным в качестве упражнения перед другим, более масштабным iPhone-приложением, которое тогда планировал делать.

    Однако, попробовав несколько десятков чеклист-приложений из App Store, я понял, что загромождать App Store еще одним приложением-упражнением бессмысленно и глупо. Почти все приложения, которые я пробовал, было мучительно тяжело использовать. Очень много халтуры и нелепых поделок. Такое ощущение, что все они сделаны в качестве упражнения. Стоящие приложения можно пересчитать по пальцам.

    Итак, я решил, что не нужно делать небольшое приложение, а нужно поменять приоритеты и выпустить настолько хорошее приложение, насколько смогу. Чтобы когда-нибудь стать App of the Week и побороться за разные награды вплоть до Apple Design Award. Задача поставлена понятно, но ее выполнение — выбор нужного функционала, дизайн, стремление к перфекционизму — оказалось мучительным.

    Пусть и не за два месяца, как хотелось изначально, а за десять, так получилось приложение для организации дел Pocket Lists, и я хотел бы представить его хабрасообществу.









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

    Функционал

    Помимо всего очевидного (дела, списки, напоминания, иерархия, повторения и пр.) мы сделали несколько необычных для туду-приложений фич, которые интересны с технической стороны:

    OCR. Создание чеклистов из фотографий



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

    Реализовано на основе бесплатного OCR-движка Tesseract. Адаптивную бинаризацию делаем с помощью OpenCV. Tesseract меня приятно удивил. На iPhone 4 качество распознавания довольно хорошее, оказалось даже лучше, чем изначально ожидал (пример).

    Совместная работа над заданиями через Wi-Fi/Bluetooth

    Работает на основе эппловского игрового движка Gamekit. Многократно проверено в полевых условиях при походах в «Перекресток» за покупками. Соединение разрывается, если отходишь друг от друга метров на тридцать, но если находишься рядом, то все работает стабильно.

    Разработка

    То, что мы не ограничимся Айфоном, было понятно сразу, поэтому приложение написано не на чистом Objective-C, а на скриптовом языке Lua. Посмотрим насколько это облегчит выпуск версии для других платформ. Пока пробовали компиллировать только для iOS.

    Приложение разработано командой из двух человек: дизайнер и постановщик задач (я) и разработчик ipv6. Общее время разработки до публикации в Апп Сторе составило 10 месяцев.

    Больше всего сложностей возникло, пожалуй, с синхронизациями с внешними сервисами (Google Tasks, Toodledo, Календарь) и возникающими при них сложностями: обработкой всяких «экзотических» случаев одновременных синхронизаций, утечкой памяти, таймзонами и пр.

    Утверждение в App Store

    Заняло 9 дней. Приложение висело в статусе Waiting For Review 8 дней, затем после одного часа проверки отказали в размещении, мотивируя отказ тем, что в манифесте приложения заявлено использование обмена файлами через iTunes (UIFileSharingEnabled), но в приложении оно не используется. На самом деле оно использовалось, просто команда проверяющих не нашли этой функции. Ответ в Resolution Center, еще один день — и приложение в Апп Сторе.

    Планы на будущее

    Сначала планируем еще внедрить несколько интересных фич в iPhone-версию, а затем выпустить синхронизацию через облако, версии для iPad, Android, Mac и для веба. В двух словах не описать, поэтому по такому случаю мы подготовили вот такую карту разработки:



    Промокоды

    APW9A66YKL7J
    RFYEJNYK6NEE
    6LEPTPRMYY6R
    EP3TNRNLTRH7
    6XAR7LEPRRL6
    XR3TJXNMYM7R
    P9PRT3Y9Y6L9
    HJWN9PNKNJXE
    3MHPKXR9TXF4
    3FNFJ9PWF47W

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

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

    Сайт приложения: http://www.pocketlistsapp.ru
    В Апп Сторе: http://itunes.apple.com/ru/app/pocket-lists/id482537116?ls=1&mt=8