Дневники начинающего разработчика под iOS

в 2:07, , рубрики: как я провел лето, разработка под iOS, я пиарюсь, метки: ,

disclaimer: данный пост создан на основе НЕ МОЕГО личного опыта, но от этого он не менее правдив и честен. Одна из тех самых волшебных новогодних историй, в которых герой (в данном случае героиня) — реальный человек, ваш знакомый, в один прекрасный день решает изменить свою жизнь. Кардинально, надо добавить, и, будем надеяться, успешно...

Минувший високосный год, так сложилось, одним махом разбил мою жизнь на такое количество осколков, что проще было воссоздать что–то новое, чем стенать и хлопотать над разлетевшейся пылью. В раз, решившись, я бросила всё: имя, город, мужа и родных, знакомых, работу, специальность; сменила всё, по чему бы можно было меня узнать в прошлом… И, раз уж Новый год, то разрешите рассказать, о том как я попробовала изменить жизнь; как из каменщика, почти превратилась в программиста, и как жаль, что не решилась на что–то подобное раньше…

Наверное, я все еще мечтаю о какой–то первозданной неопределенности и потому редко упускаю шанс влипнуть в новую авантюру. Так было всегда, и в очередной раз случилось около года назад, когда мы с подругой в каком–то полухмельном запале, на всегдашних девичьих посиделках придумали идею для приложения… «А почему нет?!» — решили две далёкие от программирования барышни, и не нашли что противопоставить своей решительности.

Куча времени, прорва бессмысленных и неверных шагов, но, в конце концов, мы все же получили желанный продукт. Вот она, гордость наша — приложение для iPad, «Kitchen Aid Kit Pro (Кухонный помощник)».

И теперь, когда приложение уже доступно для скачивания, когда всё уже позади, позвольте мне рассказать о своем скромном опыте погружения в мир разработки: ну, как бы открыть на него вид издалека, глазами «постороннего», и возможно мне удастся кого–то если не окрылить или предостеречь, то хотя бы повеселить. Тем более, что сегодня, когда приложение, наконец вылизано и, в румяной упаковочке отсвечивает на полках AppStore, оборачиваясь назад на свой извилистый путь, я вижу, скольких «граблей» и бестолковых ситуаций можно было избежать.

В общем, вручаю вам наброски курьёзной симфонии для азарта с легкомыслием, в котором каждый акт будет предварен весьма лаконичной увертюрой из «Законов Мерфи». Итак, вступают грабли…

ГРАБЛИ номер 1 — ИДЕЯ

«Все вероятности равны 50%. Либо случится, либо нет» Логические положения Кольварда
«Достоверность этого утверждения на 90% не в вашу пользу, коллега»Комментарий Грельба

Идея приложения, выросла из какой–то шутки в процессе изучения крайне мудреных рецептов для будущей вечеринки. Собственно идея, заключалась в том, чтобы обогатить возможности iPad одной маленькой хитростью, позволяющей с помощью устройства измерять вес и объем чего–либо в стакане с произвольной геометрией: приложил, подстроил и замерил. Просто? Ну, звучит просто. Разве что один нюанс: я по образованию — архитектор(второе – экономика и маркетинг), подружка — психолог, знакомых программистов не было, а всё, что мы знали об iPad, что это — очень дружелюбные, симпатичные и удобные устройства. Казалось бы: ну чего соваться туда, где ничего неизвестно? А, вот решили: работы постоянной не было, и времени на саморазвитие или эксперименты — хоть отбавляй.

Почитали, посмотрели умные книжки, ободряющие статьи да обзоры, и энтузиазма даже прибавилось. Особенно вдохновлили две книги(как стало ясно позже, представлявшие скорее художественную ценность): «App Savvy» — Ken Yarmosh и биография Стива Джобса. Из первой становилось ясно, что все не так и сложно, а вторая прочно убеждала, что упорство и труд, рано или поздно принесут плоды. Кроме того, сложность неизвестной проблемы, как известно, никогда не останавливает дилетантов и вы то, конечно знаете, что этих книг явно недостаточно для штурма «яблочных складов». Сегодня, оборачиваясь назад, я вижу, что костер нашего энтузиазма питался в основном глубоким непониманием задачи и невежеством, но с другой стороны, взвешенный подход и трезвая оценка объема задачи, почти наверняка охладили бы нас и завернули попытку, без всяких проб. Но нами двигало простодушие и азарт, а потому грабли начались с самого начала, и фонтан их пестрого разнообразия не иссякал до самого последнего дня.

ГРАБЛИ номер 2 — КОНЦЕПТ

«Если кажется, что работу сделать легко, это непременно будет трудно. Если на вид она трудна, значит, выполнить ее абсолютно невозможно» Теорема Стакмайера

Ни о каких методологиях разработки, ни о специальных приложениях и платформах, систематизирующих и облегчающих планирование и развития проекта, мы на тот момент не знали. Нет, на какие–то термины мы натыкались тут и там, слышали про SCRUM, Agile; поигрались с Microsoft Project и ScrumWise; прикупили акаунт на какой–то проектной площадке, но скоро запутались и устали от всех этих хитростей, вернувшись к обычному карандашу, бумаге и Excel.

Первая схема нашего приложения — дизайнерский концепт, был размером с добрый ковер. Чудовищная простыня, в духе лучших произведений полоумного Митасова, была испещрена невнятными заметками, стрелками, восклицательными знаками и крестами. Знакомый дизайнер увидев «это», обомлел и высказался в том смысле, что деревья поплатившиеся своими жизнями за бумагу для подобной дичи, рыдают в каком–то ботаническом раю. Он вкратце рассказал об основах прототипирования интерфейса, обрисовал подход и требования, а также рассказал о MindJet и предложил оформить, для начала, концепт в нём. Через несколько дней, первая карта проекта была готова.

К счастью, я сама рисую, и как говорят — совсем не дурно. Пару–тройку недель ушло на освоение Photoshop, и в середине второго месяца разработки, мы уже имели нечто вроде скриншотов будущего приложения. Настала пора искать кого–то, кто собственно воплотит это всё в коде.

ГРАБЛИ номер 3 — КАДРЫ.

«В эксперты надо взять того, кто считает, что работа займет очень много времени и обойдется очень дорого» Правило Уоррена

Первое, что чрезвычайно удивило меня это зарплаты программистов под iOS. Не знала, что так много моих сограждан, счастливо живут на одну зарплату. В моем городе, нижняя граница их аппетитов начинается с 1500–2000$, и по их же словам, на проект уйдет не менее 5 месяцев. «О–ля–ля!» — подумала я, произведя нехитрые арифметические расчеты. Столько денег у меня не было и в помине… Перспектива нерадостно запахла тупиками и разочарованиями.

И тут, на удачу, мне попалась чья–то статья, где автор, такой же далекий от разработки человек рассказывал о своём «пути к успеху». В статье он прямо говорил, что на первых порах, в небольших проектах, не обязательно брать программистов на зарплату, и даже много разумней обратиться к фрилансерам.

Первого — Питера, я нашла здесь. За весь проект он хотел 2000$ и готов был выполнить за три месяца, при условии, что проект будет подробно расписан на scrumdesk. Две недели ушло на теорию SCRUM и еще две недели на бэклог. Когда всё было готово, программист уже был занят, но он любезно порекомендовал своего коллегу — Макса, который в тот момент был свободен.

Макс потребовал предоплату 30% и после перевода (о кодах протекции и гарантах, я тогда ничего не знала) приступил к работе. Спустя немного времени стало ясно, что привлекать человека с другого конца света, было не очень хорошей идеей: разница в часовых поясах, плюс необходимость постоянно и оперативно давать ответы с пояснениями, чуть не превратили меня в невростеничку. Кроме того, по мере продвижения разработки, становилось очевидным, что некоторые фичи, задумывавшиеся как весьма оригинальные и удобные, на практике выглядели топорно и коряво. Начались бесконечные правки, уточнения и всё то, что ведет к разрастанию задачи. Спустя какое–то время Макс, резонно (но тогда, мне так не казалось) предложил пересмотреть сроки и оплату. Я возмутилась, мы повздорили, и он отказался от заказа, правда, вернув часть аванса.

Потом, появился Андрей. Из местных. Случайно познакомились, и с первых слов он околдовал меня своей всесторонней авторитетностью и шармом. Знакомым я представляла его почтительным шепотом и не иначе, как — Гений. О, это был гений! Профессиональный лицедей и мастер холостого хода! Два месяца он что–то делал, суетился, жарко доказывал, перекраивал и улучшал. Мужественно и с пониманием относился к скромной оплате, суровым условиям труда и нехваткой всего. От него, прям веяло каким–то жаром трудового подвига и непроходящей чрезвычайности. Раз пять, не меньше, он открывал какие–то новые, изящные — будто с кисти Создателя — решения, переписывая, улучшая и перекраивая код… На третий месяц он пропал. Совсем. Испарился, оставив после себя апокрифические фрагменты кода на Lua — большей частью сырые и дилетантские.

Я чуть было уже не плюнула, но случай свёл с отличными ребятами, которые как раз собирались заняться разработкой под iOS. Шел май 2012. Разработка продолжалась почти полгода, но, как внезапно выяснилось: по–настоящему она только началась…

ГРАБЛИ номер 4 — РАЗРАБОТКА

Если факты не подтверждают теорию, от них надо избавиться. Закон Майерса
Эксперимент можно считать удавшимся, если нужно отбросить не более 50% сделанных измерений, чтобы достичь соответствия с теорией. Следствия закона Майерса

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

На том и порешили, а пока Славик сел за фундамент будущего приложения, я, улучив момент, съездила на курсы по Scrum в Киев. Дорого, но того стоило.

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

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

Согласитесь, ну что может быть проще, чем вычислить объем усеченного конуса, взять табличную плотность ингредиента и высчитать: сколько же там чего? Ан–нет! Калькулятор объема давал одну цифру, весы — другую, приложение — третью. Не говоря уже о совершенно паранормальных результатах с жидкостями, в объемах меньше 100мл.

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

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

К слову, были и удачные находки, не считая того, что я с удовольствием открыла в себе дизайнера. Еще на первых этапах разработки, мы стали думать о локализациях и цены на переводы нас не обрадовали. Местные агентства переводов, в среднем, хотели в пределах 10–30$ за 2000 знаков для европейских языков, и до 80$ за всякие экзотические, типа арабского, хинди, китайского или японского. Интереса ради, я обратилась в крупное американское интернет–агентство переводов, и оказалось, что перевод с английского на любой, хоть на арамейский, вам обойдется в районе 7–10$ и с гарантией. Так что, имейте в виду…

ГРАБЛИ номер 5 — АПРУВАЛ

«Если рассмотреть проблему достаточно внимательно,
то вы увидите себя как часть этой проблемы»
Аксиома Дучарма

Подробно описывать процесс думаю, нет смысла. Немало, сказано уже об этом, да и процедура по большей части чисто формальная. Всякие мистические эксцессы, говорят, случаются, но мы постарались самым дотошным образом соблюсти все предписания Apple, и закономерно (как нам кажется), без всякой суеты и ухищрений получили благословение Apple через 2 недели. По правде говоря, не обошлось без курьёзов, но на их примере, стало ясно с каким терпением, на самом деле относятся ребята из Apple к разработчикам. А дело было так…

Получив перевод описания приложения для AppStore, мы радостно запулили их в AppStore. В ответ приходит довольно странное письмо:
«We found that your Application Description includes information that is not relevant to the application content and functionality, and is therefore not in compliance with the App Store Review Guidelines. It would be appropriate to remove or revise the following content from the app description:
«If there are images in this attachment, they will not be displayed. Download the original attachment»

Полное недоумение. Какие «атачменты», какие «имиджы»? «Нет у нас такой строчки в описании. Что за чепуха?!» — ломали голову мы. Проверили, перерыли все варианты — нет. Совершенно не ясно, что от нас хотят… Так и пишем: «Дорогие сэры, вы об чём? Акститесь!». В ответ, получаем всё то же, странное письмо с рекомендациями.

Капитальная наша обескураженность длилась с полдня и переросла во всеобщий позор, когда обстоятельства недоразумения вскрылись. Оказалось, переправляя перевод, я ненароком, зацепила в копипасте кусок из оформления письма. То есть, с тем же успехом, там могла оказаться реклама «ЖБК–конструкций», предложение по увеличению груди или банальное: «Нажмите здесь, чтобы Ответить или Переслать».

Кстати, для меня это стало «нежданчиком» и возможно об это не стоило упоминать отдельно, но имейте в виду: дата получения апрувала – это и есть дата появления «новинки» в магазине. В том смысле, что спустя несколько недель, когда вы подгоните и переведете все материалы и обзоры, выпестуете и согласуете план продвижения, утвердите блестящую стратегию, вы внезапно и с изумлением обнаружите, что в «новинки» вы уже не попадаете.

Да, был еще один интересный момент с «апрувалом»… С самого начала мы решили, что испытаем на нашем приложении модель дифференцированного вознаграждения мол, мы предложим несколько ценников, а пользователь – пусть сам выберет: дать нам доллар, пять, десять или двадцать. По правде говоря, мне казалось, что это моя придумка(теперь–то я знаю, что мы, далеко не первые) и немало переживала, будучи наслышана об отношении Apple ко всякого рода «химиным курам» с оплатой. И действительно, в одном из первых писем Apple резонно задал вопрос: «Что пользователь получит за 1$ и за 10$? В чем разница?». Мы объяснили, что ни в чем; только в мере благодарности разработчикам… Ответ их видимо удовлетворил, потому что развитие эта тема не получила.

В общем, что сказать? Попридержите лососей, раз уж дело ответственное.

ГРАБЛИ номер 6 — ПРОДВИЖЕНИЕ

«Вероятность получения желаемого результата находится в обратной зависимости от силы желания» Закон Гамперсона
«Наилучшим планом является тот, авторы которого не ставят свой аналитический потенциал выше бесконечного многообразия неучтенных и случайных факторов» Следствие Брока

Ну правда, что там такого: обзоры всякие, завлекалки, отзывы, ахи–вздохи, шум, пересуды – все же ясно, как будто? Мы так и предположили, а потому никакого грандиозного бюджета, под это дело и не планировали – так, по мелочам. Тем более, что других вариантов особо и не было…

Рабочий вариант плана «вброса» был составлен заранее, и как казалось, мы пошли вполне логичным и простым путём: взяли раскрученное приложение, в той же категории и с хорошей статистикой; восстановили по поисковым системам хронологию публикаций, построили график частоты упоминаний о нём и проранжировали издания. Таким же образом, проанализировали активность вокруг приложения в социальных сетях; попытались выявить причины всплесков, найти оригинальные и действенные приемы, выстроить оптимальную стратегию. Потом, испытали полученную модель на других приложениях с хорошей статистикой скачиваний и продаж, сопоставили пики, внесли коррективы, и, в общем, остались довольны собой.

Однако, приступив к реализации этой части плана, мы вскоре поняли, что наша блестящая и внутренне непротиворечивая модель медиа–поддержки далека от жизни, как всякая утопия и ее главная проблема была в её чисто эмпирической природе. Мы, будучи людьми современными и прогрессивными, так бездумно положились на само собой разумеющуюся силу «научного» подхода, что в итоге оказались в комичной позе дикарей, поклоняющихся соломенному идолу самолета, или чудаков, ищущих «Здравый Смысл» в Википедии.

В общем, как вы поняли все пошло не так, как было задумано. Вкратце, суть ошибочности нашей модели заключалась в ее одномерности. Были не учтены два измерения: деньги и время на развертывание рекламной кампании. По большому счету, при должной сноровке и опыте, упомянутые измерения, должны сойтись в одно – время. Причем «время» не какое–то мировое, а чисто субъективное для приложения: непрерывное и плавное течение медиа–жизни приложения, развитие и смена этапов. И этого, не добиться чистым трудолюбием, без денег или крохами, а потому нет смысла подгонять свою стратегию под тех, кто это открыл вдруг в какой–то момент(когда вы зафиксировали всплеск), или знал с самого начала.

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

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

Вкратце, можно сделать следующий вывод: рисуя в уме стратегию будущего продвижения, постарайтесь реально взвесить потребительский интерес к вашему приложению, и ваш финансовый потенциал. Затем, подставьте результаты взвешивания в простое правило: ваше приложение будет удачным, если чаша с одной из сторон – оборвется. Причем, для того чтобы это произошло(какая бы чаша не перевешивала), в обоих чашах, все равно должны быть деньги на продвижение. Вопрос только в количестве…

ВМЕСТО ЗАКЛЮЧЕНИЯ

Какое–то всеобъемлющее заключение писать, очевидно, еще рано: продажи начались не так давно, а настоящее продвижение – только оговаривается. Обещаю, если вам покажется это интересным, рассказать подробно о продвижении, а также уделить больше внимания «работе над ошибками». Пока, можно разве что, сказать о некоторых предварительных результатах: за 10 дней продаж русской и английской версии, при всей убогости наших потуг в продвижении, приложение скачали около 6000 человек. Купили около 3%. Долгое время — 1е место в российском сегменте, 2е в Штатах. Отзывы, в основном — положительные.

Да, и простите, что пост без картинок… Просто, я сама когда-то, была так одержима их дурацкой 'няшностью' и 'мимимишностью', что теперь „на воду дышу“, опасаясь, обмануть кого-то их преувеличенным значением. Поверьте, вся эта красота важна, безусловно, но она — вторична и не самодостаточна.

P.S

Сказанное, относится исключительно к приложениям типа „утилиты“. С играми и некоторыми другими типами приложений, насколько я теперь знаю, все обстоит несколько по–другому.

P.P.S

Как я уже говорила, текст следует рассматривать, как субъективные записки непрофессионала, и это – не вопрос спора, а потому, я с благодарностью приму все упреки и указания, особенно, если они будут сопровождены разъяснениями. Заранее, благодарна – Amore(emmakinski[image]gmail.com). За промо-кодами, обращайтесь туда же(всем не обещаю, но дюжину раздам в хорошие руки).

P.P.P.S

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

Автор: mittel

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js