РАЗРАБОТКА WINRT ПРИЛОЖЕНИЙ ДЛЯ WINDOWS 8: РЕАЛЬНЫЙ ОПЫТ Михаил Галушко DevRain Solutions
Jan 27, 2015
РАЗРАБОТКА WINRT ПРИЛОЖЕНИЙ ДЛЯ WINDOWS 8: РЕАЛЬНЫЙ ОПЫТ
Михаил ГалушкоDevRain Solutions
Что такое Windows 8
Desktop appsWinRT appsWindows Store
Разработка для Windows 8
WPFSilverlightWindows PhoneWeb Dev (html/css + js)C++
Windows 8
WinRT
Поддержка x86, ARMДоступен DirectXОбъектно-ориентированВзял многое из .NETАсинхронный
WinRT
WinRT – модель работы приложения
Running
Not Running
Suspended
Activated Suspending
Resuming
Terminating
«Умная» многозадачность
Приложение работает пока его видит пользователь.Пользователь не должен замечать, что приложение не работало.Возможна работа в фоне в ограниченных случаях.
WinRT - изолированность
Application 1
OS Core
Application 2Contract
s
API
API
WinRT - контракты
SearchShare source/targetSettingsFile pickerPrinting…
WinRT – работа в фоне
Not Running
Suspended
Application
SystemInfrastructure
Triggers
Event
Register
Register
Run method
WinRT – работа в фоне
ApplicationBackgroundTask, BackgroundDownloader
Интеграция с LockScreen: IM, E-mail
WinRT – хранение данных
Application
LocalFolder RoamingFolder
TemporaryFolder
WinRT – хранение данных
ApplicationНастройки (key-value)Папки и файлыСторонние решения: SQLite
Windows Store
ApplicationОколо 7к приложенийОЧЕНЬ быстрая сертификация, покаПоддержка Trial-режимаIn-App purchase
RadControls for Windows 8 (Telerik)
ApplicationЛучшая библиотека для Win8 / WP7 / WP815+ 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)
Application17 видов Chart, DatePicker, TimePickerСкоро будет +20 компонент
$99
http://www.mindscapehq.com/products/metroelements
Syncfusion Metro Studio
Application1700+ metro-иконок (PNG/XAML)
Бесплатно
http://www.syncfusion.com/downloads/metrostudio
OpenSource
ApplicationWinRT XAML Toolkit http://winrtxamltoolkit.codeplex.com/
Callistohttps://github.com/timheuer/callisto
+множество портированных библиотек
Best practices
Application1. Читайте гайды Microsoft
2. Учитывайте все размеры и ориентации экранов при разработке дизайна
Best practices
Application3. Контент располагается горизонтально
4. Избегайте двойных скроллов
5. Нижняя панель приложения: контекстные действия, верхний – навигация (не обязательно)
Best practices
Application6. Не смешивайте контент и действия
7. Хорошая практика: меню заголовка
8. Навигация выполняется с помощью: погружение через контент, меню заголовка + кнопка назад, панель навигации
Best practices
Application
9. Используйте SemanticZoom для экранов с большим количеством контента и группировкой – это удобный способ навигации
Best practices
Application10. Используйте контракты: Search, Share
11. Не дублируйте функции контрактов
Best practices
Application12. Главный тайл должен привлекать юзера, выделяться в списке других13. Тайлы должны быть живыми – призывать юзера зайти в приложение14. Подумайте про Lock-screen: IM, E-mail
Best practices
Application15. Поддержка SnappedView, FilledView – особенно для чатов, новостей, таск менеджеров16. Обрабатывайте состояния Suspended/Resumed – пользователь не должен догадываться, что приложение не работало
Best practices
Application17. Сохранение изменений выполняется без подтверждения пользователя (нет кнопки «Сохранить»)18. Обязательно Terms of use/Privacy policy и About в панели настроек
Best practices
Application19. Время старта приложения менее 5 сек, уход в Suspended менее 2 сек20. Async/await – не забываем про асинхронность21. Выход из Suspended – проверяйте актуальность сессии
Best practices
Application22. Bugsense для ошибок
23. Используйте существующий C++ код (но пересоберите), проверьте с помощью App Cert Kit, не забудьте про ARM
Вопросы и ответы
Спасибо за внимание!