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.

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

bilchikk

Фрэнк Бильчик

Журналист
Американец в Украине. Люблю танцы и сарказм

Материалы

Нашел ошибку в тексте? Выдели ее и нажми Ctrl + Enter
  • nik-olai4-007

    Очень позновательно, я так стал тестером с нуля и с финансовым образованием. Но цель — написать приложенние. Спасибо за мотивацию, пойду искать курсы по Swift :)

    • admiless

      большая часть курсов — выброшенные на ветер деньги. TED, YouTube и Google вот ваши инструменты.
      «в мире IT не существует не взламываемых программ и защищенных компьютеров, единственное, что действительно необходимо это терпение и время» ©народная мудрость

      • Ronin

        Да, спортзал — выброшенные на ветер деньги. Бег вокруг дома, подтягивание на ржавом турнике и отжимания от подружки вот ваши инструменты.

      • Alek

        Тренеры и советы экспертов тоже. Лучше потратить в 30-40 раз больше времени но дойти своим умом и ценой определенного количества жертв)

  • Mush Room

    «Даже если ты откроешь в Xcode старый файл на Objective, то тебе предложат переконвертировать его в Swift во избежание ошибок и багов. »
    Не вводите в заблуждение, нет в Xcode никакого конвертера Obj-C—>Swift

    • Denys

      тут по ходу текста очень много моментов «рукалицо». скорее всего, просто о bridging header речь шла. но, тк ресурс не профильный, можно понять… или нет

  • Denys

    «Если ты решишь стать iOS девелопером, ты будешь учить Swift. Objective-С это уже шаг назад» — да что за бред? говорю, как разработчик, у которого «больше необходимого 1 года разработки», что objective-c не шаг назад, а стабильность. свифт очень динамически развивающийся язык, почти каждый новый апдейт забирает определенное кол-во человекочасов что бы переписать уже написанное. а если проект реально огромный и пишет не один человек — это большие затраты.
    надо, пардоньте, плевать в лицо тем «айос разработчикам», которые не знают обж-си хотя бы на уровне юниора
    п.с. если что, _сейчас_ сам пишу на свифте на прод, но убивает эта ничем не подкрепленная заносчивость новичков, которые прошли один курс и думают, что уже высокооплачиваемые специалисты

    • Nikolaz

      Вот потом и переделывай за такими приложения)) Говорю как 4+ лет стажем по objC) Видел я проекты где 20% кода с гитхаба и все на свифте с 10мя сторибордами в одном проекте) Молодцы) Покупайте курсы по 50$ и делайте приложения с котиками) А про swift это вообще капут)

      • Denys

        звучит стремно) а вдруг они, помимо всего прочего, тоже следовали принципу автора: «Я специально выложил приложение с багами»?))

  • UANimitzUA

    Мне стыдно за таких разработчиков. «Objective-C это шаг назад». Только ОДНА фича в OS X была запилена на Swift. «Конвертер ObjC на Swift». Это перебор. «Swift прикладной язык». А как давно ObjC перестал был прикладным?. А если уже сравнивать «легкость обучения языков», то учить ObjC намного легче, хотя бы потому что он похож на Smalltalk, а Smalltalk родоначальник ООП. Это не dev story, это «Х**к-х**к и продакшн».

    • Siscokid

      Ну если смотреть глазами чувака, который первый раз увидел код, то objc будет выглядеть, скажем так, не легче, чем свифт))

      • Полностью согласен. Более того, для этого приложения возможностей Swift за глаза хватает.
        Не всем нужны возможности ObjC

      • Alex May

        Што? Если не использовать runtime lib objc, то он в разы проще Swift.

  • Ronin

    Фрэнк, а ты уже придумал, каким будет твое первое приложение в АппСторе?

    • Frank

      Да, есть идея. Сейчас как раз пошел на курсы по iOS разработке

      • Ronin

        Центр мира уже нашел? :)

      • Frank

        Что?

      • Ronin

        Задания говорю решил?

      • Artem Demydenko

        Шестое, если не ошибаюсь. ;)

      • Frank

        Блин, я не успел за задания взяться(

  • Igor Vovk

    Підтримую всіх хто висловився в підтримку objC і проти свіфт, я люблю еппл, але оцей свіфт, ця спроба зробити домохазяйок розробниками це просто повний П. Але на війні всі методи вірні. Особисто я в нього не вірю, занадто продукти еппл пропрієтарні. Хоча тенденція вірна, за 100 років 100% населення будуть кодерами. Очікую на гугл, не сьогодні-завтра вони зроблять щось схоже для андоїд, МС за ними. Скоро нас не залишиться зовсім, будуть тільки таки ‘профі’ як суб’єкт статті.

    • Denys

      гугл представили язык go, думаю какое-то время от них ничего нового не будет (я про ЯП)
      и что за абсурд — «против свифт»? никто подобно не выражался. свифт более юзерфрендли в плане синтаксиса, но он тяжелее обж-си

      если вам не посчастливилось и вы видели код на свифте исключительно таких вот героев, как в статье, то это прискорбно.
      знаете, «ничто не портит музыку так, как ее поклонники» — вот очень к месту)

      • Alex May

        ++ objc проще в разы.

      • Igor Vovk

        «проти свіфт» — я мав на увазі що не підтримую загального захоплення цією мовою так само як і вимог замовника використовувати виключно її. З приводу «юзерфрендлі» то якщо вам не пощастило мати хоча б 3 років дсвіду в дев. то можливо це і буде аргументом. Особисто я не бачу ніякого «юзерфрендлі» в Свіфт, а от мінус у вигляді нижчої швидкодії це достатньо вагома причина бути «проти свіфт».

  • Artem Dyachuk

    А какой многообещающий заголовок был…

  • First LST

    Еще только начав читать статью, подумал, что даже в малочисленных на этом сайте комментариях обязательно появятся те, у кого «мой дед был программистом, отец был программистом и я, как истинный задрoт, 5-7 лет учился, чтобы стать программистом». Парень правильно сказал:»Я почувствовал, как люди более открыты… И не пытаются тебя остановить СТЕРЕОТИПАМИ О ТОМ, КАК ЭТО СЛОЖНО». Человек либо способен, либо нет, плюс лень мешает. В Украине даже среди молодёжи многие с совдеповским мышлением. Местные программисты напоминают бабок на лавках, обсуждающих и осуждающих миниюбки.

  • Alek

    «Самое главное — это оплата — $300/час.»
    Думаю, имелись в виду австралийские доллары, что равно приблизительно 200USD в час, что все равно впечатляет…

    • Denys

      такие цифры могут получать только адвокаты) ну либо швырните в меня ссылкой с такими вакансиями )

  • Vadim Rybkin

    Ребята, вы явно со мной не в одном мире живете. В моем мире никто не называет себя «разработчиком» написав пол приложения с котиками

    • Ronin

      Не надо завидовать.

      • Vadim Rybkin

        Поверьте, мне нечему тут завидовать. И что такое «разработчик» я знаю не из фильмов про Стива Джобса и Силиконовую Долину

      • Ronin

        Ну вот, сначала завидуете,теперь хвастаетесь. Нехорошо.