360 likes | 575 Views
Windows Phone 8 : что нового , что «старого» для разработчиков ?. Стас Павлов Эксперт по стратегическим технологиями. Новая аппаратная платформа. Многоядерные чипсеты. 3 разрешения экрана. Поддержка MicroSD. Два ядра и больше …. ▪ Фото ▪ Музыка ▪ Видео. WVGA 800 x 480 15:9.
E N D
Windows Phone 8: что нового, что «старого» для разработчиков? Стас Павлов Эксперт по стратегическим технологиями
Новая аппаратная платформа Многоядерные чипсеты 3 разрешения экрана Поддержка MicroSD Два ядра и больше… • ▪ Фото▪ Музыка▪ Видео • WVGA • 800 x 480 • 15:9 • WXGA • 1280 x 768 • 15:9 • 720p • 1280 x 720 • 16:9
Общее ядро с Windows .NETCommon developer platform DriversEstablished ecosystem accelerates development SecuritySecure App Environment • Always On • Isolated Apps • Protected Content Драйверы Платформа разработки Графика и медиа Безопасность Сетевая работа ЯДРО • Больше общего кода • «Нативный» код • Тот же.NET движок • Компиляция в облаке • Устоявшаяся экосистема драйверов • Один оптимизированный драйвер • Устройства быстрее и лучше • IPV6 • NFC • УлучшеныйBluetooth • На базеDirect3D • Проигрывание и запись медиа • Безукоризненная точность воспроизведения • Аппаратная поддержка безопасности • Установка приложений без последующих сожалений • Ваш контент под ваши контролем
Общее ядро • ЭТООЗНАЧАЕТ • такие компоненты ОС, как ядро, сеть, поддержка графики, файловая система и мультимедиаодинаковые наWindows 8 иWindows Phone 8 • производители устройств работают с одной и той же моделью драйверов для обеих платформа • Windows Phone получает поддержку многоядерности и других аппаратных возможностей, которые были у Windows уже давно • возможности расширения платформы Windows Phone в будущем гораздо выше • ЭТО НЕ ОЗНАЧАЕТ • разработчики Windows Phone 8 и Windows 8 приложений использую один и тот же API
Разработка под Windows Phone 8 WP8.0 игры DirectX/Direct 3D & C++ WP8.0 XAML & C#/VB с Direct3D графикой C++ компоненты C++ компоненты WP8.0 XAML & C#/VB WP7.1 XNA & C#/VB WP7.1 XAML & C#/VB .NET API для Windows Phone Windows Phone Runtime Win32 & COM Управляемый Управляемый & Нативный Нативный
Windows Phone Runtime API • Windows Phone Runtime – поднабор WinRT, плюс дополнения для телефона • Windows (Phone) Runtime реализован на C++ и «проецирован» на C#, VB.NETи C++ • HTML5/JavaScript проекцияне достунпа Windows Phone 8 ВесьWinRT(~ 11,000) • Специфически для телефона API Windows Phone Runtime включают • Синтез и распознавание речи • Windows.Phone.Networking.Voip • Windows.Phone.PersonalInformation • LockScreenиLockScreenManager • … Windows Phone Runtime (~ 2,800) Только в Windows Phone Runtime (~ 600)
API для разработки на управляемом коде • Появилось много новогоWinRTAPI связанного с новой функциональностью • ДругиеWinPRTAPI предоставляют возможности, аналогичные .NET APIs • Разработчики на управляемом коде могут тот API, который им больше подходит • При разработке для WP7.1 и WP8 – .NET API • При разработке для WP8 и W8 – Windows Phone Runtime API
Win32 и COM API • В дополнение к WinPRT, у вас есть доступ к некоторым Win32 API • Winsock для низкоуровневой работы с сетью • Camera API для приложения на C++ • COM API – CoInitializeEx, CoTaskMemAlloc, CoTaskMemFree, CreateFile2, ReadFile, WriteFile, HeapAlloc, CreateMutexExW, WaitForSingleObjectW… • В основном полезно С++ разработчикам • Можно вызывать из управляемого кода, сделав обёртку
Что нового, что «старого» для разработчиков?
Карты • NAVTEQ-овские векторные карты • Есть возможность загрузки в оффлайне • Доступны разработчику по умолчанию • Построение пути • Для совместимости доступен Bing SDK • Четыре картографических модели
Геолокация • Новый API по работе с геолокацией • похож на Windows 8 API • API геолокацииWindows Phont 7.1 продолжает работать • Фоновая работа приложений по работе с геолокациией • продолжают исполняться, когда пользователь выходит из приложения • позволяют реализовать сценарии трекеров или навигатора
Новые тайлы новых размеров • Три типа тайлов • Flip – переворачивается • Iconic – как Outlook • Cycle – как фотоальбом
Работа с экраном блокировки • Приложение может быть зарегистрировано, как предоставляющее экрану блокировки: • Детальный статус (текст) • Статус (иконка и цифра) • Фоновый рисунок
Регистрация протокола и расширения файла • Приложение может зарегистрироваться как обработчик файлов с определённым расширением • автоматически запустит приложение при открытии из письма, браузера, SharePoint или другого приложения • Приложение может зарегистрироваться как обработчик определённого протокола • Автоматически запустится, когда другое приложение откроет специальный URL • stasp://ruteched?track=wph
Покупки внутри приложений • Дополнительный способ монетизации • «Модная» модель «freemeum» • Поддерживается два типа покупок: • Durables – покупка раз и навсегда, например, уровни игр • Consumables – потребляемая покупка, например, внутриригровые деньги Hand’s On A test of dexterity Coffee Cup Custom hot beverages Global Reach A strategy exercise
Корпоративная разработка • Позволяет загрузить приложение минуя Windows Phone Store • Компания разрабатывает приложение • Получает специальный сертификат • Разворачивает сертификат на устройства • Тем или иным образом разворачивает приложение на устройстве • Управляет устройствами и/или отзывает сертификаты
Голосовые сервисы • Возможность взаимодействия пользователя с вашим приложением голосом • голосовые команды – нажатие центральной кнопки и команда для вашего приложения • распознавание голоса и API чтения позволяет интегрировать голосовые сервисы в приложение
Бумажник • Кредитные и дебитовые карты • Карты лояльности и членские карты • Доступ к сохранённым приложениям • Поддержка технологии оплаты по NFC
Камера и фотографии • Линзы • Возможность расширять функционал камеры через специальный API • Возможность получить превью картинки • Новые возможности расширения фотохаба • Автозагрузка фото в фоне • Расширенное API взаимодействия с камерой
Realign screenshots/add face to contact card VoIP и видео чат • Входящий VoIP работает как и обычный звонок • Интегрируется со встроенными телефонными возможностями • Работает в фоне • Доступно всем разработчикам
Bluetooth и NFC • Bluetooth API • App-to-app • App-to-device • Proximity API • App-to-app с использованием Bluetooth • СоединениеWi-Fi, BluetoothилиWi-Fi Direct между вашим приложением и им же запущенном на устройстве рядом • Пересылка данных между устройствами с использованием NFC. • Взаимодействие с NFC тагами
Сетевая работа • Новый API работы с сетью • Windows.Networking Windows Phone Runtime API • Входящие сокеты • System.Net.SocketsиWindows.Networking.Sockets • Приложение может слушать входящие соединения • IPv6 • Поддержка Winsock API • Облегчает портирование
Чтение с SD карты • Приложение может читать файлы с карты • Можно устанавливать приложения с карты Поддержка MicroSD
Собственный набор контактов • Собственный набор контактов, видимый в хабе люди • Предоставляется API для работы с контактами • Расширенные свойства у контактов • API для реализации синхронизации с вашим облачным сервисом хранения
Снимок экрана на реальном устройстве • Новая возможность Windows Phone 8 • Срабатывает по одновременному нажатию кнопки Windows и питания
Совместимость с Windows Phone 7.1 приложениями
Windows Phone OS 7.1 приложения и Windows Phone 8 • В целом, платформаWindows Phone позволяет приложениям Windows Phone OS 7.1 работать без модификации и перекомпиляции Windows Phone 8 • API может вести себя несколько по другому на WP 8.0 по сравнению с WP 7.1 • Улучшение или изменение функционала без перекомпиляции WP OS 7.1 приложения WP OS 7.1 приложения WP 8.0 Runtime/Libraries
Windows Phone OS 7.1 приложения и Windows Phone 8 • Используется специальный режим, чтобы WP 7.1 приложения исполнялись на WP 8.0 • Обновлённые и пересобранные для WP 8.0 приложения работают в стандартном режиме без перекомпиляции WP OS 8.0 приложения WP OS 7.1 приложения WP OS 8.0 приложения WP OS 7.1 приложения +Quirks WP 8.0 Runtime/Libraries
Конвертация кода для WP OS 7.1 на WP 8.0 • При конвертации WP7.1 кода наWP 8.0, удостоверьтесь, что вы не опираетесь на специфичное дляWP 7.1 поведение или функционал • Два стандартных сценария: • Несовместимость на уровне исходного кода – поведение API меняется в WP8 по сравнению с WP 7.1Пример: Свойство Assembly.GetTypeв WP 7.1 ищет тип а mscorlib.dllи в сборке из которой вызывается, а в WP8 – только в сборке из которой вызывается • Несовместимость на бинарном уровне – поведение WP 7.1 невозможно полностью эмулировать на WP8. Приложение полностью работоспособное на WP 7.1 не будет работать на WP 8.0 Пример: Сборка мусора для WP8 реализована абсолютно по другому.Если приложение для WP 7.1 полагается на порядок финализацииобъектов, оно может не работать на WP 8.0
Пример несовместимостей на уровне кода • Код работающий по разному при сборке для WP8 и в quirk-режиме
Пример несовместимостей на бинарном уровне • Code that Behaves Differently When run on WP8 , whether it is compiled for WP OS 7.1 or for WP8