Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CodeFest 2018. Дмитрий Моисеев (СКБ Контур) — Xamarin в продакшене — полёт нормальный

CodeFest 2018. Дмитрий Моисеев (СКБ Контур) — Xamarin в продакшене — полёт нормальный

Посмотрите выступление Дмитрия: https://2018.codefest.ru/lecture/1332/

У Xamarin сложилась противоречивая репутация. Кто-то его безудержно ругает за проблемы со стабильностью и инструментарием, кто-то выводит приложения в сторы и радуется всем прелестям кроссплатформенности. Наша команда – из вторых. Уже три года мы успешно разрабатываем на C# и Xamarin мобильное приложение для предпринимателей, и на собственном опыте успели оценить, насколько ситуация с Xamarin изменилась к лучшему. Я расскажу, как сегодня можно использовать Xamarin для одновременного выпуска релизов сложного приложения на iOS и Android.

Доклад будет полезен мобильным разработчикам, не успевшим попробовать Xamarin, а так же тем, кто пробовал его несколько лет назад и был разочарован этим опытом.

CodeFest

April 09, 2018
Tweet

More Decks by CodeFest

Other Decks in Programming

Transcript

  1. 2 приложения — почему больно? • Отдельные интерфейсы • Отдельная

    реализация фич • Отдельные баги и фиксы • Отдельное тестирование • …отдельное ВСЁ
  2. Что идёт в общий код • Сеть • БД •

    Бизнес-логика (модели, валидация и т.п.)
  3. Что НЕ идёт в общий код • Push-уведомления • Фоновая

    работа • Взаимодействие с системой (распознавание отпечатков, счётчики на иконках и т.п.) (кроме как в виде интерфейсов)
  4. К чему пришли? • Общая реализация фич • Общие баги

    и фиксы • Общие тесты • Отдельные интерфейсы • Отдельные UI баги и фиксы
  5. Миф: медленный старт 0 200 400 600 800 1000 1200

    Android iOS Натив Xamarin Xamarin.Forms
  6. Xamarin.Forms в сравнении c 2015 + Меньше глюков + Выше

    скорость + Margin у всех компонентов + Превью XAML-вёрстки
  7. MVVM в Эльбе binder.Bind(() => State, () => Model.State); private

    PushLoginViewModel.Phaze State { set { if (value == PushLoginViewModel.Phaze.Complete) { progressBarBlock.FadeOut(); succesBlock.FadeIn(); }
  8. Миф: сырые инструменты (IDE) • Xamarin Studio • Visual Studio

    (Windows) • JetBrains Rider • Visual Studio (macOS) • MonoDevelop (Linux)
  9. Большой размер приложения 0 1000 2000 3000 4000 5000 6000

    7000 8000 Android iOS 2-3 фото в 13 Мп Натив Xamarin
  10. Не мифы • Не избавляет от необходимости понимать принципы работы

    нативных платформ • Не избавляет от чтения Java/Objective-C/Swift
  11. Не мифы • Не избавляет от необходимости понимать принципы работы

    нативных платформ • Не избавляет от чтения Java/Objective-C/Swift • Медленные релизный билд (3 минуты на платформу) • Не готовит кофе
  12. Плюсы Xamarin • Экономит время на бизнес-логике • Экономит время

    на багфиксах • Экономит время на тестировании
  13. Плюсы Xamarin • Экономит время на бизнес-логике • Экономит время

    на багфиксах • Экономит время на тестировании • .NET