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

Презентация:



Advertisements
Похожие презентации
ЦЕЛЕВАЯ АУДИТОРИЯ ТЕМЫ РЕЗУЛЬТАТ ИТ-специалисты Системные администраторы Системные инженеры Интересующиеся технологиями Windows Новые возможности Windows.
Advertisements

Винников Олег.NET Developer. Говорим о… WinRT и.NET Framework for Metro App Жизненный цикл приложения Новшества в интерфейсе Асинхронное программирование.
КРУПНЕЙШАЯ ТЕХНИЧЕСКАЯ КОНФЕРЕНЦИЯ MICROSOFT В УКРАИНЕ Metro Style Applications: интеграция с платформой.
DevCon12 // msdevcon.ru #msdevcon мая, 2012 г. Microsoft.
Технические возможности. Наши цели Максимальная гибкость Максимальная скорость считывания и обработки данных Стабильность работы Максимальная простота.
Возможности и операции, проводимые программным обеспечением StarBoard Software. Семинар-практикум ч.2.
ДонНУ, кафедра КТ, проф.В.К.Толстых WCF-службы Создание и тестирование.dll-библиотеки WCF-служб Из цикла лекций «Internet-технологии разработки приложений»
Клиентские технологии Silverlight 3, Internet Explorer 8 Гайдар Магдануров t: e:
РАЗРАБОТКА УРОКА ПО ТЕМЕ: «ОСНОВЫ РАБОТЫ В ОПЕРАЦИОННОЙ СИСТЕМЕ WINDOWS» Приложение 2.
Платформа разработки ASP.NET Гайдар Магдануров t: e: m: +7.
Microsoft Student Partner, User Group Lead НАСЫЩЕННЫЕ ПРИЛОЖЕНИЯ Интерактивные возможности Silverlight и XNA ЕДИНАЯ ПЛАТФОРМА РАЗРАБОТКИ Инструменты.
АРМ Секретаря Предлагаем вашему вниманию обзор программы "АРМ секретаря". Ее авторы довольно высокого мнения о своем детище: "... Это новый программный.
АНТИВИРУС КАСПЕРСКОГО PERSONAL PRO. АНТИВИРУС КАСПЕРСКОГО 5.0 PERSONAL PRO ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ ПРОСТОТА НАСТРОЙКИ АНТИВИРУС КАСПЕРСКОГО® 5.0 PERSONAL.
ОПЕРАИОННАЯ СИСТЕМА. Операционная система комплекс программ, обеспечивающий управление аппаратными средствами компьютера, организующий работу с файлами.
Графический интерфейс WINDOWS Графический интерфейс WINDOWS.
Антивирус Касперского® Personal Pro. Антивирус Касперского® 5.0 Personal Pro Интерфейс пользователя Простой графический интерфейс с минимально необходимым.
1. ЧТО ТАКОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ? НАБОР ПРОГРАММ В ПАМЯТИ КОМПЬЮТЕРА 2. ИЗ КАКИХ ЧАСТЕЙ СОСТОИТ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ? КРОССОВЫЕ ТЕСТОВЫЕ СИСТЕМНЫЕ.
Новые возможности Windows 8 Новый интерфейс – Metro UI Обзор изменений Windows Знакомство с интересными возможностями Windows.
Innovation Day. Windows 8 Windows Core OS Services JavaScript (Chakra) C C++ C# VB Metro style Apps Communication & Data Application Model Devices & Printing.
Проф. В.К.Толстых, Технологии разработки Internet- приложений Администрирование IIS 5, 6 сайт, виртуальный каталог, приложение, пул, рабочий.
Транксрипт:

FOR WINDOWS 8 CAMP ATTENDEE USE ONLY

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

Платформа Windows 8 Metro style Apps HTML JavaScript C C++ C# VB Desktop Apps Win32.NET / SL Internet Explorer Communication & Data Application Model Devices & Printing WinRT APIs Graphics & Media System Services JavaScript (Chakra) C C++ C# VB XAMLHTML / CSS View Model Controller Windows Core OS Services Core

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

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

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

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

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

Регистрация на обработку 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 }

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

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

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

Лучшие практики по сохранению/восстановлению данных СценарийНеобходимо Пользователь использует приложение Сохранять пользовательские данные инкрементально Пользователь приключился из приложения (Suspending) Сохранять состояние «где» находится пользователь, например, на каком экране Не-работающее приложение запущено пользователем (Activated) Восстановить состояние приложения для пользователя, как будто он не выходил из приложения Приостановленное приложение запущено пользователем (Resuming) Ничего не делать

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

Переходы между состояниями User Launches App Splash screen

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

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

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

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

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

Контракты

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

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

ShareSettingsSearch App to App PickingPlay To

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

RTC приложения

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

Жизненный цикл … для RTC приложений

Execution = Trigger + [Condition] TriggerCondition 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)

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

Ресурсы дозируются Квота CPUПеродичность Lock screen приложение 2 CPU сек15 минуты Не-lock screen приложеие 1 CPU сек2 часа

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

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

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

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

Квадратный (1x1) Широкий (2x1) Обычные плитки Оба размера поддерживают обновление Запускают приложение Статический заголовок Два размера:

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

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

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

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

Всплавающие уведомления Toast Notifications Показывают сообщения от приложений и сервисов вне UI приложений Привлекают внимание Отключаемы Позволяют пользователю переходить сразу к соответствующему разделу приложения Инициируются локально или из «облака»

Шаблоны уведомлений Таже архитектура шаблонов, что и у живых плиток

Windows Push Notification Service (WPNS)

Windows Push Notification Service Обслуживает уведомления и обновления живых плиток внешними сервисами Плитки обновляются, а уведомления работают даже при неработающем приложении Берет на себя управления коммуникациями с устройствами Масштабируется без вашего участия Бесплатен

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

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