6. ПРОБЛЕМЫ РАЗРАБОТЧИКА
― Точно ли весь код под каждую платформу имеет единый flow?
― Нигде ли не разошлись по API?
― Синхронизировались ли по схеме БД
― Юнит-тесты на каждую платформу. Не разошлись ли тесты?
― Пришел RFC на БД? Изменился API?? Переписывать тесты???
bit.ly/xamarin-add4
7. ПРОБЛЕМЫ МЕНЕДЖМЕНТА
― Необходимо координировать венегрет из Java/Objective-C/...
― Вылетел разработчик? Необходимо найти под ту же платформу
― Заказчик платит за один и тот же код много раз
― Изменили внешнее API? Все переписываем N раз. Fix-price?
― Сделали готовый продукт под X. Заказчик просит “то же самое,
только под Y”. Не возможно просто взять наработки и использовать
bit.ly/xamarin-add4
12. ИСПОЛЬЗУЮТ В РАЗРАБОТКЕ
•PhoneGap – 2005
•Adobe Air – 2008
•Unity 3D – 2008 (iPhone/iPad)
•Titanium – 2008
•jQuery Mobile – 2010
•Sencha – 2010
•Marmelade – 2011
•Xamarin - 2011
•Qt Creator – 2012 (не mobile)
(c) by research2guidance
bit.ly/xamarin-add4
13. ПОВЫШЕНИЕ ПРОИЗВОДИТЕЛЬНОСТИ
“The tools with the highest user satisfaction for the access to pre-installed apps are Xamarin, AIR and Corona SDK.”
“The tools with the highest usage of pre-installed apps are Titanium, PhoneGap and Xamarin.”, - research2guidance
(c) by research2guidance
bit.ly/xamarin-add4
14. ПОВЫШЕНИЕ ПРОИЗВОДИТЕЛЬНОСТИ
“In the benchmarking, users of Unity 3D and Xamarin could realize the highest time-savings.
In contrast, the lowest time savings have been realized by Marmalade and Titanium users.” - research2guidance
(c) by research2guidance
bit.ly/xamarin-add4
16. XAMARIN
― Позволяет разработывать iOS, Mac OS, Linux,
Windows и Android приложения на C#, используя
почти всю мощь .Net Framework
― Имеет множество тулов для удобства разработки
bit.ly/xamarin-add4
17. XAMARIN – НЕ НОВАЯ
ПЛАТФОРМА
― Основана на mono runtime
― Которая развивается с 2001 года
― Свободная реализация ECMA-334 (C#) и ECMA-335 (CLI)
― Основатель – Miguel de Icaza (GNOME, mc)
― Исходники, комьюнити, свой стор, партнеры,…
bit.ly/xamarin-add4
18. XAMARIN. НЕМНОГО О
КОМПАНИИ
― Продает и осуществляет поддержку MonoTouch / MonoDroid
― Цены от $299 для Indie (раньше было $399, приятно)
― На сайте компании есть все для старта и работы
― Огромное количество примеров на github.com/xamarin
― Выпущено несколько книг
bit.ly/xamarin-add4
19.
20. MONOTOUCH
― Mono для iOS c AOT компиляцией и bindings к API
― Код – на C#, UI – родной, через удобные обѐртки
― Обертки делают API iOS понятным на C#
― Среда разработки – Xamarin Studio (MAC, Windows) + XCode
bit.ly/xamarin-add4
21. КОМПИЛЯЦИЯ В MONOTOUCH
― Все как в настоящем .NET, компилируется в сборки
― Поэтому теоретически можно заюзать любой язык .NET (сейчас можно
F#, но есть Nemerle, Ruby, Python, JS)
― IL превращается в машинный код при помощи AOT копиляции
― Программа воссоединяется с Mono Runtime, GC, BCL, …
bit.ly/xamarin-add4
23. ЛИНКОВКА
― Когда все линкуется, берется только то, что используется
― Если Вам все-таки что-то необходимо, но напрямую не используется,
можно пометить атрибутом
― Сильно уменьшает размер приложения
― Чем больше используем, тем больше приложение
bit.ly/xamarin-add4
24. ЧТО ОБЩЕГО С НАТИВНЫМ API
― Абсолютно идентичная работа с UI
― AppDelegate, UIWindow, ViewControllers, ... на iOS
― Activities, Fragments, … на Андроиде
― Платформенное API с железом такое же как родное
― Отличается только то, что можно C#-изировать
bit.ly/xamarin-add4
25. ОТЛАДКА
― Честная отладка, с breakpoints
― Можно просматривать в Watches, Immediate Window
― Наводить курсор на переменные
bit.ly/xamarin-add4
26. GARBAGE COLLECTOR
― Агрессивно настроен
― В Андроиде имеем GREFs
― В играх, говорят, когда много объектов и начинает притормаживать
bit.ly/xamarin-add4
30. ПРОМЕЖУТОЧНЫЕ ИТОГИ
― Увеличили скорость разработки в 2 раза
― Получили общий код между платформами – до 60-80%%
― Расшарили код между приложениями – пишем еще быстрее
― Общий код = общие баги и меньшее время на стабилизацию
― Если у вас есть библиотка с общим кодом (PCL), достаточно ее отдать
нам: мы просто ее подтянем и будем использовать
bit.ly/xamarin-add4
31. БУДУЩЕЕ ПЛАТФОРМЫ
― Подключение AOP средств разработки ускорит внедрение сквозной
функциональности в разы (например Google Analytics за 5 минут)
― TestCloud – автоматизированное тестирование на всех моделях
телефонов
― Улучшение поддержки IntelliSense
bit.ly/xamarin-add4
35. О ЧЕМ УСПЕЛИ ПОГОВОРИТЬ
• Определили проблемы разработчиков и менеджмента
Основная проблема в множественном дублировании кода ведет к множетсвенным затратам средств и времени и
ухудшению качества
• Выявили требуемый функционал, чтобы писать быстро и мало
Все пишут на одном языке, общий функционал=один проект, хорошая IDE, UI пишется под каждую ось
• Изучив тонны материала, выбрали подходящую технологию
Из всей статистики нам подходят: Unity 3D для игр и Xamarin для всего остального
• Изучили, как она работает и что она дает
Есть практически все что требуется разработчику и дает все что хочет менеджмент
bit.ly/xamarin-add4
39. X-PLATFORM WIDGET TOOLKIT
• Кросс-платформенный UI для Windows, Linux, Mac
WPF на Windows, GTK+ на Linux и Mac, Cairo на Mac
• Является сильным конкурентом wxWidgets, Qt
wxWidgets = общий набор контролов с платформ, Qt = эмуляция вида через темы,
XWT = MVC + Gtk box model + Cairo drawing API
• Поддерживается и разрабатывается Xamarin
• Xamarin Studio основана на XWT
проект постоянно поддерживается, баги исправляются, добавляется новый функционал
bit.ly/xamarin-add4
42. МИНУСЫ
Потираем ручки
― Xamarin Studio прекрасна, но имеет проблемы с отладчиком
― Bindings не всегда строятся правильно
― Runtime неплохо нагружает приложение (+2-3 метра)
― Немного страдает производительность
― Нельзя Emit'тить
― Нет Generic Virtual Methods и p/invokes в Generic Types
― Встречаются баги
bit.ly/xamarin-add4
43. ПЛЮСЫ
― Шарится много кода между всеми .NET платформами
― Не обязательно знать Objective-C и Java
― Проще и быстрее разработывать (особенно общие части)
― Тонны библиотек для .NET на github, codeplex, …
― Тонны нативных библиотек, которые можно юзать
― Огромное сообщество .NET, и быстро растущее (пол-миллиона)
сообщество Xamarin
bit.ly/xamarin-add4
44. ПЛЮСЫ ДЛЯ КОМПАНИИ
― Меньше программистов для тех же задач
― Можно хантить как с iOS/Android так и .NET разработчиков, уставших
от корпоративного сектора
― Сокращение стоимости разработки конечного продукта и как
следствие – довольные заказчики
― Огромноый процент переиспользования в последующих проектах
ведет к еще большему снижению стоимости
bit.ly/xamarin-add4
45. ЧТО СО СТАБИЛЬНОСТЬЮ?
― Компания растет с каждым днем
― Microsoft пишет для Xamarin код поддержки в Visual Studio/Azure
― Блог Microsoft CLR впервые написал про другую компанию: поддержка
не-Microsoft PCL
― Множество MSDN плюшек для владельцев лицензий Xamarin
― Запустили University, где по прохождении курса выдают MVP
bit.ly/xamarin-add4
46. ЧТО СО СТАБИЛЬНОСТЬЮ?
― Под (iOS+Android) PCL переводятся крупные open-source проекты
― Components Store постоянно пополняется новичками
― Google среди них также присутствует
― Как компания с самым богатым опытом на территории ex-USSR мы
рады что работаем именно в этом стеке
bit.ly/xamarin-add4
47. ЛИЧНЫЙ ОПЫТ И ВПЕЧАТЛЕНИЯ
― Опыт прекрасен, отказываться не собираемся никогда
― CoinKeeper… Да везде: быстрее кодим, меньше багов
― Общая логика: не пишем все заново. 30-60%% шарим
― Когда вышла iOS 7, API с Ксамарина был готов практически сразу
bit.ly/xamarin-add4