What is the best way for a beginner to learn smartphone app programming?

Click For Summary
Smartphone app development requires knowledge of different programming languages and environments for iOS and Android. iOS primarily uses Objective-C or Swift, while Android development is mainly done in Java, with some XML for layouts. Graphics programming often involves OpenGL ES for Android. Beginners can use tools like Eclipse or NetBeans with plugins for Android development, and resources like the Android SDK provide tutorials and documentation.For iOS, the Xcode development environment is necessary, which requires a Mac and involves fees for app testing and distribution. Alternatives for iOS include CODEA for Lua scripting and PYTHONISTA for Python, both allowing for rapid prototyping on iPads. For those new to programming, MIT's App Inventor offers a user-friendly way to create simple Android apps through a graphical interface. However, developing for multiple platforms like Android, iOS, and Windows Phone presents unique challenges and learning curves, making it essential to choose the right tools and languages based on the target platform.
DR13
Messages
150
Reaction score
0
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.

Thanks,
DR13
 
Technology news on Phys.org
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" requires a Mac and a fee, IIRC.

That's my limited knowledge as a non-smartphone developer.
 
Last edited by a moderator:
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.
 
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:

http://www.opengl.org/

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

http://nehe.gamedev.net/

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:
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.
 
jhae2.718 said:
the iPhone SDK requires a Mac and a fee, IIRC.

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.
 
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.
 
I can't imagine programming, or even writing a document, on a tablet.

I require a real keyboard!
 
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.
 

Similar threads

  • · Replies 25 ·
Replies
25
Views
724
Replies
86
Views
2K
Replies
3
Views
1K
  • · Replies 15 ·
Replies
15
Views
3K
  • · Replies 102 ·
4
Replies
102
Views
2K
Replies
16
Views
3K
  • · Replies 16 ·
Replies
16
Views
2K
Replies
69
Views
10K
Replies
4
Views
2K
  • · Replies 49 ·
2
Replies
49
Views
4K