Mit welchen Programmiersprachen kann man iPhone-, iPod Touch- und iPad-Anwendungen (iOS) entwickeln?

83

Mit welchen Programmiersprachen kann man iPhone-, iPod Touch- und iPad-Anwendungen (iOS) entwickeln?

Gibt es auch Pläne für die Zukunft, die Anzahl der von iOS unterstützten Programmiersprachen zu erhöhen?

Anton
quelle

Antworten:

46

Apple hat die Einschränkungen für nicht objektive C / C / C ++ - Apps aufgehoben. Sie können einfach keinen Code laden, der nicht im App-Bundle enthalten ist.

Mit MonoTouch können Sie .NET-Sprachen verwenden - C # wird direkt unterstützt. Wenn Sie jedoch über Windows verfügen, können Sie Assemblys in einer beliebigen .NET-Sprache erstellen und verwenden.

Es gibt Gerüchte, dass Apple andere Sprachen direkt unterstützen wird - ich höre immer wieder Rubin, aber es sind nur Gerüchte.

Ich denke, Lua wird für die Spielelogik in vielen Apps verwendet.

BEARBEITEN (im Jahr 2018): Im Allgemeinen können Sie jede Sprache verwenden, die Sie für iOS kompilieren oder sogar Sprachinterpreter installieren können. Das Wichtigste, was Sie nicht tun können, ist, Code aus dem Internet zu laden, der nicht im App-Bundle enthalten war.

Die Leute machen das sowieso die ganze Zeit (siehe React Native-Apps, die JavaScript von Servern laden), aber technisch ist es nicht erlaubt. Die Hauptsache, die Sie von Apple auf sich aufmerksam machen wird, wenn Sie eine Art App Store erstellen, der ganze App-ähnliche Dinge lädt.

BEARBEITEN (im Jahr 2020): von @Pylot in Kommentaren: Ich weiß, dass dies schon lange her ist, aber jetzt können Sie zumindest technisch Code laden, der nicht in die App eingebettet ist, da Sie mit JavaScript über die Webansicht schreiben können. Ihre Antwort nicht zu behalten ist falsch oder so, ich stimme Ihnen definitiv zu. aber ich suchte etwas und fand diesen Beitrag auf dem Weg. Ich dachte, wenn jemand dies sieht, könnte es ihm helfen.

Lou Franco
quelle
3
Objective-C ++ ist die Brücke zwischen ObjC und C ++, also ist es in Ordnung.
Lou Franco
Mit RubyMotion können Sie native iOS-Apps mit Ruby erstellen. Es ist jedoch nicht kostenlos.
Uygar Y
1
Ich habe Lua für die Logik in meiner App ausprobiert, auch mit Luasqlite (Unternehmenslösung, sodass keine Store-Ablehnungen beteiligt sein können, ob sie auftreten oder nicht), und ich kann bezeugen, dass sie wunderbar funktioniert. Denken Sie daran, dass Lua einen sehr sehr geringen Speicherbedarf hat, sodass Sie tatsächlich ein Dutzend Interpreter gleichzeitig ausführen können, ohne so viel wie ein MB Speicher zu verbrauchen (was ich tatsächlich getan habe ...). Siehe auch gran.pancho.villa Antwort zu Swift.
Rick77
1
Ich weiß, dass dies schon lange her ist, aber jetzt können Sie zumindest technisch Code laden, der nicht in die App eingebettet ist, da Sie mit JavaScript über die Webansicht schreiben können. Ihre Antwort nicht zu behalten ist falsch oder so, ich stimme Ihnen definitiv zu. aber ich suchte etwas und fand diesen Beitrag auf dem Weg. Ich dachte, wenn jemand das sieht, könnte es ihm helfen.
Pylot
@pylot - Ich habe Ihren Kommentar zur Antwort hinzugefügt - danke
Lou Franco
17

Die SDK-Vereinbarung und die App Store-Richtlinien wurden geändert (ca. September 2010).

Sie können jetzt wahrscheinlich jede kompilierte Sprache verwenden, die mit demselben statischen ARM-Objektdateiformat kompiliert wird, das Xcode erzeugt, und das mit (nur) den öffentlichen APIs in Apples Frameworks und Bibliotheken verknüpft ist. Sie können jedoch keine JIT-kompilierte Sprache verwenden, es sei denn, Sie kompilieren den gesamten Objektcode vor, bevor Sie ihn zur Überprüfung an Apple senden.

Sie können jede interpretierte Sprache verwenden, solange Sie den Interpreter einbetten, und dem Interpreter oder der App nicht erlauben, anderen interpretierbaren Code als den im App-Bundle integrierten Code herunterzuladen und auszuführen, bevor Sie ihn zur Überprüfung an Apple senden oder den Quellcode eingeben -in vom Benutzer.

Ziel C und C werden wahrscheinlich immer noch die optimalste Programmiersprache für alles sein, was hohe Leistung und die neueste API-Unterstützung erfordert (* siehe Update unten), da dies die Sprachen sind, für die Apple auf seine iOS-Frameworks abzielt und seine ARM-Prozessor-Chipsätze optimiert. Apple unterstützt auch die Verwendung von Javascript / HTML5 in einer UIWebView. Dies sind die einzigen Sprachen, für die Apple Unterstützung angekündigt hat. Alles andere müssen Sie woanders unterstützen.

Aber wenn Sie wirklich wollen, gibt es jetzt mindestens ein halbes Dutzend BASIC-Dolmetscher im iOS App Store, sodass jetzt sogar die Programmiermethode "Steinzeit" zulässig ist.

Hinzugefügt: (*) Ab Ende 2014 kann man Apps auch mit Apples neuer Programmiersprache Swift entwickeln. Ab Anfang 2015 müssen eingereichte Binärdateien 64-Bit-Unterstützung (arm64) enthalten.

hotpaw2
quelle
11

Mit dem Plan, das seit langem verwendete Objective-C langsam außer Betrieb zu setzen, hat Apple eine neue Programmiersprache namens Swift eingeführt, mit der Apps und Anwendungen für Apple iOS-Geräte und Apple Macintosh-Computer entworfen werden können.

Apple sagt: " Swift ist eine neue Programmiersprache für iOS- und OS X-Apps, die auf dem Besten von C und Objective-C aufbaut, ohne die Einschränkungen der C-Kompatibilität. Swift übernimmt sichere Programmiermuster und fügt moderne Funktionen hinzu, um die Programmierung einfacher und einfacher zu gestalten." Flexibel und macht mehr Spaß. Swifts Clean Slate, unterstützt von den ausgereiften und beliebten Frameworks Cocoa und Cocoa Touch, bietet die Gelegenheit, die Funktionsweise der Softwareentwicklung neu zu überdenken. "

Schnell vorstellen

Geben Sie hier die Bildbeschreibung ein

gral.pancho.villa
quelle
6

Mit welchen Programmiersprachen kann man iPhone-, iPod Touch- und iPad-Anwendungen (iOs) entwickeln?

Ruby, Python, Lua, Schema, Lisp, Smalltalk, C #, Haskell, ActionScript, JavaScript, Objective-C, C ++, C. Das sind nur diejenigen, die mir gerade in den Sinn kommen. Ich bin sicher, es gibt Hunderte, wenn nicht Tausende von anderen. (Zum Beispiel gibt es keinen Grund, warum Sie mit MonoTouch keine .NET-Sprache verwenden könnten, dh VB.NET, F #, Nemerle, Boo, Cobra, ...)

Gibt es auch Pläne für die Zukunft, die Anzahl der von iOs unterstützten Programmiersprachen zu erhöhen?

Sicher. Nahezu jede Programmiersprachen-Community auf diesem Planeten arbeitet derzeit daran, ihre Sprache unter iOS zum Laufen zu bringen.

Außerdem arbeiten viele Leute an Programmiersprachen, die speziell für Touch-Geräte wie iPod touch, iPhone und iPad entwickelt wurden, z. B. die Thyrd- Sprache von Phil Mercurio .

Jörg W Mittag
quelle
4
-1. Ruby, Python und ActionScript funktionieren unter iOS noch nicht. In der Vergangenheit gab es Versuche, CL und Scheme zum Laufen zu bringen, aber ich denke nicht, dass diese auf dem neuesten Stand sind. Gleiches gilt für Haskell. JavaScriptCore ist derzeit ein privates Framework. Sie können Objective-C mit JS in einer Webansicht skripten, aber das ist wirklich umständlich.
Jonathan Sterling
4
@ Jonathan Sterling: Das sollten Sie den Entwicklern mitteilen, die Ruby-Apps seit über einem Jahr über den App Store verkaufen. Ich bin sicher, sie wären sehr interessiert zu erfahren, dass ihre Apps nicht existieren.
Jörg W Mittag
4
Rhomobile zählt nicht. Das sind keine nativen Apps. Sie stecken einfach in einer Webansicht fest.
Jonathan Sterling
@ Jonathan Sterling: Ich bin vielleicht etwas spät dran, aber Actionscript wird unter iOS über AIR für iOS unterstützt. (Und es war zum Zeitpunkt des ursprünglichen Kommentars 10. Oktober). Es wird sogar eine ziemlich gute Leistung ...
Marty Pitt
5

Die Programmiersprache von iOS (und Mac OS) ist Objective-C und C. Sie müssen die Xcode-Plattform verwenden, um iOS-Apps zu entwickeln. In der nächsten Version, die jetzt in der Beta-Version verfügbar ist, unterstützt Xcode 4 auch C ++.

Matte
quelle
Sie müssen Xcode nicht verwenden, um iOS-Apps oder Objective C oder C ++ zu entwickeln. Sie können beispielsweise RubyMotion verwenden, das die Befehlszeilentools verwendet. Es gibt auch eine Reihe von Entwicklungslösungen von Drittanbietern für die Entwicklung einer App, die auf iOS und Android ausgeführt werden kann
Martin Lockett
4

Es ist jetzt auch möglich, OCaml für die Entwicklung von iOS-Anwendungen zu verwenden. Es ist nicht Teil der Standarddistribution und erfordert Änderungen, die von der Firma Psellos bereitgestellt werden. Weitere Informationen finden Sie hier: http://psellos.com/ocaml/ .

Ashish Agarwal
quelle
2

Dies mag ein alter Thread sein, aber ich möchte Appcelerator Titanium erwähnen , mit dem jeder, der sich mit HTML5 / JavaScript / CSS auskennt, iOS-Anwendungen entwickeln kann.

shaond
quelle
Wenn ich mich nicht irre, können Sie JavaScript bei Verwendung von Titanium entweder mit Ruby oder Python austauschen.
Torbjørn
2

Mittlerweile ist nur noch Objective-C zulässig ... aber seit einigen Monaten dürfen Sie Skripte schreiben, die in Ihrer Anwendung interpretiert werden.

Möglicherweise können Sie also einen LUA-Interpreter oder einen Python-Interpreter schreiben und dann einen Teil Ihrer Anwendung in dieser Skriptsprache schreiben. Wenn Sie möchten, dass Ihre Anwendung im App Store akzeptiert wird, müssen diese Skripte mit der Anwendung gebündelt werden (Ihre Anwendung kann sie beispielsweise nicht aus dem Internet herunterladen).

Siehe neue App Store-Regeln

dwursteisen
quelle
1

Ziel-c ist die verwendete Primärsprache.

Ich glaube, es gibt ein Mono-Touch-Framework , das mit c # verwendet werden kann

Adobe arbeitet auch in einigen Tools. Eines davon ist der iPhone Packager, der Actionscript-Code verwenden kann

Aaron Saunders
quelle
Der Link scheint tot zu sein?
Zameer Ansari
1

Sie können die Programmiersprache "smart BASIC" verwenden. Es ist eine echte, aber sehr fortgeschrittene BASIC-Sprache mit all ihrer Kraft und Einfachheit. Mit dem kostenlosen SDK kann BASIC-Code problemlos als eigenständige App Store-Anwendung veröffentlicht werden. Es gibt viele Apps im App Store, die in der Programmiersprache "smart BASIC" geschrieben sind.

Kibernetik
quelle