Top Banner
Михаил Галушко DevRain Solutions РАЗРАБОТКА ДЛЯ WINRT: ПРАКТИКА СОЗДАНИЯ КАЧЕСТВЕННЫХ ПРИЛОЖЕНИЙ
53

Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Jun 16, 2015

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Михаил Галушко DevRain Solutions

РАЗРАБОТКА ДЛЯ WINRT: ПРАКТИКА СОЗДАНИЯ КАЧЕСТВЕННЫХ ПРИЛОЖЕНИЙ

Page 2: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Windows 8Desktop appsWinRT appsWindows Store

Page 3: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Windows 8Development

WPFSilverlightWindows PhoneWeb Dev (html/css + js)C++

Page 4: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"
Page 5: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"
Page 6: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

WinRT

Поддержка x86, ARMДоступен DirectXОбъектно-ориентированВзял многое из .NETАсинхронный

Page 7: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

WinRT – модель работы приложения

Running

Not Running

Suspended

Activated Suspending

Resuming

Terminating

Page 8: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

«Умная» многозадачность

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

Page 9: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

WinRT - изолированность

Application 1

OS Core

Application 2Contract

s

API

API

Page 10: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

WinRT – работа в фоне

Not Running

Suspended

Application

SystemInfrastructure

Triggers

Event

Register

Register

Run method

Page 11: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

WinRT – работа в фоне

ApplicationBackgroundTask, BackgroundDownloader

Интеграция с LockScreen: IM, E-mail

Page 12: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

WinRT - контракты

SearchShare source/targetSettingsFile pickerPrinting…

Page 13: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

WinRT – хранение данных

Application

LocalFolder RoamingFolder

TemporaryFolder

Page 14: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

WinRT – хранение данных

ApplicationНастройки (key-value)Папки и файлыСторонние решения: SQLite

Page 15: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Windows Store

ApplicationБолее 12 000 приложенийОЧЕНЬ быстрая сертификация, покаПоддержка Trial-режимаIn-App purchase

Page 16: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

RadControls for Windows 8 (Telerik)

ApplicationЛучшая библиотека для Win8 / WP7 / WP815+ XAML/HTML компонент

$99

http://www.telerik.com/products/windows-8/overview.aspx

Page 17: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Essential Studio for WinRT (Syncfusion)

ApplicationСтандартный набор компонент + контролы для работы с Word, Excel, PDF

$99

http://www.syncfusion.com/products/winrt

Page 18: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Metro Elements (Mindscape)

Application17 видов Chart, DatePicker, TimePickerСкоро будет +20 компонент

$99

http://www.mindscapehq.com/products/metroelements

Page 19: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Syncfusion Metro Studio

Application1700+ metro-иконок (PNG/XAML)

Бесплатно

http://www.syncfusion.com/downloads/metrostudio

Page 20: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

OpenSource

ApplicationWinRT XAML Toolkit http://winrtxamltoolkit.codeplex.com/

Callistohttps://github.com/timheuer/callisto

+множество портированных библиотек

Page 21: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Практики

Application1. Читайте гайды Microsoft

2. Найдите дизайнера

3. Забудьте про курсив

Page 22: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Application

Page 23: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Application

Page 24: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Application

Page 25: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Application

Page 26: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Application

Page 27: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Практики

Application4. Учитывайте все размеры и ориентации экранов при разработке дизайна (от 1024x768)

Page 28: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Практики

Application5. Контент располагается горизонтально

Page 29: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Application

Page 30: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Практики

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

7. Нижняя панель приложения: контекстные действия, верхний – навигация (не обязательно)

Page 31: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Application

Page 32: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Практики

Application8. Не смешивайте контент и действия

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

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

Page 33: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Application

Page 34: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Application

Page 35: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Практики

Application11. Используйте стандартные компоненты. Иначе – повторяйте их поведение

12. Используйте SemanticZoom для экранов с большим количеством контента и группировкой – это удобный способ навигации

Page 36: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Best practices

Application

Page 37: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Практики

Application13. Используйте контракты: Search, Share

14. Не дублируйте функции контрактов

Page 38: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Практики

Application15. Главный тайл должен привлекать юзера, выделяться в списке других16. Тайлы должны быть живыми – призывать юзера зайти в приложение17. Подумайте про Lock-screen: IM, E-mail

Page 39: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Application

VS

Page 40: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Практики

Application18. Поддержка SnappedView, FilledView – особенно для чатов, новостей, таск менеджеров

Page 41: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Application

Page 42: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Application

Page 43: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Application

Page 44: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Практики

Application19. Обрабатывайте состояния Suspended/Resumed – пользователь не должен догадываться, что приложение не работало

Page 45: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Практики

Application20. Сохранение изменений выполняется без подтверждения пользователя (нет кнопки «Сохранить»)

Page 46: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Application

Page 47: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Практики

Application21. Обязательно Terms of use/Privacy policy и About в панели настроек

Page 48: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Application

Page 49: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Практики

Application22. Время старта приложения менее 5 сек, уход в Suspended менее 2 сек

Page 50: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Application

Page 51: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Практики

Application23. Async/await – не забываем про асинхронность24. Выход из Suspended – проверяйте актуальность сессии (авторизации)

Page 52: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

Практики

Application25. Используйте сервисы: Bugsense для логирования ошибок, Localytics – для статистики

26. Переиспользуйте существующий C++ код, проверьте с помощью App Cert Kit, не забудьте про ARM

Page 53: Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"

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