Xamarin: новый подход к разработке приложений для iOS

Андрей Сундуков avatar | 28
FavoriteLoading В закладки

Многие склонны считать, что приложения для 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 еще не стал мейнстримом, но планомерно движется в этом направлении. Погалаю, что через год-два о нем будут говорить гораздо больше. Имели ли вы с ним дело? Если да, то поделитесь, пожалуйста, впечатлениями.

1 Звезд2 Звезды3 Звезды4 Звезды5 Звезд (Проголосуйте первым за статью!)
undefined
iPhones.ru
Многие склонны считать, что приложения для iOS могут разрабатываться только на языке программирования Objective-C. Это не совсем так, есть и другие способы. Об одном из них я сегодня хочу вам рассказать. Как все реализовать без участия привычного Obj-C? Легко, писать на C#! Поняв, что Open Source может стать неплохим источником дохода, программист Мигель де Икаса...
Прокомментировать

🙈 Комментарии 28

  1. Zi-Zi avatar
    Zi-Zi6 декабря 2012
    0

    Жду Qt.

  2. interactivex avatar
    interactivex6 декабря 2012
    0

    Спасибо за новость. Надо скачать, попробовать.

    Andrew Sundukov avatar
    Andrew Sundukov6 декабря 2012
    0

    @interactivex, попробуйте и отпишитесь :)

  3. Cooler avatar
    Cooler6 декабря 2012
    0

    А где обещанная игра karateka в конце ноября? Жду жду, а ее нету!

  4. Nalivayka avatar
    Nalivayka6 декабря 2012
    0

    GTA: Vice City вышел!

  5. Aleksey Kononov avatar
    Aleksey Kononov6 декабря 2012
    0

    Ну можно написать с помощью, между прочим, не только этой хрени кроссплатформенное приложение. Но это же очевидно, что вы никогда не достигнете эффекта ВАУ! в таких приложениях.

    S@ndel avatar
    S@ndel6 декабря 2012
    0

    @Aleksey Kononov, вы сами-то поняли что написали?

    Aleksey Kononov avatar
    Aleksey Kononov6 декабря 2012
    0

    @S@ndel, если честно, с трудом. Но суть в том, что приверженцы таких технологий кроссплатформенной разработки, как xamarin, не понимают, что создание мобильных приложений – это искусство, а не просто кодинг. Поэтому можно плодить суровые приложения на 5 платформ сразу, но ожидать удовольстия от результата – весьма глупо.

  6. star_iK avatar
    star_iK6 декабря 2012
    0

    Гы, ни черта из написаного непонял)) вроде и кирилицей, и слова – отдельные – знакомые, а – тарабарщина тарабарщиной))

  7. oflam avatar
    oflam6 декабря 2012
    0

    Отлично. Если это все достаточно доступно для простого пользователя (знающего С#) то можно попробовать скачать… Это интересно во всяком случае, спасибо за наводку

    Andrew Sundukov avatar
    Andrew Sundukov6 декабря 2012
    0

    @oflam, скачайте и отпишитесь. если не ошибаюсь, у них существует бесплатный триальный период.

    arabesc avatar
    arabesc6 декабря 2012
    0

    @Andrew Sundukov, пробовать под симулятором можно неограниченно долго.

  8. artbasil avatar
    artbasil6 декабря 2012
    0

    Писали как-то на работе проект на монотаче в соседней команде. Долго потом бегали за советом что да как делать. А когда начали отлавливать утечки памяти и уперлись в то что утечки происходят в самом монотаче и сделать с этим ничего нельзя было уже поздно переписывать все по нормальному на Objective-C.
    Кроссплатформность это все экономия которая может быть хороша в маленьких несложных проектах. Когда речь идет о создании серьезного, сложного, долгоиграющего, высокого качества приложения нужно использовать только родные средства разработки а не всякую ересь типа .net на платформах где им и не пахнет.

    Forsaken25 avatar
    Forsaken256 декабря 2012
    0

    @artbasil, лучше и не скажешь! Люто ненавижу такие средства. Уж лучше писать 2 раза (ios/android) чем мучиться с этой мнимой кроссплатформенностю.

    arabesc avatar
    arabesc6 декабря 2012
    0

    @Forsaken25, в статье пишут про общий non-UI код, что так же справедливо, например для С++, который доступен без посредников как на iOS, так и на Android.

    Andrew Sundukov avatar
    Andrew Sundukov6 декабря 2012
    0

    @artbasil, ценю ваше мнение, однако считаю, что вы не совсем правы.

    arabesc avatar
    arabesc6 декабря 2012
    0

    @Andrew Sundukov, информация artbasil не актуальна и в монотаче больше нет утечек памяти?

    Vlad.dev avatar
    Vlad.dev6 декабря 2012
    0

    @artbasil, Хороший комментарий.

  9. voice avatar
    voice6 декабря 2012
    0

    Ну что ж народ. Если вы не использовали эту штуку то что ее ругать? Вот например Qt меня только радует , но тут совсем разные вещи правда и настораживают , но да ладно надо пробовать .

  10. Alex.B. avatar
    Alex.B.6 декабря 2012
    0

    Здравствуй, падение производительности сценариев! Да будут корявые приложения.

  11. GodLight avatar
    GodLight6 декабря 2012
    0

    Marmalade SDK мне кажется лучше. Там и iOS, Bada, Android, Windows Phone, Windows, Mac OS X, Blackberry.
    Плюс писать можно и на C/C++, и на HTML5,Javascript,CSS3. Marmalade реально удобен

  12. burivuh avatar
    burivuh6 декабря 2012
    0

    Возможно, вопрос нубский, но:
    Есть ли программа, в которой можно создать iOS- приложение с нуля в Windows? Без использования хакинтош и виртуальной машины.

  13. alexey avatar
    alexey6 декабря 2012
    0

    Пока читал новость, был уверен, что нахожусь на Хабре…

  14. i4ne avatar
    i4ne6 декабря 2012
    0

    Интересно, а можно добавить CocoaPods к проекту?

  15. rysmax avatar
    rysmax6 декабря 2012
    0

    Хрень.
    Зависеть от группы разработчиков…
    Это как было с Delphi – она загнулась и что теперь делать разработчикам?…
    А Си был жив и будет еще жить очень долго.
    Для кроссплатформа удобнее все либы писать на C или C++, а GUI часть для каждой платформы делать отдельно, потом подключать либы и компилить в родных IDE.

    rysmax avatar
    rysmax6 декабря 2012
    0

    @rysmax, забыл добавить, примеров масса: Ableton, продукты Adobe и т.д.

  16. am98pln avatar
    am98pln6 декабря 2012
    0

    а есть список крутых игр сделанных на Xamarin’е?

  17. Imelstronum avatar
    Imelstronum8 декабря 2012
    0

    @Forsaken25, @Aleksey Kononov, @artbasil, Вы видели приложение CoinKeeper? Между прочим, лучшее среди себе подобных. Так что же, может дело только в том, какой кодер? И кроме того… при программировании на xCode нет утечек, вы думаете? Стоит вам начать фрактальную обработку и Objective-C вы будете ненавидеть всей душой. Например, наша команда отказалась от Objective-C именно по этой причине. Перешли на именно эту среду программирования и уже почти всё доделано. Так что давайте будем объективными)

Вы должны авторизоваться или зарегистрироваться для комментирования.

Нашли орфографическую ошибку в новости?

Выделите ее мышью и нажмите Ctrl+Enter.

Как установить аватар в комментариях?

Ответ вот здесь