Как научиться программировать под iOS

Итак, вам тоже пришла мысль: «А как мне научиться писать программы для iPhone?«, «Как мне сделать свое мобильное приложение?«, «Как заработать миллионы ничего не делая?«. Постараюсь пошагово ответить на эти вопросы (кроме последнего).

Что нужно знать с самого начала

mac miniЧтобы создавать программы для iOS официально от вас требуется компьютер Apple (iMac, mac mini или Macbook). Но если говорить совсем честно, вам нужна операционная система OS X, поэтому многие по началу хитрят и умудряются использовать Хакинтош (Hackintosh), то есть запускают OS X на обычных компьютерах — это экономный вариант, противозаконный и довольно хлопотный в плане настройки. Я вам рекомендую, раз уж вы твердо решили стать iOS-разработчиком, купить простенький Macbook или Mac Mini, можно даже б/у (любой, выпущенный с 2010 года).

swift xcode

Дальше — на чем писать. Приложения для iOS пишутся на языках программирования Swift или Objective-C, а все магическое действо происходит в программе Xcode (бесплатная). Swift — это очень новый язык, который Apple представила буквально недавно (середина 2014 года) и теперь активно доносит мысль, что программировать нужно только на нем, за ним будущее, он более современный и быстрый. И они правы, учите Swift. Objective-C напротив язык с давним прошлым, поэтому понять его значительно сложнее начинающим, что не отменяет его мощь и богатство существующих наработок и книг по нему (чего не скажешь в данный момент про Swift). И тем не менее, повторяю, учите Swift.

Если хотите делать кроссплатформенные приложения (одновременно под iOS и Android) — учите C# и используйте среду разработки Xamarin (платная). Хотите делать кроссплатформенные игры — качайте среду разработки Unity3D (условно-бесплатная), учите уже упоминавшийся выше C#.

А еще, чтобы запускать свои приложения на iPhone/iPad (даже на этапе разработки) и затем выкладывать их в AppStore, вам нужно купить статус Apple Developer за 100$ в год. После покупки это лишний раз мотивирует как минимум отбить эти деньги 🙂

Что почитать, чтобы научиться программировать

Когда я задался этим вопросом, то подумал, что нужно просто взять хорошую толстую «библию» по Objective-C (напомню, Swift тогда еще не было) и постигать тайные знания языка программирования главу за главой. Все советовали книгу Стивена Кочана «Программирование на Objective-C«. Wrong! Не повторяйте мою ошибку. Да, азы языка были постигнуты, книга хорошая, но это справочник и он далек от реальной разработки приложений с нуля. Чтобы научиться программировать вам нужно «запачкать руки», пытаясь написать первые, пусть совсем простые, но работающие приложения. Вам нужны уроки с примерами. От простого к сложному. А еще важно поставить реальную цель, первое приложение, которые вы хотите написать и выпустить в AppStore. Каждый урок или книга должны давать вам знания, которые вы можете применить в своем проекте. Не совершайте ошибку «вечного студента», который только то и делает, что изучает-изучает-изучает, но откладывает момент начала настоящей работы. К примеру, я ставил себе цель сделать приложение-радио и выпустить его в AppStore за месяц — и у меня получилось.

Если вы знаете английский, считайте вам крупно повезло, сейчас я расскажу вам, где черпать все знания. На русском, к сожалению, информации очень мало и зачастую она запаздывает (и переводится с английского).

уроки Swift

The iOS Apprentice

Лучший англоязычный обучающий сайт — RayWenderlich.com. Он мега-крут по трем причинам: 1) можно бесплатно прочитать море уроков от азов до попытки повторить существующие успешные приложения (в том числе на Swift), при этом все написано душевно и с юмором; 2) там есть видео-уроки (правда, платные); 3) Важнейшая причина — у них есть книги для начинающих, которые обучат вас с нуля на примере создания приложений, очень доходчиво, с картинками (ну, как мы любим). Книги платные (дают бесплатно только первую часть), но они того стоят. Купил их все и они давно окупились, так как они строят хороший фундамент кирпичик за кирпичиком. Это не сравнить просто с чтением разных уроков вперемешку на этом же сайте. Начните с покупки книги The iOS-apprentice (первую часть которой можно скачать бесплатно). Она научит вас создавать первые приложения на Swift. Также у них есть книги по разработке игр на SpriteKit (фреймворк Apple для разработки игр).

Второй по-полезности ресурс — AppCoda. Он попроще RayWenderlich, но суть та же — читаем уроки по Swift, учимся на примерах. У них тоже есть собственные книги (платные), кроме бесплатных уроков.

А что, если не знаете английский — упс, подобных российский интернет-ресурсов просто нет. Книги на русском? Конечно, вы найдете какие-то книги на Ozon, но все они устаревшие и не научат вас языку Swift (на данный момент все только по Objective-C).

Лучшее, что я могу вам предложить, это хаб «iOS-разработка» на Хабре, там постоянно появляются новые статьи, но очень хаотично.

Где найти ответ, что-то не получается

Во время программирования у вас постоянно будут возникать вопросы: вы не знаете, как сделать что-либо или вы что-то делаете, но в ответ программа сообщает об ошибке. Найти ответы (или задать вопрос) можно на двух сайтах:

StackOverflow — самый большой кладезь готовых ответов на английском. 80% ответов я нахожу там.

Google — банально, просто вбив в поиск вопрос, можно найти ответ. Если сразу не получается, поиграйтесь с формулировкой вопроса.

Тостер — аналог StackOverflow, но на русском. Здесь пока сложно находить ответы, так как база вопросов еще не очень большая. Зато можно спросить — на ресурсе достаточно профессионалов, которые вам ответят.

Ну или можете спросить меня. Пока бесплатно 🙂

comments powered by HyperComments
Fortunus
2014-10-28 19:09:26
Добрый день. Подскажите насчет перспектив Swift. Точноли его хватит без знания Objective-C. Вот в этом треде некто написал, что на ближайшие пару лет без Obj.-C никуда. https://toster.ru/q/142115 Что скажете? Планирую научиться кодить для ios, не хочется промахнуться )
Alexey Chernov
2014-10-28 22:29:40
Привет! Спасибо за вопрос. Да, его хватит точно. С каждым днем уроков и готовых библиотек для него становится все больше. Его будут активно и дальше поддерживать. А Objective-C как раз за 2 года уйдет в тень и будет представлять скорее научный интерес. Вот прямо-прямо сейчас мне порой не хватает для Swift готовых библиотек, которые были написаны для Objective-C, но, во-первых, по-моему никто не мешает мне их подключать (существует возможность одновременно держать в проекте файлы сразу на двух языках), а во-вторых, их активно переводят на Swift. А вот новые современные библиотеки на Objective-C станут появляться все реже. Дерзайте!