Sign in to follow this  

Best language for mobile apps

This topic is 1118 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

So it's almost been a year since i started learning programming for the purpose of being a game developer. I started with python and then learned how to use pygame, i've been messing with it but soon i'll be ready to move on to the next language. My goal is to start making games to put up somewhere for anyone to play and i decided to go with mobile apps, more specifically start with android. I've heard the language for android apps is Java and for iOS it's C#. Is this correct? If i learned Java and made an app, would i need to learn C# to develop the same app for iOS? Please guide me in the proper direction.

Share this post


Link to post
Share on other sites

I was waiting for other replies, but i guess not many people know or cared to anwers the question since theres over 100 views but 1 reply LOL. Thx TheChubu, i think i'll jump into the mobile app development field through Java. Then i'll branch out of course.

Share this post


Link to post
Share on other sites

I was waiting for other replies, but i guess not many people know or cared to anwers the question since theres over 100 views but 1 reply LOL. Thx TheChubu, i think i'll jump into the mobile app development field through Java. Then i'll branch out of course.

 

I think the Chubu basically answered your question 150%... there are just not that many options for systems that expect a certain language natively... which would be objective-C for iOS and java for Android.

 

The Chubu additionally gave you options to crosscompile from a language that is not "officially" supported to a platform that expects a different one, which is kinda a requirement for easy deplyoment to both leading mobile OSes.

No need to branch out and complicate your development when there is a tool that does the job for you.

 

 

So yeah, don't expect many more ideas to come up.

 

Other than "Unity does it for out of the Box"... but I guess you are not interested in this engine, else you wouldn't have asked the question to begin with (If the idea of using an engine itself is not so unappealing to you, know that most big engines followed suit and give you the same option now. I know Unreal does for a fact for example).

Share this post


Link to post
Share on other sites
Well, one idea not presented is to use C++, as every major mobile platform has a Native SDK. And especially for mobile, maximizing your understanding of hardware, low-level programming, and efficiency will be beneficial to your users (better efficiency == better power usage == less battery brain) so at the very least if you're going to stick with C# or Java you need to start understanding how those languages work, what limitations they impose, and how you can best work with and around those limitations, rather than just trusting in the abstractions to magically do the right thing (they often won't when it comes to efficiency).

Share this post


Link to post
Share on other sites

I also recommed C++ because Java, and C# (and to some extent Obj-C) are largely the same once you know them (and if you choose to not take advantage of any of C++'s most powerful features). C++ however is although a second class supported language on most mobile platforms, it is still a "supported" language so you can generally port your game to any platform with maximum code reuse.

 

Unfortunately since C++ is not a first class supported language for most mobile platforms, the API documentation is often terrible.

Edited by Karsten_

Share this post


Link to post
Share on other sites

I think i'll go for Java in a month or two and i didn't mention Unity or any other API because i don't know much about APIs out there; sort of why i asked for some guidance. When i started programming i was told to start with Python because it's easy and can be quite useful and to use Pygame after i got Python down to learn about GUI programs etc. So i should look into Unity for mobile apps?

Share this post


Link to post
Share on other sites

C++ is well-supported on all* mobile platforms, and is portable for the most part. However, its a relatively difficult language compared to C# or Java -- that is, average reasonable quality code is easier to produce in C# or Java than it is in C++ -- The potential benefit of C++ is that you can really tune performance to the utmost if you have the skills and knowledge to do so, the potential cost is that C++ does none of the hand-holding that C# or Java do, and therefore requires greater knowledge and attention to detail to write bulletproof code.

 

* AFAIK, the only relevant mobile platform not open to C++ for non-professional development is the PS Vita -- while professionals use C++ there, non-professionals are limited to C#.

 

If you're interested in games specifically, Unity is a great choice. Visual Studio 2013 Community is a free version of Visual Studio (unrestricted for academic and open-source; and restricted for commercial teams to fewer than 5 devs) that supports plugins, including the excellent Visual Studio Tools for Unity, also free, which integrates Visual Studio as the code editor for Unity. Unity's primary programming language is C# (about 2/3rds), followed by UnityScript (JavaScript-like, about 1/3rd), and Boo taking up the rear with so little use its deprecated now.

 

Otherwise, for apps outside of games, Visual Studio again shows strongly using Xamarin with C# to produce apps that run on all the major mobile and desktop platforms with little platform-specific code. You can use Xamarin from other IDEs, but VS has great integration.

 

Between Java and C#, C# is the nicer language, but if you're already familiar with Java much beyond the basics, a switch is probably not the best way to spend your time and effort now.

Share this post


Link to post
Share on other sites

This topic is 1118 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this