iOS-розробник: що вивчати, де брати досвід?

iOS-розробник

Серед плюсів професії iOS-розробника – висока затребуваність, добрі фінансові перспективи, престиж. Крім того, конкуренція на ринку праці нижча, ніж, наприклад, у світі Android-розробки.  

У чому особливості iOS-розробки, і чи вона відрізняється від роботи з Android?

Почати кар'єру iOS-розробника непросто хоча б тому, що необхідні девайси коштують недешево. На Windows писати під платформу від Apple без різних хаків та обходів не можна, потрібен MacBook або Mac mini, бажано iPhone. Не кожен студент або інженер-початківець можуть собі їх дозволити.  

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

Останнім часом серед розробників популярно створювати програми відразу і для Android, і для iOS, тобто кросплатформні. Через це в тренді такі інструменти і технології, як React Native і Flutter, що став дуже популярним. Останній дозволяє писати не тільки мобільні додатки, але й для Інтернету та робочого столу, причому, робити це на Windows.

Чи можна входити в мобільну розробку через кроссплатформенну розробку, чи краще починати з нативної під одну систему?

Почати можна з будь-чого, але знання хоча б однієї нативної платформи буде плюсом. Якщо у тебе є Android-девайс, непогано було б спробувати написати до нього додатки, розібрати якісь особливості.

Зрозумівши одну платформу, простіше буде розібратися в іншій. Кардинальних відмінностей між ними немає, базові принципи приблизно ті самі.

Інша річ, що потрібно буде вивчати ще одну мову програмування. Хоч Kotlin та Swift загалом схожі, але пересісти за пару днів з одного на інший не вийде. Обидві мови часто модернізуються, покращуються, і тримати рукуна пульсі, і тут і там досить складно. Тому Flutter пропонує такий підхід: одна мова, якою можна писати під різні платформи.

Які мови та технології зараз популярні у iOS-розробці?

Як у Android є Java та Kotlin, так і у iOS є дві мови програмування: Objective-C та Swift. Причому Objective-C зараз практично не використовується. Рідкісні винятки — якісь старі проекти, які треба підтримувати. Але оскільки в одному проекті можна одночасно використовувати і Swift, і Objective-C, останній йде з вживання.

Якщо загалом описати підхід до створення сучасної програми, то це архітектури VIPER або MVVM, або їх різновиди, плюс у 9 з 10 проектів використовуються фреймворки для реактивного програмування: RxSwift, ReactiveSwift або Combine - фреймворк від Apple, доступний "з коробки" версії iOS 13

Тема реактивного програмування може бути складною для новачків. В університеті та практично у будь-якому курсі навчанні основ Computer science фундамент ґрунтують на об'єктно-орієнтованому програмуванні. Реактивне – це наступний крок. Програми можна розробляти і без нього, але воно дає нові можливості, дозволяє робити багато речей простіше і швидше.  

Що потрібно знати, щоб розпочати кар'єру iOS-розробника?

Після освоєння бази приступайте до вивчення мобільної розробки та основ синтаксису Swift, мови програмування для iOS. Образно кажучи, ви повинні розуміти, що таке масив, а й уміти написати його. Спочатку навіть не обов'язково на Swift. Якщо, наприклад, вмієте робити це на Java або C#, теж добре, то точно буде простіше влитися. Потім беріться за середовище Xcode, документацію, вивчайте приклади.

Коли людина приходить на стажування, більшість роботодавців очікує, що вона вже щось знає та розуміє. Якщо вона цікавиться темою, самостійно намагається розібратися у ній, вивчити предмет це помітно. Тому важливо виявляти ініціативу та не чекати, що хтось прийде і все розповість. Цей підхід працює ще й тому, що допомагає швидко зрозуміти, чи це твій шлях чи ні.

Спочатку людина пише “Hello World!”, потім намагається зробити складніші речі, пише власний простий додаток. І вже у процесі розуміє, подобається їй це заняття чи ні. Важливо, аби подобалося.

Чи обов'язково мати профільну університетську освіту, чи вистачить курсів самостійного вивчення?

Часті випадки коли людина входить у цю сферу з зовсім непрофільною освітою, яка з нуля піднімає всі знання. Звичайно, будуть невеликі прогалини, які б могла закрити університетська база. Але загалом жодних серйозних проблем, як правило, не виникає. Адже, якщо хочеш і можеш розібратися в чомусь, просто сідаєш і читаєш.

Де взяти інформацію?

Інформації зараз дуже багато: є і YouTube, і багато англомовних і не тільки ресурсів, на яких можна знайти покрокові керівництва, що і в якому порядку вчити. Є платні та безкоштовні курси: стенфордський курс iOS-розробки, курс від Angela Yu до Udemy.

Можна знайти чат або форум і поставити запитання там – розробники підкажуть, що потрібно вивчати і яким шляхом йти. Щоправда, кожен виходитиме зі свого досвіду. Але зазвичай у Google можна знайти відповіді практично на всі запитання.

Чи вистачає iOS-розробників, чи велика серед них конкуренція?

Попит на спеціалістів стабільний. Як у двохтисячному був бум web-розробки, так зараз у тренді розробка мобільних додатків. І ніхто нікуди від них йти не збирається. Хіба що можна спостерігати зрушення у бік кросплатформи. Але й нативки поки що нікуди не подінуться — є багато технічно складних проектів, зокрема й старих, які потрібно підтримувати.

За належної мотивації людина цілком може почати кар'єру і потрапити до якоїсь компанії. А коли з'явиться досвід, вибір роботи стане чималим.

Де отримати досвід фахівця-початківця?

Досвід можна отримати, коли вже є якась база знань. І краще мати перший досвід комерційний, працюючи над проектом у компанії. Некомерційний досвід люди отримують, коли, наприклад, створюють власні додатки. Це теж корисно, але цінується менше, оскільки таку роботу не контролюють спеціалісти.

Чи є шанс влаштуватися в компанію у людини без досвіду, якщо вона на співбесіді продемонструє добрі знання та мотивацію?

Звичайно, це і є найважливіші якості. Досвід – справа наживна. Якщо людина навчається і мотивована, вона швидко схоплюватиме матеріал, зможе розібратися в роботі. Якщо ти на співбесіді демонструєш зацікавленість, плюс, у тебе є якась база — одного бажання, звичайно, теж недостатньо — навіть якщо немає практичного досвіду, шанси будуть непоганими.

Тренд такий: замовники хочуть робити додатки для більшої кількості платформ за менший час та з меншими бюджетами. Через це стала такою затребуваною кросплатформова технологія. З'явилися потужні інструменти, яких раніше не було, таких як Flutter та React Native. Часто створювати одну кодову базу для різних платформ швидше і дешевше, ніж робити окрему ітерацію для кожної. Тож галузь розвивається у здоровій конкуренції: дешевше, швидше та скрізь.


Читати також