Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Smartphone App Programming

  1. Sep 12, 2011 #1
    Hey all,

    I have an idea for a smartphone app but know nothing about how to program them. I have taken an intro programming course in which I learned C++ and MatLab but I cannot figure out which language smartphones use (I have looked online and have found many possibly unreliable answers). Is it a different language for iPhone, Android, etc or do they all use the same language? Also, do you program the graphics using the same language as the background computations or do something different? (I have never programmed graphics). This is kind of a pet project of mine so I am willing to put in the work myself. If anyone knows of any tutorials for a beginner like me, it would be much appreciated.

  2. jcsd
  3. Sep 12, 2011 #2


    User Avatar
    Gold Member

    iOS is Objective-C, Android is Java, mostly. I think they have their own GUI toolkits, but I don't know. You can download the http://developer.android.com/sdk/index.html" [Broken] requires a Mac and a fee, IIRC.

    That's my limited knowledge as a non-smartphone developer.
    Last edited by a moderator: May 5, 2017
  4. Sep 13, 2011 #3
    Can't help with iPhone, since they put barriers in my way and I can't code for it.

    jhae2.718 has it right. The site where you get the Android sdk also has tutorials, api documentation and other useful stuff.

    You can use Eclipse for development, as well. There are instructions for that on the site.

    Hope that points you in the right direction.
  5. Sep 13, 2011 #4
    I'm just having a look at writing an Android app myself. It's Java based for the most part, although it looks like some XML and other bits and pieces will be required. The graphics are handled by OpenGL ES. There's a tutorial I found here, but if you search you will find hundreds more, there's a large community of developers out there.

    Programming graphics with OpenGL will take some doing, there's a lot to learn, but take it one step at a time and you will gather more skills as you go.

    The official opengl website:


    and there's some 3d tutorials here that may or may not be very relevant, but worth having a look:


    As for iPhone, well, I avoid them. I hear you can develop for them without a Mac, but I hear it's a bit painful and not ideal, and I don't plan to own a Mac or an iPhone in the foreseeable future.
    Last edited: Sep 13, 2011
  6. Mar 22, 2013 #5


    Staff: Mentor

    Look at processing.org. It seems to be the easiest route to programming on Android. Its good for doing mockups with easy interactivity. It doesn't support multi-touch just yet but the developers are working on it. Processing uses modes where the editor is somewhat geared to the mode. It comes up in java mode but can be switched to Android mode and from there you use android apis which for graphics is mostly openGL.

    I've successfully loaded one of their sample interactive graphics sketches to my Nexus 7 tablet. It took some doing to enable both sides to get the app transferred over.

    The processing.org focus is on allowing graphics artists to paint in code.

    Eclipse IDE with its Android plugins or NetBeans IDE and the NBAndroid plugin will allow you to write more sophisticated apps

    Scala also can be used as a development language for Android (as can some other java-based languages like jruby...) Scala is dubbed a better java than java. It has a highrt learning curve though and isn't for the faint of heart but your programs are very compact and elegant in a way.

    iOS programming is somewhat harder and more costly with upfront developer fees to get on device testing and app market upload.
  7. Mar 22, 2013 #6


    User Avatar

    Staff: Mentor

    As of about a year ago (haven't checked again since then), the Xcode development system and iOS SDK can be downloaded for free. You can also test your iPhone apps to some extent using an emulator that comes with the SDK. What you have to register and pay for is the ability to upload an app to your iPhone (or iPod Touch) and test it / use it there.
  8. Mar 22, 2013 #7


    Staff: Mentor

    Forgot to mention another option for iOS:

    - CODEA an IDE for Lua scripting language that runs on the iPad
    - PYTHONISTA an IDE for Python that also runs directly on the iPad

    These IDEs are great for fast development and prototyping but you'd have to give someone your script to run it on their device (I think CODEA is working on something to allow you to market your app within their environment). They both support multi-touch and have a lot of cool demo examples.

    For developers that just like to code on a tablet:

    - TEXTASTIC an iPad editor that supports 80+ programming languages

    For Android:

    - AIDE a Java IDE that runs directly on Android for writing and deploying apps on it

    AIDE also has the cool '.' feature like Eclipse and NetBeans where you type in the object followed by a '.' and a list of methods to use pops up, no need to look up method names and info.
  9. Mar 22, 2013 #8
    I can't imagine programming, or even writing a document, on a tablet. :yuck:

    I require a real keyboard!
  10. Mar 23, 2013 #9


    User Avatar
    Gold Member

    MIT's App Inventor might be an easy way for you to write a simple Android app. It provides a graphical user interface to set up the events you want to allow, and then you write Java for what happens inside those events. It's good, there are good tutorials, but it might not be sufficient for very complex apps.

    Android and iOS and Windows Phone are all completely different programming environments, unfortunately, and each has its own learning curve. A good app will want to support all three of these platforms to reach the widest audience.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook