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

Click For Summary

Discussion Overview

The discussion revolves around the best approaches for beginners to learn smartphone app programming, focusing on the different programming languages and tools used for iOS and Android development. Participants share their experiences, resources, and suggestions for getting started in app development.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested
  • Homework-related

Main Points Raised

  • DR13 expresses uncertainty about the programming languages used for smartphone apps, noting prior experience with C++ and MatLab.
  • Some participants mention that iOS primarily uses Objective-C and Android mostly uses Java, with additional GUI toolkits involved.
  • jhae2.718 suggests that the Android SDK includes tutorials and documentation, and mentions using Eclipse for development.
  • Another participant notes that Android development involves Java and XML, with graphics managed by OpenGL ES, emphasizing the learning curve associated with graphics programming.
  • Processing.org is recommended as an accessible option for Android app development, particularly for those interested in interactive graphics.
  • Scala is mentioned as a potential language for Android development, noted for its compactness but also its steeper learning curve.
  • Participants discuss the requirements for iOS development, including the need for a Mac and fees associated with app testing and market upload.
  • Alternative iOS development tools like CODEA and PYTHONISTA are suggested for rapid prototyping, though they have limitations regarding app distribution.
  • MIT's App Inventor is proposed as a user-friendly option for creating simple Android apps, highlighting its graphical interface and Java integration.

Areas of Agreement / Disagreement

Participants generally agree that different platforms (iOS, Android, Windows Phone) require distinct programming environments, each with its own challenges. However, there is no consensus on the best approach or tools for beginners, as multiple competing views and suggestions are presented.

Contextual Notes

Participants note various limitations, such as the need for specific hardware (e.g., Mac for iOS development) and the different learning curves associated with each platform. The discussion reflects a range of experiences and preferences without resolving which method is superior.

Who May Find This Useful

This discussion may be useful for beginners interested in smartphone app programming, particularly those exploring different languages and development environments for iOS and Android.

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
1K
Replies
86
Views
3K
Replies
3
Views
1K
  • · Replies 15 ·
Replies
15
Views
4K
Replies
16
Views
3K
  • · Replies 102 ·
4
Replies
102
Views
4K
  • · Replies 16 ·
Replies
16
Views
2K
Replies
69
Views
11K
Replies
4
Views
2K
  • · Replies 49 ·
2
Replies
49
Views
5K