If you want to start developing or working with a developer to start working on a mobile application it will help if you knew a little about the development platforms that are the standards for the specific device types & operating systems (such as iOS and Android) that you are targeting. There are also other cross platform techniques and platforms that allow the developer to have a single code base and deploy to multiple device types and operating systems which we will also cover here. Finally I will talk a bit about game platforms and what is available there.
For iPhone and iPad development Apple has provided us the Xcode IDE (Integrated Developer Environment). Within Xcode, mobile applications can be developed in Objective C or the fairly new Swift programming language. Since Swift is new it is evolving and improving. In my opinion, if you plan on developing apps for iOS then do it with Swift, Objective C is much harder to learn and understand.
For the Android devices, the IDE is Android Studio. Android uses the Java or the much newer Kotlin programming languages. Java it’s not too hard to learn and become proficient in. Kotlin is a simpler language then Java also is not hard to learn and may also be an excellent choice for your coding language to get your mobile app developed for Android. Note that Java is NOT the same programming language as JavaScript! The really cool thing is both Xcode and Android Studio are free to download.
For the Windows phone devices Microsoft has provided us with the Visual Studio IDE. The Windows phone apps can be programed in C#, Visual Basic or C++. C# is the preference for most developers in this environment and it is a mature language and easy to learn and develop with. I know that Microsoft’s Windows phones are a thing in the past but you never know when they will come back or if Microsoft will come up with some other mobile device that you can create using Visual Studio. The community edition of Visual Studio is also free and Microsoft recently has made their .NET platform open source. This is called .NET Core and if you are not familiar with what Microsoft .NET is they define it as: a free, cross-platform, open source developer platform for building many different types of applications.
For game development, Apple has included in Xcode a Spite Kit which includes graphics rendering and an animation infrastructure. Sprite Kit also provides other functionality that is useful for games, including basic sound playback support and physics simulation. This is very cool and fun to play with!
The big Kahuna for game development is Unity. This game engine has everything you will ever need to produce 2D or 3D games. Code written in this environment is written in C#, UnityScript which modelled after JavaScript, or Boo, a .NET language with similar syntax to Python. A great feature of this environment is you can build your output to all of the mobile devices and game environments including Xbox, PS4, Wii and more. This is a fantastic and powerful platform used by many projects but there is a step learning curve.
Another game development engine is Multimedia Fusion 2. Multimedia Fusion 2 is a very powerful visual programming environment. What is nice about this engine is that it allows a developer to concentrate on the design and game play. One small example of this is a developer will not have code for hours to move a sprite on the screen.
One other cross functional game development tool which I am looking at using for some of my apps is Corona. This platform uses the Lua programming language and is easy to learn and get up to speed quickly. You can build your games with Corona and produce iPhone and Android version. Very cool stuff and, if you are going to be creating games you should check out Corona.
There are a few other tool/environments that offer the promise of a single code base and deployment to multiple mobile device platforms. Cordova /Phone Gap is one. Here you would program your apps in CSS, HTML 5 and Javascript and then use set of APIs calls (API means Application Programmer Interfaces) to talk to various phone functions.
There are two other platforms which you can build cross platform mobile apps. Ionic is another app platform for web developers. This platform will enable you to build mobile, web, and desktop apps all with one shared code base and open web standards. Native Script is another. It’s also a free, open source mobile framework. With this framework you can native iOS and Android mobile apps. Here you build apps with Javascript, TypeScript or Angular.
Finally another cross platform environment is Xamarin. This is a framework that allows developers to create cross platform user interfaces. It provides its own abstraction for the user interface that will be rendered using native controls on iOS, Android, or Windows Phone. Xamarin was recently acquired by Microsoft and integrated into Visual Studio. I should also mention that Visual Studio now will run on a MAC computer which is fantastic if you are going to go the Xamarin route and want to build iOS apps.
There are many opinions on what to use for your mobile development. Personally I would recommend that you stay with the native languages for application development (Swift for iOS, Java or Kotlin for Android). Furthermore if you are developing a game then evaluate Sprite Kit, Corona, Unity and possible Multimedia Fusion 2 and pick the one that best matches what you want to learn and or work with a developer to accomplish.
I hope you found this post useful, as always please let me know what your thoughts are about this topic.