iOS Development With Various Programming languages

In this competitive world of programming language, iOS and Mac Application Development not only tied with Objective C programming. It come up with a more explosion of other programming languages. After all, early on the iPhone Developer Program License Agreement stated that “no interpreted code may be downloaded or used in an Application except for code that is interpreted and run by Apple’s Documented APIs and built- in interpreters. Apple made changes to the developer license (circa April 2010) which forbade developing iOS applications in any language other than Objective-C and JavaScript (the JavaScript could be used either to build web apps or native apps via the UIWebView). (In September 2010), Apple again changed the developer license to allow the use of scripting languages.

Now , two question arises here :-
1.What programming languages can one use to develop iPhone, iPod Touch and iPad (iOS) applications ?
Ruby, Python, Lua, Scheme, Lisp, Smalltalk, C#, Haskell, action script, JavaScript, Objective-C, C++, C. That’s just the ones that pop into my head right now. I’m sure there’s hundreds if not thousands of others.
2. Also are there plans in the future to expand the amount of programming languages that iOS will support?
Pretty much every programming language community on this planet is currently working on getting their language to run on iOS.

I am going to discuss here different languages with their supportive environment for the iOS development. May be some of IDE’s are paid Or cost a lot rather than developing in Objective C / via Xcode but it beneficial for those who don’t want to learn new languages.

1. Java :- RoboVM translates Java byte code into native ARM or x86 code. Apps run fast directly on the CPU. No interpreter involved. RoboVM includes a Java to Objective-C bridge that makes it possible to call into the native iOS cocoa touch APIs. Objective-C objects can be used just like any other Java object.The compile time tools are GPLv2 licensed. Runtime code is licensed under business friendly licenses, mostly the Apache License v2.0. RoboVM comes with Eclipse and Maven integration. Use the tools you’re used to from the Java world. There are already a number of apps built with the help of RoboVM in the App Store. Easily share code between desktop, Android and iOS apps. The standard classes (java.lang.*, java.util.*, etc) included in RoboVM are based on Android’s runtime.
Reference URL :-

2. Dot Net / C# :- Easily share code between iOS, Android and Windows devices. High-performance compiled code with full access to all the native APIs, including UIKit. Everything you love about .NET, including LINQ, Delegates and Events. Explore APIs as you type with code auto completion. Use your favorite .NET libraries in Xamarin iOS applications. Easily bind third-party native libraries and frameworks. Or use the Xamarin Component Store, which offers dozens of third-party libraries packaged for instant adoption. Xamarin iOS provides full access to iOS APIs. Take advantage of the entire spectrum of rich functionality supplied by the latest version of the platform. Xamarin iOS is frequently updated and ready with all of the latest iOS features—typically on the same day that Apple releases a platform update.
Reference URL :-

3. C++ :- C++Builder iOS apps will have fast native CPU performance and better security than web-based or scripting language based apps. Full visual designer for iOS user interfaces with multiple device types, resolutions, and orientations. With C++Builder, you get a full range of pixel perfect native styled user interface controls, including buttons, list-boxes and combo boxes, to incorporate into your apps. New in XE6! Mobile apps are a revenue generating opportunity for application developers. Now you can monetize your mobile apps by integrating in app purchases and advertising. C++Builder includes iOS local database support for SQLite and embedded InterBase (ToGo and IBLite) via dbExpress, FireDAC and IBX.
Reference URL :-

4. Ruby :-  RubyMotion implements Ruby on top of the Objective-C runtime and Foundation classes. Thanks to this tight integration, Ruby can interface with iOS and OS X very naturally at no performance expense.RubyMotion transforms the Ruby source code of your project into optimized, blazing-fast machine code using a revolutionary, state-of-the-art static compiler, based on LLVM. It’s Ruby, you don’t need to think about managing memory. Ever. RubyMotion will by itself release the objects you create when they are no longer needed. Our memory model, similar to Objective-C ARC in design, does not require any extra memory or processor footprint to allocate and reclaim unused objects. Shipping iOS and OS X devices such as iPhone, iPad and Mac now feature multi core processors. RubyMotion was designed to be re-entrant and without a global lock in order to allow code to be concurrently executed. RubyMotion comes with a nice interface to Grand Central Dispatch that lets you balance heavy work very easily over CPU cores.
Reference URL :-

5. Python :- Pythonista comes with some very cool development friendly features like syntax highlighting and code auto-completion. Code completion can be deactivated in the Settings alongside other options enabled by default. he standard libraries are included for Python, but the developer of Pythonista has also created some handy libraries for things specific to the iPhone/iPad. The major problem with the app is the way to import scripts into it. Most of the blame goes to Apple for not allowing importing of scripts from Dropbox. Apple wants to keep the iOS out of the troubles of malicious code execution, and that’s understandable, but the apps are already jailed, so they can’t access files outside its own folders. Pythonista has an URL Scheme, so it can be called from other programs. This makes it perfect for apps on the iPhone like Launch Center Pro on iPhone that supports URL Schemes to start your Python scripts.
Reference URL :-

6. Adobe Flash Professional CS6 :- You can use Flash Professional CS6 to create mobile apps for iOS by publishing projects with Adobe AIR. You can follow the same workflow to create mobile apps for Android. Also, using ActionScript, you can leverage native operating system functionality in your apps by adding features that leverage the device’s accelerometer, touch events, microphone, camera, or vibration. You can also integrate ad networks and in-app purchasing systems with your apps. Take example from here
Reference URL :-

7. Lua Programming :- Ansca Mobile’s Corona allows you to develop your iOS app entirely in Lua. And it’s not just for iOS. You can also develop apps for Android. In fact, you can use the same source code to build both an iOS and an Android app. This adds a compelling reason to use Lua (and, in particular, to use Corona): the ability to easily build cross-platform applications. Corona’s event system lets you handle touches (including multi-touch), access the GPS and the accelerometer, handle animation, and define custom events. There is a powerful graphics system which allows you to draw circles, rectangles and text. There’s a nice feature where you can overlay a web view for doing things like login screens and a sample application provides a library for connecting to Facebook.
Reference URL :-

8. Lisp Programming :- Creating mobile applications shouldn’t require you to do everything in Java and Objective-C. With mocl, you can put your application logic into a shared Lisp library that runs on both iOS and Android. Furthermore, since mocl runs an expansive subset of Common Lisp, an ANSI standard like C, you can re-use your CL code across many other Common Lisp implementations. Run your code everywhere — and at native speed. Mobile devices are slower and more resource-constrained than their desktop peers. Accordingly, mocl is a highly optimizing Lisp implementation, delivering tight native code via LLVM/Clang. In fact, mocl is so fast that on some benchmarks, it blows away Google’s own Dalvik JVM. With debugging enabled, mocl provides you stack traces that zero in on the source of errors when they occur. Plus, since mocl generates C/Obj-C code, profiling tools like Apple’s Instruments work great, helping you measure and diagnose performance issues, quickly.
Reference URL :-

So if you are not interested in Objective C / Objective C++ then go for above IDE’s and their respective languages to make Native iOS applications for Apple app store.

About Arpit kulshrestha

Arpit K Kulshrestha Graduated in Computer Science with HONORS Degree in 2012. He is on mission to develop or to be a part of great mobile application which can enhance user experience and able to explore the world. 6 + Years of Apple Mobile Application Development Experience with a strong focus on Building Enterprise, Social Networking Applications and working with Objective-C, Xcode, Storyboard & Instruments. Working knowledge of Core iOS frameworks and skilled in debugging. He has developed apps using SOAP, REST, JSON and XML based Web Services. He is interested to pursue a career in Mobile Applications Development field and he is certain that his skills and work experience prepared him well for such role.
 He has been a specialist in Multimedia & Networking based iOS applications in these years. Have a good in depth knowledge in Network Programming models like TCP/IP. Have done several rich multimedia (Videos & Images) processing & manipulating applications in the same. 
He is accustomed to successfully juggling multiple projects and have an excellent track record of forging strong relationships with client. He work equally well in team-oriented and self-directed environments and find the challenges of the start-up setting stimulating. Specialties:- Map kit , Core Location , UIKit , Core Data , SQLite , Google API's , Facebook API's ,Cocoa 2D, Core Motion, Event Kit.
This entry was posted in Uncategorized. Bookmark the permalink.

1 Response to iOS Development With Various Programming languages

  1. Pingback: Dean Follman

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s