Jakich języków programowania można używać do tworzenia aplikacji na iPhone'a, iPoda Touch i iPada (iOS)?

84

Jakich języków programowania można używać do tworzenia aplikacji na iPhone'a, iPoda Touch i iPada (iOS)?

Czy są też plany, aby w przyszłości zwiększyć liczbę języków programowania obsługiwanych przez iOS?

Anton
źródło

Odpowiedzi:

46

Firma Apple zniosła ograniczenia dotyczące aplikacji innych niż Objective C / C / C ++ - po prostu nie można załadować kodu, którego nie ma w pakiecie aplikacji.

MonoTouch pozwala na używanie języków .NET - C # jest bezpośrednio obsługiwany, ale jeśli masz Windows, możesz tworzyć zestawy w dowolnym języku .NET i używać go.

Krążą plotki, że Apple będzie bezpośrednio wspierać inne języki - ciągle słyszę rubin, ale to tylko plotki.

Myślę, że Lua jest używany do logiki gier w wielu aplikacjach.

EDYCJA (w 2018 r.): Generalnie możesz użyć dowolnego języka, który możesz uzyskać, aby skompilować na iOS, a nawet zainstalować tłumacze języków. Najważniejsze, czego nie możesz zrobić, to załadować kod z Internetu, którego nie było w pakiecie aplikacji.

Ludzie i tak robią to cały czas (zobacz aplikacje React Native ładujące JavaScript z serwerów), ale technicznie jest to niedozwolone. Najważniejsze, co zwróci uwagę Apple, jeśli stworzysz jakiś App Store, który ładuje całe rzeczy podobne do aplikacji.

EDYCJA (w 2020 r.): Z @Pylot w komentarzach: Wiem, że to było dawno temu, ale teraz przynajmniej technicznie możesz załadować kod, który nie jest osadzony w aplikacji, jak możesz pisać w JavaScript używając webview. Brak odpowiedzi jest zła lub coś w tym stylu, zdecydowanie się z tobą zgadzam. ale szukałem czegoś i znalazłem ten post po drodze. Pomyślałem, że jeśli ktoś to zobaczy, może im to pomóc.

Lou Franco
źródło
3
Objective-C ++ jest pomostem między ObjC i C ++, więc jest w porządku.
Lou Franco
RubyMotion umożliwia tworzenie natywnych aplikacji na iOS przy użyciu języka Ruby. Nie jest to jednak darmowe.
Uygar Y
1
Wypróbowałem Lua pod kątem logiki w mojej aplikacji, również z luasqlite (rozwiązanie dla przedsiębiorstw, więc nie może być zaangażowany żaden odrzut ze sklepu, niezależnie od tego, czy może się zdarzyć, czy nie) i mogę zaświadczyć, że działa cudownie. Należy pamiętać, że Lua zajmuje bardzo mało pamięci, więc możesz w rzeczywistości uruchomić kilkanaście interpretacji w tym samym czasie, bez zużywania nawet MB pamięci (co faktycznie zrobiłem ...). Zobacz także odpowiedź gran.pancho.villa na temat Swift.
Rick77
1
Wiem, że to było dawno temu, ale teraz przynajmniej technicznie możesz załadować kod, który nie jest osadzony w aplikacji, tak jak możesz pisać w JavaScript używając webview. Brak odpowiedzi jest zła lub coś w tym stylu, zdecydowanie się z tobą zgadzam. ale szukałem czegoś i znalazłem ten post po drodze. Pomyślałem, że jeśli ktoś to zobaczy, może im to pomóc.
Pylot
@pylot - dodałem Twój komentarz do odpowiedzi - dzięki
Lou Franco
17

Umowa SDK i wytyczne dotyczące sklepu z aplikacjami zostały zmienione (około września 2010).

Prawdopodobnie możesz teraz użyć dowolnego skompilowanego języka, który będzie kompilował się do tego samego statycznego formatu pliku obiektu ARM, co Xcode i który będzie łączył się (tylko) z publicznymi interfejsami API w ramach i bibliotekach Apple. Nie możesz jednak używać języka skompilowanego w JIT, chyba że wstępnie skompilujesz cały kod wynikowy przed przesłaniem do firmy Apple do przeglądu.

Możesz używać dowolnego języka interpretowanego, o ile osadzasz interpreter i nie zezwalasz tłumaczowi ani aplikacji na pobieranie i uruchamianie jakiegokolwiek możliwego do interpretacji kodu innego niż kod wbudowany w pakiet aplikacji przed przesłaniem do firmy Apple do przeglądu lub wpisaniem kodu źródłowego -w przez użytkownika.

Cele C i C prawdopodobnie nadal będą najbardziej optymalnymi językami programowania dla wszystkiego, co wymaga wysokiej wydajności i najnowszej obsługi API (* patrz aktualizacja poniżej), ponieważ są to języki, dla których Apple celuje w swoje struktury iOS i dostraja chipsety procesorów ARM. Apple obsługuje również obsługę JavaScript / HTML5 w UIWebView. To jedyne języki, dla których Apple ogłosił wsparcie. Cokolwiek innego będziesz musiał znaleźć gdzie indziej wsparcie.

Ale jeśli naprawdę chcesz, w sklepie z aplikacjami na iOS jest teraz dostępnych co najmniej pół tuzina interpreterów języka BASIC, więc nawet metodologia programowania „Stone Age” jest teraz dozwolona.

Dodano: (*) Od końca 2014 r. Można również tworzyć aplikacje przy użyciu nowego języka programowania Swift firmy Apple. Od początku 2015 r. Przesłane pliki binarne muszą obejmować obsługę wersji 64-bitowej (arm64).

hotpaw2
źródło
11

Mając plany powolnego wycofywania od dawna używanego Objective-C, Apple wprowadził nowy język programowania, zwany Swift, do projektowania aplikacji i aplikacji do uruchamiania na urządzeniach Apple iOS i komputerach Apple Macintosh.

Apple mówi: „ Swift to nowy język programowania dla aplikacji iOS i OS X, który opiera się na najlepszych rozwiązaniach C i Objective-C, bez ograniczeń kompatybilności z C. Swift przyjmuje bezpieczne wzorce programowania i dodaje nowoczesne funkcje ułatwiające programowanie, więcej elastyczny i przyjemniejszy. Czysta karta Swift, wspierana przez dojrzałe i lubiane frameworki Cocoa i Cocoa Touch, to okazja do ponownego wyobrażenia sobie, jak działa programowanie ”.

Przedstawiamy Swift

wprowadź opis obrazu tutaj

gral.pancho.villa
źródło
6

Jakich języków programowania można używać do tworzenia aplikacji na iPhone'a, iPoda Touch i iPada (iOs)?

Ruby, Python, Lua, Scheme, Lisp, Smalltalk, C #, Haskell, ActionScript, JavaScript, Objective-C, C ++, C. To tylko te, które przychodzą mi teraz do głowy. Jestem pewien, że są ich setki, jeśli nie tysiące. (Np. Nie ma powodu, dla którego nie mógłbyś używać żadnego języka .NET z MonoTouch, tj. VB.NET, F #, Nemerle, Boo, Cobra, ...)

Czy są też plany, aby w przyszłości zwiększyć liczbę języków programowania, które będą obsługiwane przez systemy iOS?

Pewnie. Prawie każda społeczność języków programowania na tej planecie pracuje obecnie nad uruchomieniem swojego języka na iOS.

Ponadto wiele osób pracuje nad językami programowania zaprojektowanymi specjalnie dla urządzeń dotykowych, takich jak iPod touch, iPhone i iPad, np . Język Thyrd Phila Mercurio .

Jörg W Mittag
źródło
4
-1. Ruby, Python i ActionScript nie działają jeszcze w systemie iOS. W przeszłości próbowano uruchomić CL i Scheme, ale nie sądzę, żeby były aktualne. Ta sama umowa z Haskellem. JavaScriptCore jest obecnie prywatną platformą; możesz napisać Objective-C za pomocą JS w widoku WWW, ale to naprawdę niezgrabne.
Jonathan Sterling
4
@Jonathan Sterling: Powinieneś to powiedzieć programistom, którzy od ponad roku sprzedają aplikacje Ruby w App Store. Jestem pewien, że byliby bardzo zainteresowani, gdyby dowiedzieli się, że ich aplikacje nie istnieją.
Jörg W Mittag,
4
Rhomobile się nie liczy. To nie są rzeczywiste aplikacje natywne. Po prostu utknęli w widoku internetowym.
Jonathan Sterling
@Jonathan Sterling: Mogę się trochę spóźnić na imprezę tutaj, ale Actionscript jest obsługiwane na iOS przez AIR dla iOS. (I to było w czasie, gdy oryginalny komentarz 10 października). Nawet osiąga całkiem niezłe wyniki ...
Marty Pitt
5

Językiem programowania iOS (i Mac OS) jest Objective-C i C. Musisz używać platformy Xcode do tworzenia aplikacji na iOS, w następnej wersji, która jest już dostępna w wersji beta, Xcode 4 obsługuje również C ++.

Mata
źródło
Nie musisz używać Xcode do tworzenia aplikacji na iOS lub Objective C lub C ++. Na przykład możesz użyć RubyMotion, który korzysta z narzędzi wiersza poleceń. Ponadto istnieje wiele rozwiązań programistycznych innych firm do tworzenia aplikacji, które mogą działać na iOS i Androidzie
Martin Lockett
4

Obecnie można również używać OCaml do tworzenia aplikacji na iOS. Nie jest częścią standardowej dystrybucji i wymaga modyfikacji zapewnianych przez firmę Psellos. Więcej informacji można znaleźć tutaj: http://psellos.com/ocaml/ .

Ashish Agarwal
źródło
2

To może być stary wątek, ale chciałbym wspomnieć o Appceleratorze Titanium , który umożliwia każdemu znającemu HTML5 / JavaScript / CSS tworzenie aplikacji na iOS.

shaond
źródło
Jeśli się nie mylę, podczas korzystania z Titanium możesz zamienić JavaScript na Ruby lub Python.
Torbjørn
2

Obecnie dozwolone jest tylko Objective-C ... ale od kilku miesięcy możesz pisać skrypty, które będą interpretowane w Twojej aplikacji.

Więc możesz być w stanie napisać interpreter LUA lub interpreter Pythona, a następnie napisać jakąś część swojej aplikacji w tym języku skryptowym. Jeśli chcesz, aby Twoja aplikacja została zaakceptowana w App Store, te skrypty muszą być dołączone do aplikacji (Twoja aplikacja nie może jej pobrać na przykład z Internetu)

zobacz nowe zasady sklepu z aplikacjami

dwursteisen
źródło
1

Celem-c jest podstawowym używanym językiem.

Uważam, że istnieje framework mono touch, którego można używać w języku C #

Adobe również pracuje nad niektórymi narzędziami, jednym z nich jest ten iPhone Packager, który może wykorzystywać kod ActionScript

Aaron Saunders
źródło
Wydaje się, że link nie działa?
Zameer Ansari
1

Możesz użyć języka programowania „smart BASIC”. Jest to prawdziwy, ale bardzo zaawansowany język BASIC z całą jego mocą i prostotą. Korzystając z bezpłatnego SDK, kod BASIC można łatwo opublikować jako samodzielną aplikację App Store. W App Store jest wiele aplikacji napisanych w języku programowania „smart BASIC”.

Kibernetik
źródło