Как бих научил iOS разработка

От време на време хората ме питат как да науча развитието на iOS. И така, ето.

Преди да започнете, бъдете сериозни към крайната си цел. Опитвате ли се да прототипирате концепция, да получите финансиране и след това да наемете някой друг, който да се справи с нея? Вие сте „генералист“, който трябва да се качи на скорост много бързо. Имам добри новини: Видях хората да изпращат приложения само за няколко седмици.

Но моят съвет не е за оптимизиране на първия ви проект. Мисля повече за дългия път. Вече знаете как да програмирате и сте готови да инвестирате добра част от времето, овладявайки разработването на iOS.

Стъпка 1: Изберете нещо, което да изградите за себе си

Може би съм свързан с различни кабели, но не мога просто да прочета учебник. Имам нужда от контекст и практика.

Когато уча език, имам нужда от надраскване за подсилване. Смятах, че Игралните площадки са безценни при обучението на Swift.

За да научите iOS отгоре надолу, представете малко приложение, което драска сърбеж. Ако ви мотивира, това може да е списък с тодо, приложение за медитация или метеорологична проверка. Бих се наклонил към нещо по-лично. Ей, може би приложение, което да помогне на бизнеса на родителите ви?

Стъпка 2: Изучете езиците

Преди да разберете платформата, познайте езиците отвътре и отвън. Да, езиците са множествено число.

Докато Swift достигна критична маса, там има цял куп код на Objective-C. Не е необходимо да владеете всеки детайл от езика, но трябва да можете да го прочетете. Преди ден преподавах на инженери Objective-C. Това е малък език.

Swift: Прочетете книгата на Език за програмиране Swift на Apple. Ако искате бързо въведение, гледайте Първи стъпки с Swift от годишната конференция за разработчици на Apple, WWDC.

Цел-C: Apple има безплатен справочник, който върши работата.

Не мога ли да използвам [любим език]?

Има инструменти на трети страни за изграждане на приложения в JavaScript, C #, каквото и да е. Избягвайте ги като чумата. Повечето приложения за iPhone използват Swift и Objective-C. Цялата верига от инструменти на Apple е оптимизирана за тези езици. Когато алтернативният ви език се счупи по мистериозни причини - и това ще стане - вие сте сами.

По-голямата част от времето ви ще бъде отделено за изучаване на рамки на Apple, а не за синтаксис. Кодовите проби за тези рамки ще бъдат в Swift, така че все пак трябва да научите Swift.

Стъпка 3: Прочетете ръководствата на Apple

Не липсват книги и уроци и екрани за трети страни за разработка на iOS. Някои са добри, други са лоши и твърде много се опитват да ви продадат на нещо, от което не се нуждаете. Крайният авторитет е Apple и те раздават изключително безплатно безплатно съдържание.

Прочетете Започнете да разработвате приложения за iOS с Swift. След това прочетете всяко ръководство в „Къде да отида оттук.“ След това, ако искате да чуете тема, изразена по различен начин, прегледайте видеоклиповете на WWDC. След това, ако искате да разгледате задълбочено, прочетете документите.

Ако документите на Apple са прекалено сухи, сайтове като NSHipster обхващат много теми за начинаещи с по-небрежен тон. Сайтове като RayWenderlich.com обхващат съдържание в урок. Objc.io има страхотно задълбочено писане, но вероятно е твърде напреднал за вас в момента.

Има моменти, когато трети автори не са съгласни с Apple. Опитайте по начина на Apple, засега.

Стъпка 4: Спрете да четете. Просто изградете приложението си.

Усвоихте всичко, което Apple ви даде? Можете ли да ми кажете какво е MVC? Какво прави UIView? Знаеш ли как да губиш Google? Имаш всичко необходимо. Отидете да създадете приложението си.

Сериозно. Просто отидете да го изградите.

Попадате на точка, в която искате: „Как да променя цвета на фона на изгледа?“ Първият резултат от търсенето ще бъде преливане на стек. Проверете го с документацията на UIView.

След като преминете от концепции на високо ниво и в „Как да направя всъщност X“, това е всичко в Google. Попитайте всеки програмист как да напише персонализирана анимация за преход между два контролера на изгледа. Отговорът: "Гугвам го."

Примамливо е да мислите, че можете да овладеете нещо, като просто прочетете само още една публикация в блога или гледате още един видеоклип. Не. Вероятно разбирате основите. Вие достигате следващото ниво чрез опит и грешка.

Какво ще кажете за тези неща за MVVM / VIPER / FRP?

Ако четете прекалено много, преди да надградите и се отдалечите твърде далеч от Apple, ще прочетете за различни iOS архитектури. Те се опитват да решат проблеми, които все още не разбирате. Те са измислени от трети страни, така че Apple не ги одобрява.

Създайте приложение, използвайки скучната архитектура на Apple, MVC. След като направите това за известно време, върнете се и разгледайте тези архитектури. Не ги използвам, но ей, може би ще намерите стойност в тях.

Но какво ще кажете за мениджърите на пакети и инструментите за изграждане ?!

Може да се направи аргумент, че трябва незабавно да научите за Carthage и CocoaPods, които са инструменти на трети страни за управление на зависимости. Или Fastlane, който обещава да автоматизира сложни задачи за изграждане.

Когато се отклоните от поддържаната от Apple верига от инструменти, нещата стават нестабилни, тъй като разчитат на неподдържани API. При някои проекти времето, което спестяват тези инструменти, може да струва случайно счупване.

Но имайки предвид толкова много екипи да избягват тези инструменти поради главоболието си, не бих ги считал за съществени. Точно обратното. Според мен не трябва да използвате тези инструменти, докато не разберете какво се случва отдолу.

Стъпка 5: Проучете екосистемата

Apple може да е авторитет, но се нуждаете от различни мнения, за да балансирате с помощта на готината помощ. Опитните разработчици извън Купертино се оплакват от всички крайни случаи в API на Apple и ужасните хакове, които са необходими, за да се справи с тях.

Но щом влезете в по-голямата екосистема на iOS, ще се натъкнете на аргументи за Интерфейс Builder, Core Data, Auto Layout и много други неща. Те винаги са подхранвани от анекдоти и мнения, а не от данни.

Използвайте критично мислене. Отстъпете и попитайте откъде идва авторът. Необходими са само няколко публикации в блога, за да се превърнете в авторитет по дадена тема, дори ако авторът никога не е доставял нещо значимо около нея.

Не ви препоръчвам да слушате само хора, които работят във Facebook / Instagram / Twitter / Pinterest. Тези приложения имат много различни изисквания от 99% от приложенията в света. Филтрирайте съветите им през обектива: „Това правите, когато имате сто разработчици, работещи върху приложение, използвано от стотици милиони хора.“ Те се навеждат към отвращение към риска.

В другия край на спектъра малките консултанти имат полезна информация благодарение на разнообразието от проекти, които жонглират. Но понякога те препоръчват нови езици и рамки, преди да са достатъчно стабилни за критични проекти.

Използвайте критично мислене, особено на хора с много последователи.

Стъпки 6 до Build: Създайте различно приложение

Току-що завършихте приложение за списък с Тодо? Страхотен. Сега работете върху нещо различно, като приложение за филтър за снимки, така че ще научите за AVFoundation. Когато свършите това, създайте нещо, което изисква карти, и ще научите за GPS и MapKit.

Започнах в разработката на какао преди десет години, на Mac и все още уча нови неща. Единствената тайна е да намерите нови начини да предизвикате себе си.