25
Xamarin. Кроссплатформенная мобильная разработка на C# Андрей Гаевский [email protected] @gaevskij

Xamarin. Кроссплатформенная разработка на C#

Embed Size (px)

Citation preview

Page 1: Xamarin. Кроссплатформенная разработка на C#

Xamarin. Кроссплатформенная мобильная разработка на C#

Андрей Гаевский [email protected] @gaevskij

Page 2: Xamarin. Кроссплатформенная разработка на C#

2,5 ГОДА !

20+ ПРИЛОЖЕНИЙ !

40+ ЧЕЛОВЕК !

МНОГО СЧАСТЛИВЫХ КЛИЕНТОВ

Page 3: Xamarin. Кроссплатформенная разработка на C#

Счастливые клиенты

Page 4: Xamarin. Кроссплатформенная разработка на C#

– Nat Frieman, CEO Xamarin

“Touch Instinct — эксперты в разработке качественных и прекрасных мобильных приложений на технологиях Xamarin.”

Page 5: Xamarin. Кроссплатформенная разработка на C#

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

Page 6: Xamarin. Кроссплатформенная разработка на C#

Разработка в теории

Page 7: Xamarin. Кроссплатформенная разработка на C#

Разработка на практике

Page 8: Xamarin. Кроссплатформенная разработка на C#

Мобильная разработка

Page 9: Xamarin. Кроссплатформенная разработка на C#

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

• Anti-DRY (Don’t repeat yourself);

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

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

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

Page 10: Xamarin. Кроссплатформенная разработка на C#

?

Page 11: Xamarin. Кроссплатформенная разработка на C#

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

• Нативный и производительность UI;

• Одна IDE для разработки для всех платформ;

• Готовые компоненты для быстрой разработки;

• Огромное количество готовых C# библиотек;

• Можно использовать нативные библиотеки;

• Есть free лицензия.

Page 12: Xamarin. Кроссплатформенная разработка на C#

Почему C#?Objective-C

C#

Page 13: Xamarin. Кроссплатформенная разработка на C#

Внутренности

• Использует Mono Runtime (открытая реализация .NET Framework);

• Платформа развивается с 2004 года;

• В теории можно использовать любой .NET язык (есть плагин для F#);

• Обертки над нативным SDK.

Page 14: Xamarin. Кроссплатформенная разработка на C#

Сборка и исполнение• Всё компилируется в сборки;

• Добавляется Mono Runtime, GC, BCL;

• iOS. AOT компиляция генерирует из IL машинный код;

• Линковщик оставляет только тот код, который используется;

• Исполняется нативно!

Page 15: Xamarin. Кроссплатформенная разработка на C#

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

• Есть все знакомые классы и методы (UIViewController, Activity);

• Обертки над API сделаны по понятным правилам;

• Релиз в тот же день;

• C# упростил решение типовых задач.

Page 16: Xamarin. Кроссплатформенная разработка на C#

Xamarin Studio

Page 17: Xamarin. Кроссплатформенная разработка на C#

Xamarin Studio

• Выглядит прекрасно;

• Единая среда для всех платформ;

• Создание и рефакторинг кода;

• Полноценная отладка на симуляторах и устройствах.

Page 18: Xamarin. Кроссплатформенная разработка на C#

Создание UI. iOS

Page 19: Xamarin. Кроссплатформенная разработка на C#

Создание UI. Android

Page 20: Xamarin. Кроссплатформенная разработка на C#

До 60% общего кода

Page 21: Xamarin. Кроссплатформенная разработка на C#

Portable Class Library

• Указываются платформы, на которых должен работать код;

• Доступно только определенное подмножество классов;

• Гарантируется работа на всех платформах;

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

Page 22: Xamarin. Кроссплатформенная разработка на C#

Минусы• Вам потребуется Mac (на первое хватит

Hackintosh`а);

• Лицензия на год стоит от $299;

• Приложения получаются на 2-3 МБ больше;

• Есть ограничения (JIT, Emit …);

• Поддержка Android запаздывает.

Page 23: Xamarin. Кроссплатформенная разработка на C#

Плюсы• Не надо учить Objective-C и Java;

• Много общего кода;

• Исправление ошибок сразу для всех платформ;

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

• Много примеров кода и хорошая документация;

• ~500 000 Xamarin разработчиков.

Page 24: Xamarin. Кроссплатформенная разработка на C#

Личные впечатления

Page 25: Xamarin. Кроссплатформенная разработка на C#

Вопросы?

bit.ly/fork_xamarin!

!

Рад буду продолжить общение !

[email protected] @gaevskij

+7 (911) 455 96 43