
Ровно год назад я работал Android-разработчиком. В то время у меня не было никаких знаний о программировании под iOS, даже я никогда не пользовался продуктами Apple. Однако это было в прошлом, я параллельно разрабатывал приложения для iOS и Android.
Сегодня, оглянувшись назад, я хочу поделиться программой курса программирования iOS, который я создал сам для месячного обучения.
По моему личному опыту, я действительно рекомендую разработчикам Android научиться разрабатывать приложения для iOS. Это звучит странно, но не поймите меня неправильно. На то есть причина: Широкое расширение ваших знаний поможет вам глубже изучить свою область деятельности.
«Если вы делаете что-то, и это получается довольно хорошо, тогда вам следует заняться чем-нибудь еще прекрасным, а не зацикливаться на этом слишком долго. Просто подумай, что будет дальше ». - Стив Джобс
Возвращаясь к основной теме, я начал с написания собственного расписания на месяц, и, конечно же, все ресурсы были полностью бесплатными.
Начать работу со Swift
Вместо этого вы можете изучить Objective-C, но я действительно рекомендую вам использовать Swift. Это дружелюбно и легко учиться.
Официальный ресурс Apple - первое место, которое я посетил. Прочтите основные концепции и запачкайте руки, написав их в Xcode.
Кроме того, вы можете попробовать Курс быстрого обучения на Udacity. Хотя на сайте сказано, что это займет около 3 недель, но вы можете завершить это за несколько дней (несколько часов / дней).
В моем случае я потратил неделю на изучение Swift. Итак, если у вас есть время, вы можете изучить несколько следующих ресурсов:
Нарисуйте интерфейс своего приложения с помощью UIKit
Перейдем к визуальной и интересной части. UIKit помогает видеть вашу работу и взаимодействовать с ней на устройствах iOS. Звучит хорошо, не правда ли?
В моем случае я пошел искать бесплатный курс на Udacity. К счастью, нашел. Фундаментальный курс UIKit
Поначалу iOS Auto Layout показался мне довольно странным. Причина заключалась в том, что при разработке приложений для Android я реализовывал его интерфейс через XML-файлы макета и видел результат визуально, почти никогда не использовал функции перетаскивания. iOS, однако, совсем другое дело.
Потратив некоторое время на то, чтобы попрактиковаться в понимании механизма Auto Layout, было очень здорово, что я узнал кое-что еще, выходящее за рамки обычного стиля дизайна Android.
Кроме того, в Xcode вы можете выполнять переход между экранами, просто перетаскивая их соединение в раскадровке, в то время как для Android требуется несколько строк кода.
Вы можете изучить различные функции.
Кроме того, вы можете ознакомиться с дополнительными руководствами по iOS UIKit в разделе Основные концепции на странице iOS Raywenderlich.
Понять постоянство данных iOS
Когда вы познакомитесь с UIKit, вы сможете отображать данные для пользователей и получать данные от них. Это просто супер.
Следующим шагом будет сохранение данных, которые пользователи смогут вернуть, даже если приложение закрыто. Я имею в виду, что данные должны храниться на жестком диске пользовательского устройства, а не на удаленном сервере.
В приложениях для iOS у вас есть несколько вариантов:
- NSUserDefaults: тип пары ключей, аналогичный SharePreferences в Android)
- NSCoding / NSKeyed Archiver: сериализует совместимые классы в представление данных и из него и сохраняет их в файловой системе или через NSUserDefaults.
- Core Data: сверхмощный фреймворк iOS.
- Прочее: SQLite, Realm и др.
Сейчас многие разработчики iOS предпочитают Realm Core Data, но я рекомендую изучить Core Data, потому что это официальная постоянная структура iOS, и когда вы понимаете ее основную структуру и реализацию, вы можете сдвинуть гору.
Ресурсы, которые я просмотрел, включают:
- Сохранение данных iOS и основные данные от Udacity
- Некоторые руководства по основным данным на Youtube
- Статья о NSCoding / NSKeyedArchiver Мэтта Томпсона
Связь с внешним миром через сеть iOS
Мы живем в эпоху Интернета, поэтому ваше приложение должно подключаться к внешнему миру и обмениваться информацией с другими. Перейдем к следующему уроку: сети iOS. Вы научитесь работать с REST API в iOS. Важно помнить, что в данный момент вам не следует использовать какие-либо сторонние библиотеки. Давайте завершим этот урок на встроенных фреймворках iOS.
В будущем у вас будет много шансов поработать с классными сетевыми библиотеками HTTP, такими как Alamofire, но сейчас мы учимся. Делайте простые и официальные вещи, прежде чем переходить к другим.
Рекомендуемые курсы и учебные пособия:
- Учебник Протокол NSURL от Райвендерлиха
- Учебник NSURL Session от Райвендерлиха
- Фундаментальный сетевой курс от Udacity
Создайте свое первое отличное приложение
«Знания недостаточно. Давайте подавать заявку ». - Леонардо да Винчи
После самостоятельного изучения iOS у вас в руках будет много инструментов. Вы можете программировать на Swift, делать наброски интерфейса приложения iOS с помощью Storyboard и UIKit, сохранять данные в хранилище устройства и обмениваться информацией со всем миром через Интернет с помощью сети iOS.
Ты классный, чувак. Давайте построим все, что захотите.
Мы разработчики, которые делают крутые и ценные вещи, чтобы упростить наш сложный мир. Итак, вы можете попробовать создать приложение для iOS, которое улучшит вашу повседневную работу, поможет вашему младшему брату или даже решит глобальную проблему. Наконец, я рекомендую вам опубликовать его в магазине Apple. Это помогает вам чувствовать себя хорошо и продолжать.
3 года назад я опубликовал свое первое приложение для Android (приложение для заметок) в Google Play, изучив Android в течение 1 месяца. Год назад я также опубликовал свое первое приложение для iOS (приложение погоды) в Apple Store после месяца самостоятельного изучения. Сначала они оба были просто глупыми, но они поддерживали меня в мотивации и улучшали день ото дня.
Тебе лучше, и я держу пари. Итак, давайте создадим что-нибудь и покажем это миру.
Примечание. Есть много хороших ресурсов, вы можете найти их, выполнив поиск в Google. Приведенные выше учебные пособия и курсы - мой любимый выбор.
Пожалуйста, свяжитесь со мной через Github, Twitter, Facebook или LinkedIn. Удачного кодирования и хорошо провести время!