devcon 2016 - xamarin
TRANSCRIPT
![Page 1: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/1.jpg)
![Page 2: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/2.jpg)
#msdevcon
Windows & More Personal Computing
Xamarin: обзор технологии и погружение в разработку решенийАнтон Шунков, Технический евангелист – MicrosoftВячеслав Черников, Руководитель отдела разработки – BinwellДенис Кретов, Технический директор – Notissimus
![Page 3: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/3.jpg)
#msdevcon
Цели
Что такое Xamarin?
Как создать свое
приложение?
Наибольший общий
делитель?Лучшие практики от
экспертовКак использовать все
уникальные фичи каждой платформы
Обзор новой технологии в семье Microsoft
![Page 4: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/4.jpg)
#msdevcon
Будущее приложенийАнтон ШунковTechnical Evangelist, Microsoft
![Page 5: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/5.jpg)
И не отстает от нововведен
ий платформы
Приложение моей мечты
Которое работает на
всех платформах
Нэйтив приложени
е с идеальным рейтингом
Использует все фичи
платформы
![Page 6: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/6.jpg)
BUILD TEST MONITOR
ACCELERATE
Все, что нужно для мобильной разработки
![Page 7: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/7.jpg)
Xamarin 4
BUILD TEST
MONITOR
ACCELERATE
![Page 8: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/8.jpg)
Нэйтив приложения на всех платформах
![Page 9: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/9.jpg)
Как устроен Xamarin
Общий код на C# • 100% покрытие API • Высокая производительность
iOS C# UI
Windows C# UIAndroid C# UI
Общая логика на C#
![Page 10: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/10.jpg)
Xamarin и Xamarin.Forms
Традиционный Xamarin Xamarin.Forms
Общая C# логика
Общий UI код
iOS C# UI Android C# UI Windows C# UI
Общая C# логика
![Page 11: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/11.jpg)
Windows API
Microsoft.Phone Microsoft.Networking
Windows.Storage
Windows.Foundation
Microsoft.Devices
System.Data System.Windows
System.Numerics System.Core System.ServiceMod
el
System.Net System System.IO System.Linq System.Xml
![Page 12: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/12.jpg)
iOS – 100% покрытие API
MapKit UIKit iBeacon CoreGraphics CoreMotion
System.Data System.Windows
System.Numerics System.Core System.ServiceMod
el
System.Net System System.IO System.Linq System.Xml
![Page 13: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/13.jpg)
Android – 100% покрытие API
Text-to-speech ActionBar Printing Framework Renderscript NFC
System.Data System.Windows
System.Numerics System.Core System.ServiceMod
el
System.Net System System.IO System.Linq System.Xml
![Page 14: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/14.jpg)
Xamarin.iOS использует полную Ahead Of Time (AOT) компиляцию для создания пакета для Apple App Store.
Xamarin.Android использует Just In Time (JIT) компиляцию на Android устройствах.
.NET
C#
Compile
and Link.APK
Bindings
IL+ JIT
Runs Native
ly
Высокая производительность
![Page 15: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/15.jpg)
Интеграция с Visual Studio
![Page 16: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/16.jpg)
Какой Xamarin лучше для вашего приложения?
Xamarin.Forms прекрасен для:
Xamarin.iOS / Xamarin.Android лучше для:
• Приложений не использующих особые фичи разных платформ
• Приложений, в которых желательно максимизировать общий кода
• Приложений с множеством форм
• Прототипирования
Learn more: xamarin.com/forms
Learn more: xamarin.com/platform
• Приложений использующих максимум функционала разных платформ
• Приложений с дизайном по всем гайдлайном платформы
• Приложений, в которых UX гораздо важнее доли общего кода
![Page 17: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/17.jpg)
#msdevcon
Разработка мобильных приложений с помощью Xamarin и MvvmCross.
Денис Кретов, Руководитель отдела разработкиМаксим Евтух, Разработчик Xamarin
Исходные коды доступны по адресу https://github.com/pocheshire/MobiusDemo
![Page 18: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/18.jpg)
#msdevcon
NOTISSIMUS
• Разрабатываем на Xamarin более 3 – х лет.• Запустили 50+ проектов• Разработали отраслевое решение для Интернет-Магазинов на базе
Xamarin• Внедряем решения на базе iBeacon и Eddystone
Наша специализация
![Page 19: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/19.jpg)
#msdevcon
Кросс-платформенная разработка мобильных приложений.Какой технологии отдать предпочтение?
![Page 20: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/20.jpg)
#msdevcon
Native SDK.Плюсы.
Минусы.
• Они нативные! • Интеграция с аппаратной
частью без ограничений• Высокая скорость работы • Минимальный размер
приложения
• Поддержка двух и более веток кода при разработке на разные платформы.
• Время работ(трудозатраты) увеличивается пропорционально количеству платформ
![Page 21: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/21.jpg)
#msdevcon
Html 5.Плюсы.
Минусы.
• Лёгкое вхождение для веб-разработчиков
• Быстрая и как следствие более дешевая разработка
• Единая база кода
• Плохая производительность UI
• Чужеродность UI• Отсутствие средств
разработки и отладки “из коробки”
• Ограниченный доступ к аппаратным возможностям
![Page 22: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/22.jpg)
#msdevcon
Xamarin.Плюсы.
Минусы.
• Нативный UI• 70-80% единой базы кода
между платформами• Единый язык
программирования (C#)• Полноценная поддержка в
VisualStudio
• Не всегда успевает за нативными SDK
• Для компиляции под iOS нужен Mac
• Размер приложения в 1,5 раза больше чем native
![Page 23: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/23.jpg)
Xamarin + MvvmCross
Общая логика на C# 60/70 %
iOS C# UI
Android C# UI
Windows C# UI
Общая логика UI
• Кросс-платформенная инфраструктура MVVM
• С открытым исходным кодом• Dependency Injection built-in • Большое количество написанных
плагинов
![Page 24: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/24.jpg)
#msdevcon
MvvmCross доступна для• Xamarin.iOS• Mac• Xamarin.Android• Windows Presentation Foundation• Windows Phone• Windows 8• Universal Windows Platform
![Page 25: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/25.jpg)
Вспомним про паттерныMVC MVP MVV
MVIEW
CONTROLLER
MODEL
INPUT
1
*VIEW
PRESENTER
MODEL
INPUT
1
1VIEW
VIEWMODEL
MODEL
1
*INPUT
![Page 26: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/26.jpg)
#msdevcon
Преимущества MVVM• Максимальное
разделение логики• Повторное
использование кода для работы с UI
• Широкие возможности по тестированию
ModelБизнес
логика и данные
View ModelЛогика
отображения данных на
UI
ViewИнтерфейс
пользователя
Данные.Запись.
Данные.Изменение.
Команды и связывание данных.
![Page 27: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/27.jpg)
ViewModelprivate async void LoadContent(){ Loading = true; … Загрузка данных Loading = false;} public ICommand BasketCommand{ get{ return new MvxCommand(() =>
ShowViewModel<BasketViewModel>());}} private bool _loading;public bool Loading{ get { return _loading; } set { _loading = value; RaisePropertyChanged(() => Loading); }}
Купить
![Page 28: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/28.jpg)
View iOSТолько C#
protected UIActivityIndicatorView _loading;protected UIButton _basketButton;
var set = this.CreateBindingSet<ProductViewController, ProductViewModel>(); set.Bind(loading).For("Hidden").To(vm => vm.Loading);set.Bind(_basketButton).To(vm => vm.BasketCommand);set.Apply();
![Page 29: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/29.jpg)
View AndroidБез C#, только XML
<xmlns:local="http://schemas.android.com/apk/res-auto"<ProgressBar local:MvxBind=“Visibility Visibility(Loading)“/><Button local:MvxBind=“Click BasketCommand“/>
![Page 30: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/30.jpg)
#msdevcon
Демонстрация
Live DemoМобильное решение с использованием iBeacon, Xamarin, MVVMCross, Azure и Яндекс.Денег
![Page 31: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/31.jpg)
MICROSOFT CONF IDENT IAL – INTERNAL ONLY
Схема решения.
Мобильное устройство
Azure Mobile Services
Bluetooth LEEnabled BeaconСканирование
Bluetooth LE устройств на предмет вхожденияв область сигнала
Запрос на уведомление, cодержащийUUID Beacon
Уведомлениев соответствии с UUID, открываем карточку товара
Сигнал до ~30 м
![Page 32: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/32.jpg)
MICROSOFT CONF IDENT IAL – INTERNAL ONLY
Схема решения. Часть II.
Мобильное Приложение
Карточка ТовараКупит
ь
Веб Форма Яндекс Денег
Данные кредитнойкарты
Подтвер-ждение оплаты
API.Яндекс Денег
![Page 33: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/33.jpg)
iBeacon.• “Beacon”(англ.) – радиомаяк• Основа Bluetooth Low Energy ,
часть Bluetooth 4.0• Низкое энергопотребление • Радиус вещания – 30 метров
в хороших условиях• Передаваемая информация:
Идентификатор (UUID, Major, Minor)
![Page 34: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/34.jpg)
• Bluetooth Low Energy
• Xamarin + MvvmCross
• Azure
• API Яндекс.Денег
Технологии.
![Page 35: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/35.jpg)
#msdevcon
Разработка приложений для Apple Watch и Android Wear Вячеслав ЧерниковРуководитель отдела разработки, Binwell Ltd.
![Page 36: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/36.jpg)
Смарт-часыЧто такое смарт-часы?Дополнительный экран для смартфонаДополнительный орган управления для смартфона
ЗадачиБыстрый просмотр информации Быстрое управление приложением на смартфоне
ОграниченияРазмер экрана Тачскрин и органы управленияВремя контакта с пользователем
![Page 37: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/37.jpg)
Основные сценарииМониторинг здоровья и активностиНа основе показаний сенсоров
Управление окружениемЧерез смартфон, подключенный к сети устройств (IoT)
Бизнес-задачиПросмотр уведомлений, статусов и краткой информации
РазвлеченияИгры и мультимедиа
![Page 38: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/38.jpg)
#msdevcon
Xamarin для Android Wear
![Page 39: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/39.jpg)
Особенности Xamarin для Android WearПочти все возможности AndroidВсе принципы и подходы разработки Android-приложений применимы к Android Wear
Устанавливаем Android 4.4W SDKИ не забываем про симуляторы. Есть поддержка x86
Companion AppПриложение для Wear идет вместе с хост-приложением на смартфоне
![Page 40: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/40.jpg)
#msdevcon
Демонстрация
Live DemoСоздаем приложение для Android Wear на Xamarin
![Page 41: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/41.jpg)
#msdevcon
Xamarin для Apple Watch
![Page 42: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/42.jpg)
Особенности Xamarin для Apple WatchwatchOS 2Нативные приложения, больше контролов и поддержка анимаций
Xamarin watchOS 2 PreviewXamarin пока поддерживает работу с watchOS 2 только на симуляторе
Watch ConnectivityДля взаимодействия с хост-приложением
![Page 43: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/43.jpg)
#msdevcon
Демонстрация
Live DemoСоздаем приложение для Apple Watch на Xamarin
![Page 44: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/44.jpg)
#msdevcon
Как предусмотреть всеАнтон ШунковTechnical Evangelist, Microsoft
![Page 45: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/45.jpg)
Xamarin Family
BUILD
TEST MONITOR
ACCELERATE
![Page 46: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/46.jpg)
Качество мобильного аппа это сложно
7 Версий OS20 Устройств20 Языков35 Локалей6 Размеров
экрана
10 Версий OS24K+ Различных устройств39 Языков57 Локалей27 Размеров экрана15 Производителей
![Page 47: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/47.jpg)
Разнообразие Android’a
![Page 48: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/48.jpg)
Разнообразие iOS3D TouchiPhone 6s s eries only
Apple penciliPad Pro only
Multi TaskingOnly select
iPads
iPads
iPod touch
iPhones
Form factors
iOS 9 features
![Page 49: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/49.jpg)
Тысячи API Андроида и iOS
Публичные веб API
Интеграции с бэкендом
Сторонние библиотеки
Компоненты устройств
Сложность приложений
![Page 50: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/50.jpg)
Tap
Scroll
Swipe
Pinch Multi Finger
Text Entry
Rotation
GPS
![Page 51: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/51.jpg)
xamarin.com/testcloud
![Page 52: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/52.jpg)
Xamarin Family
BUILD
TEST
MONITOR
ACCELERATE
![Page 53: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/53.jpg)
Поддержка платформ
✓ Xamarin.iOS✓ Xamarin.Android✓ Xamarin.Mac✓ Windows Phone✓ Windows Store✓ Windows Desktop
Xamarin Insights
![Page 54: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/54.jpg)
//Crash Report Insights.Report(exception);
//Feature Usage Insights.Track(“Splash Page”);
//Timed Events Insights.TrackTime(“TimeToSync”);
//User Sessions Insights.Identify(“Steve”, user_traits);
Xamarin Insights API
![Page 55: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/55.jpg)
Отслеживание всех событий и их длятельности
Xamarin Insights – Отслеживание событий
![Page 56: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/56.jpg)
Совмещение отслеживания событий с личностью пользователя для ускоренного исправления проблем
Xamarin Insights – Идентификация
![Page 57: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/57.jpg)
Автоматическое логгирование всех не словленных исключений
Xamarin Insights - Отчеты
![Page 58: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/58.jpg)
Интеграция с популярными инструментами разработки
Xamarin Insights - Интеграции
![Page 59: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/59.jpg)
Xamarin Family
BUILD
TEST
MONITOR
ACCELERATE
![Page 60: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/60.jpg)
Xamarin University
Более 60 занятий
Гостевые лекции от
признанных экспертов
Блиц лекции: максимум знаний в коротком формате
Станьте сертифицированным Xamarin
экспертом
![Page 61: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/61.jpg)
#msdevcon
Что дальше
Вы во всеоружии
Берите от каждой
платформы все
Show must go on!
Не ограничивайте свое приложение
функционалом, присутствующим на всех
платформах
Мы переходим в зону QA.
Вы всегда можете написать нам на почту,
если у вас будут вопросы
Приходите вечером на круглые столы с
экспертами.
Вы готовы делать лучшие кросс-
платформенные приложения
![Page 62: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/62.jpg)
#msdevcon
Q&A
Xamarin: обзор технологии и погружение в разработку решенийАнтон Шунков, Технический евангелист – MicrosoftВячеслав Черников, Руководитель отдела разработки – BinwellДенис Кретов, Технический директор – Notissimus
![Page 63: DevCon 2016 - Xamarin](https://reader035.vdocuments.mx/reader035/viewer/2022081513/58f12df11a28ab354f8b45c5/html5/thumbnails/63.jpg)
© 2016 Microsoft Corporation. All rights reserved.