Многие склонны считать, что приложения для 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 на другой
Почему Siri не слушает голосовые команды, а предлагает вводить их с клавиатуры
Как добавить оперативную память в iMac? Какая память подойдет?
Сколько месяцев действует гарантия на технику Apple
Инструкция по установке публичной бета-версии tvOS 16 на Apple TV
Как в Safari на Mac открывать вкладки в фоне и сразу к ним переходить
Как убрать таймер отключения и перезагрузки в macOS
Как настроить разные стартовые страницы Safari на iPhone и Mac