SlideShare ist ein Scribd-Unternehmen logo
1 von 27
КРОССПЛАТФОРМЕННАЯ
РАЗРАБОТКА НА .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

Weitere ähnliche Inhalte

Andere mochten auch (9)

RAM KUMAR TIWARI
RAM KUMAR TIWARIRAM KUMAR TIWARI
RAM KUMAR TIWARI
 
040-Imran Ki Moot_1
040-Imran Ki Moot_1040-Imran Ki Moot_1
040-Imran Ki Moot_1
 
Tecnologia informatica
Tecnologia informaticaTecnologia informatica
Tecnologia informatica
 
MullaneyChrisER
MullaneyChrisERMullaneyChrisER
MullaneyChrisER
 
040-Imran Ki Moot_2
040-Imran Ki Moot_2040-Imran Ki Moot_2
040-Imran Ki Moot_2
 
MullaneyChrisBIOGRAPHY
MullaneyChrisBIOGRAPHYMullaneyChrisBIOGRAPHY
MullaneyChrisBIOGRAPHY
 
Computadora
ComputadoraComputadora
Computadora
 
BU Indigenous Scholarship Program 2016 W.pdf
BU Indigenous Scholarship Program 2016 W.pdfBU Indigenous Scholarship Program 2016 W.pdf
BU Indigenous Scholarship Program 2016 W.pdf
 
Micro
MicroMicro
Micro
 

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

DevCon 2016 - Xamarin
DevCon 2016 - XamarinDevCon 2016 - Xamarin
DevCon 2016 - XamarinAnton Shunkov
 
PhoneGap + Sencha
PhoneGap + SenchaPhoneGap + Sencha
PhoneGap + Senchaobservleer
 
Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...
Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...
Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...IT Event
 
Кросс-платформенная мобильная разработка
Кросс-платформенная мобильная разработкаКросс-платформенная мобильная разработка
Кросс-платформенная мобильная разработкаArtur Drobinskiy
 
Xamarin: опыт использования. Дмитрий Адодин
 Xamarin: опыт использования. Дмитрий Адодин Xamarin: опыт использования. Дмитрий Адодин
Xamarin: опыт использования. Дмитрий АдодинYandex
 
Разработка в Vs2015
Разработка в Vs2015Разработка в Vs2015
Разработка в Vs2015Tatiana Smetanina
 
SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.
SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.
SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.SECON
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPITimur Shemsedinov
 
Кирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектовКирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектовOlesya_V
 
React Native в продакшне
React Native в продакшнеReact Native в продакшне
React Native в продакшнеEugeni Feudorov
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Yandex
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Yandex
 
Средства кросплатформенной разработки. Xamarin и ApperCode
Средства кросплатформенной разработки. Xamarin и ApperCodeСредства кросплатформенной разработки. Xamarin и ApperCode
Средства кросплатформенной разработки. Xamarin и ApperCodegeekfamilyrussia
 
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур ГильмуллинvSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур ГильмуллинPositive Hack Days
 
Eclipse Monkey
Eclipse MonkeyEclipse Monkey
Eclipse Monkeyilja.panin
 
Автоматизация тестирования iOS и Android приложений
Автоматизация тестирования iOS и Android приложенийАвтоматизация тестирования iOS и Android приложений
Автоматизация тестирования iOS и Android приложенийAndrei Pugachev
 
Symfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork EnterpriseSymfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork EnterpriseDmitry Semenov
 
End-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализацияEnd-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализацияSQALab
 

Ähnlich wie Разработка мобильных приложений на платформе Xamarin (20)

DevCon 2016 - Xamarin
DevCon 2016 - XamarinDevCon 2016 - Xamarin
DevCon 2016 - Xamarin
 
[Add 4] crossplatform .net
[Add 4] crossplatform .net[Add 4] crossplatform .net
[Add 4] crossplatform .net
 
PhoneGap + Sencha
PhoneGap + SenchaPhoneGap + Sencha
PhoneGap + Sencha
 
Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...
Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...
Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...
 
Кросс-платформенная мобильная разработка
Кросс-платформенная мобильная разработкаКросс-платформенная мобильная разработка
Кросс-платформенная мобильная разработка
 
Xamarin: опыт использования. Дмитрий Адодин
 Xamarin: опыт использования. Дмитрий Адодин Xamarin: опыт использования. Дмитрий Адодин
Xamarin: опыт использования. Дмитрий Адодин
 
Разработка в Vs2015
Разработка в Vs2015Разработка в Vs2015
Разработка в Vs2015
 
SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.
SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.
SECON'2017, Мухаметов Андрей, XCTest. UI и Unit тестирование для iOS.
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPI
 
Кирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектовКирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектов
 
React Native в продакшне
React Native в продакшнеReact Native в продакшне
React Native в продакшне
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»
 
Objective J
Objective JObjective J
Objective J
 
Средства кросплатформенной разработки. Xamarin и ApperCode
Средства кросплатформенной разработки. Xamarin и ApperCodeСредства кросплатформенной разработки. Xamarin и ApperCode
Средства кросплатформенной разработки. Xamarin и ApperCode
 
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур ГильмуллинvSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
 
Eclipse Monkey
Eclipse MonkeyEclipse Monkey
Eclipse Monkey
 
Автоматизация тестирования iOS и Android приложений
Автоматизация тестирования iOS и Android приложенийАвтоматизация тестирования iOS и Android приложений
Автоматизация тестирования iOS и Android приложений
 
Symfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork EnterpriseSymfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork Enterprise
 
End-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализацияEnd-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализация
 

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

  • 1. КРОССПЛАТФОРМЕННАЯ РАЗРАБОТКА НА .NET/C# С ПЛАТФОРМОЙ XAMARIN НИКИТА САВАНЧУК @Nikita.Savanchuk
  • 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#)
  • 9. О ПЛАТФОРМЕ XAMARIN РАЗРАБОТКА РАБОТА С API/SDK СБОРКА И ИСПОЛНЕНИЕ ПЛЮСЫ/МИНУСЫ ➤ ✔
  • 10. Проблемы нативной разработки • Anti-DRY (Don't repeat yourself) • Все говорят на разных языках • Один разработчик = одна платформа • Ошибки исправляются только на одной платформе
  • 11. • C# везде! Можно писать для Mac OS, iOS и Android; • Нативный и производительность UI; • Одна IDE для разработки для всех платформ; • Готовые компоненты для быстрой разработки; • Огромное количество готовых C# библиотек; • Можно использовать нативные библиотеки; • Полностью бесплатная. XAMARIN
  • 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 машинный код; • Линковщик оставляет только тот код, который используется; • Исполняется нативно!
  • 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 разработчиков • Сокращение стоимости разработки конечного продукта и как следствие – довольные заказчики. • Быстрая разработка – что тоже приводит к довольным заказчикам • Огромный процент переиспользования в последующих проектах ведет к еще большему снижению стоимости. Плюсы для компании