КРОССПЛАТФОРМЕННАЯ
РАЗРАБОТКА НА .NET/C#
С ПЛАТФОРМОЙ XAMARIN
НИКИТА САВАНЧУК
@Nikita.Savanchuk
Я расскажу вам о …
О ПЛАТФОРМЕ XAMARIN
РАЗРАБОТКА
РАБОТА С API/SDK
СБОРКА И ИСПОЛНЕНИЕ
ПЛЮСЫ/МИНУСЫ
➤
XAMARIN
Xamarin — это платформа для
кроссплатформенной разработки
мобильных приложений
XAMARIN
Позволяет разрабатывать iOS,
MAC и Android приложения на
C#, используя почти всю мощь
.Net Framework
XAMARIN – НЕ НОВАЯ
ПЛАТФОРМА
• Основана на Mono Runtime
• Которая развивается с 2004 года
• Основатель – Miguel de Icaza (GNOME, mc)
• На сайте компании есть все для старта и работы
• Огромное количество примеров на github.com/xamarin
• Выпущено несколько книг
• ~1.500.000 разработчиков (F#)
iOS UI
Android UI
О ПЛАТФОРМЕ XAMARIN
РАЗРАБОТКА
РАБОТА С API/SDK
СБОРКА И ИСПОЛНЕНИЕ
ПЛЮСЫ/МИНУСЫ
➤
✔
Проблемы нативной разработки
• Anti-DRY (Don't repeat yourself)
• Все говорят на разных языках
• Один разработчик = одна платформа
• Ошибки исправляются только на
одной платформе
• C# везде! Можно писать для Mac OS, iOS и Android;
• Нативный и производительность UI;
• Одна IDE для разработки для всех платформ;
• Готовые компоненты для быстрой разработки;
• Огромное количество готовых C# библиотек;
• Можно использовать нативные библиотеки;
• Полностью бесплатная.
XAMARIN
Почему C# ?
Objective-C
Xamarin + C#
В классах активно используется механизм C#
event`ов, что позволяет писать красивый и
компактный код обработчиков с
использованием делегатов и лямбда-
выражений:
О ПЛАТФОРМЕ XAMARIN
РАЗРАБОТКА
РАБОТА С API/SDK
СБОРКА И ИСПОЛНЕНИЕ
ПЛЮСЫ/МИНУСЫ
➤
✔
✔
Работа с API/SDK
• Не надо забывать, что вы учили раньше;
• Есть все знакомые классы и методы
(UIViewController, Activity);
• Обертки над API сделаны по понятным
правилам;
• Релиз в тот же день;
• Stackoverflow - программист
• C# упростил решение типовых задач.
Соответствие API Andoid
Java:
│ Intent i = new Intent(this, AnotherActivity.class);
startActivity(i);
C#:
│Intent i = new Intent(this, typeof(AnotherActivity));
StartActivity(i);
Objective-‐C:
│[self.navigationController pushViewController:yourViewC
ontroller animated:YES];
C#:
│ this.NavigationController.PushViewController(yourViewC
ontroller, true);
Соответствие API iOS
О ПЛАТФОРМЕ XAMARIN
РАЗРАБОТКА
РАБОТА С API/SDK
СБОРКА И ИСПОЛНЕНИЕ
ПЛЮСЫ/МИНУСЫ
➤
✔
✔
✔
Сборка и исполнение
• Всё компилируется в сборки;
• Добавляется Mono Runtime, GC, BCL;
• iOS. AOT компиляция генерирует из IL машинный код;
• Линковщик оставляет только тот код, который
используется;
• Исполняется нативно!
Сборка и исполнение
Линковка
• Когда все линкуется, берется только то, что используется
• Если Вам все-таки что-то необходимо, но напрямую не
используется, можно пометить атрибутом
• Сильно уменьшает размер приложения
• Чем больше используем, тем больше приложение.
О ПЛАТФОРМЕ XAMARIN
РАЗРАБОТКА
РАБОТА С API/SDK
СБОРКА И ИСПОЛНЕНИЕ
ПЛЮСЫ/МИНУСЫ➤
✔
✔
✔
✔
Минусы
• Xamarin Studio прекрасна, но имеет проблемы с отладчиком
• Встречаются баги
• Runtime неплохо нагружает приложение (+2-3 метра)
• Немного страдает производительность
• Нет Generic Virtual Methods в iOS
Плюсы
• Шарится много кода между всеми .NET платформами
• Позволяет переиспользовать до 60-80% кода
• Не обязательно знать Objective-C и Java
• Проще и быстрее разрабатывать (особенно общие части)
• Тонны нативных библиотек, библиотек .NET на github, codeplex, …
• Огромное сообщество .NET, и быстро растущее сообщество Xamarin.
• Да везде: быстрее кодим, меньше багов
• Меньше программистов для тех же задач
• Можно брать как с iOS/Android так и .NET разработчиков
• Сокращение стоимости разработки конечного продукта и как
следствие – довольные заказчики.
• Быстрая разработка – что тоже приводит к довольным заказчикам
• Огромный процент переиспользования в последующих проектах
ведет к еще большему снижению стоимости.
Плюсы для компании
Вопросы!
НИКИТА САВАНЧУК
fb, vk /Nikita.Savanchuk

Разработка мобильных приложений на платформе Xamarin

  • 1.
    КРОССПЛАТФОРМЕННАЯ РАЗРАБОТКА НА .NET/C# СПЛАТФОРМОЙ XAMARIN НИКИТА САВАНЧУК @Nikita.Savanchuk
  • 2.
  • 3.
    О ПЛАТФОРМЕ XAMARIN РАЗРАБОТКА РАБОТАС API/SDK СБОРКА И ИСПОЛНЕНИЕ ПЛЮСЫ/МИНУСЫ ➤
  • 4.
    XAMARIN Xamarin — этоплатформа для кроссплатформенной разработки мобильных приложений
  • 5.
    XAMARIN Позволяет разрабатывать iOS, MACи Android приложения на C#, используя почти всю мощь .Net Framework
  • 6.
    XAMARIN – НЕНОВАЯ ПЛАТФОРМА • Основана на Mono Runtime • Которая развивается с 2004 года • Основатель – Miguel de Icaza (GNOME, mc) • На сайте компании есть все для старта и работы • Огромное количество примеров на github.com/xamarin • Выпущено несколько книг • ~1.500.000 разработчиков (F#)
  • 7.
  • 8.
  • 9.
    О ПЛАТФОРМЕ XAMARIN РАЗРАБОТКА РАБОТАС API/SDK СБОРКА И ИСПОЛНЕНИЕ ПЛЮСЫ/МИНУСЫ ➤ ✔
  • 10.
    Проблемы нативной разработки •Anti-DRY (Don't repeat yourself) • Все говорят на разных языках • Один разработчик = одна платформа • Ошибки исправляются только на одной платформе
  • 11.
    • C# везде!Можно писать для Mac OS, iOS и Android; • Нативный и производительность UI; • Одна IDE для разработки для всех платформ; • Готовые компоненты для быстрой разработки; • Огромное количество готовых C# библиотек; • Можно использовать нативные библиотеки; • Полностью бесплатная. XAMARIN
  • 12.
  • 13.
  • 14.
    В классах активноиспользуется механизм C# event`ов, что позволяет писать красивый и компактный код обработчиков с использованием делегатов и лямбда- выражений:
  • 15.
    О ПЛАТФОРМЕ XAMARIN РАЗРАБОТКА РАБОТАС API/SDK СБОРКА И ИСПОЛНЕНИЕ ПЛЮСЫ/МИНУСЫ ➤ ✔ ✔
  • 16.
    Работа с API/SDK •Не надо забывать, что вы учили раньше; • Есть все знакомые классы и методы (UIViewController, Activity); • Обертки над API сделаны по понятным правилам; • Релиз в тот же день; • Stackoverflow - программист • C# упростил решение типовых задач.
  • 17.
    Соответствие API Andoid Java: │Intent i = new Intent(this, AnotherActivity.class); startActivity(i); C#: │Intent i = new Intent(this, typeof(AnotherActivity)); StartActivity(i);
  • 18.
    Objective-‐C: │[self.navigationController pushViewController:yourViewC ontroller animated:YES]; C#: │this.NavigationController.PushViewController(yourViewC ontroller, true); Соответствие API iOS
  • 19.
    О ПЛАТФОРМЕ XAMARIN РАЗРАБОТКА РАБОТАС API/SDK СБОРКА И ИСПОЛНЕНИЕ ПЛЮСЫ/МИНУСЫ ➤ ✔ ✔ ✔
  • 20.
    Сборка и исполнение •Всё компилируется в сборки; • Добавляется Mono Runtime, GC, BCL; • iOS. AOT компиляция генерирует из IL машинный код; • Линковщик оставляет только тот код, который используется; • Исполняется нативно!
  • 21.
  • 22.
    Линковка • Когда вселинкуется, берется только то, что используется • Если Вам все-таки что-то необходимо, но напрямую не используется, можно пометить атрибутом • Сильно уменьшает размер приложения • Чем больше используем, тем больше приложение.
  • 23.
    О ПЛАТФОРМЕ XAMARIN РАЗРАБОТКА РАБОТАС API/SDK СБОРКА И ИСПОЛНЕНИЕ ПЛЮСЫ/МИНУСЫ➤ ✔ ✔ ✔ ✔
  • 24.
    Минусы • Xamarin Studioпрекрасна, но имеет проблемы с отладчиком • Встречаются баги • Runtime неплохо нагружает приложение (+2-3 метра) • Немного страдает производительность • Нет Generic Virtual Methods в iOS
  • 25.
    Плюсы • Шарится многокода между всеми .NET платформами • Позволяет переиспользовать до 60-80% кода • Не обязательно знать Objective-C и Java • Проще и быстрее разрабатывать (особенно общие части) • Тонны нативных библиотек, библиотек .NET на github, codeplex, … • Огромное сообщество .NET, и быстро растущее сообщество Xamarin. • Да везде: быстрее кодим, меньше багов
  • 26.
    • Меньше программистовдля тех же задач • Можно брать как с iOS/Android так и .NET разработчиков • Сокращение стоимости разработки конечного продукта и как следствие – довольные заказчики. • Быстрая разработка – что тоже приводит к довольным заказчикам • Огромный процент переиспользования в последующих проектах ведет к еще большему снижению стоимости. Плюсы для компании
  • 27.