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

Post on 06-Apr-2017

102 Views

Category:

Mobile

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

КРОССПЛАТФОРМЕННАЯРАЗРАБОТКА НА .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

top related