В Сан-Франциско продолжается главная конференция разработчиков под Apple-платформы: iOS, Mac OS X и новую watchOS 2. Неделя в самом разгаре, сессии в основном технические. Уже более-менее понятно, с чем нам придется иметь дело в ближайшие месяцы, адаптируя и совершенствуя свои приложения к релизу новых систем, так что спешу поделиться новостями с вами.



Аналитика в iTunesConnect


У встроенной в iTunes аналитики есть несколько преимуществ перед всеми остальными. Она бесплатная, автоматически работает без всяких настроек, предоставляет уникальные данные, никому больше не доступные (например, просмотры в AppStore).
Итак, iTunesConnect Analytics вышла из беты и обзавелась новыми фичами. Все данные, которые собираются в облаках эппла, можно поделить на три категории:
  • данные из AppStore — количество просмотров, источники переходов на страницу приложения (работают из коробки, без дополнительных настроек и спец.ссылок!), активность маркетинговых компаний
  • данные по продажам — количество покупок, количество скачиваний, in-app purchase, retention rate
  • использование приложения — переходы по экранам, краши, ошибки и прочее.

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

Multitasking в iPad


В новой iOS 9 в iPad появится режим split-screen. Полноценная работа у двух приложениях будет доступна только на iPad Air 2, но наложение одного поверх другого и режим видео «картинка-в-картинке» можно будет увидеть и в более слабеньких моделях (mini, mini 2 и Air).

Сегодня много говорили о том, как в таких условиях приложениям работать и не страдать от тормозов, нехватки памяти и прочих десктопных проблем. Оптимизировать нужно нагрузку на CPU, GPU и работу с памятью. И если в первых двух случаях все просто будет медленно работать, то в последнем варианте система может убить ваше приложение, если поверх него наложить другое, тяжелое, приложение (да, такая несправедливость).

Для умелой работы с данными рекомендуют всегда держать в «активной» памяти только то, что приложению действительно необходимо (например, картинки, которые отображаются на экране). Все прочее следует помещать в NSCache или немедленно очищать при получении Memory Warning.
Для проверки того, все ли вы сделали правильно, рекомендуют запустить ваше приложение, а поверх него системную сафари. Если не грохнулось, значит пронесет и потом.

Проектирование и дизайн для Apple Watch


Дизайн-евангелисты эппл называют три принципа дизайна для Apple Watch:
1. Personal communication
Девайс настролько персональный, насколько можно себе вообразить. Поэтому под страхом расстрела не рекомендуется беспокоить пользователя частыми нотификациями и пространными формулировками.
Рекомендуют догадываться о предпочтениях пользователя и перестраивать интерфейс. Например, системное приложение Sports запоминает выбор пользователя и его вкусы и предлагает вероятные варианты занятий спортом прежде других.

2. Holistic Design
Это красота и аккуратность. Часы сливают железо и софт в едином экстазе, и поэтому нужно использовать черный фон и выравнивание край-в-край в своих приложениях. Так сложно отличить, где закончился экран и начался корпус.
Также нужно использовать Digital Crown, к которой у нас в watchOS 2 есть полный доступ. И не забывать про Haptic Feedback — это звуки и Taptic Engine. Чем богаче приложение на реакции, тем проще им пользоваться на ходу.

3. Lightweight interaction
Этот пункт отлично обсосали еще в Android Wear Guidelines. Мысль в том, что приложение на часах используют в среднем в течение 5 секунд. За это время нужно успеть передать всю важную информацию, и на помощь нам приходят Glances и Complications. Ну а если есть что-то важное, то нужно использовать Handoff для перенаправления пользователя в релевантное место основного приложения.

Designing for Future Hardware


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

В этом году те же ребята рассказывают, как сделать умный тостер. С изготовлением прототипа, тем же Keynote’ом и прочими оригинальными подходами. В apple они занимаются придумыванием и изготовлением продуктов (Watch, iPhone, iPad и прочих), так что сессия очень полезна и имеет реальное отношение к действительности. Советую посмотреть, словами такое не передать.

Не забывайте, с чего все начиналось:
WWDC15. День первый. Keynote
WWDC15. День второй. Подробности

Комментарии (12)


  1. G0ran
    11.06.2015 12:35

    Полноценная работа у двух приложениях будет доступна только на iPad Air 2, но наложение одного поверх другого и режим видео «картинка-в-картинке» можно будет увидеть и в более слабеньких моделях (mini, mini 2 и Air).

    А допустим на The New iPad это не будет доступно, когда я обновлюсь до iOS 9?


    1. corle
      11.06.2015 12:41
      +2

      К сожалению, нет.


      1. painjkee
        11.06.2015 12:57

        Уверен, что после выхода джейлбрейка, один из первых твиков для 9 оси будет включение данного режима на всех планшетах. И что-то мне подсказывает, что все будет работать без каких-либо проблем, по крайней мере на mini retina и air и дело тут не в нехватке оперативной памяти, как где-то писали, а в банальном маркетинге новой модели планшета.


        1. Redgard
          18.06.2015 13:05

          Это было так с iPhone 4S где все вычисления происходили не на устройстве но у iPad Air 2 в два раза больше памяти и дополнительное третье ядро.

          Такие приложения как Xcom занимают почти всю память, это можно легко проверить если закрыть игру, открыть Safari и потом открыть игру заново — iOS начнет загружать игру заново. У меня у самого такое было каждый раз на iPad mini. И это совсем не экстремальный пример, очень часто нужно подсмотреть в интернет информацию про прохождению в процессе игры.

          Теперь представим себе как Safari и Xcom будут работать одновременно — ответ, никак. Я уверен что игра будет перезагружаться все время или приложения постоянно будут вылетать одновременно.

          Вы можете ответить — так нечего запускать такое огромное приложение в окне и это уже будет идеалистический спор. Может и на Android это прокатило где нет почти контроля над user experience, но на iOS все должно быть максимально просто и быстро.


  1. olegi
    11.06.2015 15:17

    Lightweight interaction

    А есть какие-то новые API чтобы понять, что пользователь «только взглянул» и «пользователь не только взглянул, но и стал всматриваться»?


    1. mc_murphy Автор
      12.06.2015 02:47

      Есть отдельно выделенные куски приложения на часах — Glances, Notifications, Complications. Как правило, именно их просматривают быстро и на ходу.
      А основное приложение WatchApp уже предполагает чуть более продолжительное взаимодействие.


  1. achekalin
    11.06.2015 18:19

    > Для умелой работы с данными рекомендуют всегда держать в «активной» памяти только то, что приложению действительно необходимо

    Мне одному кажется, что за обратное руки надо отрывать всегда, не важно, на iPad ли запущен софт, или на супер-мега-компьютере? ) Может, хоть этот подход научит иных девелоперов писать чуть аккуратнее, а то прямо обидно бывает, когда после 15 минт игры во что-то такое, простенькие по графике, корпус девайс стал заметно теплый, а батарея — не менее заметно «уменьшилась».


    1. mc_murphy Автор
      12.06.2015 02:51
      +1

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

      Поэтому отрывать руки сразу не надо — ведь разработчиков много, а опытных и толковых мало. А надо прививать культуру и сессии такие рассказывать.)


      1. sman
        12.06.2015 10:17

        Если не трудно, поинтересуйтесь пожалуйста у разработчиков Apple (если предоставится возможность), почему Springboard так сильно зависит от числа установленных приложений? Дольше выполняются операции по удалению приложений (переход в режим удаления), больше занято оперативной памяти — кажется что возможности для оптимизации должны быть, тем более у них. Ещё интересно как построена система QA у них, используют какие-то общедоступные сервисы/технологии или есть своё специализированное ПО? Пробовали ли они поставить на устройство 300-500 приложений и поработать с ним?


      1. olegi
        17.06.2015 13:36

        А видео с этой сессии общедоступно?


        1. sman
          17.06.2015 14:02

          Lightweight interactions — session 805 (Apple Watch Design Tips and Tricks)

          Designing for Future Hardware — session 801

          Доступно в приложении WWDC.


    1. Redgard
      18.06.2015 13:08
      +1

      Некоторые разработчики гонятся за кросс платформенностью в ущерб производительности. Есть и технологии и фреймворка от Apple которые позволяют писать эффективный нативный код. Мы должны донести это сообщения до разработчиков. Я стараюсь отдавать приоритет эксклюзивным приложениям.