Как стать автором
Обновить

iMakeCard. История разработки новогодней программы

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

Так и родилась идея создания приложения “iMakeCard”. В нем можно выбрать любую понравившуюся открытку и пожелание для получателя, а затем отправить по e-mail, либо разместить на странице в Facebook или в Твиттере.


Идея


Ориентировка была выбрана на американский рынок, соответственно “iMakeCard” стал англоязычным. Конечно, мы понимали, что подобных программ в App Store есть немало и главным заданием было найти ту “изюминку”, которая станет нашей отличительной чертой. Таких “изюминок” нашлось много, но так, как времени на разработку был всего 1 месяц и хотелось до праздников разместить приложение в App Store, мы выбрали наиболее полезные и интересные из них, а главное – такого ни один из конкурентов не предлагал.

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

Во-вторых, подборка готовых поздравлений с Новым годом и Рождеством. Данное новшество позволяет без особого труда найти понравившееся пожелание буквально за несколько секунд, что избавляет от длительного выдумывания замысловатых фраз, или от шаблонных текстов. Наличие в базе около тридцати поздравлений дает возможность подобрать нужные слова для любого родственника, друга, или коллеги. Если все же у пользователя появится желание написать что-то от своего имени – в “iMakeCard” предусмотрена опция набора текста вручную.

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

Дизайн


Дизайн придумали сами, собравшись вечером после работы в одной из пиццерий. Как говорила моя бывшая начальница: “Дизайн разработан профессиональными программистами”. Решили оформить все под дерево. Вот примеры того, как это все выглядело на бумаге:


Художника для открыток и дизайнера интерфейса, который должен был выдать красивую картинку из наших каракуль, нашли на фрилансе. Вот так преобразились наши рисунки:




Все это сопровождается красивыми анимациями.

Разработка


Особых проблем с разработкой у нас не возникло, в команде 3 опытных iOS разработчика, а я писал на Objective-C еще до выхода первого айфона. Вся разработка программной части заняла около 2-х недель в свободное время. Больше всего времени ушло на разработку красивого интерфейса. Мы всегда отказывались от сторонних библиотек и решили написать все сами, исключением стал фреймворк для шаринга в соцсети.

Одним из сложнейших заданий оказался импорт в gif, стандартные методы позволяют сохранить gif файл, но он получался гигантских размеров, пришлось написать сохранение самим. Дело в том, что стандартный CGImageDestination не умеет сохранять разницу между кадрами, а сохраняет каждый кдр полностью. Кроме того, для завершения создания анимации он выделяет очень большое количество памяти, иногда программа даже падала на этом месте. Попробовали использовать библиотеку ImageMagic, но это оказалось зря потраченным временем — сохранение занимало до 2-х минут.

Второй задачей было загрузить анимацию в твиттер, а он этого не позволяет. Был выбран сторонний сервис — twitpic. Но тут тоже все оказалось не просто, после аплоада на последнем кадре были заметны жуткие артефакты. Письмо в саппорт, ответ, но проблема так и не решилась. Случайно заметили, что если пройти по ссылке full для загруженного файла, то там все работало как часы.

Программа разрабатывалась без использования ARC. Эффект coverflow был реализован наследником UIScrollView, для отражения создается дополнительный леер, которому ставится CATransfrom3D со скейлом -1 по оси Y. History так же реализована на основе UIScrollView из интересного тут механизм повторного использования ячеек как в UITableView и погрузка картинок в отдельном потоке. Все анимации интерфейса, такие как перелет картинки в конверт или вылет из History реализованы на стандартном механизме UIView animations.

Продажи


Теперь немного о плохом. После успешной регистрации iMakeCard в App Store был создан сайт с кратким описанием программы и возможностью обратиться с предложениями и пожеланиями в службу поддержки. Чуть позже сняли ролик и разместили его на Youtube.



Уже 13-го декабря программа была доступна в AppStore. Сразу занялись продвижением, были куплены твиты у популярных сайтов, заказаны обзоры. Но это не принесло больших успехов:



Последние два дня программа распространяется бесплатно, собираемся так и распространять ее дальше.

Будем рады услышать ваши отзывы, вопросы и комментарии!
iMakeCard: itunes.apple.com/app/id486368622
Теги:
Хабы:
Всего голосов 11: ↑8 и ↓3+5
Комментарии10

Публикации

Истории

Работа

iOS разработчик
27 вакансий
Swift разработчик
37 вакансий

Ближайшие события

19 августа – 20 октября
RuCode.Финал. Чемпионат по алгоритмическому программированию и ИИ
МоскваНижний НовгородЕкатеринбургСтавропольНовосибрискКалининградПермьВладивостокЧитаКраснорскТомскИжевскПетрозаводскКазаньКурскТюменьВолгоградУфаМурманскБишкекСочиУльяновскСаратовИркутскДолгопрудныйОнлайн
24 – 25 октября
One Day Offer для AQA Engineer и Developers
Онлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
26 октября
ProIT Network Fest
Санкт-Петербург
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань