Сергей Байдачный Специалист по разработке программного обеспечения Майкрософт Украина Sergiy.Baydachnyy@microsoft.com.

Презентация:



Advertisements
Похожие презентации
Unit II Constructor Cont… Destructor Default constructor.
Advertisements

Нові можливості платформи.NET для Windows Phone 8: Wallet, NFC Сергій Лутай, DCT MVP MCT
1 © Luxoft Training 2012 Inner and anonymous classes.
© 2009 Avaya Inc. All rights reserved.1 Chapter Two, Voic Pro Components Module Two – Actions, Variables & Conditions.
Построение HTML5&JavaScript приложений для Windows 8.
Сергей Байдачный специалист по разработке ПО Майкрософт Украина
Java Server Pages(JSP). JavaServer Pages (JSP) позволяют вам отделить динамическую часть ваших страниц от статического HTML. Вы, как обычно, пишете обычный.
Лекция 9 Раздел 8.1 Windows Phone Темы раздела 3.
Comparison of Lotus Notes Designer, Domino Workflow Architect and AdHoc Workflow Builder 2003 (c) AdHoc.
Work with server by XMLRPC – library in Java For students Author: Dudnik Oxana.
Lets look at some interesting and popular devices which have touchscreens.
Workshop 7B-1 NAS101 Workshops Copyright 2001 MSC.Software Corporation WORKSHOP 7B Structure With Spring Support.
Using Dreamweaver MX Slide 1 Window menu Manage Sites… Window menu Manage Sites… 2 2 Open Dreamweaver 1 1 Set up a website folder (1). Click New…
© 2006 Cisco Systems, Inc. All rights reserved. CIPT1 v Administration of Cisco Unified CallManager Release 5.0 Implementing Disaster Recovery.
OpenEdge ® GUI for.NET Modernize your user interface with ABL Shelley Chase OpenEdge Architect Progress Software Corporation Session 113.
© 2001, Cisco Systems, Inc. CSIDS Chapter 6 Alarm Management.
© 2006 Cisco Systems, Inc. All rights reserved. SND v Configuring a Cisco IOS Firewall Configuring a Cisco IOS Firewall with the Cisco SDM Wizard.
bool allowed = App.Current.Detach(); if (allowed){ //Показать что-нибудь пользователю } if(App.Current.RunningOffline) //Приложение запущено вне браузера.
Java Collections Framework (JCF) in Java Tutorial for students of universities Author: Oxana Dudnik.
WinCC Работа и мониторинг Siemens AG All rights reserved.© TC Nbg.-M Date: File: E02OFFe.PPT Catalog: NWINCC Открытость и способность.
Транксрипт:

Сергей Байдачный Специалист по разработке программного обеспечения Майкрософт Украина

Конкурс приложений для Windows Phone

Windows Phone Содержание «Живые» плитки в Windows Phone 8 Интеграция с экраном блокировки Работа с хранилищами данных «Глубокие» ссылки и ассоциации с файлами

Windows Phone Компиляция в облаке Все приложения на Windows Phone 8 устанавливаются в готовом к использованию виде: – Стандартная утилита Ngen – Актуально для приложений WP 7.x и WP 8 – Разработчик загружает обычный.xap – WP 7.x устройства получают.xap файл вместо готовой к использованию версии

Windows Phone Fast Application Resume (FAR) Жизненный цикл приложения предполагает возможность «засыпать» в памяти FAR в Windows Phone 7.x – переход к приложению в памяти по кнопке Back Почему именно так? Windows Phone 8 – Возможность «будить» приложение из любого места – Разработчик сам принимает решение

Windows Phone FAR: Реализация Изменение в манифесте – Атрибут ActivationPolicy Обработка событий Navigating и Navigated – Определение способа запуска – Очистка стека вызовов или возврат на последнюю страницу – Проверка на возможность запуска через Secondary Tiles

Windows Phone Демонстрация FAR Пример использования

Windows Phone Персонализация устройства Они все одинаковые….

Windows Phone Flip Tile Шаблон (TemplateFlip, FlipTileData) medium: 336x336 small: 159x159 wide: 691x336

Windows Phone Cycle Tile Шаблон (TemplateCycle, CycleTileData) medium: 336x336 small: 159x159 wide center crops to medium wide: 691x336

Iconic Tile Шаблон (TemplateIconic, IconicTileData) medium: 202x202 small: 110x110 white with transparency only crop tight on horizontal

Windows Phone Новые типы плиток Демонстрация

Работа старых приложений

Windows Phone Работа старых приложений Вы можете использовать Reflection для доступа к новым классам на платформе WP пример библиотеки для WP 7.x по расширению возможности плиток

Windows Phone Интеграция с экраном блокировки Отображение контента из приложения на экране блокировки Отображение иконки и счетчика (когда счетчик >0) Работает вне зависимости от того, прикреплена ли плитка на основной экран Задается в манифесте с помощью Extensions элемента

Windows Phone Обновление заставки Пользователь может выбрать провайдера изображений в lock screen настройках ?WallpaperSettings=1 Приложение может запросить пользователя на право быть провайдером картинок Предоставляйте DefaultLockScreen.jpg в корне XAP Задается в манифесте с помощью Extensions элемента

Windows Phone StorageFile и StorageFolder Простой способ взаимодействия с директориями и файлами Используется в следующих случаях: – Доступ через InstalledLocation (в текущем объекте типа Package) к директории приложения – Доступ к локальной директории приложения, предназначенной для хранения файлов, изолированных от других приложений (LocalFolder) – Доступ к специальным директориям (в LocalFolder) ISETool.exe – утилита для работы с директориями приложения в устройстве

Windows Phone Расширена работа с Media Library Добавление и удаление музыки – SaveSong и Delete Получение абсолютного пути к элементу Данные хранятся как в памяти телефона, так и на внешних SD картах

Windows Phone Работа с данными на SD карте Приложение должно задекларировать эту возможность Работа осуществляется только с ассоциированными с приложением файлами Дополнительный набор классов: – ExternalStorageDevice – ExternalStorageFile – ExternalStorageFolder

Windows Phone Интеграция с контактами Приложения в Windows Phone 8 могут создавать свои группы контактов Контакты приложения интегрируются в стандартный Contact Hub К другим группам контактов приложение имеет доступ только на чтение (как и в WP 7.x)

Windows Phone Немного о классе Launcher Пример запуска страницы сайта Пример запуска внешнего приложения – ms-settings-lock: Передача файла private async void LauchSomething() { StorageFolder local = ApplicationData.Current.LocalFolder; StorageFile bqfile = await local.GetFileAsync("myfile.myex"); bool b=await Launcher.LaunchFileAsync(bqfile); }

Windows Phone Ассоциация задана Launch URI: skype:call?

Windows Phone Нет приложений

Windows Phone 2+ приложения

Windows Phone Создание ссылок Добавление элементов в манифест

Windows Phone Создание ассоциации: иконки

Windows Phone Запуск приложений через Proximity Запуск приложения на удаленном устройстве ProximityDevice device = ProximityDevice.GetDefault(); if (device != null) { long Id = device.PublishUriMessage( new System.Uri("contoso:NewProducts")); }

Windows Phone Вопросы?

Сергей Байдачный Специалист по разработке программного обеспечения Майкрософт Украина

Windows Phone Содержание Карты и местоположение Распознавание голоса Кошелек Коммуникации И другое…..

Windows Phone Доступно из C# и C++ Позволяет определять положение через интервал времени или базируясь на перемещениях Позволяет задать точность в метрах и время Позволяет задать максимальный «возраст» данных.Net APIs Windows Runtime APIs Предустановленная точность Проблемы с кешированием Только из управляемых приложений Требует вызова Start и Stop A- GPS Wi-fi Cell Доступные APIs

Windows Phone Определение позиции public async Task GetSinglePositionAsync() { Geolocator geolocator = new Geolocator(); geolocator.DesiredAccuracyInMeters = 10; Geoposition geoposition = await geolocator.GetGeopositionAsync( TimeSpan.FromMinutes(1), TimeSpan.FromSeconds(30)); return geoposition.Coordinate; }

Windows Phone Отслеживание изменений private Geolocator trackingGeolocator; private TypedEventHandler positionChangedHandler; public void StartTracking() { trackingGeolocator = new Geolocator(); trackingGeolocator.MovementThreshold = 100; // или trackingGeolocator.ReportInterval = (uint)TimeSpan.FromSeconds(30).TotalMilliseconds; positionChangedHandler = (geolocator, eventArgs) => {}; trackingGeolocator.PositionChanged += positionChangedHandler; } public void StopTracking() { trackingGeolocator.PositionChanged -= positionChangedHandler; }

Windows Phone Windows Phone 8 Map Control

Windows Phone Windows Phone Maps Services

Windows Phone Part of Windows Phone Toolkit MapsUserControl PushPin ToGeoCoordinate Map Control & Service APIs Map Toolkit Extensions ID_CAP_MAP and ID_CAP_LOCATION Developer Token assigned through Windows Phone Developer Center.Net Windows Phone Map and Services API

Windows Phone Настройка приложения App manifest:

Windows Phone Ограничения Только в XAML приложениях Только одно приложение может быть запущено Ограничения по доступу к ресурсам

Windows Phone Использование ресурсов CPU затраты на уровне10% Доступ к Location Audio\Speech Network Storage Sensors Нет доступа к камере и микрофону ShellToast и ShellTile.Update

Windows Phone Контроль со стороны пользователя ID_CAP_LOCATION Пользователь может закрыть приложение Пользователь может запретить функциональность для приложения

Windows Phone Деактивация

Windows Phone Управление голосом Более гибкая настройка приложения для управления голосом Поддержка API по распознаванию голоса Поддержка API по синтезу голоса

Windows Phone Синтез голоса async private void ButtonTTS_Click(object sender, RoutedEventArgs e) { SpeechSynthesizer synth = new SpeechSynthesizer(); await synth.SpeakTextAsync( "You have a meeting with Peter in 15 minutes."); }

Windows Phone Распознавание голоса async private void ButtonSR_Click(object sender, RoutedEventArgs e) { SpeechRecognizer reco = new SpeechRecognizer(); // Use the default short message dictation grammar SpeechRecognitionResult recoResult = await reco.RecognizeAsync(); // Do something with the recognition result MessageBox.Show(string.Format("You said {0}.", recoResult.Text)); }

Windows Phone NFC и кошелек Быстрый механизм передачи данных между приложениями (без сложного установления доверительных отношений) Поддержка безопасных механизмов передачи Хранение кредиток, скидок и др. в одном месте Возможность ассоциации карты с приложением Поддержка безопасности на уровне pin

Object Model WalletTransactionItemBas e PaymentInstrument ID_CAP_WALLET_PAYMENTINSTRUM ENTS ID_CAP_WALLET WalletTransactionItem ID_CAP_WALLET Deal ID_CAP_WALLET WalletItem

Windows Phone App Item Linking Wallet Item #1 Wallet Item #2 Wallet Item #3 Wallet Item #4 Wallet Item #5 App A App B

Windows Phone Windows Phone 7.1

Windows Phone Windows Phone 8

Sockets

Proximity

HTTP Support

Windows Phone Новые устройства Разрешения – 480 x 800 – 768 x 1280 – 720 x 1280 (16:9)

Windows Phone Шаринг данных ShareMediaTask – диалог для шаринга медиа файлов в социальных сетях по выбору пользователя

Windows Phone Новые элементы управления LongListSelector

Windows Phone И еще немного… Pivot и Panorama как часть платформы Линзы Улучшения работы с загрузкой фотографий Улучшение работы с камерой Покупка в приложении DirectX

Windows Phone Вопросы совместимости Windows Phone 8 поддерживает quirks режим, который позволяет запускать старые приложения Перекомпиляция старых приложений не всегда приводит к успеху – Документация содержит информацию о том, что необходимо изменить

Windows Phone Вопросы?

Сергей Байдачный Специалист по разработке программного обеспечения Майкрософт Украина

Windows Phone Содержание С++ и Windows Phone Современный С++ Расширение С++ для Windows 8 и Windows Phone 8 Немного о DirectX

Windows Phone Две модели приложений Управляемая Использование уже существующих подходов (C#/XAML) Большое количество элементов управления Поддержка XNA Нативная Разработка приложений на С++ Переносимость некоторых библиотек и кода с Windows 8 Повышение производительности игр при утилизации DirectX

Windows Phone Две модели приложений Допускается встраивание DirectX компонент в XAML интерфейс Создание приложений на HTML 5 не поддерживается, но …

Windows Phone C++ в Windows Phone 8 Visual C Тот же С++, что и в Windows 8 Новые возможности C++11 RValue referencesForward declared enumsBidirectional fences static_assertAlignmentData-dependency ordering AutoStandard-layout and trivial typesexception_ptr Trailing return typesExtended friend declarationsThread-local storage Lambdas Local and unnamed types as template arguments __func__ DecltypeRange-based for-loopC99 preprocessor Right angle bracketsoverride and finallong extern templatesMinimal GC support nullptrAtomics Strongly typed enumsStrong compare and exchange

Windows Phone Portable Class Libraries Одинаковый код Один проект Одна сборка Множество платформ

Windows Phone Portable Class Libraries Platform-specific Portable /shareablePlatform-specific Windows Phone app Windows Store app

Windows Phone Что же можно делать на С++ Networking Proximity In-App Purchase Sensors Location File System Core app model Threading

Windows Phone C++ reimagined C++ 11 auto shared_ptr decltype C++/CX Улучшение производительности С++ разработчика на платформе Windows 8 и Windows Phone 8

Windows Phone C++ Component Extensions (C++/CX) Key BindingsFeatureSummary 1. Data Types ref classReference type value classValue type interface class Interface propertyProperty with get/set eventDelegate property with add/remove/raise delegateType-safe function pointer genericType-safe generics 2. Allocation gcnewGarbage-collected allocation ref newReference-counted allocation 3. Pointer & Reference ^Strong pointer (hat or handle) %Strong reference

Windows Phone Создание классов Windows Runtime Defining public ref class Person { public: Person(String^ name, String^ ); void Greet(Person^ other); internal: ~Person(); void SetPassword(const std::wstring& passwd); }; Using Person^ p = ref new Person(John Surname); p->Greet(ref new Person(Jim Surename);

Windows Phone Работа с памятью Handle (^) is a pointer to a Windows Runtime object for which the compiler performs automatic reference counting ref new instantiates or activates a Windows Runtime class. Person^ p; { Person^ p2 = ref new Person(); // refcount = 1 p2->Name = John; // refcount = 1 p = p2; // refcount = 2 } // refcount = 1 p = nullptr;// refcount = 0; ~Person()

Windows Phone Интерфейсы Inheriting public interface class IFeline : IAnimal { void Scratch(); }; Implementing ref class Cat : IFeline { public: virtual void Play(); virtual void Scratch(); }; Defining public interface class IAnimal { void Play(); }; Using IAnimal^ animal = ref new Cat(); animal->Play();

Windows Phone Свойства Defining – Trivial properties (with private backing store) public: property String^ Name; – User defined properties public: property Person^ Sibling { Person^ get() { InitSiblings(); return _sibling; } void set(Person^ value) { _sibling = value; NotifySibling(); } } private: Person^ _sibling; Using Person^ p = ref new Person(John); p->Sibling = ref new Person(p->Name);

Windows Phone Делегаты Declaring: like a function public delegate void PropertyChanged( String^ propName, String^ propValue ); Instantiating: like a class – From lambda: auto p = ref new PropertyChanged( [](String^ pn, String^ pv) { cout

Windows Phone События Defining – Trivial event (with private backing store) public: event PropertyChanged^ OnPropertyChanged; – User defined event public: event PropertyChanged^ OnNetworkChanged { EventRegistrationToken add(PropertyChanged^); void remove(EventRegistrationToken t); void raise(String^, String^); } Using – Subscribing person->OnPropertyChanged += propertyChangedDelegate; auto token = person- >OnPropertyChanged::add(propertyChangedDelegate); – Unsubscribing person->OnPropertyChanged -= token; person->OnPropertyChanged::remove(token);

Windows Phone Исключения Signaling an error case: throw exception – throw ref new InvalidArgumentException(); – throw ref new COMException(E_*); Handling an error case: catch exception – try { … } catch (OutOfMemoryException^ ex) { … } – Access HRESULT value via ex->HResult Notes on exceptions: – catch (Platform::Exception^) catches all WinRT exceptions – Exceptions dont carry any state and dont travel across modules – Deriving from an exception class is ill- formed HRESULTException E_OUTOFMEMO RY OutOfMemoryExcepti on E_INVALIDARG InvalidArgumentExce ption E_NOINTERFACEInvalidCastException E_POINTER NullReferenceExcepti on E_NOTIMPL NotImplementedExce ption E_ACCESSDENI ED AccessDeniedExcepti on E_FAILFailureException E_BOUNDS OutOfBoundsExcepti on E_CHANGED_ST ATE ChangedStateExcepti on REGDB_E_CLAS SNOTREG ClassNotRegisteredE xception E_DISCONNECT ED DisconnectedExcepti on E_ABORTOperationCanceledE xception

Windows Phone Обобщенные типы Implementing ref class PairStringUri: IPair { public: property String^ First; property Uri^ Second; }; Defining generic public interface class IPair { property T First; property U Second; }; Using IPair ^ uri = GetUri(); auto first = uri->First; // type is String^ auto second = uri->Second; // type is Uri^

Windows Phone Частичные типы Partial class definition private partial ref class MainPage: UserControl, IComponentConnector { public: void InitializeComponent(); void Connect() { btn1->Click += ref new EventHandler(this, &MainPage::Button_Click); } }; Class definition ref class MainPage { public: MainPage() { InitializeComponent(); } void Button_Click(Object^ sender, RoutedEventArgs^ e); };

Windows Phone Vector and ObservableVector Instantiating using namespace Platform; Vector ^ items = ref new Vector (); Adding elements items->Append(Hello); Returning a read-only view of the vector IVectorView ^ GetItems () { return items->GetView(); } Getting notification for changes items->VectorChanged += ref new VectorChangedEventHandler (this, &MyClass::VectorChanged);

Windows Phone Map and ObservableMap Defining using namespace Platform; Map favorites = ref new Map (); Adding elements favorites->Insert(MSDN, ref new Uri( Checking and removing elements if (favorites->HasKey(MSDN)) favorites->Remove(MSDN);

Windows Phone Немного о DirectX C++/DirectX – поддержка нативных приложений XNA продолжает поддерживаться Поддержка DirectX 11.1, но уровень 9.3 Возможность интеграции XAML и DirectX

Windows Phone Вопросы?