- PVSM.RU - https://www.pvsm.ru -

iOS разработчик: Путь самурая

Какое-то время назад я решил перепрофилироваться на разработчика пол iOS, и решил систематизировать материал. Так сказать, составить свой roadmap. Получился некий обзор, которым я хотел бы поделиться с вами.
Данный обзор не претендует на полноту, непогрешимость и истину в последней инстанции.

Итак, вы приобрёли iPhone или iPad. Чудесные устройства, не правда ли? Какое-то время спустя пришла мысль “а не создать ли мне под него программу, которая завоюет мир?”. Я расскажу вам, с чего начать.

Первое, что вам понадобится – компьютер с операционной системой Mac OS X. Хотя бы Mac Mini (стоимость от 20000 рублей). По другому никак. На крайний случай, можно поставить под Windows или Linux систему виртуализации (VMWare, VirtualBox и т.д.), и уже там установить Mac OS X (не буду описывать сам процесс – на хабре уже много раз обсуждали).

Второе – нужно знание английского языка. Хотя бы в рамках «перевожу со словариком» — после первых 2-3 книг подтянете ещё и английский (что вообще никогда не помешает) до уровня «свободное чтение технической литературы». Переводные книги выходят с гигантским опозданием – полгода-год минимум. А большинство вообще не выходят на русском языке. Да и большую часть переводной программисткой литературы читать невозможно – переводят люди, далёкие от этой тематики.

Приготовьтесь купить n-ое количество электронных книг (можно и в бумаге, но а: везти будут долго; б: будет дороже). Стоят они примерно 25-80 долларов. Да, дорого, но оно того стоит.

Шаг 0: Необходимый базис

Программировать под iOS вы будете в основном на языке Objective-C. Objective-C — это ООП (объектно-ориентированное программирование) надстройка над языком C. Так что C знать обязательно. Необходимые знания можно почерпнуть в книге
David Mark, James Bucanek. Learn C on the Mac 2nd Edition [1]

Шаг 1: Objective-C

Далее, нужны знания языка программирования Objective-C. Великолепный язык, относительно легко изучаемый.
Итак, основы языка можно изучить по книгам:
Scott Knaster, Waqar Malik, Mark Dalrymple. Learn Objective-C on the Mac 2nd Edition [2]
или
Aaron Hillegass. Objective-C Programming: The Big Nerd Ranch Guide [3]

Следующая книга является, скорее, приложением к предыдущим
Matthew Campbell. Objective-C Recipes [4]

Следующее, что надо знать для полноценного ООП – паттерны проектирования. В идеале, крайне желательно прочесть книгу Банды Четырёх (Gang of Four. Design Patterns). Далее, книга о паттернах применительно к Objective-C:
Carlo Chung. Pro Objective-C Design Patterns for iOS [5]

Шаг 2: iOS SDK и iOS UI

iOS SDK – это комплект средств разработки под iPhone, iPad и iPod. Без его отличного знания – никуда.
iOS UI – пользовательский интерфейс. Проще говоря, это кнопочки, ползунки, надписи и т.д и т.п. – всё что вы видите на экране вашего устройства. Естественно, и это надо знать как «отче наш».
Для начала, следует прочесть эту книгу
David Mark, Jack Nutting, Jeff LaMarche, Fredrik Olsson. Beginning iOS 6 Development [6]

Далее, её продолжение:
David Mark, Alex Horovitz, Kevin Kim, Jeff LaMarche. More iOS 6 Development [7]

Ну и в довершении, можно пролистать приложение к двум предыдущим книгам
Hans-Eric Gronlund, Colin Francis, Shawn Grimes. iOS 6 Recipes [8]

Весьма хороша следующая книга – вполне тянет на звание «полное руководство по разработке для iOS». К сожалению, книга несколько устаревшая, но это нисколько не умаляет её достоинств.
Joe Conway, Aaron Hillegass. IOS Programming: The Big Nerd Ranch Guide, 3rd Edition [9]

Следующие две книги, так сказать, для совершенствования. Каждая из них является сборником уроков и объяснений тонкостей iOS SDK. Все эти материалы можно найти в разрозненном виде в этих ваших интернетах, но в этих книгах это собрано, отсеяно и отсортировано с особой любовью.
iOS 5 By Tutorials, Second Edition [10]
iOS 6 By Tutorials [11]

Приложение: Игры

Предыдущих книг вам будет достаточно, чтобы написать несложные приложения для вашего мобильного устройства. Сложные вы будете писать после огромного количества практики. В какой-то момент вам захочется написать игру, и этих знаний вам просто не хватит. Для написания игр вам потребуется во много раз больше знаний: математический базис, отличное знание геометрии вплоть до трёхмерной, физический базис, основы проектирования AI и многое, многое, многое другое… Но этим вы займётесь сами. Я же просто перечислю набор книг, которые желательно прочитать разработчику игр под iOS.
Lucas Jordan. Beginning iOS 5 Games Development [12]
Kyle Richter. Beginning iOS Game Center and Game Kit [13]
Steffen Itterheim, Andreas Low. Learn cocos2d Game Development with iOS 5 [14]
Jayant Varma. Learn Lua for iOS Game Development [15]
Mike Smithwick. Pro OpenGL ES for iOS [16]
Sue Blackman. Beginning 3D Game Development with Unity [17]
Philip Chu. Learn Unity 4 for iOS Game Development [18]
Robert Chin. Beginning iOS 3D Unreal Games Development [19]

Послесловие

Вы думаете, что прочтя все эти книги, вы станете Senior iOS Developer? Нет, нет, нет и нет!
Когда-то Стив Балмер, став генеральным директором корпорации Microsoft, рассказывал, кто приносит успех операционным системам и платформам: «Developers! Developers! Developers! Developers!».
Я переиначу его слова: что делает разработчика мастером? Практика! Практика! Практика! Практика!
Никакие знания не перевесят практики. Лично мой совет: прочитав по моему обзору все книги от первой до «Beginning iOS 6 Development» включительно, устроиться в любую компанию на должность junior разработчика. На любые условия. На любую зарплату. Этот опыт бесценен – его не получишь из книг.
Удачи!

Автор: Armi0000

Источник [20]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/programmirovanie/25112

Ссылки в тексте:

[1] David Mark, James Bucanek. Learn C on the Mac 2nd Edition: http://www.apress.com/programming/iphone-ipad/9781430245339

[2] Scott Knaster, Waqar Malik, Mark Dalrymple. Learn Objective-C on the Mac 2nd Edition: http://www.apress.com/programming/iphone-ipad/9781430241881

[3] Aaron Hillegass. Objective-C Programming: The Big Nerd Ranch Guide: http://www.bignerdranch.com/book/objective-c_programming_the_big_nerd_ranch_guide

[4] Matthew Campbell. Objective-C Recipes: http://www.apress.com/programming/iphone-ipad/9781430243717

[5] Carlo Chung. Pro Objective-C Design Patterns for iOS: http://www.apress.com/programming/iphone-ipad/9781430233305

[6] David Mark, Jack Nutting, Jeff LaMarche, Fredrik Olsson. Beginning iOS 6 Development: http://www.apress.com/programming/iphone-ipad/9781430245124

[7] David Mark, Alex Horovitz, Kevin Kim, Jeff LaMarche. More iOS 6 Development: http://www.apress.com/programming/iphone-ipad/9781430238072

[8] Hans-Eric Gronlund, Colin Francis, Shawn Grimes. iOS 6 Recipes: http://www.apress.com/programming/iphone-ipad/9781430245995

[9] Joe Conway, Aaron Hillegass. IOS Programming: The Big Nerd Ranch Guide, 3rd Edition: http://www.bignerdranch.com/book/ios_programming_the_big_nerd_ranch_guide_rd_edition_

[10] iOS 5 By Tutorials, Second Edition: http://www.raywenderlich.com/store/ios-5-by-tutorials

[11] iOS 6 By Tutorials: http://www.raywenderlich.com/store/ios-6-by-tutorials

[12] Lucas Jordan. Beginning iOS 5 Games Development: http://www.apress.com/programming/iphone-ipad/9781430237105

[13] Kyle Richter. Beginning iOS Game Center and Game Kit: http://www.apress.com/programming/iphone-ipad/9781430235279

[14] Steffen Itterheim, Andreas Low. Learn cocos2d Game Development with iOS 5: http://www.apress.com/programming/iphone-ipad/9781430238133

[15] Jayant Varma. Learn Lua for iOS Game Development: http://www.apress.com/programming/iphone-ipad/9781430246626

[16] Mike Smithwick. Pro OpenGL ES for iOS: http://www.apress.com/programming/iphone-ipad/9781430238409

[17] Sue Blackman. Beginning 3D Game Development with Unity: http://www.apress.com/9781430234227

[18] Philip Chu. Learn Unity 4 for iOS Game Development: http://www.apress.com/9781430248750

[19] Robert Chin. Beginning iOS 3D Unreal Games Development: http://www.apress.com/9781430240358

[20] Источник: http://habrahabr.ru/post/166213/