`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Xamarin 2.0: кросс-мобильная разработка в Visual Studio

+22
голоса

По мере того как создание мобильных приложений становится все более заманчивым и выгодным делом, независимые разработчики должны тяготеть к кроссплатформенным инструментам. Однако уповать на последние от Apple, Google, Microsoft и пр. не приходится и поэтому нишу пытаются заполнить сторонние коллективы.

Напомним, что компания Xamarin является «осколком» Novell, получившим все права на Mono, а также производные разработки MonoTouch (iOS) и Mono for Android. Главная идея всех этих продуктов, и, соответственно, самой компании, состоит в том, чтобы использовать для создания мобильных приложений язык С#, и, таким образом, предоставить профессиональным .NET-программистам возможность задействовать свой предыдущий опыт, а также сделать мобильный код относительно переносимым (конечно, всегда будет присутствовать какая-то платформенно-зависимая часть). Нельзя сказать, что Xamarin хватает звезды с неба, но 12 тыс. проданных лицензий и сообщество из почти 250 тыс. разработчиков о чем-то да говорят. При этом компания продолжает энергично развивать свою продукцию и не гнушается достаточно любопытных экспериментов, об одном из которых КО когда-то писало.

Нынешнее обновление — Xamarin 2.0 — является одной из важнейших вех, так как впервые представлена максимально интегрированная платформа разработки, что отражено буквально во всем, начиная с названия ее составных частей: MonoTouch превратился в Xamarin.iOS, а Mono for Android — в Xamarin.Android (еще есть Xamarin.Mac). Платформа включает как общие библиотеки для реализации базовой функциональности, так и платформенно-зависимые «обертки» для стандартных API соответствующих мобильных ОС. К первым относятся не только библиотеки Mono, но и «самописные» вроде Xamarin.Mobile для работы с GPS, камерой, контактами. К последним — прежде всего, средства построения пользовательского интерфейса, которые, по-видимому, сделать универсальными невозможно в принципе. Даже из этого краткого описания четко виден прицел на упрощение кросс-платформенной разработки.

Xamarin 2.0: кросс-мобильная разработка в Visual Studio

Стандартной средой разработки для Xamarin 2.0 является Xamarin Studio, прежде называвшаяся MonoDevelop. Версия для Mac OS X поддерживает разработку как для iOS, так и для Android; для Windows — только для Android. Пользовательские интерфейсы для Android создаются в оригинальном визуальном дизайнере, для iOS — в Xcode Interface Builder из iOS SDK, который интегрируются в общую среду.

Многие разработчики были вполне довольны MonoDevelop, соответственно, доработанная Xamarin Studio их и подавно устроит, тем более, что проект «полировался» довольно долго. Однако есть и категория тех, кто предпочел бы использовать Visual Studio — из разных соображений, в том числе и ради перспективы охватить разом и платформу Windows Phone. Вот как раз для последних есть особая новость: теперь с Visual Studio интегрируется не только Xamarin.Android (что было и для Mono for Android), но и Xamarin.iOS.

Разработка для iOS в Visual Studio — вовсе не блажь, а, если верить Xamarin, пожелание по крайней мере трех четвертей заказчиков компании. Интеграция Xamarin.iOS достаточно полная в том смысле, что в Visual Studio появляются соответствующие типы проектов, отладчиков и других необходимых сущностей; можно использовать все стандартные возможности среды, начиная с IntelliSense; популярные плагины и даже коллективную разработку с помощью TFS. Однако же одного этого мало, поскольку iOS SDK существует только для Mac OS X и именно в этой среде необходимо выполнять окончательную компиляцию и подписывать готовые программы.

Xamarin нашла выход из ситуации в виде удаленного подключения к Маку по сети и автоматического задействования соответствующих служб Apple. Но и это не решает всех проблем, поскольку а) исходя из лицензионных соображений несколько разработчиков не могут использовать один Мак, б) эмулятор iOS-устройств не поддерживает удаленного управления и может использоваться только локально. Соответственно, наиболее реальная модель работы заключается в запуске Visual Studio в виртуальной машине, исполняемой в среде Мака. Пожалуй, не слишком элегантно, но сложности носят объективный характер (в лице Apple).

Наконец, еще одно интересное новшество Xamarin 2.0 — магазин программных компонентов. Повторное использование готового кода — давнишняя идея-фикс программной индустрии — является нормой в настольной разработке, но, похоже, пока не слишком востребовано в мобильной. В случае Xamarin это, впрочем, достаточно закономерный ход, именно в контексте переноса .NET-опыта. Какое-то количество компонентов в магазине предоставлено самой Xamarin, но и сторонние разработчики уже также начали предлагать собственные.

Таким образом, по совокупности своих возможностей Xamarin 2.0 — абсолютно уникальное явление. Разработка для двух самых популярных сегодня мобильных платформ отличается сильно, а любой вменяемый разработчик несомненно предпочтет полноценно охватить обе, если это возможно сравнительно малой кровью. Единственный «стандартный» вариант создания переносимых приложений — HTML и JavaScript, которые пока еще годятся далеко не для всех применений, да и требуют отдельных инструментов и навыков. И Xamarin 2.0 представляет единственную альтернативу, причем основанную на развитых, хорошо себя зарекомендовавших технологиях, начиная с языка C#. Отсюда, впрочем, и достаточно высокие цены:

Xamarin 2.0: кросс-мобильная разработка в Visual Studio

Для первого знакомства имеется максимально простая бесплатная редакция, но, к примеру, интеграция с Visual Studio доступна только начиная с рекомендованной редакции Business — $999 за поддержку каждой платформы. Ясно, что такой выбор может сделать только профессиональный разработчик, четко видящий его необходимость и перспективы. Тем не менее, если судить по первым отзывам, то Xamarin 2.0 была встречена сообществом вполне тепло, даже несмотря на все оговорки и несовершенство.

+22
голоса

Напечатать Отправить другу

Читайте также

То, что видно на скриншоте - катастрофа, а не кроссплатформенность! Какой UISplitViewController под под Android??

Для кроссплатформенности есть Unity. Тот же C# !

Кроссплатформенность, как это ни удивительно, даже вот здесь:
http://www.embarcadero.com/products/rad-studio

Я был очень обрадован тем, что простой перекомпиляцией FireMonkey приложение портируется с Windows на MacOS. С возможностью публикации в AppStore (песочница и все дела)!Прлучается очень интересная среда для разработки бизнес приложений, хотя к Delphi я не испытываю никаких симпатий с версии 2.0.

.NET по аналогии с Java, теоретически позволяет вообще без перекомпиляции создавать кроссплатформенные приложения (Как сказал бы Генри Форд, кроссплатформенные, если это платформа Windows :-) ), а Xamarin при цене $999 (за каждую платформу, да?) требует полной переделки UI.

Хардкор.

вы как-то смешали все в кучу.
Unity - игровой движок, лепить его куда ни попадя вряд ли стоит.
про HTML в заметке также сказано, безотносительно Embarcadero.
к сожалению .NET с Java, в полном смысле, нет в мобильном мире.

Unity - игровой движок. 100% да. Но кто сказал, что на нём невозможно писать прикладные программы, получившие Apple Design Award?

Вообще говоря, в следующие 2 года успех на перегретом рынке мобильных приложений будут иметь программы,построенные по принципу "Application as a game".

Как говорит один мой хороший знакомый: пользователи, которые покупают мобильные программы, они как бабуины. Дай им яркое, с анимацией и бесплатное (условно бесплатное) и ты будешь в шоколаде.

Пример. Менеджер задач Clear для iOS. Отличная рекламная кампания, абсолютно бесполезное прилоджение с минимальной функциональностью (можно почитать коментарии: "бесполезно но красиво. 1 доллара не жалко"), но яркими цветами и результат прекрасный. $300000 за 6 недель.

.NET с Java, в полном смысле, нет в мобильном мире. И с этим тоже можно согласиться на все 100%! Там же нет и Flash.

Почему?

Несколько причин.

1. По-настоящему кросс-платформенное решение должно полностью абстрагировать разработчика от особенностей ОС. А особенностей ОС в мобильном мире предостаточно. Поэтому, создать что-то кроссплатформенное сложно (восхищаюсь Flash и Java, с сомнением смотрю на Mono).

2. Всё кроссплатформенное проигрывает по производителности родному. Для мобильных платформ это будет актуально. Интенсивная работа с графикой (мы говорим про UI, а не сортировку строк и работу с датой-временем или регулярными выражениями) требует серьёзной оптимизации и для родных средств разработки. О мучениях оптимизаторов Unity игр под Android и говорить не приходится.

3. Всё кроссплатфоменное не успевает за новыми версиями OS. И новыми глюками. Твитер 3 раза обновлял свой официальный клиент после выхода iOS 6, потому что не мог выловить всё прекрасное, что там появилось. Это, кстати. погубило Delphi в своё время.

---------------------------------------------

Итак, если разработчикам всё-таки пытаются втюхать что-то кроссплатформенное, то хотелось бы видеть:

1. По-настоящему платформенно-незафисимый Framework, который стабильно работает на заявленных платформах.

2. Полностью независимая от платформы библиотека виджетов/визуальных компонентов с единой логикой, интерфейсной моделью, поддержкой стилей, перекрывающая по функциональности все заявленные платформы. Иными словами, без изменения строчки кода, а лучше даже без перекомпиляции, программа должна работать на всех заявленных платформах.

3. Средства дизайна и анимации уровня Expression Studio

4. Максимально быстрое обновление фреймворка с віходом новых версий заявленных ОС.

---------------------------------------------

Фантастика? Но Java как-то же работает...

Вообще автор в отчетливых деталях представляет себе реальную жизнь софтверных компаний, хотя бы числом более 10-15 человек, креативящих сколь-нибудь серьезный проект автоматизации в жестких временных и финансовых рамках с аудитом своего проекта со стороны уважаемой западной софтверной компании? Я не о "мелкомягких" с их "флагманским" продуктом .NET и, прикрученными к нему поводьями C#. Кроссплатфоменность - изначально предполагает в одном native solution приложении желание команды разработчиков сесть сразу на много стульев и угодить одновременно, минимум, двум смертельным рыночным конкурентам - "мелкомягким" и Apple!
Х-мм... кроме Embarcadero, начиная от RAD Studio XE2, да и то с ОГРОМНЫМИ РЫНОЧНЫМИ ограничениями от крайне неуступчивой в части своих технологий разработки Apple, никогда, ни при каких условиях эти смертельные враги на рынке не пойдут навстречу друг другу. Особенно же - в плане возможности создания универсальной IDE, удобной разработчикам, как для Win, так для iOS.
Поэтому как были так и будут коптеть небо разработчики под Visual Studio с ее энциклопедией MFC, привязанной к моно-платфомрме моно-производителя. Ни о какой кроссплатформенности native solutions у них и речи быть не может. Только ОДИН ВЕНДОР! Монополист! :)
Одна команда разработчиков, один опыт и знания одного языка, один репозитарий, одни библиотеки, одни методологии разработки, несовместимые изначально практически НИ В ЧЕМ! :) Это естественная плата за монополизм.
Сегодня и лет на 5-10, уверен, только Embarcadero, будет оставаться единственной промышленной RAD средой разработки приложений, что для mobile, что Desktop приложений различных вендоров - Windows и MAC! Это уже есть более 2 лет! В рамках единого интегрального софтверного продукта, к тому же - в совершенно ВМЕНЯЕМЫХ РАЗМЕРАХ.

На финал, плз... не надо поддерживать на плаву материалы о неких, как Вы там подали? Ах, да - "...исключительных возможностях" иных IDE. Для фрилансера или мальчика Пети из "кружка юных программеров" с его шедевром "Hello Word" этот подход может и пригоден, но для корпоративных решений хотя бы с одним контуром управления реального времени, интегрированным с корпоративными документооборотом и почтой + контролем исполнения даже на минимумe функционала ERP - никакие JavaScript с HTML непригодны!
Серьезные и высоконадежные решения в области автоматизации управления и учета были и останутся связкой СУБД в ЦОД и толстых клиентов. Никаких мобильных приложений, кроме простейших апплетов, на стороне тонкого мобильного клиента! Уберите от них фетиш мобильности и могущества! :) Для них двумя кликами мыши в Delphi ваяются старые и, проверенные как мир, кросс-платформенные приложения с умопомрачительными рюшками и бантиками.
Но, если Вам необходима глубокая логика middleware tier - да Бога ради, юзайте C++, коли от Delphi Вас принципиально воротит в сторону "Сей"... я же - всегда своих склоняю к ассемблеру. Это - много вернее и надежнее! :)
С Android-ом у Embarcadero трудные отношения по принциапиально плохой совместимости... язык и среда исполнения - виртуаьная машина с ее медлючим Android - Java. А Java не сильно вписывается в парадигму RAD Studio, где особо ценятся реактивность, простота кодирования, стандартизованные библиотеки, время разработки, логичная оптимизация кода, максимально удобное использование прототипов и шаблонов. К тому же Java - нелюбима в компании Embarcadero в силу еще одного монополиста с его неуемными аппетитами - Oracle.
Современные софтверные решения больших проектов всегда лежат в совокупности используемых технологий и архитектур разработки, языков программирования и СУБД различных по назначению, реактивности + надежности. А иногда прочтешь - рыдать хочется: "Java Script и "народом до тапочек любимый" Oracle - "всех на свете и румяней, и белее"! :)
- Ну... нельзя же так (с) М.Булгаков
А по сути - очередная манна с небес... С#, как инструмент серьезной разработки в составе команд уже, как годика 3, помер. Недолгой было его, на волне моды применение, впрочем - так всегда у мелкомягких и было, когда жадность рыночного успеха диктуется пренебрежением к функциональности, полноте, возможностям и масштабируемости с преемственностью.
Поэтому прошу обратить и редакцию, и пишущие обзорные материалы журналистов, особо-пристальное внимание на линейку продуктов от Embarcadero - RAD Studio XE..., с их Delphi, C++, Java, HTML 5. О дополнительных возможностях продукта я умолчу... ибо их - масса от решений для архитекторов информационных систем и бизнес-аналитиков до кодировщиков на различных современных языках, до админов СУБД ото всех крупнейших мировых вендоров.

С уважением к изданию "КО":
Главный Инженер крупного софтверного проекта - А.П.Чуприна, г.Астана, Казахстан

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT