FOR WINDOWS 8 CAMP ATTENDEE USE ONLY презентация

Содержание

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

Слайд 1FOR 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.

Слайд 2Что дизайнер должен знать о разработке приложений в стиле Metro для

Windows 8

@stasus
stas.pavlov@microsoft.com


Слайд 3Платформа Windows 8
Metro style Apps


Слайд 4Архитектура 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


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

Windows 7 – управляется

пользователем


Слайд 6Жизненный цикл по шагам
Исполнение
Завершение

Приостановка
Завершение работы приложения без предупреждения
App 1
App 2
App 3
App

N

Приостанавливается после небольшой задержки

Быстро восстанавливает работу из приостановленного состояния


Слайд 7Приостановленное состояние
Системные ресурсы сфокусированы на приложении, с которым пользователь взаимодействует
Неактивные приложения

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

Слайд 8Завершение работы
Системе требуется больше памяти
Переключение между пользователями
Пользователь закрыл приложение
Завершение работы системы
Приложение

«упало»

Приложение не получает оповещение, когда система завершает его работу!


Слайд 9Регистрация на обработку 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

}

Слайд 10«Под капотом» Suspend
Приостановленные приложение не попадают в планировщик NT Kernel
Не используются

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

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


Слайд 12Сохраняйте и восстанавливайте состояние сессии пользователя
Сохраняйте и восстанавливайте пользовательские метаданные
«Где» пользователь

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

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


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


Слайд 15Переходы между состояниями
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


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


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

расшаривания и т.д.

Слайд 18Активация приложений по контрактам
Приложение активируются по контрактам
Запуск, поиск, место куда расшарить

и т.д.

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

Предоставляется контекст

Слайд 19Экран-заставка при активации
Система предоставляет механизм экрана заставки для перехода к вашему приложению

Отображается

пока Windows запускает ваше приложение

Отображается при активации

Разработчик указывает цвет и картинку в манифесте приложения

Приложение должно показать окно в течение 15 секунд активации или оно будет завершено системой


Слайд 20Расширенный экран-заставка
После первого запуска приложения, кэшируйте данные, чтобы последующие запуски были

быстрее

Для приложений, которые загружаются дольше:

Сделайте первое представление вашего приложения, имитирующим экран заставку

В обработчике активации (Activated) правильно позиционируйте представление

Добавьте индикацию загрузки или любое другой интерактивный UI, чтобы пользователь знал, что делает приложение


Слайд 21Контракты


Слайд 22Контракты – часть большого семейства
App to App Picking contract
Contact

Picker
File activation
Play To contract
Print task settings
Protocol activation
Search contract
Settings contract
Share contract


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


Слайд 24
Share

Settings

Search

App to App Picking

Play To


Слайд 25Контракт «Поиск» Search


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


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


Слайд 28Как устроен поиск
Изначально контекстом является текущее приложение

Варианты для подстановки предлагает само

приложение

Доступно переключение в контекст всех приложений, реализющих контракт Поиска




1

2

3


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

введенной фразе


Как устроен поиск

4


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


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


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


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


Слайд 34Контракт «Настройки» Settings


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


Слайд 36Контракты – часть большого семейства
App to App Picking contract
Contact

Picker
File activation
Play To contract
Print task settings
Protocol activation
Search contract
Settings contract
Share contract


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


Слайд 38Проигрывание аудио в фоновом режиме
Приложения могут проигрывать аудио в фоновом режиме
Разработчик

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





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

HTTP в фоновом режиме

Запустите загрузку/выгрузку в работающем приложении и оно продолжится, даже когда приложение приостановит свою работу

Слайд 40RTC приложения


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

периодически
Исполняются по системным событиям

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


Слайд 43Execution = 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)


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


Слайд 45Ресурсы дозируются


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


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


Слайд 48Живые плитки Tiles


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

всегда

Заставляют вернуться к себе


Слайд 50

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



Слайд 51Живые плитки
Шаблоны представляют собой способы отрисовки
Обновляются через несколько техник-шаблонов
Текст, изображения или

комбинация

JPEG или PNG не более150 KB

Анимация

Локальное обновление или из «облака»


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



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

срез приложения
Те же возможности, что и у обычных плиток

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


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


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


Слайд 57Windows Push Notification Service (WPNS)


Слайд 58Windows Push Notification Service


Слайд 59Обзор архитектуры WINS
Windows 8
Cloud Service
Windows Push Notification Service
Metro Style App
Notification
Client Platform
2
3

1

3
Запрос

на URI канала уведомлений
Регистрация сервиса
Уведомления

Слайд 60Используйте живые тайлы
Полезно пользователю даже когда он не запустил приложение

Даёт пользователю

ощущение, что в вашем приложение что-то происходит и, одновременно, приглашение к возвращению обратно

Два способа обновления тайлов на стартовом экране

Локальное обновление
Push notification


Слайд 61© 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.

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

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


Для правообладателей

Яндекс.Метрика