Михаил Галушко DevRain Solutions
РАЗРАБОТКА ДЛЯ WINRT: ПРАКТИКА СОЗДАНИЯ КАЧЕСТВЕННЫХ ПРИЛОЖЕНИЙ
Windows 8Desktop appsWinRT appsWindows Store
Windows 8Development
WPFSilverlightWindows PhoneWeb Dev (html/css + js)C++
WinRT
Поддержка x86, ARMДоступен DirectXОбъектно-ориентированВзял многое из .NETАсинхронный
WinRT – модель работы приложения
Running
Not Running
Suspended
Activated Suspending
Resuming
Terminating
«Умная» многозадачность
Приложение работает пока его видит пользователь.Пользователь не должен замечать, что приложение не работало.Возможна работа в фоне в ограниченных случаях.
WinRT - изолированность
Application 1
OS Core
Application 2Contract
s
API
API
WinRT – работа в фоне
Not Running
Suspended
Application
SystemInfrastructure
Triggers
Event
Register
Register
Run method
WinRT – работа в фоне
ApplicationBackgroundTask, BackgroundDownloader
Интеграция с LockScreen: IM, E-mail
WinRT - контракты
SearchShare source/targetSettingsFile pickerPrinting…
WinRT – хранение данных
Application
LocalFolder RoamingFolder
TemporaryFolder
WinRT – хранение данных
ApplicationНастройки (key-value)Папки и файлыСторонние решения: SQLite
Windows Store
ApplicationБолее 12 000 приложенийОЧЕНЬ быстрая сертификация, покаПоддержка 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
+множество портированных библиотек
Практики
Application1. Читайте гайды Microsoft
2. Найдите дизайнера
3. Забудьте про курсив
Application
Application
Application
Application
Application
Практики
Application4. Учитывайте все размеры и ориентации экранов при разработке дизайна (от 1024x768)
Практики
Application5. Контент располагается горизонтально
Application
Практики
Application6. Избегайте двойных скроллов
7. Нижняя панель приложения: контекстные действия, верхний – навигация (не обязательно)
Application
Практики
Application8. Не смешивайте контент и действия
9. Хорошая практика: меню заголовка
10. Навигация выполняется с помощью: погружение через контент, меню заголовка + кнопка назад, панель навигации
Application
Application
Практики
Application11. Используйте стандартные компоненты. Иначе – повторяйте их поведение
12. Используйте SemanticZoom для экранов с большим количеством контента и группировкой – это удобный способ навигации
Best practices
Application
Практики
Application13. Используйте контракты: Search, Share
14. Не дублируйте функции контрактов
Практики
Application15. Главный тайл должен привлекать юзера, выделяться в списке других16. Тайлы должны быть живыми – призывать юзера зайти в приложение17. Подумайте про Lock-screen: IM, E-mail
Application
VS
Практики
Application18. Поддержка SnappedView, FilledView – особенно для чатов, новостей, таск менеджеров
Application
Application
Application
Практики
Application19. Обрабатывайте состояния Suspended/Resumed – пользователь не должен догадываться, что приложение не работало
Практики
Application20. Сохранение изменений выполняется без подтверждения пользователя (нет кнопки «Сохранить»)
Application
Практики
Application21. Обязательно Terms of use/Privacy policy и About в панели настроек
Application
Практики
Application22. Время старта приложения менее 5 сек, уход в Suspended менее 2 сек
Application
Практики
Application23. Async/await – не забываем про асинхронность24. Выход из Suspended – проверяйте актуальность сессии (авторизации)
Практики
Application25. Используйте сервисы: Bugsense для логирования ошибок, Localytics – для статистики
26. Переиспользуйте существующий C++ код, проверьте с помощью App Cert Kit, не забудьте про ARM
Вопросы и ответы