Upload
nikita-savanchuk
View
98
Download
5
Embed Size (px)
Citation preview
КРОССПЛАТФОРМЕННАЯРАЗРАБОТКА НА .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 AndoidJava:│ Intent i = new Intent(this, AnotherActivity.class); startActivity(i);
C#:│Intent i = new Intent(this, typeof(AnotherActivity)); StartActivity(i);
Objective- ‐C:│[self.navigationController pushViewController:yourViewController animated:YES]; C#: │ this.NavigationController.PushViewController(yourViewController, 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