Как мы делали оффлайн-карты под Windows Phone — Александр...
-
Upload
2- -
Category
Technology
-
view
188 -
download
0
Transcript of Как мы делали оффлайн-карты под Windows Phone — Александр...
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.