[Dev Story] История создания приложения ClassicMemes

Нам пишет разработчик приложения ClassicMemes

Однажды вечером в процессе общения с друзьями в WhatsApp появилось желание сделать картинку мем в ключе разговора, со своим текстом. Делать на компьютере и отправлять на iPhone было слишком неудобно и долго. Выбор был очевиден. Необходимо приложение, и я отправился на его поиски в AppStore. Все, что удалось найти, были отдельные приложения для создания мемов вида «картинка + текст сверху и снизу», демотиваторов и мотиваторов. Интерфейс и юзабилити в найденных и опробованных приложениях не устроили, а еще хотелось, чтобы было все в одном. Ничего не оставалось, как сесть и написать самому, благо есть «прошка».

ClassicMemes

Скачиваю Xcode и приступаю

Большим минусом было то, что новенький Swift я и в глаза не видел, а опыт разработки в Xcode был на уровне «Hello, world». Но были и плюсы: достаточно много материала и видео по Swift и Xcode 6, а также наличие небольшого опыта разработки на Delphi и PHP.

Синтаксис Swift оказался очень дружелюбным, в отличие от Objective-C (хотя с ним были не очень продолжительные отношения). Принцип написания и изучения сводился к следующему: «сначала пишем приложение, а более детально изучать Swift будем позже», в связи с чем возникали ступорные ситуации, в которых я просто не знал, как реализовать данную функцию. В такие моменты на помощь приходил YouTube и stackoverflow.com. Оказалось, в рунете совсем мало информации по Xcode и Swift, а зарубежные ресурсы в этом плане более насыщенны.

Интерфейс приложения никак не разрабатывался — я просто доверился своей интуиции; представил, как должно выглядеть приложение, с которым было бы приятно и удобно работать мне. Любовь к минимализму также сыграла свою роль, а неопытность — к использованию того, что предлагает Apple в Xcode.

home

Демотиваторам и мотиваторам — быть!

Пускай они уже не так популярны, мне они были необходимы. Это мемы, на которых я вырос, от них исходит какое-то «ламповое» тепло. К дизайну черной и голубой рамки подход был серьезный. Было просмотрено множество ресурсов, а также история их возникновения. В итоге все рамки и соотношения сторон соответствуют классическим, первым демотиваторам и мотиваторам. Так, кстати, и возникло название, но и оно было не первым, однако об этом чуть позже…

motivator

«Другой мем» и планы на будущее

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

Новые варианты оформления и подписи для картинок появляются в Сети каждый день. Какие-то становятся популярными и задерживаются, какие-то нет. В планах — добавление новых типов конструктора популярных мемов. Уже в ближайшем будущем кнопка «Другие мемы» заменит сегодняшнюю «Другой мем».

other_memes

Галерея

Опубликовать созданный мем в социальной сети или мессенджере — самая важная функция приложения, ведь ради этого все и задумывалось; также хотелось добавить функцию сохранения мемов внутри приложения, чтобы иметь возможность обратиться к ним в любой момент и при необходимости поделиться. Так и появился раздел «Галерея», с простой системой сортировки по типу, возможностью детального просмотра, удалением ненужных и отправкой мемов в другие приложения.

gallery

Инструкция, первый шаг к «коммерческому» проекту

Когда приложение обрело первоначальный вид и я уже во всю отправлял из тестовой версии созданные мемы друзьям, появилась мысль: «в поисках подобного приложения, найди я среди них свое, заплатил бы я за него? конечно!». Так проект стал двигаться в сторону «коммерческого».

help_2

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

help_4

Шаблоны, второй шаг к «коммерческому» проекту

Мемы создаются, публикуются, сохраняются… Казалось все, можно продавать. Беспокоило только то, что одной детали все же не хватает — шаблонов. Популярных картинок, которые используют в мемах. Поскольку я и не представлял, как буду это реализовывать, я посчитал, что затрачу много времени, и планировал добавить это в крупное обновление.

templates_images

Время подходило к публикации, и я засомневался, оправдана ли цена приложения. Я бы купил и так, но, возможно, для многих цена станет важным моментом в принятии решения о покупке. Да и я к тому времени устал искать нужные картинки, сохранять в фотопленку и потом уже использовать для создания мема. В итоге я принялся к созданию функции добавления шаблонов.

Как оказалось, «не так страшен черт…», и первые шаблоны я тестировал уже через пару ночей разработки. После чего было отобрано и добавлено более 100 популярных картинок, используемых в мемах.

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

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

Название, третий шаг к «коммерческому» проекту

Изначально я не особо задумывался о названии, и было выбрано MyDMM — Мои Демотиваторы, Мотиваторы и другие Мемы. Для себя да, достаточно, но для AppStore название скудноватое. Долгое время в голову ничего лучше не приходило, пока не дошел к краткому описанию. Тут-то и сорвалось с языка это слово — «классический». App Store по запросу «ClassicMemes» ничего не выдал, а я вздохнул спокойно и приступил к изменению приложения и сайта.

Иконка — лицо приложения

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

logo_lite

App Store и iTunes Connect — публикация

Приложение готово, пора и миру показать. Было страшно, страшно от неизвестности. Как публиковать? Что заполнять? Как потом обновлять? и т. д. Но, как говорится, — «глаза боятся, а руки делают». По инструкциям в Сети создал сертификаты для обоих версий (платной и Lite-версии — бесплатная), а в iTunes Connect оказалось подробно расписано, что и куда, да еще и на русском. Ход действий также подсмотрел в роликах на YouTube. Добавил описание, скриншоты, заполнил все, что было необходимо, и вот столкнулся с вопросом: как свое приложение, собственно, загрузить? И снова отправляюсь «гуглить». Оказалось, ничего сложного — приложение отправляется в iTunes Connect в пару кликов, а уже там выбирается.

После отправки на проверку, как это обычно бывает, нашлись недочеты, и необходимо было заменить версию. Долго смотрел на кнопку «удалить версию, ожидающую проверки» и все же решился. Проверка слетела, и я уже заливал новую сборку. Без нюансов тоже не обошлось. Оказывается, каждый раз, когда мы отправляем новую сборку, необходимо повышать ее номер, иначе система ругается и не отправляет сборку в iTunes Connect.

Шишек набил много, но самая большая вышла, конечно же, с названием приложения. При выборе названия в iTunes Connect я почему-то решил, что это и будет мое название в App Store и в устройствах при установке, а как называется проект — неважно. Спустя 6 дней ожидания проверки я наткнулся на такой пункт, при котором могут отказать в публикации: «Пункт 3.4: Названия приложений в iTunes Connect и на самом устройстве должны быть одинаковыми, чтобы не вызывать замешательства». А что остается делать? Готовлю новые сборки и отправляю в iTunes Connect с расчетом, что мне откажут и я отправлю на проверку новую сборку, после чего меня рассмотрят в течение дня. Но к моему удивлению, проверку я прошел, и Lite-версия уже была в App Store, а платная перешла в состояние «Ожидание договора».

«Ожидание договора» также заставило понервничать и перелопатить половину Интернета. Ответы нашел, и уже через час платная версия появилась в App Store.

После того как приложения перешли в состояние «Готов к продаже», мои загруженные сборки с исправленным названием уже не подошли, пришлось делать сборки новой версии 1.1, и «снова ожидание проверки»…

version_1.1

Промокоды для читателей:

4WW6FERTHLYJ
3J4XA7M9NAFP
FWHHMX36FJ4R
LH79JEWEAKMR
37PML99MPXR4
EJ6KEH4NH4HY
X4JR4P4PK3H4
L3KXRJXE7KRP
M6JLAJ9MT9LF

Название: ClassicMemes
Издатель/разработчик: Sergey Leppyanen
Цена: 59 руб.
Встроенные покупки: Нет
Совместимость: Для iPhone
Ссылка: Установить
Lite-версия: Установить

Pages_
Если вам есть, чем поделиться с другими читателями нашего сайта, пишите на advert@appleinsider.ru и не забудьте указать свое имя или ник. Мы внимательно читаем входящие письма и публикуем ваши самые интересные истории.

Игры для iPhone и iPadОбзоры приложений для iOS и MacРазработка приложений для iOS