Подходит к концу 2014 год, и сейчас самое время подвести итоги и выделить ключевые тренды в iOS разработке.
Functional Reactive Programming
Благодаря фреймворку ReactiveCocoa, новая парадигма программирования все чаще используется среди iOS разработчиков.
Отказоустойчивость, отзывчивость, ориентированность на события и масштабируемость — вот четыре принципа реактивного программирования. Подробности можете узнать в реактивном манифесте (перевод на Хабре).
Для себя я выделил следующие преимущества реактивного подхода:
- loose coupling — потоки события позволяют уменьшить связанность между различными частями кода;
- explicit state — состояние программы определяется набором событий, и поэтому им становится легко управлять.
В качестве альтернативы реактивному подходу рекомендую посмотреть на Futures. Есть как минимум два интересных фреймворка: PromiseKit и CollapsingFutures
MVVM
Model-View-ViewModel (MVVM) представляет из себя UI design pattern и призван заменить привычный всем MVC. Благодаря ReactiveCocoa, MVVM начал бурно набирать обороты. Вы можете начать свое знакомство с MVVM с этого туториала.
Swift
Появление нового языка шокировало и одновременно обрадовало многих разработчиков.
Все мигом кинулись осваивать новый язык, и как грибы после дождя, стали появляться различные Swift библиотеки.
Пока что, из-за сырости среды разработки, язык считается непригодным для продакшн. Но это не значит, что его стоит игнорировать. Кстати, не так давно поддержка Swift появилась в AppCode.
Realm
Realm представляет из себя базу данных для мобильных устройств и является заменой SQLite и CoreData.
Ключевые особенности Realm:
- низкий порог вхождения
- высокая скорость
- эффективное использование памяти
- большой набор платформ (доступна под Android, iOS, OSX)
Благодаря этим особенностям и тому, что всем лень читать документацию по CoreData, Realm стал очень популярен, поэтому непременно обратите на него свое внимание.
iOS 8
Как всегда, выход новой версии iOS можно назвать главным событием года. Разработчикам стали доступны новые возможности, из которых хочу особенно выделить следующие:
- Handoff — интеграция мобильного и desktop приложений;
- HealthKit — вся информация о здоровье пользователя в одном месте;
- App Extensions — появилась возможность расширять функциональность системы при помощи расширений. Теперь можно делать кастомные клавиатуры, виджеты для Today;
- TouchID — наконец-то появилась возможность для работы с TouchID;
- Metal — новый низкоуровневый фреймворк для работы с графикой;
- Size Classes — новый подход к построению интерфейса для устройств с разной диагональю экрана;
- WKWebView — новый WebView с улучшенной производительностью. Гибридные приложения получают еще один шанс.
В общем, обязательно почитайте What's New in iOS 8 и поиграйтесь с новым API. Эта информация поможет сделать ваши приложения намного привлекательнее.
Apple Watch
Начиная с iOS 8.2 появилось API для сопряжения телефона и часов от Apple. По сути Apple Watch можно считать вторым экраном телефона, так как без находящегося рядом телефона данное устройство бесполезно.
Коротко про Apple Watch:
- есть два набора разрешений 38mm (136w x 170h) и 42mm(156w x 195h) или в пикселях 272x340 and 312x390
- нужнен iOS 8.2;
- есть три вида отображения: стандартный (запуск приложения с часов), glance (аналог виджета, т.е краткое представление данных приложения), кастомный UI для уведомлений;
- приложение для часов является расширением приложения для iOS, то есть без использования iPhone на часы ничего не установить;
- карты показываются в виде скриншота. т.е. скролить и зумить не выйдет;
- весь код выполняется на телефоне, и это значит, что нет необходимости апдейтить firmware на часах;
- можно использовать только storyboard;
- анимации можно делать только при помощи набора картинок.
Симулятор для Apple Watch уже давно доступен, так что можете начинать встраивать поддержку данного девайса в свое приложение.
Чего ожидать в 2015 году
Касаемо разработки, все должно остаться так же. Популярность Swift, MVVM и ReactiveCocoa продолжит расти, будут создаваться новые фреймворки.
Что же касается рынка приложений, то для России ситуация неоднозначна. С одной стороны, приложения и устройства стали намного дороже, а с другой, многие уже обзавелись устройствами и расставаться с ними не будут. Но одно известно наверняка: количество аутсорсеров, работающих на западных клиентов, значительно увеличится.
А какие тренды выделили бы вы?