Какие языки программирования можно использовать для разработки приложений для iPhone, iPod Touch и iPad (iOS)?

84

Какие языки программирования можно использовать для разработки приложений для iPhone, iPod Touch и iPad (iOS)?

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

Антон
источник

Ответы:

46

Apple сняла ограничения на приложения, не относящиеся к Objective C / C / C ++ - вы просто не можете загружать код, которого нет в комплекте приложений.

MonoTouch позволяет использовать языки .NET - C # напрямую поддерживается, но если у вас Windows, вы можете создавать сборки на любом языке .NET и использовать их.

Ходят слухи, что Apple собирается напрямую поддерживать другие языки - я все время слышу ruby, но это всего лишь слухи.

Я думаю, что Lua используется для игровой логики во многих приложениях.

РЕДАКТИРОВАТЬ (в 2018 г.): Как правило, вы можете использовать любой язык для компиляции для iOS или даже установить языковые интерпретаторы. Главное, что вы не можете сделать, это загрузить из Интернета код, которого не было в комплекте приложений.

В любом случае люди делают это постоянно (см. Приложение React Native, загружающее JavaScript с серверов), но технически это не разрешено. Главное, что привлечет внимание Apple, если вы создадите какой-то App Store, который загружает целые App-подобные вещи.

РЕДАКТИРОВАТЬ (в 2020 году): от @Pylot в комментариях: я знаю, что это было давно, но теперь, по крайней мере, технически вы можете загружать код, который не встроен в приложение, так как вы можете писать с помощью JavaScript, используя веб-просмотр. Не задерживаться на вашем ответе неправильно или что-то в этом роде, я определенно с вами согласен. но я что-то искал и по дороге нашел этот пост. Подумал, если кто-нибудь увидит это, это может им помочь.

Лу Франко
источник
3
Objective-C ++ - это мост между ObjC и C ++, так что все в порядке.
Лу Франко
RubyMotion позволяет создавать собственные приложения для iOS с помощью Ruby. Однако это не бесплатно.
Uygar Y
1
Я попробовал Lua для логики в моем приложении, а также с luasqlite (корпоративное решение, поэтому отказы магазинов не могут быть задействованы, независимо от того, могут ли они произойти или нет), и я могу засвидетельствовать, что это работает замечательно. Имейте в виду, что Lua занимает очень мало памяти, поэтому вы можете одновременно запускать десятки интерпретаторов, не потребляя даже мегабайт памяти (что я на самом деле и сделал ...). См. Также ответ gran.pancho.villa о Swift.
Rick77
1
Я знаю, что это было давно, но теперь, по крайней мере, технически вы можете загружать код, который не встроен в приложение, так как вы можете писать с помощью JavaScript, используя веб-просмотр. Не задерживаться на вашем ответе неправильно или что-то в этом роде, я определенно с вами согласен. но я что-то искал и по дороге нашел этот пост. Подумал, если кто-нибудь увидит это, это может им помочь.
Пилот
@pylot - я добавил ваш комментарий к ответу - спасибо
Лу Франко
17

Соглашение о SDK и правила магазина приложений были изменены (примерно сентябрь 2010 г.).

Теперь вы, вероятно, можете использовать любой скомпилированный язык, который будет компилироваться в тот же формат статического объектного файла ARM, что и Xcode, и который будет связываться (только) с общедоступными API в рамках структур и библиотек Apple. Однако вы не можете использовать JIT-скомпилированный язык, если вы предварительно не скомпилируете весь объектный код перед отправкой в ​​Apple для проверки.

Вы можете использовать любой интерпретируемый язык, если вы встраиваете интерпретатор, и не позволяете интерпретатору или приложению загружать и запускать любой интерпретируемый код, кроме кода, встроенного в пакет приложения, перед отправкой в ​​Apple для проверки или набранным исходным кодом. -в пользователем.

Objective C и C, вероятно, по-прежнему будут наиболее оптимальными языками программирования для всего, что требует высокой производительности и новейшей поддержки API (* см. Обновление ниже), поскольку это языки, для которых Apple нацеливает свои фреймворки iOS и настраивает свои наборы микросхем процессоров ARM. Apple также поддерживает использование Javascript / HTML5 внутри UIWebView. Это единственные языки, для которых Apple объявила о поддержке. В остальном вам придется искать поддержку в другом месте.

Но, если вы действительно хотите, в магазине приложений iOS сейчас доступно как минимум полдюжины интерпретаторов BASIC, так что теперь разрешена даже методология программирования «каменного века».

Добавлено: (*) С конца 2014 года можно также разрабатывать приложения с использованием нового языка программирования Apple Swift. По состоянию на начало 2015 года представленные двоичные файлы должны включать поддержку 64-разрядных (arm64).

hotpaw2
источник
11

Планируя постепенно отказаться от давно используемого Objective-C, Apple представила новый язык программирования Swift для разработки приложений и приложений для работы на устройствах Apple iOS и компьютерах Apple Macintosh.

Apple заявляет: « Swift - это новый язык программирования для приложений iOS и OS X, основанный на лучшем из C и Objective-C, без ограничений совместимости с C. Swift принимает безопасные шаблоны программирования и добавляет современные функции, чтобы упростить программирование. гибкий и веселый. Чистый лист Swift, подкрепленный зрелыми и всеми любимыми фреймворками Cocoa и Cocoa Touch, дает возможность переосмыслить принцип работы разработки программного обеспечения ».

Представляем Swift

введите описание изображения здесь

gral.pancho.villa
источник
6

Какие языки программирования можно использовать для разработки приложений для iPhone, iPod Touch и iPad (iOs)?

Ruby, Python, Lua, Scheme, Lisp, Smalltalk, C #, Haskell, ActionScript, JavaScript, Objective-C, C ++, C. Это как раз те, которые приходят мне в голову прямо сейчас. Я уверен, что есть сотни, если не тысячи других. (Например, нет причин, по которым вы не могли бы использовать какой-либо язык .NET с MonoTouch, то есть VB.NET, F #, Nemerle, Boo, Cobra, ...)

Также есть ли планы в будущем расширить количество языков программирования, которые будут поддерживать iOS?

Конечно. Практически все сообщества языков программирования на этой планете в настоящее время работают над запуском своего языка на iOS.

Кроме того, многие люди работают над языками программирования, специально разработанными для сенсорных устройств, таких как iPod touch, iPhone и iPad, например, языком Thyrd Фила Меркурио .

Йорг В. Миттаг
источник
4
-1. Ruby, Python и ActionScript еще не работают на iOS. В прошлом были попытки запустить CL и Scheme, но я не думаю, что они актуальны. То же самое и с Haskell. JavaScriptCore сейчас является частной структурой; вы можете написать сценарий Objective-C, используя JS в веб-просмотре, но это действительно неуклюже.
Джонатан Стерлинг,
4
@Jonathan Sterling: Вы должны сказать это разработчикам, которые уже более года продают приложения Ruby через App Store. Я уверен, что им было бы очень интересно узнать, что их приложений не существует.
Jörg W Mittag
4
Ромобиль не в счет. Это не настоящие нативные приложения. Они просто застряли в веб-просмотре.
Джонатан Стерлинг,
@Jonathan Sterling: Возможно, я немного опоздаю на вечеринку, но ActionScript поддерживается в iOS через AIR для iOS. (И это было во время первоначального комментария 10 октября). У него даже отличная производительность ...
Марти Питт
5

Язык программирования iOS (и Mac OS) - Objective-C и C. Вы должны использовать платформу Xcode для разработки приложений iOS, в следующей версии, которая теперь доступна в бета-версии, Xcode 4 поддерживает также C ++.

Мат
источник
Вам не нужно использовать Xcode для разработки приложений для iOS или Objective C или C ++. Например, вы можете использовать RubyMotion, который использует инструменты командной строки. Кроме того, существует ряд сторонних решений для разработки приложений, которые могут работать на iOS и Android
Мартин Локетт,
4

Также теперь можно использовать OCaml для разработки приложений iOS. Он не входит в стандартный комплект поставки и требует внесения изменений со стороны компании Psellos. См. Здесь для получения дополнительной информации: http://psellos.com/ocaml/ .

Ашиш Агарвал
источник
2

Это может быть старый поток, но я хотел бы упомянуть Appcelerator Titanium , который позволяет любому, кто разбирается в HTML5 / JavaScript / CSS, разрабатывать приложения для iOS.

Shaond
источник
Если я не ошибаюсь, вы можете заменить JavaScript на Ruby или Python при использовании Titanium.
Torbjørn
2

Сейчас разрешен только Objective-C ... но несколько месяцев назад вам разрешено писать сценарии, которые будут интерпретироваться в вашем приложении.

Таким образом, вы можете написать интерпретатор LUA или интерпретатор Python, а затем написать часть своего приложения на этом языке сценариев. Если вы хотите, чтобы ваше приложение было принято в App Store, эти сценарии должны быть связаны с приложением (например, ваше приложение не может загрузить его из Интернета).

посмотреть новые правила магазина приложений

Dwursteisen
источник
1

objective-c - это основной используемый язык.

Я считаю, что есть моно-сенсорная структура, которую можно использовать с С #

Adobe также работает над некоторыми инструментами, одним из которых является iPhone Packager, который может использовать код ActionScript.

Аарон Сондерс
источник
Ссылка вроде мертвая?
Замир Ансари 01
1

Вы можете использовать язык программирования "smart BASIC". Это настоящий, но очень продвинутый язык BASIC со всей его мощью и простотой. Используя бесплатный SDK, код BASIC можно легко опубликовать как отдельное приложение в App Store. В App Store есть много приложений, написанных на языке программирования "smart BASIC".

Кибернетик
источник