Разработка кроссплатформенных приложений на .net / c#

Post on 16-Jan-2015

5.136 Views

Category:

Education

23 Downloads

Preview:

Click to see full reader

DESCRIPTION

Доклад Станислава Сидристого на конференции Application Developer Days-4. г.Минск 13 декабря 2013

TRANSCRIPT

РАЗРАБОТКАКРОССПЛАТФОРМЕННЫХ ПРИЛОЖЕНИЙ НА .NET/C#

СТАНИСЛАВ СИДРИСТЫЙstanislav.sidristyi@touchin.rutouchin.ru@sidristij

3ГОДА

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

45ЧЕЛОВЕК

Streamдочерняя

МТС

Мегалабсдочерняя

Мегафона

Coinkeeper,I-FREE

КАКИЕ ПРОБЛЕМЫ РЕШАЕТ КРОССПЛАТФОРМЕННОСТЬ?

ПРОБЛЕМЫ РАЗРАБОТЧИКА

― Точно ли весь код под каждую платформу имеет единый flow?

― Нигде ли не разошлись по API?

― Синхронизировались ли по схеме БД

― Юнит-тесты на каждую платформу. Не разошлись ли тесты?

― Пришел RFC на БД? Изменился API?? Переписывать тесты???

bit.ly/xamarin-add4

ПРОБЛЕМЫ МЕНЕДЖМЕНТА

― Необходимо координировать венегрет из Java/Objective-C/...

― Вылетел разработчик? Необходимо найти под ту же платформу

― Заказчик платит за один и тот же код много раз

― Изменили внешнее API? Все переписываем N раз. Fix-price?

― Сделали готовый продукт под X. Заказчик просит “то же самое,

только под Y”. Не возможно просто взять наработки и использовать

bit.ly/xamarin-add4

ВЛИЯНИЕ НА РАЗРАБОТКУ

ДЕШЕВО

КАЧЕСТВЕННО

БЫСТРО

ДЕШЕВО

Плохие – мешают жить Хорошие – улучшают продукт

КАЧЕСТВЕННО

БЫСТРО

bit.ly/xamarin-add4

ВЫБИРАЕМ ИНСТРУМЕНТ ДЛЯ КРОССПЛАТФОРМЕННОЙ РАЗРАБОТКИ.

КАТЕГОРИИ CROSS-PLATROM TOOLS

— Applications Factories

— Web App Toolkits

— Cross-Platform IDEs

bit.ly/xamarin-add4

УЗНАВАЕМОСТЬ СРЕДИ СРЕДСТВ РАЗРАБОТКИ

bit.ly/xamarin-add4(c) by research2guidance

ИСПОЛЬЗУЮТ В РАЗРАБОТКЕ

•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)

bit.ly/xamarin-add4(c) by research2guidance

ПОВЫШЕНИЕ ПРОИЗВОДИТЕЛЬНОСТИ

“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

ПОВЫШЕНИЕ ПРОИЗВОДИТЕЛЬНОСТИ

“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

bit.ly/xamarin-add4(c) by research2guidance

ЕДИНЫЙ КОД — ВЕЗДЕ. XAMARIN.

XAMARIN

―Позволяет разработывать iOS, Mac OS, Linux,

Windows и Android приложения на C#, используя

почти всю мощь .Net Framework

―Имеет множество тулов для удобства разработки

bit.ly/xamarin-add4

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

― Основана на mono runtime

― Которая развивается с 2001 года

― Свободная реализация ECMA-334 (C#) и ECMA-335 (CLI)

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

― Исходники, комьюнити, свой стор, партнеры,…

bit.ly/xamarin-add4

XAMARIN. НЕМНОГО О КОМПАНИИ

―Продает и осуществляет поддержку MonoTouch / MonoDroid

―Цены от $299 для Indie (раньше было $399, приятно)

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

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

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

bit.ly/xamarin-add4

MONOTOUCH

―Mono для iOS c AOT компиляцией и bindings к API

―Код – на C#, UI – родной, через удобные обёртки

―Обертки делают API iOS понятным на C#

―Среда разработки – Xamarin Studio (MAC, Windows) + XCode

bit.ly/xamarin-add4

КОМПИЛЯЦИЯ В MONOTOUCH

―Все как в настоящем .NET, компилируется в сборки

―Поэтому теоретически можно заюзать любой язык .NET (сейчас

можно F#, но есть Nemerle, Ruby, Python, JS)

― IL превращается в машинный код при помощи AOT копиляции

―Программа воссоединяется с Mono Runtime, GC, BCL, …

bit.ly/xamarin-add4

КОМПИЛЯЦИЯ

bit.ly/xamarin-add4

ЛИНКОВКА

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

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

можно пометить атрибутом

―Сильно уменьшает размер приложения

―Чем больше используем, тем больше приложение

bit.ly/xamarin-add4

ЧТО ОБЩЕГО С НАТИВНЫМ API

―Абсолютно идентичная работа с UI

―AppDelegate, UIWindow, ViewControllers, ... на iOS

―Activities, Fragments, … на Андроиде

―Платформенное API с железом такое же как родное

―Отличается только то, что можно C#-изировать

bit.ly/xamarin-add4

ОТЛАДКА

―Честная отладка, с breakpoints

―Можно просматривать в Watches, Immediate Window

―Наводить курсор на переменные

bit.ly/xamarin-add4

GARBAGE COLLECTOR

―Агрессивно настроен

―В Андроиде имеем GREFs

―В играх, говорят, когда много объектов и начинает притормаживать

bit.ly/xamarin-add4

Среда разработки – Xamarin Studio

iOS UI

Android UI

ПРОМЕЖУТОЧНЫЕ ИТОГИ

―Увеличили скорость разработки в 2 раза

―Получили общий код между платформами – до 60-80%%

―Расшарили код между приложениями – пишем еще быстрее

―Общий код = общие баги и меньшее время на стабилизацию

―Если у вас есть библиотка с общим кодом (PCL), достаточно ее отдать

нам: мы просто ее подтянем и будем использовать

bit.ly/xamarin-add4

БУДУЩЕЕ ПЛАТФОРМЫ

―Подключение AOP средств разработки ускорит внедрение сквозной

функциональности в разы (например Google Analytics за 5 минут)

―TestCloud – автоматизированное тестирование на всех моделях

телефонов

―Улучшение поддержки IntelliSense

bit.ly/xamarin-add4

ВОПРОСЫ!

Fb: @touchinstinct

Twitter: @sidristij, @touchin_ru

Все материалы доклада: bit.ly/xamarin-add4

Email: hello@touchin.ru

touchin.ru

РАЗРАБОТКАКРОССПЛАТФОРМЕННЫХ ПРИЛОЖЕНИЙ НА .NET/C#

СТАНИСЛАВ СИДРИСТЫЙstanislav.sidristyi@touchin.rutouchin.ru@sidristij

КРАТКОЕ СОДЕРЖАНИЕ ПРЕДЫДУЩЕЙ ЧАСТИ

О ЧЕМ УСПЕЛИ ПОГОВОРИТЬ• Определили проблемы разработчиков и менеджмента

Основная проблема в множественном дублировании кода ведет к множетсвенным затратам средств и времени и

ухудшению качества

• Выявили требуемый функционал, чтобы писать быстро и малоВсе пишут на одном языке, общий функционал=один проект, хорошая IDE, UI пишется под каждую ось

• Изучив тонны материала, выбрали подходящую технологиюИз всей статистики нам подходят: Unity 3D для игр и Xamarin для всего остального

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

bit.ly/xamarin-add4

КРОСС-ПЛАТФОРМЕННАЯ МОБИЛЬНАЯ РАЗРАБОТКА

It's Demo TimeCode Samples: bit.ly/xamarin-add4

КРОСС-ПЛАТФОРМЕННАЯ РАЗРАБОТКА ПОД DESKTOP

X-PLATFORM WIDGET TOOLKIT• Кросс-платформенный UI для Windows, Linux, Mac

WPF на Windows, GTK+ на Linux и Mac, Cairo на Mac

• Является сильным конкурентом wxWidgets, QtwxWidgets = общий набор контролов с платформ, Qt = эмуляция вида через темы,

XWT = MVC + Gtk box model + Cairo drawing API

• Поддерживается и разрабатывается Xamarin

• Xamarin Studio основана на XWTпроект постоянно поддерживается, баги исправляются, добавляется новый функционал

bit.ly/xamarin-add4

It's Demo TimeCode Samples: bit.ly/xamarin-add4

ДЕЛАЕМ ВЫВОДЫ

МИНУСЫПотираем ручки

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

―Bindings не всегда строятся правильно

―Runtime неплохо нагружает приложение (+2-3 метра)

―Немного страдает производительность

―Нельзя Emit'тить

―Нет Generic Virtual Methods и p/invokes в Generic Types

―Встречаются баги

bit.ly/xamarin-add4

ПЛЮСЫ

―Шарится много кода между всеми .NET платформами

―Не обязательно знать Objective-C и Java

―Проще и быстрее разработывать (особенно общие части)

―Тонны библиотек для .NET на github, codeplex, …

―Тонны нативных библиотек, которые можно юзать

―Огромное сообщество .NET, и быстро растущее (пол-миллиона)

сообщество Xamarin

bit.ly/xamarin-add4

ПЛЮСЫ ДЛЯ КОМПАНИИ

―Меньше программистов для тех же задач

―Можно хантить как с iOS/Android так и .NET разработчиков, уставших

от корпоративного сектора

―Сокращение стоимости разработки конечного продукта и как

следствие – довольные заказчики

―Огромноый процент переиспользования в последующих проектах

ведет к еще большему снижению стоимости

bit.ly/xamarin-add4

ЧТО СО СТАБИЛЬНОСТЬЮ?

―Компания растет с каждым днем

―Microsoft пишет для Xamarin код поддержки в Visual Studio/Azure

―Блог Microsoft CLR впервые написал про другую компанию: поддержка

не-Microsoft PCL

―Множество MSDN плюшек для владельцев лицензий Xamarin

―Запустили University, где по прохождении курса выдают MVP

bit.ly/xamarin-add4

ЧТО СО СТАБИЛЬНОСТЬЮ?

―Под (iOS+Android) PCL переводятся крупные open-source проекты

―Components Store постоянно пополняется новичками

―Google среди них также присутствует

―Как компания с самым богатым опытом на территории ex-USSR мы

рады что работаем именно в этом стеке

bit.ly/xamarin-add4

ЛИЧНЫЙ ОПЫТ И ВПЕЧАТЛЕНИЯ

―Опыт прекрасен, отказываться не собираемся никогда

―CoinKeeper… Да везде: быстрее кодим, меньше багов

―Общая логика: не пишем все заново. 30-60%% шарим

―Когда вышла iOS 7, API с Ксамарина был готов практически сразу

bit.ly/xamarin-add4

ВОПРОСЫ!

Fb: @touchinstinct

Twitter: @sidristij, @touchin_ru

Все материалы доклада: bit.ly/xamarin-add4

Email: hello@touchin.ru

touchin.ru

top related