How to Write Android Apps (Even If You Aren’t A Programmer)

howtowriteandroidappsMobile application development is the hottest thing in the programming world right now.  The two most popular mobile platforms are Android and iOS (Apple).  Although the numbers tend to fluctuate frequently, it seems that Android has taken the top spot from Apple.

In the United States, at least 50% of all smartphone users have Android devices.  Globally, almost 70% of people use Android.  If it seems like a popular platform that you should be learning now, you are right!

Not only is Android popular, but it could also become a very profitable platform once you start creating your own apps.

Android Basics

Android is based on a custom set of APIs that uses the Java programming language. If you already have some experience in Java, you are one step ahead of the curve. If not, consider taking the Java Programming Tutorial to get up to speed in Java programming quickly.

Each android application is comprised of four unique components. Combined, these four components create all Android applications currently available via the Google Play Store or other outlets such as the Amazon App Store.  You can learn more about these components in Android Development for Beginners.

Activities

In Android, an activity is any single screen with a user interface. A good example is an email application. One activity shows you the inbox, another activity is used to compose new emails, and another activity allows you to read emails.

For the uninitiated, this may seem like extra work. Actually, this makes your job as an Android programmer much easier because the modular design allows you to change one aspect of the application without affecting the rest. For instance, you may want a different color scheme when users create a new email that differs from colors used in the rest of the app. Using activities makes this a very simple task.

Services

Services run in the background. They are responsible for long-running operations or performing work that does not require user interaction. Services do not have a user interface. Music players often run as services so the music will continue to play in the background even when the user switches to a different screen.

Another popular service implementation is retrieving background data. For instance, if you ever use Gmail, you are familiar with push notifications. A service running in the background checks for new mail periodically without manual intervention from the user. This is a perfect example of a service in action.

Content Providers

Content providers help manage application data. In the Android operating system, data can be stored within the file system, in a separate SQLite database, on the Web, or in other storage locations such as a microSD card.  You can learn more about accessing and modifying storage locations in Android Programming for Beginners.

Built into the Android system is an excellent example of a content provider. Contact information stored in the “Contacts” app can be queried by other applications. This application is able to read or write information to the contacts database using content providers.

Broadcast Receivers

This component is responsible for responding to system wide broadcast announcements. Although most broadcasts are initiated by the Android system, your application can also create broadcasts that let other system applications know what is going on.

The broadcast receiver is responsible for “listening” for broadcasts and performing some action when a broadcast is detected. This could be as simple as a status bar notification or it could start another activity or service automatically.

Unique Android Components

There are numerous reasons why Android is a unique platform that allows developers of all experience levels to successfully create functional applications. In fact, there are way too many to discuss here.

However, one of the most important Android features that allows you to start building complex applications quickly is that your application can start activities and services of existing applications very easily.

What this means is you do not need to “reinvent the wheel” every time you create an application. If your application needs to use the camera so a user can take a picture, there is no need to write the code for the camera because it already exists. All you need to do is start the activity for the camera application and your application will automatically have full control of the camera and any pictures that are recorded using the camera activity.

This is great news for you because you can create useful applications that use existing code almost exclusively. Not only does this significantly cut down the learning curve, but it also makes programming in Android lots of fun.  Android App Development Fundamentals II dives into some of the more advanced features of Android programming. Instead of focusing on monotonous coding techniques, you can focus on making your app do cool new things.

Creating Apps

With a basic understanding of how the Android operating system works, you can start building your own applications. There are two main ways that modern developers actually create applications. Each has benefits and drawbacks and often you will find that a combination of the two provides the best results.

Eclipse IDE

If you have any programming experience, you are probably familiar with the term Interactive Development Environment (IDE). These programs allow users to create applications using a Graphical User Interface (GUI). Unlike old-school programming, which was done exclusively in a text editor, an IDE lets you drag and drop many of your application’s components into a visual window.

For Android, the best IDE is Eclipse. Eclipse is well-known as a Java IDE that can create and package job applications quickly. Since Android is based on Java, it only makes sense that this IDE should also be used when you create Android applications.

To make things even easier, there is an Android plug-in available for Eclipse. Once downloaded and installed, this plug-in allows you to emulate Android devices and test your application before actually deploying it to a physical device.

The advantage of using an IDE is that you get complete control over creating your application. Although many of the visual elements can be created automatically, almost all of the coding must be created manually. Although this requires slightly more work, the extra control you gain will become particularly useful as you become more proficient at developing Android applications.

Unfortunately, using an IDE such as Eclipse does have a steeper learning curve and could seem overwhelming when you’re first starting out. The good news is that there is another, even easier, option available.

MIT App Inventor

Originally created by Google, MIT took over the App Inventor project and now offers a publicly available solution that allows almost anyone to create Android applications. The App Inventor is almost exclusively GUI based – meaning that hardly any programming experience is required to begin creating functional Android applications.

Keep in mind that some coding is required, especially if your application uses unique features not natively included in the Android operating system.

Either way, the App Inventor is by far the quickest and easiest way for you to produce your own Android applications that look good and provide useful functionality. You will learn a great deal about how different Android elements work together and may find yourself quickly adopting the Eclipse IDE for greater control.

The number of people relying on Android as their preferred mobile platform continues to grow every day. It is an exciting field and there is always room for new developers. Whether you create something completely unique or improve upon an existing design, your application could quickly find itself on the Bestseller list in the Google Play Store with a little bit of practice and determination.