Многие склонны считать, что приложения для iOS могут разрабатываться только на языке программирования Objective-C. Это не совсем так, есть и другие способы. Об одном из них я сегодня хочу вам рассказать.
Как все реализовать без участия привычного Obj-C? Легко, писать на C#! Поняв, что Open Source может стать неплохим источником дохода, программист Мигель де Икаса сотоварищи основали компанию Xamarin. Нужно сказать, что для Мигеля этот проект являлся далеко не первым. С его легкой руки появились на свет Mono, Gnome, Ximian и Midnight Commander. Чтобы понять основные принципы работы Xamarin, предлагаю совершить краткий экскурс и рассмотреть его отличительные особенности.
Родные API, родные UI. Без компромиссов
Xamarin используется для кросс-платформенной разработки приложений и обеспечивает полный доступ к родным SDK и UI, тем самым открывая перед программистами уникальные возможности каждой их платформ.
Высокая производительность
В отличие от других кросс-платформенных фреймворков, в Xamarin приложения компилируются нативно, что обеспечивает превосходную производительность даже при самых сложных сценариях.
Общий код
Разработка приложений для iOS осуществляется в Monotouch, а для Android – в Mono for Android, но с Xamarin программисты значительно ускоряют процесс. Это происходит из-за общего non-UI кода, который может одинаково успешно использоваться на платформах iOS, Android и Windows Phone.
Лаконичность
Код можно укоротить, используя особенности языка C#: LINQ (Language Integrated Query), делегаты, event’ы, сборку мусора и многое другое.
Интегрированная среда разработки
Интерфейсы быстро проектируются при помощи drag-and-drop. Xamarin интегрируется с Interface Builder’ом Xcode, что позволяет создавать iOS User Interface, используя стандартные инструменты, которые предоставляет Apple. В Android для этих целей используется Xamarin Designer.
Умный отладчик
В отличие от большинства мобильных фреймворков, Xamarin предоставляет продвинутый debugger, который может использоваться как в симуляторе, так и на устройстве. Отлаживать можно даже из Visual Studio.
Больше возможностей
Используя библиотеки, написанные на C, Objective-C, C++ и Java, в приложение можно добавить практически любую функциональность. К тому же, разработчики Xamarin обещали, что всегда будут держать вас в курсе последних обновлений API от Apple и Google.
В отличие от Xcode и других стандартных сред разработки, все продукты Xamarin являются платными, однако это не повлияло на их популярность. Сейчас сообщество насчитывает более 200 тысяч разработчиков, и их количество ежедневно увеличивается. На сайте компании можно ознакомиться с множеством восторженных и хвалебных отзывов. Там же компания огласила список своих официальных партнеров, в который входят около двух десятков команд. Среди них есть и одна русская из Санкт-Петербурга.
Xamarin еще не стал мейнстримом, но планомерно движется в этом направлении. Погалаю, что через год-два о нем будут говорить гораздо больше. Имели ли вы с ним дело? Если да, то поделитесь, пожалуйста, впечатлениями.
28 комментариев
Форум →Жду Qt.
Спасибо за новость. Надо скачать, попробовать.
@interactivex, попробуйте и отпишитесь :)
А где обещанная игра karateka в конце ноября? Жду жду, а ее нету!
GTA: Vice City вышел!
Ну можно написать с помощью, между прочим, не только этой хрени кроссплатформенное приложение. Но это же очевидно, что вы никогда не достигнете эффекта ВАУ! в таких приложениях.
@Aleksey Kononov, вы сами-то поняли что написали?
@S@ndel, если честно, с трудом. Но суть в том, что приверженцы таких технологий кроссплатформенной разработки, как xamarin, не понимают, что создание мобильных приложений – это искусство, а не просто кодинг. Поэтому можно плодить суровые приложения на 5 платформ сразу, но ожидать удовольстия от результата – весьма глупо.
Гы, ни черта из написаного непонял)) вроде и кирилицей, и слова – отдельные – знакомые, а – тарабарщина тарабарщиной))
Отлично. Если это все достаточно доступно для простого пользователя (знающего С#) то можно попробовать скачать… Это интересно во всяком случае, спасибо за наводку
@oflam, скачайте и отпишитесь. если не ошибаюсь, у них существует бесплатный триальный период.
@Andrew Sundukov, пробовать под симулятором можно неограниченно долго.
Писали как-то на работе проект на монотаче в соседней команде. Долго потом бегали за советом что да как делать. А когда начали отлавливать утечки памяти и уперлись в то что утечки происходят в самом монотаче и сделать с этим ничего нельзя было уже поздно переписывать все по нормальному на Objective-C.
Кроссплатформность это все экономия которая может быть хороша в маленьких несложных проектах. Когда речь идет о создании серьезного, сложного, долгоиграющего, высокого качества приложения нужно использовать только родные средства разработки а не всякую ересь типа .net на платформах где им и не пахнет.
@artbasil, лучше и не скажешь! Люто ненавижу такие средства. Уж лучше писать 2 раза (ios/android) чем мучиться с этой мнимой кроссплатформенностю.
@Forsaken25, в статье пишут про общий non-UI код, что так же справедливо, например для С++, который доступен без посредников как на iOS, так и на Android.
@artbasil, ценю ваше мнение, однако считаю, что вы не совсем правы.
@Andrew Sundukov, информация artbasil не актуальна и в монотаче больше нет утечек памяти?
@artbasil, Хороший комментарий.
Ну что ж народ. Если вы не использовали эту штуку то что ее ругать? Вот например Qt меня только радует , но тут совсем разные вещи правда и настораживают , но да ладно надо пробовать .
Здравствуй, падение производительности сценариев! Да будут корявые приложения.
Marmalade SDK мне кажется лучше. Там и iOS, Bada, Android, Windows Phone, Windows, Mac OS X, Blackberry.
Плюс писать можно и на C/C++, и на HTML5,Javascript,CSS3. Marmalade реально удобен
Возможно, вопрос нубский, но:
Есть ли программа, в которой можно создать iOS- приложение с нуля в Windows? Без использования хакинтош и виртуальной машины.
Пока читал новость, был уверен, что нахожусь на Хабре…
Интересно, а можно добавить CocoaPods к проекту?
Хрень.
Зависеть от группы разработчиков…
Это как было с Delphi – она загнулась и что теперь делать разработчикам?…
А Си был жив и будет еще жить очень долго.
Для кроссплатформа удобнее все либы писать на C или C++, а GUI часть для каждой платформы делать отдельно, потом подключать либы и компилить в родных IDE.
@rysmax, забыл добавить, примеров масса: Ableton, продукты Adobe и т.д.
а есть список крутых игр сделанных на Xamarin’е?
@Forsaken25, @Aleksey Kononov, @artbasil, Вы видели приложение CoinKeeper? Между прочим, лучшее среди себе подобных. Так что же, может дело только в том, какой кодер? И кроме того… при программировании на xCode нет утечек, вы думаете? Стоит вам начать фрактальную обработку и Objective-C вы будете ненавидеть всей душой. Например, наша команда отказалась от Objective-C именно по этой причине. Перешли на именно эту среду программирования и уже почти всё доделано. Так что давайте будем объективными)
Нашли орфографическую ошибку в новости?
Выделите ее мышью и нажмите Ctrl+Enter.Как заполнять дневник настроения на iPhone и Apple Watch
Почему иконки приложений на iPhone становятся черными
Как быстро сбросить настройки Bluetooth на Mac
Что делать, если к Mac не подключается Bluetooth клавиатура, мышь или трекпад
Как транслировать любое приложение на Mac по AirPlay
Что делать, если разговорный динамик iPhone стал звучать тише
Как смотреть фото на iPhone или iPad в режиме слайд-шоу
Как научить iPhone принимать звонки только от известных контактов