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 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!
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.
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.