'

FOR WINDOWS 8 CAMP ATTENDEE USE ONLY

Понравилась презентация – покажи это...





Слайд 0

FOR WINDOWS 8 CAMP ATTENDEE USE ONLY NOT FOR REDISTRIBUTION Thanks for attending one of our Windows 8 camps. We are happy to share the slides for your own learning, but we strongly ask that you do not redistribute or publish this content online. A revised version of these slides will be published to the Windows Developer Center at http://dev.windows.com. Please check the developer center often for these slides, and many other great Windows 8 resources. Visit http://devcamps.ms/windows to learn about additional Windows 8 camps and other events. To provide feedback, please contact us at win8tkfb@microsoft.com.


Слайд 1

Что дизайнер должен знать о разработке приложений в стиле Metro для Windows 8 @stasus stas.pavlov@microsoft.com


Слайд 2

Платформа Windows 8 Metro style Apps


Слайд 3

Архитектура Windows Runtime Приложение в стиле Metro Языковая поддержка (CLR, WinJS, CRT) Language Projection Windows Metadata & Namespace Web Host (HTML, CSS, JavaScript) Windows Core Runtime Broker Windows Runtime Core UI Pickers Controls Media XAML Storage Network … DirectX Win32


Слайд 4

Когда приложения исполняются? Windows 8 – управляется системой Windows 7 – управляется пользователем


Слайд 5

Жизненный цикл по шагам Исполнение Завершение … Приостановка Завершение работы приложения без предупреждения App 1 App 2 App 3 App N Приостанавливается после небольшой задержки Быстро восстанавливает работу из приостановленного состояния


Слайд 6

Приостановленное состояние Системные ресурсы сфокусированы на приложении, с которым пользователь взаимодействует Неактивные приложения не тратят ресурсы батарейки и системы, они приостановлены ОС Быстрое переключение между приложениями!


Слайд 7

Завершение работы Системе требуется больше памяти Переключение между пользователями Пользователь закрыл приложение Завершение работы системы Приложение «упало» Приложение не получает оповещение, когда система завершает его работу!


Слайд 8

Регистрация на обработку Suspend/Resume //Register for the Suspending event and call suspendingHandler when received Windows.UI.WebUI.WebUIApplication.addEventListener("suspending", suspendingHandler); //Handle the suspending event and save the current user session using WinJS sessionState function suspendingHandler(eventArgs) { //We are getting suspended } //Register for the Resuming event and call resumingHandler when received Windows.UI.WebUI.WebUIApplication.addEventListener("resuming", resumingHandler); function resumingHandler() { //We are getting resumed, in general do nothing }


Слайд 9

«Под капотом» Suspend Приостановленные приложение не попадают в планировщик NT Kernel Не используются ресурсы CPU, диска и сети Все потоки приостановлены Приложение остаётся в памяти Ядро гарантирует что приложение не будет приостановлено в критической секции, чтобы не было взаимных системных блокировок Приложение быстро восстанавливает работу из приостановленного состояния, когда к пользователь к нему переходит


Слайд 10

Советы, как создать приложение, которое будет выглядеть актуальным


Слайд 11

Сохраняйте и восстанавливайте состояние сессии пользователя Сохраняйте и восстанавливайте пользовательские метаданные «Где» пользователь находится в приложении HTML/JS Используйте объект WinJS.Application.sessionState Автоматически сериализует набор свойств на диск при suspend Загружает набор свойств с диска при активации Не загружает состояние после сбоя приложения XAML and C++ Класс SuspensionManager, доступный в примерах SDK, делает то же самое, что и sessionState в HTML/JS


Слайд 12

Лучшие практики по сохранению/восстановлению данных


Слайд 13

демонстрация Сохранение и восстановление состояния


Слайд 14

Переходы между состояниями Running App Suspended App suspending Terminated App Low Memory Code gets to run No code runs App not running resuming App gets 5s to handle suspend App is not notified before termination Apps are notified when they have been resumed User Launches App Splash screen


Слайд 15

Запуск приложений


Слайд 16

Приложения запускаются по другому Приложение запускаются из меню Пуск Активация с тайла, поиска, расшаривания и т.д.


Слайд 17

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


Слайд 18

Экран-заставка при активации Система предоставляет механизм экрана заставки для перехода к вашему приложению Отображается пока Windows запускает ваше приложение Отображается при активации Разработчик указывает цвет и картинку в манифесте приложения Приложение должно показать окно в течение 15 секунд активации или оно будет завершено системой


Слайд 19

Расширенный экран-заставка После первого запуска приложения, кэшируйте данные, чтобы последующие запуски были быстрее Для приложений, которые загружаются дольше: Сделайте первое представление вашего приложения, имитирующим экран заставку В обработчике активации (Activated) правильно позиционируйте представление Добавьте индикацию загрузки или любое другой интерактивный UI, чтобы пользователь знал, что делает приложение


Слайд 20

Контракты


Слайд 21

Контракты – часть большого семейства App to App Picking contract Contact Picker File activation Play To contract Print task settings Protocol activation Search contract Settings contract Share contract


Слайд 22

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


Слайд 23

Share Settings Search App to App Picking Play To


Слайд 24

Контракт «Поиск» Search


Слайд 25

Благодаря Контраку Поиска в приложениях можно искать без их запуска


Слайд 26

Поиск доступен всегда и учитывает контекст


Слайд 27

Как устроен поиск Изначально контекстом является текущее приложение Варианты для подстановки предлагает само приложение Доступно переключение в контекст всех приложений, реализющих контракт Поиска 1 2 3


Слайд 28

Варианты результатов также предоставляются приложением Должен включать превью и заголовок Обозначает высокое соответствие введенной фразе Как устроен поиск 4


Слайд 29

Контракт «Поделиться» Share


Слайд 30

Контракт «Поделиться» позволяет организовать контекстную передачу данных между приложениями


Слайд 31

Windows 8 организует это так максимально просто и «бесшовно» для пользователя


Слайд 32

В приложении-источнике следует предусмотреть максимальное число исходных форматов данных


Слайд 33

Контракт «Настройки» Settings


Слайд 34

Контракт «Настройки» дает возможность организации единообразной контекстной реализации настроек приложений


Слайд 35

Контракты – часть большого семейства App to App Picking contract Contact Picker File activation Play To contract Print task settings Protocol activation Search contract Settings contract Share contract


Слайд 36

Приложения, которые работают даже когда их не видит пользователь


Слайд 37

Проигрывание аудио в фоновом режиме Приложения могут проигрывать аудио в фоновом режиме Разработчик должен указать это в манифесте Каждому аудио-потоку присваивается тип (communication, media, game) Только один поток может играть в каждую единицу времени


Слайд 38

Загрузка/выгрузка в фоновом режиме Используйте BackgroundTransfer API для загрузки или выгрузки по HTTP в фоновом режиме Запустите загрузку/выгрузку в работающем приложении и оно продолжится, даже когда приложение приостановит свою работу


Слайд 39

RTC приложения


Слайд 40

Lock Screen приложения Работающие в фоновом режиме Коммуникации в реальном времени (Mail, IM, VoIP) Исполняются периодически Исполняются по системным событиям


Слайд 41

Жизненный цикл … для RTC приложений Running App Suspended App Suspending Terminated App Low Memory Resuming Background Task Executes Background Task Executes Background Task Executes


Слайд 42

Execution = Trigger + [Condition] Trigger Condition InternetAvailable, InternetNotAvailable, SessionConnected, SessionDisconnected, UserNotPresent, UserPresent TimeTrigger* PushNotificationTrigger* SessionStart* ControlChannelTrigger*(**) ServicingComplete SessionConnected SessionDisconnected SmsReceived TimeZoneChange UserAway/UserPresent, LockScreenApplicationAdded/Removed OnlineIdConnectedStateChangeInternetAvailable InternetAvailable/InternetNotAvailable NetworkNotificationChannelReset NetworkStateChange MaintenanceTrigger PushNotificationTrigger** *requires lock permission **can run in App (not BackgroundHost.exe)


Слайд 43

Пользователь продолжает контролировать


Слайд 44

Ресурсы дозируются


Слайд 45

Используйте живые тайлы, чтобы показать, что приложение всегда работает


Слайд 46

Контент – превыше всего. Всегда.


Слайд 47

Живые плитки Tiles


Слайд 48

Живые плитки Еще один способ взаимедействия и доставки контента Презентуют приложение пользователю Продолжают работать всегда Заставляют вернуться к себе


Слайд 49

Квадратный (1x1) Широкий (2x1) Обычные плитки


Слайд 50

Живые плитки Шаблоны представляют собой способы отрисовки Обновляются через несколько техник-шаблонов Текст, изображения или комбинация JPEG или PNG не более150 KB Анимация Локальное обновление или из «облака»


Слайд 51

Очередь обновлений на плитках


Слайд 52

Дополнительные плитки Secondary Tiles Закрепление контента или элементов приложения Инциируется приложением Необходимо подтверждение пользователя Создает персонализированный срез приложения Те же возможности, что и у обычных плиток


Слайд 53

Всплывающие уведомления


Слайд 54

Всплавающие уведомления Toast Notifications


Слайд 55

Шаблоны уведомлений


Слайд 56

Windows Push Notification Service (WPNS)


Слайд 57

Windows Push Notification Service


Слайд 58

Обзор архитектуры WINS Windows 8 Cloud Service Windows Push Notification Service Metro Style App Notification Client Platform 2 3 1 3 Запрос на URI канала уведомлений Регистрация сервиса Уведомления


Слайд 59

Используйте живые тайлы Полезно пользователю даже когда он не запустил приложение Даёт пользователю ощущение, что в вашем приложение что-то происходит и, одновременно, приглашение к возвращению обратно Два способа обновления тайлов на стартовом экране Локальное обновление Push notification


Слайд 60

© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.


×

HTML:





Ссылка: