Как мы делали оффлайн-карты под windows phone — Александр...

Post on 29-Jul-2015

189 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

DevCon 2015developers productivity platform

Александр Волохинразработчик на платформе Windows Phone, 2GIS

Как мы делали офлайн-карты под Windows Phone

Новый 2GIS для Windows Phone

• Детальная карта • Справочник организаций• Поиск проезда на авто и

общественном транспорте• Более 250 городов России• Офлайн

Зачем нужна новая версияПро архитектуру нового 2GIS Про 3D-картуПро MVVM framework Доставка данных для работы офлайнПро верстку XAML и дизайнеровКак мы на Universal App переходили

Содержание

Старый 2GIS для Windows Phone

• Детальная карта • Справочник организаций• Поиск проезда на

общественном транспорте• Более 250 городов России• Онлайн

Зачем нужен новый 2GIS под WP

• Офлайн• Быстрое появление новых фич• Безболезненная доставка

данных

«отстойная онлайновая никчемность» © Oleg

Архитектура нового 2GIS

CORE

Windows Runtime Component

UI

Solution ‘v4uniapp’ (450 projects)

3D-карта

• Работает офлайн• Разрабатывается отдельной

командой• Написана на OpenGL• Используем Angle

MVVM framework Caliburn.Micro

• Поддержка навигации посредством NavigationService• Методы Activate() и Deactivate()• Поддержка сохранения состояния• Встроенная поддержка IoC контейнера• Поддержка Pivot, декомпозиция для PivotItems• Открытый исходный код и низкий порог вхождения

Наши доработки в Caliburn.Micro

• Бинарная сериализация с помощью SharpSerializer • NavigationService для двухуровневой навигации

Двухуровневая навигация

Доставляем данные

{

 "data": "Hello, offline!"

}

Доставляем шаблоны

<DataTemplate x:Key="Key">

<TextBlock Text="{Binding [data]}"/>

</DataTemplate>

// Используем XamlReader.Load()

Универсальный DataContextpublic class DynamicDataContext

{

public object this[string key]

{

get

{

return dictionary[key];

}

}

private Dictionary<string, object> dictionary;

}

Доставили

1. Парсим JSON -> ViewModel2. Парсим XAML -> View3. DataBinding через

индексатор4. Profit!

Верстка. Дизайнеры. Что делать

?

Microsoft Expression Blend 2013

Blend. Хьюстон, у нас проблемы

Blend. Просто ничего не отображает

// Готовим Blend:// дебажим ошибки в DesignTime,// настраиваем d:DataContext — // profit!

// Очень нужна сортировка

// Верстаем по сетке.// По такой же, которую// использует дизайнер.

Переходим на Universal App

• 4 недели, 3 разработчика, 150 проектов• Отказываемся от сторонних библиотек элементов

управления

ScaleFactor изменился

было

стало

Спасибо! • Офлайн• Ядро на C++, UI на C#/XAML• 3D-карта через Angle• Caliburn.Micro• DataTemplates отдельно от

приложения• Верстаем в Blend• Universal App

Новый 2GIS. Качаем!

«Идеально. Спасибо, я так ждал» © Давид

©2015 Microsoft Corporation. All rights reserved. Microsoft, Windows, Office, Azure, System Center, Dynamics and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

top related