Релиз iOS 12 . Ревью, часть II

Айос 12 ревью разрабов Магоры, часть 2
В предыдущем посте мы начали обсуждать Айос 12, мобильной платформы от Эппл. В этой части я хочу остановиться на решениях  iOS, которые обещают обеспечить новые технические возможности для мобильных приложений.

Аутентификация (Auth Services)

 

В 12й версии Айос появился фреймворк аутентификации. Его задача: обеспечение распознавания подлинности пользователя, приходящего с разных устройств. Принцип единого окна SSO  (Single Sign-On) позволяет юзеру сохранять и редактировать пароли,  а также индивидуально настраивать режим автозаполнения, а приложению — запоминать и переиспользовать пользовательские сессии, не компрометируя пароли.

  Принцип единого окна Single Sign-On для аутентификации пользователей

В результате пользователи мобильных телефонов и планшетов под управлением новой платформы iOS 12 получают удобную генерацию сложных паролей и освобождаются как от их запоминания, так и от ручного ввода.  Заодно, добавлена функция интеграции отправки кода подтверждения через SMS в нативные мобильные приложения.

 
С вводом Auth Services, веб-сайты и мобильные приложения Apple смогут обмениваться кукиз и токенами для идентификации пользователя в защищенном, зашифрованном виде.

Функция CarPlay для Навигатора

Если вы разрабатываете навигационный сервис или приложение, то эта новость для вас: начиная с iOS 12  CarPlay (функция автоматической интеграции мобильных телефонов с информационно-развлекательными системами) легко внедряется в нативное iOS приложение  из раздела Навигация. Для обычных пользователей это шаг к неисчерпаемому источнику музыки и другого развлекательного контента, доступного в один клик. По удобству использования его можно будет сравнить с Apple Watch.

Network Framework (Сетевой фреймворк)

 

Следующее нововведение от Эппл относится к технической стороне вопроса и не освещается так же широко, как остальные факты. И именно оно, с моей профессиональной точки зрения, — одна из ключевых инноваций последнего релиза. Если задача стоит в разработке высоконагруженного сетевого приложения, обновляющего данные в режиме реального времени, как, например, онлайн чат или многопользовательская игра, этот фреймворк будет вам необходим.

mobile games and online chats development opportunities with ios12

С его появлением низкоуровневое сетевое программирование приобретает более простую, а главное — теперь стандартизированную, архитектуру и становится реализуемым на базе готовой (и выверенной самими разработчиками Apple) платформы. А значит, что решения в области многопользовательских игр можно начинать с непосредственной работы по программированию функционала, в то время как раньше необходимо было потратить несколько недель на подготовку, начиная от планирования архитектуры и заканчивая тестированием кастомного слоя передачи данных.

 

Что это значит для бизнеса?

Нетривиальные задачи, такие, как разработка многопользовательских онлайн игр или высоконагруженных сетевых чатов на тысячи пользователей, будут выполнены быстрее. Продвинутый редактор кода, помимо уменьшения объемов работ для программистов, также потребует  меньше времени для тестов.

Все вместе это сократит стоимость разработки и позволит порадовать пользователей новыми возможностями, надежностью и увеличенным быстродействием самих приложений. 

Естественный Язык

 

Если еще пару лет назад мы все смеялись над роликами из серии  “Окей, Гугл”,  a чтобы реализовать механизм понимания человека в мобильном приложении разработчикам надо было развивать собственные отделы машинного обучения и искусственного интеллекта, то сегодня естественный язык становится частью коммуникации в мире мобильной разработки.

И, благодаря Эппл, с iOS 12 внедрить в приложение возможности распознавания ключевых слов, мест, дат, и даже имен людей, для разработчика стало значительно проще. И чтобы у ваших пользователей появилась возможность общаться с приложением, как с человеком, не надо ждать месяцы, все это можно внедрить уже сейчас.

Прощай, OpenGL

Этот, на первый взгляд, узко технический вопрос затрагивает множество проектов. Де Факто OpenGL ES долгое время был стандартом для разработки игр на мобильных устройствах, хотя исторически пришел из десктопной разработки. И как все несущее в себе шлейф излишних требований, связанных с другим железом, был тяжеловесен и неуклюж. Фактически, не только мобильные игры, но и любые проекты со сложной графикой, от научных чартов и визуализации биржевых котировок до сложной игровой анимации в качестве кросс-платформенного решения, использовали OpenGL.

Если ваши мобильные приложения на Айос затрагивают любой из вышеперечисленных вариантов, то пора сменить технологию.

В результате вы получите преимущества в скорости работы, плавности графики, снижении энергопотребления и удобстве разработки для iOS платформы.

Что стоит добавить…

Есть пара-тройка моментов, которые не засветились на первых страницах в официальных релизах Apple, но являются ключевыми для разработчиков. Например, доступ в режиме реального времени к камере на iPhone X.  И спецэффекты, и пользовательское взаимодействие можно внедрять прямо в 3D сцены. Больше не требуется сложная разработка машинного обучения с нуля.

Новый фреймворк CreateML позволяет на MacOS создавать и обучать пользовательские модели, сохраняя их для дальнейшего использования. 

Применение интегрированного в iOS 12 механизма Maсhine Learning становится общедоступным для программистов средней квалификации, а экспертам дает больше времени на развитие и обучение моделей.

Сама по себе технология машинного обучения становится прозрачнее для разработчиков, что в ближайшее время скажется и на расширенном функционале мобильных приложений.

Делай раз, делай два…

Каждый год с выходом новой бета-версии мобильной платформы владелец мобильного приложения должен запланировать тесты для своего проекта и быть готовым к переходу на новую платформу.

Не бойтесь первых ошибок, т.к. возникающие вопросы могут быть связаны не с проблемой вашего приложения, а с недоработками самой системы. Но, вот если и через несколько апдейтов проблемы остаются — это повод, чтобы заглянуть в свой собственный код.

Так или иначе, к моменту официального запуска обновленной OS ваше приложение должно работать на ней безупречно.

Вспомнить все

С каждым новым релизом платформы Эппл отказывается от поддержки части устаревших моделей телефонов.  Рекомендую и вам, как владельцам мобильного продукта, регулярно отслеживать ситуацию, поддерживая 2-3 из последних версий iOS.recall all previous ios technologies Это дает покрытие до 95% пользователей, в то же время обеспечивая оптимальную стоимостью поддержки и позволяя избежать проблем с устаревшими мобильными устройствами, на которых невозможно обеспечить комфортную работу пользователя.

Высокая стоимость поддержки более ранних версий обусловлена увеличением трудоемкости тестов, т.к. необходимо проводить проверку на всех мобильных девайсах, а возможности критических ошибок на старых смартфонах увеличиваются в разы, в то время как часть функционала вообще не представить в удобном для пользователя виде из-за ограниченности ресурсов (тот же ML никак не реализовать на iOS 8, т.к. это часть операционки).

  • Ежегодно заранее планируйте и анонсируйте для пользователей отказ от ранних версий системы. Например, на сейчас это —  iOS 9. И заодно пора проверить, поддерживает ли ваше приложение функции, представленные на iOS 10, которые уже стали обязательными для большинства пользователей Айфонов и Айпадов. Бывает, что-то уходит из под контроля, хотя давно уже перешло в категорию ‘must have”.

Фишки более ранних релизов

  • Фреймворк Speech, обеспечивающий распознавание голоса,  отвечает за интеграцию голосового ассистента Сири в ваше мобильное приложение.
  • Механизм анимации, появившийся в iOS 10, эффективнее предыдущей версии осуществляет плавный переход между состояниями экрана или отдельных элементов.
  • Режим перетаскивания (Drag and Drop), появившийся в iOS 11, отличное дополнение, активно используемое на планшетах.

Наш  десятилетний опыт в разработке показывает, что многие забывают дополнять свои продукты функциями, которые присутствуют по-умолчанию у конкурентов, запустивших свои мобильные приложения позже.

 
Не повторяйте этих ошибок и вносите в свой проект не только флагманские изменения для новаторов, но и поддерживайте лояльность старых клиентов, расширяя функционал уже существующих приложений.

Заметки для разработчиков

про Swift 5 и Xcode 10

В 2018 круто эволюционируют и инструменты для разработчиков, что радует нашу команду iOS, и я готов делиться с вами самыми интригующими новостями о нативном языке программирования и редакторе кода. swift-5-became-more-powerful

Компилятор Xcode был “кошмаром на улице Вязов” начиная с первой версии Свифта, норовя сбойнуть или слететь каждый раз, как только ты думал, что наконец обошлось…. Вечно неработающая подсветка синтаксиса, или повторяющаяся раз за разом ошибка компиляции, которая ( о, магия!) не проявлялась в финальной версии при заливке готового проекта.

Поддержка большого проекта напоминала жестокие пытки, когда при минимальных изменениях в коде вынужден ежеминутно пересобирать всю программу и повторять эту операцию по 20 раз в день, чтобы полностью протестировать приложение.  Ура, мы вынесли это.

На пятый год своего существования Swift, наконец, стал предсказуемым, удобным и популярным, превратившись в реальный инструмент для написания нативных мобильных приложений под iOS.

И в дополнение, редактор Xcode 10 анонсирован Эпплом как панацея для решения оставшихся вопросов к удобству и скорости написания кода. Справедливо сказать, что у вас всегда есть выбор: Swift или Objective-C.

  • Наш iOS  отдел перешел на написание кода на Swift, когда была запущена третья версия, предназначенная для коммерческого использования. Мое мнение, что до Swift 3 работа программиста состояла в сплошной технической поддержке и устранении вновь обнаруженных багов, связанных с изменениями в обновляемом языке и библиотеках.
  • Сейчас Свифт более стабилен и каждый переход к новой версии происходит значительно легче.
  • Поскольку Swift пока нацелен только на распространение продуктов с открытым кодом, то разработка собственной коммерческой закрытой библиотеки на Swift пока не рациональна.

От Swift 5 мы ждем, наконец, стабильной работы ABI со стандартными библиотеками (Swift Dynamic Library). Это позволит сократить размер приложения, поскольку не потребует включения в пакет всех стандартных функций. И уже близок тот день, когда можно будет полноценно работать на Свифте, обеспечивая разработку сложных  B2B сервисов.

Что нового: поддержка регулярных выражений и первоклассное решение для параллельной обработки данных с асинхронным режимом обработки async/await.

Если все заявленные свойства войдут в Swift 5, то он станет одним из самых передовых и продвинутых языков программирования в своем классе.

Заключение

Вы нацелены на долгосрочное развитие своего мобильного приложения? Тогда осторожно внедрять технологии спустя два официальных релиза, когда они уже стали чем-то обыденным, не самое стратегически правильное решение.

 
Чтобы сохранить своих пользователей и уберечь их от желания подружиться с программой конкурента, ваше приложение должно стать не просто удобным, а незаменимым.
  • Интегрируйте возможности системы iOS, по-максимуму используя новые функции. Чтобы вашим продуктом пользователь делился на правах новатора со своими друзьями и коллегами, формируя заинтересованную референтную группу для развития вашего бизнеса.

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