Михаил Гaлушко "Разработка для winrt: практика...

Post on 16-Jun-2015

19.800 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Михаил Галушко 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

Вопросы и ответы

top related