ݺߣ

ݺߣShare a Scribd company logo
РАЗРАБОТКА WINRT ПРИЛОЖЕНИЙ
ДЛЯ WINDOWS 8: РЕАЛЬНЫЙ ОПЫТ

Михаил Галушко
DevRain Solutions
Разработка WinRT приложений для  Windows 8: реальный опыт, UA Mobile 2012
Что такое Windows 8
 Desktop apps
 WinRT apps
 Windows Store
Разработка для Windows 8

WPF
Silverlight
Windows Phone
Web Dev (html/css + js)
C++
Windows 8
WinRT
Поддержка x86, ARM
Доступен DirectX
Объектно-ориентирован
Взял многое из .NET
Асинхронный
WinRT
WinRT – модель работы приложения
    Activated                      Suspending
                   Running




   Not Running          Resuming   Suspended



                 Terminating
«Умная» многозадачность
 Приложение работает пока его видит
 пользователь.
 Пользователь не должен замечать, что
 приложение не работало.
 Возможна работа в фоне в ограниченных
 случаях.
WinRT - изолированность

  Application 1               Application 2
                  Contracts


            API                          API




                  OS Core
WinRT - контракты
Search
Share source/target
Settings
File picker
Printing
…
WinRT – работа в фоне
         Run method                  System
                                 Infrastructure

                   Register

                                           Event
Application

     Not Running                    Suspended
                      Register
                                    Triggers
WinRT – работа в фоне
 BackgroundTask, Application
                 BackgroundDownloader

 Интеграция с LockScreen: IM, E-mail
WinRT – хранение данных

                Application




  LocalFolder   RoamingFolder   TemporaryFolder
WinRT – хранение данных
 Настройки (key-value)
                Application
 Папки и файлы
 Сторонние решения: SQLite
Windows Store
Около 7к приложений
                 Application
ОЧЕНЬ быстрая сертификация, пока
Поддержка Trial-режима
In-App purchase
RadControls for Windows 8 (Telerik)
Лучшая библиотека для Win8 / WP7 / WP8
               Application
15+ XAML/HTML компонент

$99

http://www.telerik.com/products/windows-
8/overview.aspx
Essential Studio for WinRT (Syncfusion)
Стандартный набор компонент +
                Application
контролы для работы с Word, Excel, PDF

$99

http://www.syncfusion.com/products/winrt
Metro Elements (Mindscape)
17 видов Chart, DatePicker, TimePicker
                  Application
Скоро будет +20 компонент

$99

http://www.mindscapehq.com/products/metroele
ments
Syncfusion Metro Studio
1700+ metro-иконок (PNG/XAML)
                Application


Бесплатно

http://www.syncfusion.com/downloads/metrostud
io
OpenSource
WinRT XAML ToolkitApplication
http://winrtxamltoolkit.codeplex.com/

Callisto
https://github.com/timheuer/callisto

+множество портированных библиотек
Best practices
 1. Читайте гайды Microsoft 
                Application


 2. Учитывайте все размеры и ориентации
    экранов при разработке дизайна
Best practices
 3. Контент располагается горизонтально
                 Application


 4. Избегайте двойных скроллов

 5. Нижняя панель приложения: контекстные
 действия, верхний – навигация (не
 обязательно)
Best practices
 6. Не смешивайте контент и действия
                Application


 7. Хорошая практика: меню заголовка

 8. Навигация выполняется с помощью:
 погружение через контент, меню заголовка +
 кнопка назад, панель навигации
Best practices

                 Application
 9. Используйте SemanticZoom для экранов с
 большим количеством контента и
 группировкой – это удобный способ
 навигации
Best practices
 10. Используйте Application
                 контракты: Search, Share

 11. Не дублируйте функции контрактов
Best practices
 12. Главный тайлApplication привлекать
                  должен
 юзера, выделяться в списке других
 13. Тайлы должны быть живыми – призывать
 юзера зайти в приложение
 14. Подумайте про Lock-screen: IM, E-mail
Best practices
 15. Поддержка SnappedView, FilledView –
                Application
 особенно для чатов, новостей, таск
 менеджеров
 16. Обрабатывайте состояния
 Suspended/Resumed – пользователь не
 должен догадываться, что приложение не
 работало
Best practices
 17. Сохранение изменений выполняется без
                Application
 подтверждения пользователя (нет кнопки
 «Сохранить»)
 18. Обязательно Terms of use/Privacy policy и
 About в панели настроек
Best practices
 19. Время стартаApplication
                  приложения менее 5 сек,
 уход в Suspended менее 2 сек
 20. Async/await – не забываем про
 асинхронность
 21. Выход из Suspended – проверяйте
 актуальность сессии
Best practices
 22. Bugsense дляApplication
                  ошибок

 23. Используйте существующий C++ код (но
 пересоберите), проверьте с помощью App
 Cert Kit, не забудьте про ARM
Вопросы и ответы
Спасибо за внимание!

More Related Content

Разработка WinRT приложений для Windows 8: реальный опыт, UA Mobile 2012

  • 1. РАЗРАБОТКА WINRT ПРИЛОЖЕНИЙ ДЛЯ WINDOWS 8: РЕАЛЬНЫЙ ОПЫТ Михаил Галушко DevRain Solutions
  • 3. Что такое Windows 8 Desktop apps WinRT apps Windows Store
  • 4. Разработка для Windows 8 WPF Silverlight Windows Phone Web Dev (html/css + js) C++
  • 6. WinRT Поддержка x86, ARM Доступен DirectX Объектно-ориентирован Взял многое из .NET Асинхронный
  • 8. WinRT – модель работы приложения Activated Suspending Running Not Running Resuming Suspended Terminating
  • 9. «Умная» многозадачность Приложение работает пока его видит пользователь. Пользователь не должен замечать, что приложение не работало. Возможна работа в фоне в ограниченных случаях.
  • 10. WinRT - изолированность Application 1 Application 2 Contracts API API OS Core
  • 11. WinRT - контракты Search Share source/target Settings File picker Printing …
  • 12. WinRT – работа в фоне Run method System Infrastructure Register Event Application Not Running Suspended Register Triggers
  • 13. WinRT – работа в фоне BackgroundTask, Application BackgroundDownloader Интеграция с LockScreen: IM, E-mail
  • 14. WinRT – хранение данных Application LocalFolder RoamingFolder TemporaryFolder
  • 15. WinRT – хранение данных Настройки (key-value) Application Папки и файлы Сторонние решения: SQLite
  • 16. Windows Store Около 7к приложений Application ОЧЕНЬ быстрая сертификация, пока Поддержка Trial-режима In-App purchase
  • 17. RadControls for Windows 8 (Telerik) Лучшая библиотека для Win8 / WP7 / WP8 Application 15+ XAML/HTML компонент $99 http://www.telerik.com/products/windows- 8/overview.aspx
  • 18. Essential Studio for WinRT (Syncfusion) Стандартный набор компонент + Application контролы для работы с Word, Excel, PDF $99 http://www.syncfusion.com/products/winrt
  • 19. Metro Elements (Mindscape) 17 видов Chart, DatePicker, TimePicker Application Скоро будет +20 компонент $99 http://www.mindscapehq.com/products/metroele ments
  • 20. Syncfusion Metro Studio 1700+ metro-иконок (PNG/XAML) Application Бесплатно http://www.syncfusion.com/downloads/metrostud io
  • 22. Best practices 1. Читайте гайды Microsoft  Application 2. Учитывайте все размеры и ориентации экранов при разработке дизайна
  • 23. Best practices 3. Контент располагается горизонтально Application 4. Избегайте двойных скроллов 5. Нижняя панель приложения: контекстные действия, верхний – навигация (не обязательно)
  • 24. Best practices 6. Не смешивайте контент и действия Application 7. Хорошая практика: меню заголовка 8. Навигация выполняется с помощью: погружение через контент, меню заголовка + кнопка назад, панель навигации
  • 25. Best practices Application 9. Используйте SemanticZoom для экранов с большим количеством контента и группировкой – это удобный способ навигации
  • 26. Best practices 10. Используйте Application контракты: Search, Share 11. Не дублируйте функции контрактов
  • 27. Best practices 12. Главный тайлApplication привлекать должен юзера, выделяться в списке других 13. Тайлы должны быть живыми – призывать юзера зайти в приложение 14. Подумайте про Lock-screen: IM, E-mail
  • 28. Best practices 15. Поддержка SnappedView, FilledView – Application особенно для чатов, новостей, таск менеджеров 16. Обрабатывайте состояния Suspended/Resumed – пользователь не должен догадываться, что приложение не работало
  • 29. Best practices 17. Сохранение изменений выполняется без Application подтверждения пользователя (нет кнопки «Сохранить») 18. Обязательно Terms of use/Privacy policy и About в панели настроек
  • 30. Best practices 19. Время стартаApplication приложения менее 5 сек, уход в Suspended менее 2 сек 20. Async/await – не забываем про асинхронность 21. Выход из Suspended – проверяйте актуальность сессии
  • 31. Best practices 22. Bugsense дляApplication ошибок 23. Используйте существующий C++ код (но пересоберите), проверьте с помощью App Cert Kit, не забудьте про ARM