Mobile app development is a booming business, and one that's predicted to grow even larger in the immediate future. But there's still plenty of room for new developers on virtually every mobile platform out there, partly due to the high barriers to entry: app development is often time-consuming and often requires extensive programming knowledge.
If you have other favorite online resources or books for app development that we didn't cover here, please share them in the comments!
The iPhone is the fourth-most-popular smartphone platform according to Gartner's 2010 second quarter smartphone sales numbers. Its overall market share puts it in third place, behind Symbian and BlackBerry. Even though iOS may not hold the majority of the smartphone market, it remains the most profitable platform for app developers.
The official Apple iOS Dev Center offers the most complete documentation of iOS you'll find, and includes a reference library, tutorials and guides, and access to the official SDK (for registered users).
This roundup from Speckyboy Design Magazine showcases some of the best resources out there for designing the look and feel of iPhone apps. Stencils and GUI kits are included for a variety of programs, as well as icons you can use in your finished apps.
This series is an introduction to Objective-C programming. It is very useful for those interested in gaining a fundamental understanding of the language used for app development before moving on to studying the Cocoa-Touch specific classes and design patterns.
Mobile Orchard is an iPhone app developers' blog and covers programming, developer news, and tutorials, among other content.
iCodeBlog offers tons of articles on specific aspects of iOS development, covering everything from the various mutlitouch gestures iOS recognizes to local notifications to various code snippets.
This tutorial is a fundamental introduction to using Core Data with the iOS SDK.
This tutorial covers the basics of setting up an SQLite database, what to consider in the design of the database, and particular things to be aware of when deploying apps based on SQLite to the iPhone.
Here's a detailed tutorial on how to create an iPhone app based on a SQLite database, including the creation of the database (and how to use the SQLite Manager add-on for Firefox) and programming the app itself.
EntropyDB is an embedded object database that can be used with both OS X 10.5 and up and iPhone OS. It's simple to use and requires no configuration.
This site covers a ton of app news, as well as offering some helpful tips for marketing your apps, and app reviews. It's a good resource for keeping up with what's happening in the world of iOS apps.
Stanford University offers a class in iPhone Application Development, and they've put all of their lectures up online, for free. Download PDFs of each lecture, as well as extra class materials.
This video tutorial series is currently being released on a weekly basis and is a thorough introduction to iOS 4 SDK programming.
AppsAmuck offers iPhone tutorials and over thirty examples of iPhone applications, showcasing a variety of techniques and development methods.
71Squared has over a dozen video tutorials on their site, all about game development. They cover a wide variety of topics, from the Particle Emitter to App Store submission.
Three20 is an Objective-C library specifically for iPhone developers, derived from the Facebook iPhone app. It includes a collection of iPhone UI classes, like a photo viewer, as well as general utilities.
Bullet is a free, open source 3D game multiphysics library that's been used by top game companies for development of iPhone (and other platform) games.
Cocos2d is a 2D game framework for iPhone, iPad and iPod Touch games. It includes scene management, transitions between scenes, and a number of effects, among other features.
ModelBaker is a visual app creator for creating iOS apps, as well as web apps. It requires no coding, and a free trial is available. It's a commercial program, with a single-user license costing $79 (bulk licensing is available at a discount).
This Mashable article offers some guidance on how to build better iPhone applications, though the information here could easily be applied to virtually any smartphone app.
This is the first in a three-part series from Popular Science on how to create an iPhone app. The first part covers setting up your development environment, the second part dives into coding your app, and the third installment talks about getting your app into the App Store.
This article from Smashing Magazine gives a high-level overview of iPhone app development, from coming up with an idea to the skills you'll need to promoting your app.
This tutorial from Six Revisions shows you exactly how to develop an HTML5-based iPhone app that works offline. It includes all the prepwork and code you'll need to know.
This book discusses how to use the PhoneGap and QuickConnect frameworks to build native iPhone apps using web development technologies, rather than Objective-C. It's a great resource for those who want to develop an app and are already comfortable with web tech.
App Savvy shows you how to take your ideas and turn them into iOS apps that people actually want to buy. It includes interviews with a number of people who have been involved in the launch of successful apps, though it doesn't really dive into too much technical detail.
iPhone App Development: The Missing Manual by Craig Hockenberry
This book covers not only how to code your app, but also covers design and marketing considerations. It walks readers through the entire process, from concept through promotion.
This book focuses a lot more on the user experience of iPhone apps, where many others focus more on technical functionality. It discusses design in terms of psychology, culture, ergonomics and general usability, and shows you how to build apps that will make a positive user experience effortless.
The Dummies series of books has long been known for their easy-to-understand guides to just about every topic imaginable. Their iPhone application development book is no different. It covers the fundamentals of app development, as well as diving into updates for the iPad and the latest iPhone SDK.
This book covers app development for iOS 4.0 and higher, and breaks down application development into twenty-four one hour chunks. It also includes quizzes and exercises at the end of each chapter to test your knowledge.
iPhone Programming: The Big Nerd Ranch Guide by Joe Conway
This book is based on Big Nerd Ranch's iPhone Bootcamp class, which teaches essential tools and techniques for developing apps for iOS. Each chapter has you apply what you learn to building an app or adding to one already started in a previous chapter.
iPhone App Entrepreneur by David Appleyard
This book, from Envato's own Rockable Press, covers all the basics you need to know to make money developing iPhone apps. If you already know how to develop apps and are ready to build a business around your apps, this is the book for you.
Android is currently projected to be the second-most-popular mobile OS in the world by the end of 2010, gaining more marketshare than both iOS and BlackBerry, and only beaten by Nokia's Symbian OS. It's even expected that by 2014, Android will rival Symbian for worldwide marketshare, with less than a single percentage point separating them. It's obvious that Android has become an incredibly important platform for smartphone app development.
Android Developers is the official documentation for developing Android apps. It's a huge resource, and an excellent place to turn if you have questions about any aspect of app development. Also included are a number of video tutorials.
This is the first in a four-part series on the Android UI. It talks about screen components and goes through setting up a sample project. It's a very thorough article, as are the rest of the posts in the series.
This is a collection of sample apps that show off what Android can do. It includes games, location-based apps, a radar-style app, a translation app, and a lot more.
Android Snippets offers free code snippets for a variety of functions within Android apps. There's everything from customizing the background of the options menu to making an activity fullscreen to autostarting an app upon bootup.
The Android SDK includes a mobile device emulator. Here's all the documentation for that emulator, including tutorials and troubleshooting tips.
AppInventor is a program released by Google Labs for creating Android applications without any coding knowledge. It's free, but currently requires you to request an invite, and it can be quite a long wait to actually receive access.
Android Patterns showcases a number of UI patterns present in Android, including patterns in navigation, search, and information presentation.
This vector GUI kit from Smashing Magazine has all the elements of Android's user interface in a handy PSD file. It's perfect for creating application mockups.
Here's a Fireworks template kit for Android from UNITiD. It includes all the basic elements, this time compatible with Fireworks.
Here's an Omnigraffle sketchy-style wireframing stencil set. It's perfect for wireframing in Omnigraffle.
This roundup from Speckyboy Design Magazine offers some great graphics resources for Android developers, including icons, fonts, GUI guidelines and tools, and more.
This tutorial from Mobiletuts+ will quickly get you up and running with a simple Android application. It provides a much more comprehensive start than the run-of-the-mill "Hello World" app!
This tutorial from Mobiletuts+ will quickly get you up and running with a simple Android application. It provides a much more comprehensive start than the run-of-the-mill "Hello World" app!
Androinica has a fantastic tips category, which includes a number of hacks and tutorials. Some of the hacks and tutorials are more end user-oriented, but there are useful tips for developers, too.
Here's a great beginner's article about creating games for Android. It discusses what you need to know first, important considerations for developing your game, and offers some tips and tricks.
This free online book offers some great insight into what really takes place when developing an Android game. It covers the entire development cycle, all 70+ days of it.
Hell Android is a site that covers Android news, tutorials, and more. Their tutorials cover a wide variety of topics, and there are suitable tutorials for beginners right up through more advanced users. A lot of their tutorials are specific to certain aspects of the Android UI.
Talk Android has a huge variety of forums, for everything from specific handsets to general development to tutorials and code snippets.
Books on Android Development
Andbook is a free PDF ebook for Android app developers, based on the code and experience of the anddev.org-Community.
Android Wireless Application Development by Shane Conder and Lauren Darcey
Android Wireless Application Development includes sample code and best practices for building and distributing successful Android apps. It covers everything from concept through coding, testing, packaging and delivery.
Professional Android 2 Application Development (Wrox Programmer to Programmer) by Reto Meier
This book from Wrox Press serves as a hands-on guide to building Android apps from the bottom up, and includes a variety of sample projects.
Hello, Android: Introducing Google's Mobile Development Platform (Pragmatic Programmers) by Ed Burnette
Hello, Android will teach you to create apps within minutes (starting with the obligatory "Hello World" app) and then proceeds to teach you to build a more complicated Sudoku game. It also shows how to build in audio and video support, add graphics with OpenGL, and store data with SQLite.
Unlocking Android: A Developer's Guide by Frank Ebleson, Charlie Collins, and Robi Sen
This book takes a big-picture approach to Android app development, starting with the Android approach to mobile apps. It includes a number of practical examples and two deep, hands-on examples conclude the book.
Beginning Android 2 by Mark Murphy
Beginning Android 2 starts out with simple examples that run with your copy of the SDK to get you introduced to Android development. It covers everything from crafting GUIs to using GPS to accessing web services.
Pro Android 2 by Sayed Hashimi, Satya Komatineni, and Dave MacLean
This is the follow up to the Beginning Android 2 book above, and goes into more advanced Android app development. It includes information on creating 3D graphics with OpenGL, integrating Google Translate into your apps, location-based services, and more.
Pro Android Games by Vladimir Silva
Here's another great book for advanced Android development, this time focusing on gaming. It includes information on creating advanced 3D games, setting up a Linux system for hybrid game compilation, pure Java gaming (with examples), and even how to port Wolfenstein 3D and Doom to Android using Java and C.
BlackBerry is the world leader in enterprise smartphones, though their application offerings aren't nearly as robust as those of Android or iOS. But for apps targeting business users, BlackBerry is still a very important market.
The BlackBerry Developer Zone is the official development site and documentation for the BlackBerry platform. It offers everything from tutorials to development tools to distribution information.
This tutorial from BlackBerry Cool lays out complete instructions for developing Java-based BlackBerry applications. It starts out with how to set up the JDE, and expands from there.
This tutorial from the IBM developerWorks Technical Library showcases a number of open source tools you can use for developing BlackBerry applications, including code highlights. It also talks a lot about the BlackBerry platform, making it a great resource for beginners.
This tutorial from Developer.com teaches how to build the user interface for your BlackBerry app. It includes plenty of code examples, and is perfect for beginning or more intermediate developers.
Here's a thorough tutorial for creating a BlackBerry app UI that that can be expanded on for future app project. It takes us from setting up the initial main() function through to completing the UI.
Here's a very short tutorial that shows you how to create a "Hello World" app for BlackBerry. It's a perfect beginner tutorial, and one that's been created for virtually every development platform out there.
Blackberry Development Books
Beginning BlackBerry Development by Anthony Rizk
Beginning BlackBerry Development will those with a basic knowledge of Java everything they need to know to get started in developing apps for BlackBerry devices. It covers how to work with the BlackBerry Java Development Environment (JDE) and the JDE Plug-in for Eclipse, how to work with the phone's built-in features and apps (like GPS and networking) and different ways to distribute your apps.
Advanced BlackBerry Development by Chris King
For those who have already read Beginning BlackBerry Development, or who are already intermediate-level programmers, Advanced BlackBerry Development takes you through developing more sophisticated BlackBerry apps, including how to make your app run like a native application, leveraging advanced JSRs for things like cryptography and media capture, and how to get your app to access things like the device's existing contact list, calendar and tasks.
BlackBerry Application Development for Dummies by Karl G. Kowalski
This book serves as a great introduction to developing apps for BlackBerry devices, including a detailed look at the architecture and programming API. It also introduces MDS Studio, RIM's latest tool for building enterprise applications.
BlackBerry Development Fundamentals by John M. Wargo
BlackBerry Development Fundamentals serves as a single-source guide to all aspects of developing applications for BlackBerry devices, and works as a great study guide for those who want to become BlackBerry Certified Application Developers.
Windows Phone 7
Windows Phone 7 has a relatively small market share, but has a promising environment for app developers, offering free tools for developers (though submitting an app requires a developer subscription fee of $99/year).
App Hub is Microsoft's developer center for Windows Phone 7 (and Xbox 360). It offers free downloads of the tools you'll need to develop apps, as well as documentation and access to the submit your apps and games.
Here's the official page for Silverlight for Windows Phone, including the download link and links to additional resources.
This site includes a ton of great tutorials for developing Silverlight apps for Windows Phone 7. A number of them focus on individual UI elements, making them a great reference for any developer.
The Official Microsoft Silverlight Site has a ton of video tutorials and screencasts for a variety of Windows Phone development topics. There are tutorials for everything from navigation to splash screens to creating your first Windows Phone 7 application.
More Tools and Resources
There are plenty of other tools out there, both for other smartphone platforms and for cross platform development. Below are some of the best resources out there.
If you're going to develop mobile apps, you're gonna need icons. Here are fourteen sets, all free (under various licenses), for a variety of mobile platforms.
A lot of web developers are already familiar with jQuery, so it only makes sense to use it for mobile apps and sites, too. jQuery Mobile is a touch-optimized version of jQuery that works on a variety of platforms, including Symbian, Palm WebOS, iOS, Android, Blackberry, and more.
There aren't many 3D gaming platforms out there that work for mobile devices. But Shiva3D works for Android, iOS (for both the iPhone and iPad), and Palm OS, as well as Windows, OS X, Linux and even the Wii.
App Hall of Fame is a great place to check for the best apps available out there. Initially, they're only showcasing apps for the iPhone/iPod Touch, but have plans to eventually also feature iPad and Android applications.
PhoneGap is a framework for turning web apps into app-story ready mobile apps for the iPhone, Android, Symbian, Palm and BlackBerry. It also lets you tap into hardware features with your app (something web apps generally can't do on smartphones), including a device's accelerometer, geo location, vibration and sound.
RhoMobile offers a number of development tools for cross-platform development, including their Rhodes platform (released under the MIT open license) and RhoHub, a hosted online development environment.
Titanium is a cross-platform development environment that lets you create native apps that work with a device's native UI and capabilities, without having to code. It's free and open-source, making it easy for almost anyone to develop apps.
MoSync is yet another cross-platform development environment that lets you create native apps for Symbian, Windows Mobile, iOS and Android. It's currently in pre-Beta for version 2.4, and has both free and paid options.
iSites is an online tool for quickly creating apps for both Android and iOS. They also offer their own installation tool for publishing iPhone apps instantly, without having to go through the App Store. Pricing starts at $19.99/month, with a one-month free trial.
This post includes links to a number of awesome GUI kits for various smartphones, including hardware mockups and UI stencils.
Here's a quick guide to native system fonts in popular OSs, including iOS, Android, Palm Web OS, Symbian, BlackBerry, and Windows Phone 7.
Teehan+Lax have released this free Palm Pre GUI PSD file for Palm developers. The images are vector-based for easy scaling and editing.
Airplay SDK is another cross-platform smartphone and console development environment that offers advanced 3D graphics and animation, a physics engine for game development, and resource management. They offer a free iPhone license for "Indie" developers (those with less than $100k/year in revenue), as well as Indie and Pro licensing options ($99 and $2500/year, respectively).
mobiForge has an extensive selection of mobile development articles, covering all mobile OSs, with content aimed at everyone from beginners to seasoned pros.
This post looks at some of the biggest app development trends for this year. Some of the trends have definitely picked up during the year (location-based technology), while others have made little practical headway (micropayments).