Người ta có thể sử dụng ngôn ngữ lập trình nào để phát triển các ứng dụng iPhone, iPod Touch và iPad (iOS)?


84

Người ta có thể sử dụng ngôn ngữ lập trình nào để phát triển các ứng dụng iPhone, iPod Touch và iPad (iOS)?

Ngoài ra, có kế hoạch trong tương lai để mở rộng số lượng ngôn ngữ lập trình mà iOS sẽ hỗ trợ không?

Câu trả lời:


46

Apple đã dỡ bỏ các hạn chế đối với các ứng dụng C / C / C ++ không Mục tiêu - bạn chỉ không thể tải mã không có trong gói ứng dụng.

MonoTouch cho phép bạn sử dụng các ngôn ngữ .NET - C # được hỗ trợ trực tiếp, nhưng nếu bạn có Windows, bạn có thể tạo các hợp ngữ bằng bất kỳ ngôn ngữ .NET nào và sử dụng nó.

Có tin đồn rằng Apple sẽ hỗ trợ trực tiếp các ngôn ngữ khác - tôi vẫn nghe thấy ruby, nhưng chúng chỉ là tin đồn.

Tôi nghĩ Lua đang được sử dụng cho logic trò chơi trên rất nhiều ứng dụng.

EDIT (vào năm 2018): Nói chung, bạn có thể sử dụng bất kỳ ngôn ngữ nào mà bạn có thể biên dịch cho iOS hoặc thậm chí cài đặt trình thông dịch ngôn ngữ. Điều chính bạn không thể làm là tải mã từ Internet không có trong gói ứng dụng.

Mọi người luôn làm điều này (xem Ứng dụng React Native tải JavaScript từ máy chủ), nhưng về mặt kỹ thuật, nó không được phép. Điều chính sẽ khiến bạn chú ý đến từ Apple nếu bạn tạo ra một loại App Store nào đó tải toàn bộ những thứ giống như Ứng dụng.

CHỈNH SỬA (vào năm 2020): từ @Pylot trong nhận xét: Tôi biết điều này đã lâu rồi, nhưng bây giờ ít nhất về mặt kỹ thuật, bạn có thể tải mã không được nhúng trong ứng dụng, vì bạn có thể viết bằng JavaScript bằng cách sử dụng webview. Không ở lại câu trả lời của bạn là sai hay bất cứ điều gì, tôi chắc chắn đồng ý với bạn. nhưng tôi đang tìm kiếm một cái gì đó và tìm thấy bài đăng này trên đường đi. Nếu có ai nhìn thấy điều này thì có thể giúp họ.


3
Objective-C ++ là cầu nối giữa ObjC và C ++, vì vậy nó ổn.
Lou Franco

RubyMotion cho phép bạn xây dựng các ứng dụng iOS gốc bằng Ruby. Nó không phải là miễn phí mặc dù.
Uygar Y

1
Tôi đã thử Lua vì logic trong ứng dụng của mình, với luasqlite (giải pháp doanh nghiệp, vì vậy không có sự từ chối của cửa hàng nào có thể liên quan, cho dù chúng có thể xảy ra hay không) và tôi có thể chứng thực rằng nó hoạt động tuyệt vời. Hãy nhớ rằng Lua có dung lượng bộ nhớ rất thấp, vì vậy bạn thực sự có thể chạy hàng tá thông dịch cùng một lúc mà không tốn nhiều Mb bộ nhớ (đó là những gì tôi thực sự đã làm ...). Xem thêm câu trả lời của gran.pancho.villa về Swift.
Rick77

1
Tôi biết điều này đã lâu, nhưng bây giờ ít nhất về mặt kỹ thuật, bạn có thể tải mã không được nhúng trong ứng dụng, vì bạn có thể viết bằng JavaScript bằng cách sử dụng webview. Không ở lại câu trả lời của bạn là sai hay bất cứ điều gì, tôi chắc chắn đồng ý với bạn. nhưng tôi đang tìm kiếm một cái gì đó và tìm thấy bài đăng này trên đường đi. Nếu có ai nhìn thấy điều này thì có thể giúp họ.
Pylot

@pylot - Tôi đã thêm nhận xét của bạn vào câu trả lời - cảm ơn
Lou Franco

17

Thỏa thuận SDK và nguyên tắc của App Store đã được thay đổi (khoảng tháng 9 năm 2010).

Giờ đây, bạn có thể sử dụng bất kỳ ngôn ngữ biên dịch nào sẽ biên dịch sang định dạng tệp đối tượng ARM tĩnh giống như Xcode tạo ra và sẽ liên kết đến (chỉ) API công khai trong các khung và thư viện của Apple. Tuy nhiên, bạn không thể sử dụng ngôn ngữ biên dịch JIT trừ khi bạn biên dịch trước tất cả mã đối tượng trước khi gửi cho Apple xem xét.

Bạn có thể sử dụng bất kỳ ngôn ngữ thông dịch nào, miễn là bạn nhúng trình thông dịch và không cho phép trình thông dịch hoặc ứng dụng tải xuống và chạy bất kỳ mã có thể hiểu được nào khác ngoài mã được tích hợp trong gói ứng dụng trước khi gửi cho Apple để xem xét hoặc mã nguồn được nhập -in bởi người dùng.

Objective C và C có thể sẽ vẫn là ngôn ngữ lập trình tối ưu nhất cho bất kỳ thứ gì yêu cầu hiệu suất cao và hỗ trợ API mới nhất (* xem bản cập nhật bên dưới), vì đó là những ngôn ngữ mà Apple nhắm mục tiêu vào các khung iOS của mình và điều chỉnh chipset xử lý ARM của mình. Apple cũng hỗ trợ việc sử dụng Javascript / HTML5 bên trong UIWebView. Đó là những ngôn ngữ duy nhất mà Apple đã công bố hỗ trợ. Bất cứ điều gì khác bạn sẽ phải tìm hỗ trợ ở nơi khác.

Tuy nhiên, nếu bạn thực sự muốn, có ít nhất nửa tá trình thông dịch BASIC hiện có sẵn trong cửa hàng Ứng dụng iOS, vì vậy ngay cả phương pháp lập trình "Thời kỳ đồ đá" cũng được cho phép.

Đã thêm: (*) Vào cuối năm 2014, người ta cũng có thể phát triển ứng dụng bằng ngôn ngữ lập trình Swift mới của Apple. Kể từ đầu năm 2015, các tệp nhị phân đã gửi phải bao gồm hỗ trợ 64-bit (arm64).


11

Với kế hoạch từ từ loại bỏ Objective-C đã được sử dụng từ lâu, Apple đã giới thiệu một ngôn ngữ lập trình mới, được gọi là Swift, để thiết kế các ứng dụng và ứng dụng để chạy trên các thiết bị Apple iOS và máy tính Apple Macintosh.

Apple cho biết: " Swift là một ngôn ngữ lập trình mới cho các ứng dụng iOS và OS X, được xây dựng dựa trên những gì tốt nhất của C và Objective-C, không có ràng buộc về khả năng tương thích C. Swift áp dụng các mẫu lập trình an toàn và thêm các tính năng hiện đại để giúp lập trình dễ dàng hơn, linh hoạt và thú vị hơn. Phương án rõ ràng của Swift, được hỗ trợ bởi các khung Cocoa và Cocoa Touch trưởng thành và được yêu thích nhiều, là cơ hội để hình dung lại cách hoạt động của phát triển phần mềm. "

Giới thiệu nhanh

nhập mô tả hình ảnh ở đây


6

Người ta có thể sử dụng ngôn ngữ lập trình nào để phát triển các ứng dụng iPhone, iPod Touch và iPad (iOs)?

Ruby, Python, Lua, Scheme, Lisp, Smalltalk, C #, Haskell, ActionScript, JavaScript, Objective-C, C ++, C. Đó chỉ là những thứ xuất hiện trong đầu tôi ngay bây giờ. Tôi chắc rằng có hàng trăm, nếu không muốn nói là hàng nghìn người khác. (Ví dụ: không có lý do gì bạn không thể sử dụng bất kỳ ngôn ngữ .NET nào với MonoTouch, tức là VB.NET, F #, Nemerle, Boo, Cobra, ...)

Ngoài ra, có kế hoạch trong tương lai để mở rộng số lượng ngôn ngữ lập trình mà iOs sẽ hỗ trợ không?

Chắc chắn rồi. Khá nhiều mỗi cộng đồng ngôn ngữ lập trình trên hành tinh này hiện đang làm việc trên nhận được ngôn ngữ của họ để chạy trên iOS.

Ngoài ra, rất nhiều người đang làm việc trên các ngôn ngữ lập trình được thiết kế đặc biệt cho các thiết bị cảm ứng như iPod touch, iPhone và iPad, ví dụ như ngôn ngữ Thyrd của Phil Mercurio .


4
-1. Ruby, Python và ActionScript chưa hoạt động trên iOS. Trong quá khứ, đã có những nỗ lực để CL và Scheme chạy, nhưng tôi không nghĩ rằng chúng đã cập nhật. Cùng một thỏa thuận với Haskell. JavaScriptCore là một khung công tác riêng ngay bây giờ; bạn có thể viết tập lệnh Objective-C bằng cách sử dụng JS trong chế độ xem web, nhưng điều đó thực sự khó hiểu.
Jonathan Sterling

4
@Jonathan Sterling: Bạn nên nói điều đó với các nhà phát triển đã bán ứng dụng Ruby qua App Store hơn một năm nay. Tôi chắc rằng họ sẽ rất muốn biết rằng ứng dụng của họ không tồn tại.
Jörg W Mittag,

4
Rhomobile không tính. Đó không phải là ứng dụng gốc thực sự. Họ chỉ bị mắc kẹt trong chế độ xem web.
Jonathan Sterling

@Jonathan Sterling: Tôi có thể đến bữa tiệc ở đây hơi muộn, nhưng Actionscript được hỗ trợ trên iOS, thông qua AIR cho iOS. (Và đó là thời điểm nhận xét ban đầu vào ngày 10 tháng 10). Nó thậm chí còn đạt được hiệu suất khá tuyệt vời ...
Marty Pitt

5

Ngôn ngữ lập trình của iOS (và Mac OS) là Objective-C và C. Bạn phải sử dụng nền tảng Xcode để phát triển ứng dụng iOS, trên phiên bản tiếp theo hiện đã có trên bản phát hành beta, Xcode 4 cũng hỗ trợ C ++.


Bạn không cần sử dụng Xcode để phát triển ứng dụng iOS hoặc Objective C hoặc C ++. Ví dụ, bạn có thể sử dụng RubyMotion để sử dụng các công cụ dòng lệnh. Ngoài ra, có một số giải pháp phát triển của bên thứ ba để phát triển một ứng dụng có thể chạy trên iOS và Android
Martin Lockett

4

Giờ đây cũng có thể sử dụng OCaml để phát triển các ứng dụng iOS. Nó không phải là một phần của phân phối tiêu chuẩn và yêu cầu các sửa đổi do công ty Psellos cung cấp. Xem tại đây để biết thêm thông tin: http://psellos.com/ocaml/ .


2

Đây có thể là một chủ đề cũ, nhưng tôi muốn đề cập đến Appcelerator Titanium , cho phép bất kỳ ai thông thạo HTML5 / JavaScript / CSS phát triển các ứng dụng iOS.


Nếu tôi không nhầm, bạn có thể hoán đổi JavaScript với Ruby hoặc Python khi sử dụng Titanium.
Torbjørn

2

Hiện tại chỉ Objective-C mới được phép ... nhưng kể từ vài tháng trước, bạn được phép viết các script sẽ được thông dịch trong ứng dụng của bạn.

Vì vậy, bạn có thể viết trình thông dịch LUA hoặc trình thông dịch Python, sau đó viết một số phần ứng dụng của bạn bằng ngôn ngữ kịch bản này. Nếu bạn muốn ứng dụng của mình được chấp nhận trên App Store, các tập lệnh này phải được đóng gói cùng với ứng dụng (ví dụ: ứng dụng của bạn không thể tải xuống từ Internet)

xem các quy tắc cửa hàng ứng dụng mới



1

Bạn có thể sử dụng ngôn ngữ lập trình "thông minh BASIC". Nó là một ngôn ngữ BASIC chính hãng nhưng rất tiên tiến với tất cả sức mạnh và sự đơn giản của nó. Sử dụng SDK miễn phí, mã BASIC có thể dễ dàng được xuất bản dưới dạng ứng dụng App Store độc ​​lập. Có rất nhiều ứng dụng trong App Store, được viết bằng ngôn ngữ lập trình "THÔNG MINH CƠ BẢN".

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.