Anton Kryzhanivskyi interview. iOS Developer

Многие хотят стать iOS разработчиками. У этой профессии отличные преимущества — интересный опыт, большая зарплата, престиж. Но не очень целеустремленные люди умудряются придумать куда больше причин не браться за изучение программирования. Это не про Антона Крижановского, гуманитария с IT-жилкой и молодого iOS разработчика, который за месяц освоил Swift, написал первое приложение Play:Cats и опубликовал его в App Store. В интервью Антон разрушил некоторые стереотипы о программировании, поделился курсами и ресурсами, которые помогали в обучении, а также рассказал о пути с написания первой строчки кода до появления программы в App Store.

Как возникла идея стать разработчиком?

Anton Kryzhanivskyi interview. iOS Developer

Первоначально идея пришла еще в школе, когда я учился еще в 9 классе и только начал пользоваться техникой Apple. Посмотрев свой первый WWDC, я удивился, что компания уделяет так много внимания разработчикам. Год за годом, вникая в эту тему, я понял, что именно от разработчиков зависит, взлетит устройство на рынке или нет.

Каким бы не был отличным первый iPhone, Apple в дальнейшем не смогла бы вытянуть его на новый уровень, не запустив App Store и подключив разработчиков к делу в 2008 году.

Осознав, что от девелоперов зависит успешность платформы, я вдохновился идеей создавать приложения под iOS.

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

Как ты решился стать разработчиком несмотря на эти барьеры?

Anton Kryzhanivskyi interview. iOS Developer

До моего переезда в Австралию идея стать разработчиком была несколько абстрактной. Но когда я приехал в Сидней и прожил там несколько месяцев, то обратил внимание на очень интересную вещь: крупные австралийские сайты по поиску работы пестрят объявлениями о нужде в IT-специалистах — юзабилистах, разработчиках, тестировщиках. А минимальная зарплата разработчика была выше средней.

Я однажды наткнулся на объявление с всего лишь одним требованием:

Нужен разработчик на 3-месячный проект. Требование: 1 год работы в Xcode. 

Это контракт, по которому ты 3 месяца работаешь над проектом. Самое главное — это оплата — $300/час. И вакансия была реальная. Не требуется образования или особого опыта, всего лишь 1 год работы в Xcode.

Anton Kryzhanivskyi interview. iOS Developer

Когда я переехал в Австралию, то обратил внимание, что люди здесь живут по-другому, чем в Украине. Западная IT культура значительно более развита и на меня это начало давить. Я почувствовал, как люди более открыты к IT и способствуют тому, чтобы ты принялся за создание своего стартапа или занялся разработкой. И не пытаются тебя остановить стереотипами о том, что это сложно.

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

Anton Kryzhanivskyi interview. iOS Developer

Я осознал, что значит быть разработчиком для моей будущей жизни, и что это избавит меня от офисного графика с 9 до 6 и нелюбимой работы. Если коротко, то вот 3 причины, почему я пошел по этому пути:

  1. Доход
  2. Нет четкого графика
  3. Гордость за то, что ты делаешь. Ведь конечный продукт — это твое, то, что ты создал сам. Когда видишь, что твое приложение скачали — это невероятное ощущение.

Самое важное это начать. нужно отбросить все стереотипы. Объективно — может начать любой. Главное желание. Меня лично подтолкнула австралийская культура, кого-то могут подтолкнуть другие моменты.

И с чего ты решил начать?

Anton Kryzhanivskyi interview. iOS Developer

Первое, что я сделал – погуглил, как люди учатся программировать на Swift. Ходят на курсы или занимаются самостоятельно, какие ресурсы лучше выбрать.

Почему выбрал Swift?

Это то направление, которое выбрала Apple. Если ты решишь стать iOS девелопером, ты будешь учить Swift. Objective-С это уже шаг назад. Даже если ты откроешь в Xcode старый файл на Objective, то тебе предложат переконвертировать его в Swift во избежание ошибок и багов. Apple хочет, чтобы программисты перебирались с Objective-C на Swift. Так проще.

Кроме позиции Apple какие были причины для выбора Swift?

Anton Kryzhanivskyi interview. iOS Developer

Swift — простой для изучения новичкам, которые с программированием не сталкивались. Он переспективный, потому что Apple для своих платформ пишет софт на Swift — OS X, iOS, tvOS, watchOS. Очевидно, что на Objective-С компания уже не вернется. К тому же Swift — прикладной язык, потому что ты можешь сделать приложение и сразу запустить его на iPhone. Я часто сталкиваюсь с тем, что люди рекомендуют начать изучение программирования с Python или Java, но если ты начинаешь с них, в отличие от Swift, не можешь сделать готовое приложение и через 15 минут запустить его на iPhone.

Я не сомневался, с какого языка стоит начать. Кроме Swift все остальные кажутся трудноприменимыми в нынешней ситуации. Swift простой, доступный для изучения, перспективный и прикладной язык программирования.

Ты определился с языком, что дальше?

Anton Kryzhanivskyi interview. iOS Developer

Я открыл YouTube и начал искать видеоуроки. Но мое спасение оказалось не в роликах, а контекстной рекламе, которая крутится в них. Я наткнулся на рекламу онлайн-курса, где было написано, что ты начнешь с абсолютного нуля, а под конец обучения сделаешь 20 реальных приложений, включая клон Instagram и аналог Flappy Bird.

Я перешел по ссылке и столкнулся с тем, что курс был платным. Он стоил $50. Я немного подумал и купил его, потому решил серьезно заняться обучением, да и после покупки мне было бы сложнее все бросить, ведь деньги уже заплачены, жалко как-то забить. Учился я на Udemy. Это портал, где можно пройти курсы на любую тему — от того, как быть хорошим папой до того, как хорошо готовить или стать программистом. Все уроки на английском, это важно знать. Мой курс много чего обещал. Им было удобно пользоваться, есть приложение для iOS с возможностью загружать в оффлайн видеоуроки, можно общаться с человеком, который этот курс ведет.

Anton Kryzhanivskyi interview. iOS Developer

Я прошел уроков 10 (их всего 180, они небольшие — по 10-15 минут) и обрел полную уверенность, что работать в Xcode не сложно и доступно каждому. И мне это понравилось. В первые несколько занятий я узнал, как выглядит интерфейс Xcode, где находятся основные элементы и стал ориентироваться в приложении. Интерфейс оказался совсем несложным. В стиле Apple. В следующие пару уроков я научился работать с графическим интерфейсом приложений. Узнал, насколько это элементарно и что многие действия происходят через банальный drag&drop, который мы используем повседневно при обычной работе за Mac.

В ходе освоения у меня в голове появился логичный вопрос “как с помощью Xcode cделать так, чтобы в приложении при нажатии на кнопку пользователь переходил на другой экран”. Это делается путём того, что ты держа клавишу control тянешь курсор с одного экрана в приложении на другой. Подобная простота меня добила. После этого я прошел еще несколько уроков, в которых узнал, что такое переменные, методы и все эти другие термины, которыми обычно пугают новичков. В ходе занятия я написал приложение, в котором можно считать возраст кота. На создание ушло минут 40. Оно содержало кнопки, картинки, калькулятор возраста. С полного нуля за 40 минут я сделал приложение с графическим интерфейсом и кодом, который работал. И тут я понял, что быть программистом не так сложно как кажется и мне это ужасно нравится. Я был в восторге. Но после этого бросил курс.

Почему?

Решил сразу пробиться в App Store, сделать собственное приложение и учиться остальным аспектам разработки на нем. Я через курс понял некоторые основы программирования, а дальше решил применить их на практике.

То есть единственный курс, через который ты учился, это был Udemy?

Да.

В Сети можно найти очень много толковых ресурсов для обучения iOS разработке, но многих останавливает то, что они на английском. Какой уровень знания языка необходим для понимания уроков?

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

Ты изучил базу Swift, что дальше?

Anton Kryzhanivskyi interview. iOS Developer

Это было забавно. Я поставил себе задачу выпустить приложение через месяц. На тот момент не было даже идеи, я попытался узнать, какие мысли есть у моей девушки, она пошутила — сделай приложение про котов. А я такой — хорошо, я сделаю приложение с котами. И мы начали думать о содержании. Решили, что там будут мемы с котами, просто забавные картинки, потому что все любят картинки с котиками, решили, что классно будет добавить звуки котов, показыющих разных эмоции.

Ты сказал, что одной из основополагающих причин разрабатывать под iOS были деньги. С чего ты взял, что это приложение принесет заработок?

Я не ставил цель заработать на нем. Это было приложение для нарощения базы. Было две задачи — научиться писать приложения с нуля и сделать массу для App Store.

Как ты с маленькой базой знаний принялся делать собственное приложение?

Anton Kryzhanivskyi interview. iOS Developer

Если помнишь, в сериале Силикононовая долина, когда ребята работали над проектом, у них была доска для задач, разделенная на три колонки — “сделать”, “в процессе” и “сделано”. Я сделал точно такую же. Написал себе около 30 стикеров в “сделать” — задачи были по типу нарисовать дизайн приложения, нарисовать кнопки, анимацию, сделать разделы, найти звуки. Я написал отдельный стикер на каждую функцию, каждую маленькую часть приложения. Дальше началось самое интересное. Я брал стикер с задачей, например, “сделать так, чтобы приложение издавало звуки котов” и клеил его в “в процессе”. После заходил в Google и искал, как это сделать.

Каждая задача занимала от 30 минут до 3-4 часов. Это было чертовски азартно, и несмотря на то что утром нужно было вставать на работу, я все равно доводил задачи до конца, иногда засиживаясь до глубокой ночи. Таким образом, за 1 месяц я подготовил приложение к тому, чтобы опубликовать его в App Store.

Какии ресурсами ты пользовался чаще всего в процессе разработки?

Stack Overflow — это сайт, где ты задаешь любой вопрос по коду, а программисты на него отвечают.  Ресурс невероятно популярный, я взял оттуда очень много информации. 70% того, чему я научился, я нашел на этом сайте.

GitHub — это сайт для программистов, где ты выкладываешь исходный код своего приложения. С него я брал образцы рабочего кода и изучал как он функционирует. Около 20% информации я нашел на этом ресурсе.

Остальные 10% — видеоуроки на YouTube, авторские статьи, помощь друзей разработчиков.

Возникали ли в процессе трудности, из-за которых хотелось опустить руки, закрыть все и просто пойти на старую работу?

Такие моменты возникали, я действительно иногда психовал. Раздражение от непонимания некоторых вещей усугублял недосып из-за работы. Это было трудно.

У меня возникали моменты, когда я расстраивался и не понимал, что вообще происходит. И в тогда я говорил себе, “так спокойно, не нужно останавливаться, отвлекись, иди покури, выпей чай и со свежей головой снова садись гуглить”. И таким образом рано или поздно я всегда находил решение. Я не останавливался, потому что мне это было нужно.

Какой следующий шаг после того, как приложение было полностью готово?

У меня на той же доске был пункт — “опубликовать приложение в App Store”. Я начал искать, как это можно сделать. Купил аккаунт разработчика. Сложностей не было. Обычная транзакция. Потом начался самый интересный момент — как сделать так, чтобы твой файл проекта на компьютере оказался в App Store в виде приложения.

С чего ты начал?

Это самая туманная часть, на которой я действительно хотел все бросить. Написать первое приложение в App Store оказалось гораздо проще, чем его опубликовать. Если вкратце, то сам процесс сделан очень неинтуитивно и даже с инструкцией в интернете сложно понять логику происходящего. Публикация в App Store состоит из нескольких шагов:

  1. Компиляция сборки и загрузка на сервер Apple. Они могут не принять твой проект уже на этой стадии, если найдут ошибки или недочеты.
  2. Генерация “ключей” и специального ID, используя разные сайты, а затем привязка к локальному проекту в Xсode.
  3. Загрузка скриншотов. Apple требует загружать отдельные изображения и видео для всех размеров iPhone и iPad.
  4. Ожидание в очереди приложения на проверку в App Store модераторами Apple. Занимает много времени, но само рассмотрение происходит очень быстро.

Несмотря на всю сложность и строгие правила, ты спокойно можешь сделать приложение с багами и сюрпризами и оно пройдет модерацию с вероятностью в 90%. Таким образом, вопреки стереотипам, процесс публикации приложений в App Store сложен и строг только с точки зрения интернет-бюрократии (миллион форм и необязательных действий), но не проверки качества.

Как долго заняла проверка?

На момент отправки на проверку была большая очередь. Когда она дошла до меня, программу проверели за 5 минут и отправили в App Store. То есть дело в большой очереди, а каждое конкретное приложение проверяют довольно быстро.

Что делать после того, как приложение вышло в App Store?

Anton Kryzhanivskyi interview. iOS Developer

Лучшее — враг хорошего. Нестабильность и баги — тренд современного софтостроения. Софт выпускается и он работает не идеально. Но дорабатывается с обновлениями. Это я к тому, что когда делаешь свое приложение и знаешь его минусы, то все равно релизишь. Ты понимаешь, что будут баги, но лучшее решение — выложить в App Store, если нет ничего критичного. А потом фиксить ошибки — именно для этого есть обновления.

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

Чего ты добился на сегодняшний день с разработкой?

play cats

На сегодняшний день мое приложение находится в App Store, я уже выпустил для него три апдейта. С конца ноября, когда я опубликовал программу в App Store, начал работать над еще двумя приложениями и выпустил большое обновление для Play:Cats. Я проделал большую работу, добавил виджет для ЦУ, прикрутил уведомления и сделал приложение для Apple Watch.

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