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

27
КРОССПЛАТФОРМЕННАЯ РАЗРАБОТКА НА .NET/C# С ПЛАТФОРМОЙ XAMARIN НИКИТА САВАНЧУК @Nikita.Savanch uk

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

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

КРОССПЛАТФОРМЕННАЯРАЗРАБОТКА НА .NET/C# С ПЛАТФОРМОЙ XAMARIN

НИКИТА САВАНЧУК@Nikita.Savanchuk

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

Я расскажу вам о …

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

О ПЛАТФОРМЕ XAMARINРАЗРАБОТКАРАБОТА С API/SDKСБОРКА И ИСПОЛНЕНИЕПЛЮСЫ/МИНУСЫ

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

XAMARIN

Xamarin — это платформа для кроссплатформенной разработки мобильных приложений

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

XAMARIN

Позволяет разрабатывать iOS, MAC и Android приложения на C#, используя почти всю мощь .Net Framework

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

XAMARIN – НЕ НОВАЯ ПЛАТФОРМА

• Основана на Mono Runtime

• Которая развивается с 2004 года

• Основатель – Miguel de Icaza (GNOME, mc)

• На сайте компании есть все для старта и работы

• Огромное количество примеров на github.com/xamarin

• Выпущено несколько книг

• ~1.500.000 разработчиков (F#)

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

iOS UI

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

Android UI

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

О ПЛАТФОРМЕ XAMARINРАЗРАБОТКАРАБОТА С API/SDKСБОРКА И ИСПОЛНЕНИЕПЛЮСЫ/МИНУСЫ

➤✔

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

Проблемы нативной разработки

• Anti-DRY (Don't repeat yourself)

• Все говорят на разных языках

• Один разработчик = одна платформа

• Ошибки исправляются только на одной платформе

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

• C# везде! Можно писать для Mac OS, iOS и Android;

• Нативный и производительность UI;• Одна IDE для разработки для всех платформ; • Готовые компоненты для быстрой разработки;• Огромное количество готовых C# библиотек;• Можно использовать нативные библиотеки;• Полностью бесплатная.

XAMARIN

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

Почему C# ?

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

Objective-C

Xamarin + C#

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

В классах активно используется механизм C# event`ов, что позволяет писать красивый и компактный код обработчиков с использованием делегатов и лямбда-выражений:

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

О ПЛАТФОРМЕ XAMARINРАЗРАБОТКАРАБОТА С API/SDKСБОРКА И ИСПОЛНЕНИЕПЛЮСЫ/МИНУСЫ

✔✔

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

Работа с API/SDK• Не надо забывать, что вы учили

раньше;• Есть все знакомые классы и методы

(UIViewController, Activity);• Обертки над API сделаны по понятным

правилам;• Релиз в тот же день;• Stackoverflow - программист• C# упростил решение типовых задач.

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

Соответствие API AndoidJava:│ Intent  i  =  new  Intent(this,  AnotherActivity.class);  startActivity(i);

C#:│Intent  i  =  new  Intent(this,  typeof(AnotherActivity)); StartActivity(i); 

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

Objective- ‐C:│[self.navigationController  pushViewController:yourViewController  animated:YES];     C#:   │ this.NavigationController.PushViewController(yourViewController,  true); 

Соответствие API iOS

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

О ПЛАТФОРМЕ XAMARINРАЗРАБОТКАРАБОТА С API/SDKСБОРКА И ИСПОЛНЕНИЕПЛЮСЫ/МИНУСЫ

✔✔✔

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

Сборка и исполнение• Всё компилируется в сборки;• Добавляется Mono Runtime, GC, BCL;• iOS. AOT компиляция генерирует из IL

машинный код;• Линковщик оставляет только тот код,

который используется;• Исполняется нативно!

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

Сборка и исполнение

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

Линковка

• Когда все линкуется, берется только то, что используется

• Если Вам все-таки что-то необходимо, но напрямую не используется, можно пометить атрибутом

• Сильно уменьшает размер приложения• Чем больше используем, тем больше

приложение.

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

О ПЛАТФОРМЕ XAMARINРАЗРАБОТКАРАБОТА С API/SDKСБОРКА И ИСПОЛНЕНИЕПЛЮСЫ/МИНУСЫ➤

✔✔✔✔

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

Минусы

• Xamarin Studio прекрасна, но имеет проблемы с отладчиком

• Встречаются баги• Runtime неплохо нагружает приложение (+2-3

метра)• Немного страдает производительность• Нет Generic Virtual Methods в iOS

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

Плюсы• Шарится много кода между всеми .NET платформами• Позволяет переиспользовать до 60-80% кода • Не обязательно знать Objective-C и Java• Проще и быстрее разрабатывать (особенно общие

части)• Тонны нативных библиотек, библиотек .NET на github,

codeplex, …• Огромное сообщество .NET, и быстро растущее

сообщество Xamarin.• Да везде: быстрее кодим, меньше багов

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

• Меньше программистов для тех же задач• Можно брать как с iOS/Android так и .NET

разработчиков• Сокращение стоимости разработки конечного

продукта и как следствие – довольные заказчики.• Быстрая разработка – что тоже приводит к

довольным заказчикам• Огромный процент переиспользования в

последующих проектах ведет к еще большему снижению стоимости.

Плюсы для компании

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

Вопросы!

НИКИТА САВАНЧУКfb, vk /Nikita.Savanchuk