Java, Obj-C, Swift or PhoneGap? Which one should I choose to develop mobile app?
Mobile app market is growing faster than ever. According to recent studies, the most popular device used to connect to the Internet is smartphone, so it’s no surprise that many software developers turn towards mobile apps. The very first question that comes to their mind must be “what programming language should I use?”.
First things first. Mobile device is a broad term and as you might suspect, they require different code. In fact, we can easily distinguish 4 main competitors in mobile app field:
- Windows Mobile
As you can see on the chart, in fact there are only two real players in the game with an obvious leader. Google’s Android or Apple’s iOS work on almost all mobile devices that people buy – Android to iOS ratio is almost 4:1. Surprisingly, when we examine operating system of devices browsing the Internet we will find out that results are much more equal.
If you want a native-app, the choice is simple: Java. It can be found on many different types of devices, from smartphones to personal computers. You can develop Android apps on Windows, Linux or OS X and the Java compiler converts the source code into bytecode. Google offers Android Developer Tools (ADT) bundle which includes the SDK (Software Development Kit), a version of the Eclipse IDE with the ADT plugins, and the Android Platform-tools with the Android emulator. Developing an Android app is more than just coding in Java, you need to understand how the Android UI is constructed (using XML), and how to access the different Android subsystems. Google has a series of tutorials about Android development. The Getting Started tutorial shows you the core principals of Android app development.
Since April 2015, iOS developers have the opportunity to pick one out of two programming languages: Objective-C and Swift. The former one’s syntax is more complicated and difficult for the beginners to learn. On the other hand, the latter one is a brand-new successor of Objective-C. Swift is ready for your next project — or addition into your current app — because Swift code works side-by-side with Obj-C. Swift code is easier to read. Its code more closely resembles natural English, in addition to other modern popular programming languages like Python. You no longer need semicolons to end lines or parenthesis to surround conditional expressions inside if/else statements.
Despite all these pros, learning Objective-C is still valuable. If someone were trying to work in iOS development industry, hiring managers will be looking for development experience in Objective-C to help maintain their existing apps. Almost every app in AppStore is written in it and it will take time for iOS developers to utterly switch to Swift. Also, when troubleshooting, most stackoverflow code is in Objective-C. Choosing the language isn’t the hardest part of learning. The real hurdle you need to get over when learning iOS development is learning Cocoa Touch framework; it features a lot of coding paradigms hardly found in other languages. All of these still occur in Swift! It uses the same framework. Yes, it might require less keystrokes to concatenate a string in Swift, but this isn’t what makes iOS development difficult – it’s learning how to effectively use Cocoa.
Learn Obj-C, then master Swift and use them both effectively at work – as far as I’m concerned, I believe it’s the best solution.
There are many tutorials on the web to learn foundations of e.g. computing games. Do not hesitate, look for a guide now and begin a journey!