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

In summary, In order to program graphics for an iPhone app, you would need to use a different language than C++ or MatLab. There are many tutorials and resources available online for a beginner like yourself.
  • #1
DR13
150
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
  • #2
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:
  • #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.
 
  • #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:

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:
  • #5
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.
 
  • #6
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.
 
  • #7
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.
 
  • #8
I can't imagine programming, or even writing a document, on a tablet. :yuck:

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

1. What is smartphone app programming?

Smartphone app programming is the process of creating software applications specifically designed to run on mobile devices such as smartphones and tablets. These apps are developed using programming languages and tools that are optimized for mobile platforms.

2. What programming languages are commonly used for smartphone app development?

The most commonly used programming languages for smartphone app development include Java, Swift, Objective-C, and Kotlin for Android apps, and Swift and Objective-C for iOS apps. Other languages such as C++, C#, and HTML5 can also be used for cross-platform development.

3. What are the key skills needed for smartphone app programming?

Some key skills needed for smartphone app programming include proficiency in programming languages, understanding of mobile app development frameworks, knowledge of user interface design principles, and experience with testing and debugging mobile applications.

4. What are the differences between native and hybrid app development?

Native app development involves creating apps specifically for a particular operating system, such as Android or iOS, using the platform's native programming language. Hybrid app development, on the other hand, involves using web technologies such as HTML, CSS, and JavaScript to create an app that can run on multiple platforms.

5. What are the steps involved in smartphone app programming?

The steps involved in smartphone app programming typically include conceptualization and planning, designing the user interface, coding and development, testing and debugging, and deployment to the app store. It's also important to continually update and maintain the app after it is released.

Similar threads

  • Programming and Computer Science
Replies
1
Views
763
  • Programming and Computer Science
Replies
3
Views
643
  • Programming and Computer Science
Replies
15
Views
1K
  • Programming and Computer Science
Replies
16
Views
1K
  • Programming and Computer Science
2
Replies
69
Views
4K
  • Programming and Computer Science
2
Replies
49
Views
3K
Replies
4
Views
1K
  • Programming and Computer Science
Replies
16
Views
1K
  • Programming and Computer Science
Replies
4
Views
1K
  • Computing and Technology
Replies
10
Views
8K
Back
Top