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

More Related Content

Viewers also liked

RAM KUMAR TIWARI
RAM KUMAR TIWARIRAM KUMAR TIWARI
RAM KUMAR TIWARI
Ram Kumar Tiwari
 
040-Imran Ki Moot_1
040-Imran Ki Moot_1040-Imran Ki Moot_1
040-Imran Ki Moot_1
farooq habeeli
 
Tecnologia informatica
Tecnologia informaticaTecnologia informatica
Tecnologia informatica
Yeison Fabian Villagran Vargas
 
MullaneyChrisER
MullaneyChrisERMullaneyChrisER
MullaneyChrisER
Chris Mullaney
 
040-Imran Ki Moot_2
040-Imran Ki Moot_2040-Imran Ki Moot_2
040-Imran Ki Moot_2
farooq habeeli
 
MullaneyChrisBIOGRAPHY
MullaneyChrisBIOGRAPHYMullaneyChrisBIOGRAPHY
MullaneyChrisBIOGRAPHY
Chris Mullaney
 
Computadora
ComputadoraComputadora
Computadora
gustavo lorza
 
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
Catherine O'Sullivan
 
Micro
MicroMicro

Viewers also liked (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
 

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

DevCon 2016 - Xamarin
DevCon 2016 - XamarinDevCon 2016 - Xamarin
DevCon 2016 - Xamarin
Anton Shunkov
 
[Add 4] crossplatform .net
[Add 4] crossplatform .net[Add 4] crossplatform .net
[Add 4] crossplatform .net
Stanislav Sidristy
 
PhoneGap + Sencha
PhoneGap + SenchaPhoneGap + Sencha
PhoneGap + Senchaobservleer
 
Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...
Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...
Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...
IT Event
 
Кросс-платформенная мобильная разработка
Кросс-платформенная мобильная разработкаКросс-платформенная мобильная разработка
Кросс-платформенная мобильная разработка
Artur Drobinskiy
 
Xamarin: опыт использования. Дмитрий Адодин
 Xamarin: опыт использования. Дмитрий Адодин Xamarin: опыт использования. Дмитрий Адодин
Xamarin: опыт использования. Дмитрий Адодин
Yandex
 
Разработка в Vs2015
Разработка в Vs2015Разработка в Vs2015
Разработка в Vs2015
Tatiana 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 введение в технологию, КПИ #ITmeetingKPI
Timur 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 и ApperCode
geekfamilyrussia
 
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 Enterprise
Dmitry Semenov
 
End-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализацияEnd-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализация
SQALab
 

Similar to Разработка мобильных приложений на платформе 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 разработчиков • Сокращение стоимости разработки конечного продукта и как следствие – довольные заказчики. • Быстрая разработка – что тоже приводит к довольным заказчикам • Огромный процент переиспользования в последующих проектах ведет к еще большему снижению стоимости. Плюсы для компании