Все началось с того, что в августе прошлого года мы с моим партнером по бизнесу решили, что нужно искать альтернативу работе с белорусскими компаниями и решили осваивать нелегкую, но интересную стезю iOS разработчиков.
Практический опыт, полученный на основе собственных проб и ошибок я постарался выразить в нескольких простых советах, которые, возможно, пригладятся начинающим разработчикам.
Изначально, мы решили сконцентрировать свои усилия на развивающих приложениях для детей, но в процессе поиска интересного материала в национальной библиотеке мне на глаза попалась книга «Наследие Беларуси» и эта случайная встреча изменила все наши планы.
Прежде всего, хочу сказать, что «Наследие Беларуси» — это огромный подарочный фолиант, который, как я выяснил позднее, кроме всего прочего – самая продаваемая книга в Беларуси последние несколько лет. Лично меня, прежде всего, поразило то, что большая часть представленных в ней исторических объектов и фотографий к ним для меня оказались совершенно незнакомыми, при том, что я всегда считал, что неплохо знаю историю нашей, в общем небольшой страны.
Такой богатый иллюстративный материал прямо просился воплотиться в виде Ipad приложения и было принято решение, что именно эта книга станет нашем первым продуктом в AppStore. Сразу оговорюсь, что я прекрасно понимал изначально, что блестящей коммерческой перспективы у проекта нет, но желание сделать что-то, что сможет достойно представить Беларусь в мире преобладало над желанием заработать легких денег.
Конечно, предварительные оценки в два месяца на разработку оказались ОЧЕНЬ далеки от реальности. Вначале казалось, что главное – это добыть оригинальные материалы и полдела сделано. На самом деле все оказалось не так просто. Поэтому, обо всем по порядку.
Разработка:
Самая главная ошибка, которую мы сделали на этапе проектирования – недостаточно изучили рынок на предмет наличия уже готовых решений поставленной задачи. Только через два месяца после начала работ я прочел о том, что у Adobe есть готовое решение для издания, в первую очередь, журналов для iOS в рамках Adobe Digital Publishing Suite. К тому времени мы уже написали «с нуля» почти весь движок, который внешне оказался очень похож на решение от Adobe. То есть, фактически, изобрели велосипед. В дальнейшем, решая различные технические проблемы, например, с утечками памяти, мы не раз вспоминали этот наш неверный выбор.
1. Поэтому первый совет, который мы хотим дать коллегам – начинающим разработчикам: Прежде чем начинать разработку чего-либо – внимательно по-гуглите! Вполне вероятно, что где-то рядом уже есть готовое решение.
Более того, есть биржи готовых решений и кода для самых разных задач, от части меню, до полноценного приложения, например, Chupa Mobile.
Вторая наша ошибка может показаться не такой принципиальной, но нам она кажется довольно важной. Выбирая название для приложения мы хотели найти вариант достаточно короткий, но в тоже время в полной мере отражающий суть приложения. В итоге остановились на названии, BelarusLand, созвучном с DisneyLand. Нам показалось, что оно будет создавать ассоциацию с чем-то интересным, таинственным, увлекательным. Это название устраивало всех участников проекта ровно до тех пор, пока на встрече издателей в Стокгольме я не рассказал о нашем проекте бывшему послу Швеции в Беларуси, который, будучи фактически носителем английского языка, был очень удивлен непонятным, с его точки зрения, выбором. «Так не говорят», -буквально заметил он.
Но, «коней на переправе не меняют» — поэтому, англоязычное название проекта мы сохранили и наш второй совет:
2. Очень тщательно выбирайте английское название проекта и тестируйте его на реальных носителях языка. Просто перевода не достаточно.
Найти авторов оригинальной книги удалось довольно быстро при помощи Facebook. Более того, нашлись даже общие друзья, и довольно быстро удалось заключить лицензионное соглашение по которому нам передавались оригинальные материалы в обмен на долю с продаж.
Казалось бы, дальше все должно было быть проще простого – но на самом деле пришлось решать ряд конкретных проблем:
- Структура оригинальной книги оказалось довольно хаотичной, фотографии и сопроводительные тексты не имели единого стандарта. Пришлось менять структуру повествования, выделять новые ключевые объекты для описания;
- С выхода в свет первого издания прошло больше 9 лет, многие объекты реставрировались, нужно было проверить все материалы и дополнить актуальным фотоматериалом.
- Так как приложение должно было хорошо выглядеть и на Retina и на обычных экранах, пришлось повозиться с оптимизацией изображения.
- Ну и самая главная проблема – абсолютное отсутствие опыта.
Кстати говоря, именно отсутствие опыта, по понятным причинам сильно затянуло работу над проектом. Больше 400 фотографий в подходящем для Retina разрешении создавали серьезную проблему при работе с памятью. То, что отлично работало на симуляторе, почти сразу вылетало на реальном iPad 2.
После небольшой доработки, приложение держало в памяти одновременно только 5 мест – текущее и по два слева и справа от него. При переходе с одного места на другое выгружалось то место, которое ушло дальше, и подгружал то, что стало ближе. На iPad 2 это работало вполне себе прилично. Были заметны небольшие «тормоза», если информации в подгружаемом месте было больше обычного, но в целом неудобств это не доставляло.
После этого мы перешли к тестам на iPad Retina. Это была катастрофа, «тормоза» были ужасные, некоторые места загружались почти секунду. Для нас это было абсолютно не приемлемо.
Первое предложенное решение было таким: мы начали запускать загрузку и выгрузку информации в фоновом потоке. Визуально тормоза пропали, но приложение, особенно на iPad Retina начало часто вылетать. Количество Memoryleaks исчислялось сотнями, количество утекшей памяти – мегабайтами.
Умные люди позже подсказали, что
3. «Никогда и ни за что нельзя работать с UI не из главного потока приложения.»
Сейчас процесс работы c изображениями происходит так: в памяти хранятся 3 места – текущее и по одному слева и справа от него. В каждом месте хранится 5 страниц – текущая и по две сверху и снизу от нее. Вся информация, за исключением фотографий, создается во время перехода между страницами, а фотографии ставятся в очередь на загрузку. Загружаются они в фоновом потоке, но показываются они уже как надо – в основном.
В процессе работы над приложением, у нас появлялись все новые и новые идеи по его улучшению. Например, наткнувшись в Сети на панорамы белорусских замков, я захотел, чтобы они появились и в нашей программе. И в результате переговоров с Национальным агентством по туризму Республики Беларусь все пользователи нашего приложения смогут совершить виртуальные экскурсии по знаменитым замкам Беларуси с помощью 46 панорам с 360° обзором. Мы даже выпустили специальную версию для Android, которая содержит только панорамы.
Кроме того, фотографии дополнились 9 авторскими видеороликами, а для музыкально оформления были использованы, кроме классических произведений, авторские мелодии известных фолк-групп «Палац» и «Testamentum Terrae», с любезного разрешения авторов конечно.
Так мы приходим к четверному совету:
4. Не стесняйтесь искать партнеров и обращаться за помощью – вокруг очень много талантливых людей, которые могут помочь вашему проекту.
Главным же следствием нашего рассказа о разработке, нам кажется совет, который завершит эту часть рассказа:
5. Всегда нужно вовремя остановиться и сделать релиз. Улучшениями можно заниматься бесконечно.
Финансовая модель
Так как проект изначально задумывался, как просветительский, мы решили попробовать распространять приложение абсолютно бесплатно, предоставив самим пользователям, при желании, поддержать разработчиков пожертвованиями.
Вот график поступлений:
Самым удивительным для нас было, что самое большое пожертвование в 4,99$ выбрали пользователи из Беларуси, о которой мы думали, что у нас вообще никто ни за что не платит в App Store.
Поэтому:
6. Не пытайтесь предугадать поведение своих пользователей. Экспериментируйте!
Продвижение
Что касается продвижения – мы использовали два основных канала: традиционный PR и Facebook Mobile App Install Ads в качестве эксперимента. Многие локальные СМИ, заинтересовавших темой проекта и видя его некоммерческую направленность откликнулись и опубликовали заметки или интервью с разработчиками в первые дни. Российские коллеги из тематических проектов предложили только платные публикации, только AppleInsider.ru сделал посты в twitter и вконтакте, за что отдельное спасибо Илье Казакову.
Самый же главный урок преподнес Артур Малосиев из Iphones.ru.
Еще в прошлом году, я предварительно пообщался с ним по электронной почте и получили предварительное согласие на публикацию Dev Story, но имел неосторожность отправить ее на согласование в виде doc-овского аттача к письму
Поэтому:
7. Никогда не присылайте в редакции писем со вложенными документами, требующими сторонних программ для просмотра.
Пожалуй, с учетом особой важности для продвижения публикаций в профильных СМИ, этот совет является самым полезным и важным.
Что касается рекламы в facebook — при автоматическом формировании ставок нам удалось получить CTR в 2.581% и стоимость перехода в 0,18$.
На установки это повлияло мало:
Таким образом, возвращаясь к заголовку статьи – продать Родину у нас, конечно, не получилось, но, надеемся, что рассказать немного о ней и показать ее интересные места мы все же смогли.
Главное, что мы добились, это что любой наш соотечественник, набрав в поиске App Store «belarus» сможет скачать приложение, с помощью которого наглядно ответит – «Откуда ты?» и продемонстрирует ее богатое историческое наследие.
Welcome to Belarus!
Ссылка для скачивания приложения в App Store
Сайт приложения: belarusland.info
Автор: WebCreator