Главное Авторские колонки Вакансии Образование
😼
Выбор
редакции
10 249 16 В избр. Сохранено
Авторизуйтесь
Вход с паролем

С нуля до App Store за 5 месяцев: как я попал в кабалу (и что из этого вышло)

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

Научитесь программировать на Swift всего за 3 месяца! Успей записаться на наш курс, только сейчас, онлайн-курс за 4999р*

Уверен, каждый из вас встречал подобные рекламные объявления, предлагающие резко сменить род деятельности и стать программистом. Беглый обзор вакансий iOS-девелоперов на том же HH только подкрепляет такие позывы, заставляя курсор непроизвольно тянуться к кнопке купить, в то время как мозг уже рисует вам радужные картины заработка легких денег. В идеале — картины, на которых вы сидите в гамаке где-нибудь у побережья теплого моря, что-нибудь там лениво кодите, и получаете при этом 80$ в час пассивного дохода. Красиво? Безусловно! А как на самом деле?

Я расскажу вам на своем примере и примере нашего приложения для прогулок Walkerie, которое я как раз сам написал с нуля, о том, каково это — быть начинающим разработчиком, и к чему вы придете. Кстати, со взглядом Юлии (с которой мы делаем этот проект) на разработку данного приложения вы можете ознакомиться здесь.

Скажу сразу, что по образованию я не программист, по работе программированием особо не занимаюсь, а всё здесь описанное достигнуто путем проб и ошибок в свободное время.

  • Вступление

Вообще, желание написать что-то для iOS у меня возникло очень давно, начиная с того самого момента, как у меня появился мой первый iPad, почти пять лет назад. Тогда у меня не было компьютера Мак, но я был решителен: поставил хакинтош, запустил Xcode, попробовал что-то написать, но… очень быстро погрустнел от синтаксиса Objective C, всех этих скобочек, закорючек и вернулся обратно к эпизодическому ковырянию в Python.

  • Начало

Прошло много времени, я закончил университет, у меня появился Mac, вышла iOS 8, мой iPad 2 превратился в тыкву, а ещё Apple представила новый язык программирования — Swift. Вот оно: думал я, наконец-то!

Обещалось, что он быстр, понятен, и вообще в будущем необходимость в прочих языках программирования отпадет – настолько он классный со всех сторон. Воодушевившись этим всем, я записался на бесплатный онлайн курс по Swift от Кембриджского университета, прослушал с десяток лекций, написал пару элементарнейших программ методом повторения за преподавателем (калькулятор, погода и еще что-то) и мой интерес угас. Повествование было чрезвычайно академичным, лектор регулярно говорил что-то вроде: ну, вы же понимаете концепцию nil, это фундаментально, если не знаете, то у вас еще есть время выбрать другой курс, аудитория отвечала да-да, конечно, знаем!, я кричал нет, черт, подожди, я понятия не имею, я не знаю!, но меня никто не слушал. К тому же у меня не было идеи или цели, чего я хочу достичь, и зачем мне это. Материал становился все сложнее, а мотивации оставалось все меньше. Совсем скоро эти линии пересеклись, и Swift был снова оставлен.

  • Продолжение

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

Ты же сможешь это сделать? — спросила меня Юля.

Да, конечно! К маю успеем — уверенно ответил я, предварительно мысленно умножив предполагаемый мною срок на два, как делают все тёртые управляющие проектами. (Еще более опытные управляющие знают, сроки в крупных проектах не выдерживаются практически никогда).

В этот же день я, окрыленный идеей, купил курс с 5 звёздами по программированию на Udemy и продолжил учиться. Разобрался с формочками, кнопочками, действиями по кнопочкам, табличками, картинками, словарями, autolayout, переключение между видами, доступ в интернет и загрузка файлов. На все это ушло около полутора месяцев ковыряний по вечерам после работы (которые плавно перетекали в ночь) и по выходным.

В какие-то моменты вообще хотелось все бросить и махнуть рукой на это дело, но гордость не давала.

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

Курсы я к тому времени смотреть перестал (где-то на 2/3) и фактически поселился на stackoverflow.com . Удивительно, но похоже, там есть ответы на все вопросы. Главное — это правильно задать вопрос (а потом попытаться понять ответ). Иногда, чтобы понять ответ нужно было задать еще пяток вопросов, иногда просто копипастил куски кода к себе, не особо понимая, что тут вообще происходит.

Однако… должен сказать, что такой подход работает. С каждой новой прочитанной строчкой кода и скопированным примером я все больше понимал, что к чему, и с какого-то момента даже начал разбираться в примерах представленных на других сайтах. Время шло, функционал добавлялся, и попутно я уже даже не боялся что-то менять в коде: более того, я делал это осознанно. Хотя сюрпризы подбрасывало и само средство разработки:

Излишне говорить, что май уже заканчивался, а приложение еще готово не было: оно падало, висло и тормозило. На планомерное исправление ошибок ушло еще пару недель и к июню был достигнут минимально приемлемый результат, который уже можно было загружать в магазин. Нарисована иконка, написано описание, казалось бы: пару часов на загрузку и — готово! Но не все так просто :)

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

  • Результат

После 5 месяцев обучения, чтения гайдлайнов и статей, проб и ошибок я получил относительно простое, работающее приложение в App Store, которое можно кому-то показать и за которое почти не стыдно. (Те места, за которые было стыдно, я оперативно исправил в последующем обновлении через неделю). Процесс его совершенствования продолжается до сих пор, равно как и процесс моего обучения. Могу ли я назвать себя iOS-разработчиком? Увы, но пока нет. Слишком велик объем необходимых к освоению материалов и различных нюансов, о существовании которых в самом начале пути я и не подозревал.

Возвращаясь к рекламному объявлению в самом начале статьи: научитесь ли вы писать на Swift, пройдя курс по программированию? Да, безусловно! Станете ли вы по истечении этих 3х месяцев программистом? Увы, но скорее всего нет. Это примерно как уметь писать и быть писателем. Однако второе всегда начинается с первого, так что если есть желание — дерзайте!

  • Советы, ресурсы, комментарии
  1. Вы должны хорошо понимать по-английски
  2. Будет сложно
  3. Придумайте идею простого приложения, которое вы бы хотели реализовать
  4. Запишитесь на какой-нибудь курс. Я рекомендую этот https://www.udemy.com/complete-ios-10-developer-course/learn/v4/overview
  5. Параллельно изучайте гайдлайны https://developer.apple.com/app-store/guidelines/
  6. Гуглите! На любой вопрос новичка в интернете есть ответ, как бы удивительно это не звучало. Сделайте stackoverflow.com своей домашней страницей :)
  7. Да прибудет с вами сила.

Ознакомиться с результатами наших трудов можно здесь :)

+11
В избр. Сохранено
Авторизуйтесь
Вход с паролем