+ All Categories
Home > Documents > Платформа разработки Windows Phone 7

Платформа разработки Windows Phone 7

Date post: 19-May-2015
Category:
Upload: nokiaru
View: 1,332 times
Download: 1 times
Share this document with a friend
85
Платформа разработки Windows Phone 7 Михаил Черномордиков Эксперт по стратегическим технологиям [email protected] , twitter: @mixen
Transcript
Page 1: Платформа разработки Windows Phone 7

Платформа разработки Windows Phone 7

Михаил Черномордиков Эксперт по стратегическим технологиям [email protected], twitter: @mixen

Page 2: Платформа разработки Windows Phone 7
Page 3: Платформа разработки Windows Phone 7

Принципы

Page 4: Платформа разработки Windows Phone 7
Page 5: Платформа разработки Windows Phone 7
Page 6: Платформа разработки Windows Phone 7
Page 7: Платформа разработки Windows Phone 7

UX

Page 8: Платформа разработки Windows Phone 7
Page 9: Платформа разработки Windows Phone 7

9

Page 10: Платформа разработки Windows Phone 7

Начало: стартовый экран

Навигация: страницы

Z-order

Page 11: Платформа разработки Windows Phone 7

Платформа

Page 12: Платформа разработки Windows Phone 7

Capacitive touch 4 or more contact points

Sensors A-GPS, Accelerometer, Compass, Light, Proximity, Gyro

Camera 5 mega pixels or more

Multimedia Common detailed specs, Codec acceleration

Memory 256MB RAM or more, 8GB Flash or more

GPU DirectX 9 acceleration

CPU Qualcomm MSM7x30, MSM8x55 800Mhz or higher

Hardware buttons | Back, Start, Search

Page 13: Платформа разработки Windows Phone 7

Kernel Hardware BSP

App Model UI Model Cloud Integration

Applications

App management Licensing Chamber isolation Software updates

Shell frame Session manager Direct3D Compositor

Xbox LIVE Bing Location Push notifications Windows Live ID

Your App UI and logic

A-GPS Accelerometer Compass Light Proximity Media Wi-Fi Radio Graphics

Security Networking Storage

Frameworks

Silverlight XNA HTML/JavaScript

CLR

Hardware Foundation

Page 14: Платформа разработки Windows Phone 7
Page 15: Платформа разработки Windows Phone 7

Common Base Class Library

Collections ComponentModel Configuration

Diagnostics Reflection IO

Security Threading

Runtime Resources Globalization Text Location Net

ServiceModel Linq

Application Object

Silverlight Presentation and Media XNA Frameworks for Games

Windows Phone Frameworks

Navigation Shapes Markup Media

Controls Drawing IsolatedStorage

Audio Media Graphics Input

Drawing GamerServices

Content

PhoneApplicationPage PushNotification WebBrowserControl Sensors PhoneApplicationFrame

Camera Device Integration Launchers &

Choosers Windows Phone

Controls

Page 16: Платформа разработки Windows Phone 7

Tombstoning Происходит когда приложение теряет фокус Возможные причины:

кнопка «Назад», кнопка «Старт», клик на Toast-уведомление, запуск системных диалогов, телефонный звонок

Обработчики событий в App.xaml.cs События

Application_Launching, Application_Activated, Application_Deactivated, Application_Closing

Page 17: Платформа разработки Windows Phone 7

API для интеграции с существующими сервисами

Новые сервисы: специально для Windows Phone 7

Сервисы-посредники и готовые сценарии

Windows Phone

Cloud integration client services

Frameworks

Windows

Phone

Application

Ваши веб-сервисы

Custom Web Service

Существующие сервисы

Сервисы Microsoft

Notification Service

Location Service

Page 18: Платформа разработки Windows Phone 7

Пока единственный способ «разбудить» приложение

Доставляем информацию, экономя батарею

Windows Phone Your Web Service

Custom Web Service

Existing Web Services

Microsoft Services

Push client service

Microsoft.Phone.Notification Notification Service

Page 19: Платформа разработки Windows Phone 7

Silverlight и XNA

Page 20: Платформа разработки Windows Phone 7

Современные приложения, управляемые событ-ми.

Быстрое создание богатых графических приложений

HTML/Javascript

Устоявшаяся, надѐжная, популярная технология

Высокопроизводительная игровая платформа

Быстрое создание многоэкранных 2D и 3D игр

Богатая content pipeline

Устоявшаяся технология для Xbox, Windows, и Zune / WP7

Игры (и приложения)

Приложения (и игры)

Page 21: Платформа разработки Windows Phone 7

XNA Game Studio 4.0 Эффективная разработки с .NET и C#

Знакомая удобная среда разработки

Intellisense

Интегрированная среда build/deploy/debug

MSBuild engine для автоматизации

процесса сборки

Page 22: Платформа разработки Windows Phone 7

Использование .NET

Windows Phone 7

Только защищѐнный код

XNA Game Studio 4.0 – только C#

850+ игр на XBLA/XBLIG

Игры публикуются через порталы

Как используется .NET/XNA

Page 23: Платформа разработки Windows Phone 7

Frameworks designed

for performance

Frameworks designed

for performance

Разработаны с требованием

производителности

Frameworks designed

for performance

Опробованный успех на игровых

сценариях

В будущее WP7 – с управляемым

кодом!

Нет лишней сборки мусора

Оптимизированные мат.библиотеки

API с переходом на нативный код

3+ года профилирования и оптимизации

Эффективная работа на WP7

Page 24: Платформа разработки Windows Phone 7

Core Framework

Graphics Audio Input Math Storage

Networking Gamer Services

Extended Framework

Application Model Content Pipeline

Игры

Starter Kits Ваш код Ваш контент Компоненты

Платформа

DirectX .NET CF

Networking Gamer Services*

Page 25: Платформа разработки Windows Phone 7
Page 26: Платформа разработки Windows Phone 7
Page 27: Платформа разработки Windows Phone 7

XNA Framework разрабатывалась кросс-платформенной

Меньшее время разработки - большее кол-во клиентов

Синхронизация проектов между платформами

Page 28: Платформа разработки Windows Phone 7

Standard Slide with subtitle

Page 29: Платформа разработки Windows Phone 7

Типы файлов

Название импортера

Класс импортера

Выходной класс

.bmp, .dds,

.dib, .hdr,

.jpg, .pfm,

.png, .ppm,

.tga.

XNA Texture Importer

TextureImporter TextureContent

.fx XNA Effect Importer

EffectImporter EffectContent

.x XNA X File Importer

Ximporter NodeContent

.fbx XNA Autodesk FBX Importer

FbxImporter NodeContent

.xml XNA XML Importer

XmlImporter Object

.xap XNA XACT Project Importer

- -

Importers

Page 30: Платформа разработки Windows Phone 7

XNA Framework Game Loop Example

Интеграция с лучшими практиками разработки для WP7

Транслируются в существующие модели XNA

Например, входящий звонок

Обновление - отрисовка

Программная модель, совместимая с предыдущими выпусками XNA

Улучшенная производительность

protected override void Update(GameTime gameTime) { // Allows the game to exit if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)

this.Exit(); // TODO: Add your update logic here

base.Update(gameTime); } protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.CornflowerBlue); // TODO: Add your drawing code here base.Draw(gameTime); }

Начни с простого и усложняй

Page 31: Платформа разработки Windows Phone 7

BasicEffect

SkinnedEffect

EnvironmentMapEffect

AlphaTestEffect

DualTextureEffect

Page 32: Платформа разработки Windows Phone 7

BasicEffect

SkinnedEffect

EnvironmentMapEffect

AlphaTestEffect

DualTextureEffect

• 0-3 источников света

• Освещение Blinn-Phong

• Текстурирование

• Туман

• Цвет вершин

Vertex Cost Pixel Cost

No lighting 5 1

One vertex light 40 1

Three vertex lights 60 1

Three pixel lights 18 50

+ Texture +1 +2

+ Fog +4 +2

Page 33: Платформа разработки Windows Phone 7

BasicEffect

SkinnedEffect

EnvironmentMapEffect

AlphaTestEffect

DualTextureEffect

• Для lightmaps, detail textures, decals

• Смешивание двух текстур

• Раздельные текстурные координаты

• 2X модуляция (A*B*2)

• Низкая «стоимость»

Vertex Cost Pixel Cost

Two Textures 7 6

+ Fog +4 +2

Page 34: Платформа разработки Windows Phone 7

BasicEffect

SkinnedEffect

EnvironmentMapEffect

AlphaTestEffect

DualTextureEffect

• Для billboards и imposters

• Добавляет операцию alpha test

• «Дешевый» эффект

Vertex Cost Pixel Cost

<, <=, >=, > 6 6

==, != 6 10

+ Fog +4 +2

Page 35: Платформа разработки Windows Phone 7

BasicEffect

SkinnedEffect

EnvironmentMapEffect

AlphaTestEffect

DualTextureEffect

• Анимация моделей

• Обновление костей на CPU

• Vertex skinning на GPU

• Поддерживает до 72 костей

• 1, 2, или 4 веса для вешины

Vertex Cost Pixel Cost

One vertex light 55 4

Three vertex lights 75 4

Three pixel lights 33 51

+ Two bones +7 +0

+ Four bones +13 +0

+ Fog +0 +2

Page 36: Платформа разработки Windows Phone 7

BasicEffect

SkinnedEffect

EnvironmentMapEffect

AlphaTestEffect

DualTextureEffect

• Диффузная карта + карта среды

• «Дешевый» способ сделать освещение

• Эффект Френеля

Vertex Cost Pixel Cost

One light 32 6

Three lights 36 6

+ Fresnel +7 +0

+ Specular +0 +2

+ Fog +0 +2

Page 37: Платформа разработки Windows Phone 7

Touch Input Handling

Кросс-платформенное API

Touch API

Xbox 360 Controllers (Xbox/Windows)

Keyboard (Xbox/Windows/Windows Phone 7)

Для совместимости есть на всех платформах (не нужно #ifdef)

На Windows Phone 7 и Windows поддерживает Multipoint

Учитывает ориентацию и разрешение

var touchCollection = TouchPanel.GetState(); //... foreach (var touchLocation in touchCollection) { if (touchLocation.State == TouchLocationState.Released) { //... } }

Сенсоры

Акселерометр, GPS

Page 38: Платформа разработки Windows Phone 7

Audio Capture Example

public void EventDrivenCapture() { mic = Microphone.Default; buffer = new byte[mic.GetSampleSizeInBytes(mic.BufferDuration)]; mic.BufferReady += new EventHandler(OnBufferReady); DynamicPlayback = new DynamicSoundEffectInstance(mic.SampleRate, AudioChannels.Mono); } public void OnBufferReady(object sender, EventArgs args) { // Get the latest captured audio. int duration = mic.GetData(buffer); // Do some post-capture processing and playback. MakeMeSoundLikeARobot(buffer, duration); DynamicPlayback.SubmitBuffer(buffer); }

Захват и воспроизведение

Проигрывание звуковых файлов

Pitch, volume, pan audio

Синтез и буферизация

Запись звука

Вибрация

Microphone/Bluetooth Support

Воспроизведение на наушниках

Ввод с микрофона

Audio Playback Example

// Load a sound effect from a raw stream SoundEffect effect1 = SoundEffect.FromStream(GetStreamFromTheWeb("http://url.wav")); effect1.Play(); // Create dynamic audio on the fly byte[] fluteSound = GetFluteNote(); effect2 = new SoundEffect(fluteSound, SampleRate, AudioChannels.Stereo); SoundEffectInstance instance = effect2.CreateInstance(); instance.Pan = -1; instance.Pitch = 1.5f; instance.Play();

Page 39: Платформа разработки Windows Phone 7

URI Song Playback Example

Retrieve Image Data

Поиск и воспроизв.музыки // Constructs a song from a URI Uri mediaStreamUri = new Uri("http://song.asx"); Song streamedSong = Song.FromUri("Song", mediaStreamUri); // Play the song MediaPlayer.Play(streamedSong);

MediaLibrary media = new MediaLibrary(); // Get the JPEG image data Stream myJpegImage = ReadAndModifyPicture(somePicture); // Save texture to Media Library media.SavePicture("Awesome", myJpegImage);

Picture Enumeration and Playback

Воспроизведение видео

Автоматическое управление списком медиа в игре

Можно воспроизводить по URI/URL

Поддержка выбора.публикации фотографий

Поддержка Video Player API

Показать или убрать элементы управления

Page 40: Платформа разработки Windows Phone 7

Windows Phone и Xbox Live

Page 41: Платформа разработки Windows Phone 7
Page 42: Платформа разработки Windows Phone 7

Windows Phone впервые расширяет бренд Xbox LIVE вне консоли

Windows Phone – первый шаг к повсеместным игровым сервисам

Это может быть вашим конкурентным преимуществом!

Gamertag

Друзья

Достижения

Размещение продуктовой рекламы

Page 44: Платформа разработки Windows Phone 7

1.

2.

3.

Page 45: Платформа разработки Windows Phone 7
Page 47: Платформа разработки Windows Phone 7

Мини-игры

Page 48: Платформа разработки Windows Phone 7

Примеры

Page 49: Платформа разработки Windows Phone 7

Starter Kits

Page 50: Платформа разработки Windows Phone 7

Mango

Page 51: Платформа разработки Windows Phone 7
Page 52: Платформа разработки Windows Phone 7
Page 53: Платформа разработки Windows Phone 7
Page 54: Платформа разработки Windows Phone 7
Page 55: Платформа разработки Windows Phone 7
Page 56: Платформа разработки Windows Phone 7
Page 57: Платформа разработки Windows Phone 7
Page 58: Платформа разработки Windows Phone 7

Мультизадачность Быстрое переключение Быстрое восстановление

Page 59: Платформа разработки Windows Phone 7

Running

Deactivated

Dormant

Activated

Автоматическое сохранение состояния

Загружено или восстановлено

Приложение в памяти, ресурсы «отключены», потоки приостановлены

Tombstoned

Page 60: Платформа разработки Windows Phone 7

Задача Реализация

Переключение задач пользователем

Fast App Switching

Уведомления и сигналы по расписанию

Background Notification

Загрузка файлов Background Transfer

Уведомления о событиях Push Notifications

Регулярные действия по расписанию; toast/tile updates; data pre-caching; etc.

Periodic Background Agent

Проигрывание музыки Background Audio Player

Синхронизация данных Resource-Intensive Agent

GPS-tracking Run under the lock screen

Page 61: Платформа разработки Windows Phone 7

Можно

Tiles Toast Местоположение Сеть Файлы БД Аудио (через спец. агентов) …

Нельзя

Показывать UI XNA Микрофон и камера Сенсоры

Page 62: Платформа разработки Windows Phone 7
Page 63: Платформа разработки Windows Phone 7
Page 64: Платформа разработки Windows Phone 7
Page 65: Платформа разработки Windows Phone 7
Page 66: Платформа разработки Windows Phone 7
Page 67: Платформа разработки Windows Phone 7
Page 68: Платформа разработки Windows Phone 7
Page 69: Платформа разработки Windows Phone 7
Page 70: Платформа разработки Windows Phone 7
Page 71: Платформа разработки Windows Phone 7
Page 72: Платформа разработки Windows Phone 7
Page 73: Платформа разработки Windows Phone 7
Page 74: Платформа разработки Windows Phone 7
Page 75: Платформа разработки Windows Phone 7
Page 76: Платформа разработки Windows Phone 7
Page 77: Платформа разработки Windows Phone 7
Page 78: Платформа разработки Windows Phone 7

Приложения хранят данные в Isolated Storage

Настройки

Неструктурированные данные

Структурированные данные в БД SQL Server CE

Настройки

App Управление

файлами

Файлы приложения

App Data Folder

Каталог приложения

Package Manager

App Root Folder

WP7 Isolated Storage APIs

Установка

DB

Файл БД

DB Файл БД

Page 79: Платформа разработки Windows Phone 7

Custom Data Context

App Objects

Identity Management

Change Tracking

Update Processing

Object Materialization

Core ADO.NET (System.Data)

SQLCE ADO.NET Provider (System.Data.SqlServerCe)

SQL CE DB

.Call System.Linq.Queryable.Select( .Call System.Linq.Queryable.Where(

.Constant(Table(Wines)), '(.Lambda #Lambda1)), '(.Lambda #Lambda2))

.Lambda #Lambda1(db.Wines $w) { $w.Country == “USA" } .Lambda #Lambda2(w.Country $w) { $w.Name }

var query = from w in db.Wines where w.Country == “USA" select w.Name;

select Name

from Wines

where Country = “USA”

Page 80: Платформа разработки Windows Phone 7

Имя и

фото

Остальные

данные

контакта

Встречи и

события

Windows Live Social YES YES YES

Exchange accounts

(Exchange и Google, etc.)

YES YES YES

Адресная книга от

оператора

YES YES n/a

Facebook YES NO NO

Другие сети в People

Hub (e.g., Twitter)

NO NO NO

Page 81: Платформа разработки Windows Phone 7

Новые инструменты разработки уже в этом месяце!

Page 82: Платформа разработки Windows Phone 7
Page 83: Платформа разработки Windows Phone 7
Page 84: Платформа разработки Windows Phone 7

http://blogs.msdn.com/b/microsoft_press/archive/2010/10/28/free-ebook-programming-windows-phone-7-by-charles-petzold.aspx

Page 85: Платформа разработки Windows Phone 7

Платформа разработки Windows Phone 7

Михаил Черномордиков Эксперт по стратегическим технологиям [email protected], twitter: @mixen


Recommended