Over the last few years, there’s been a dramatic rise in Android smartphone and tablet sales. Wide choice of styles and size formats plus competitive pricing has helped. And despite a slow start, the Google Play store now offers a similar number of apps to Apple’s App Store. This widespread availability has also encouraged some owners to design and build their own apps, either as a personal challenge or as a moneyspinning idea. But unfortunately, just as with iOS, the Android platform’s professional development languages and tools are difficult to learn and tricky to use. Nevertheless, there have been some encouraging projects to try to put Android app building within reach of anyone with an interest in app construction. And now, following extensive consumer feedback, some have been redesigned and improved. Let’s take a look at one of the most promising and approachable solutions around today: App Inventor.
Google launched App Inventor version 1 in December 2010. At the time, it was an innovative and interesting attempt to open up Android app development to those who didn’t know or didn’t really want to learn a traditional coding language. One of its key attractions was that apps could be constructed from interlocking blocks – an approach that removed the need for a traditional coding language. It’s a strategy that’s also been adopted by the Scratch development environment, which has become a firm favourite with the Raspberry Pi community. Nevertheless, this initial version had a number of frustrating shortcomings, which rather dampened the initial enthusiasm of budding app designers. However, in 2011 Google handed over the code and product responsibility to a team from the Massachusetts Institute of Technology (MIT) Center for Mobile Learning, led by App Inventor creator Hal Abelson and fellow MIT professors Eric Klopfer and Mitchel Resnick. Aware of the shortcomings in what is now known as the ‘Classic’ version, the MIT team beavered away to create a major upgrade, which they subsequently named App Inventor 2 (AI2). It’s just a simple to use, yet is a more powerful solution to building bespoke apps for Android smartphones and tablets So what does App Inventor 2 actually offer the Android app developer?
Just A Web Browser
The most important change for novice app developers is that all you need is a web browser (Google Chrome, Mozilla Firefox or Apple’s Safari) to create the visual design elements and assign app behaviour. This means there’s nothing to download, nothing to install and nothing to configure to begin your Android app building adventure. It also ensures Windows, Mac and Linux users can all join in the fun. Only when it comes round to testing out your app on an Android smartphone or tablet (or via an emulated device if you don’t have a real one to hand) will you need a small download, as we’ll see later.
Getting started with App Inventor 2 is easy. Just visit ai2.appinventor.mit. edu, then sign in with your Google account. Don’t worry if you don’t already have a Google account. It’s a quick and free process to sign up for a new one. Once signed in, the App Inventor 2 interface will appear. As can be seen in Fig. 1 (AI2 Web Interface), this is a busy-looking web page crammed full of functionality. The good news is no matter what sort of app you wish to create, the basic construction process is always
1) Set screen name & properties.
2) Add app interface components.
3) Add any media files.
4) Create more screens.
5) Define app behaviour with blocks
The key to the rich potential of App Inventor 2 is buried in the two main construction views, namely Designer Mode and Blocks Mode.
As you’d expect, the designer mode screen is the place to select, arrange and configure the main app elements. There are five main areas of the screen:
- Palette: a collection of visual and non-visual components grouped by category,
- Viewer: a visual representation of the user interface.
- Components: a hierarchical list of added components.
- Media: a list of media resources.
- Properties: editable characteristics of the currently selected component.
In AppInventor 2, the palette components collection is much more comprehensive than in the previous version. As you’d expect, many are user interface specific, such as labels, text boxes, spinners, lists, images and so on. Yet there’s plenty of fun to be had by investigating the full gamut of categories. There are media blocks, which supplement video handling with speech recognition and text-tospeech; animation blocks to control images on a custom canvas; sensor blocks to access the internal clock, accelerometer, GPS orientation and barcode scanning; and there’s connectivity via the web, Bluetooth and, depending on your device, near field communication (NFC). There’s even a Lego Mindstorms sectio,n which contains blocks to interact with the NXT unit. They can issue commands, drive the motors and even collect light, colour, sound, touch or ultrasonic sensor data. To take maximum advantage of the designer mode, it’s best to have a fully formed plan, either in your head or sketched out on paper. This plan would specify the app’s main purpose, the desired app behaviour and finally the sort of App Inventor 2 components needed to bring the app to life.
After the design phase, it’s time to set your app’s behaviour. Normally this is done using a coding language, but with the inventor it’s all done by snapping together coloured blocks and entering specific bits of numeric or textual data. This might appear to be a rather limiting strategy, but in this second incarnation of the App Inventor there’s an extensive and highly functional collection of blocks to choose from. These blocks cover all the essential coding elements including statements, procedures, variables, operators, objects, properties, methods and comments. The block menu is arranged into colour-coded sets: brown for control, green for logic, purple for math, cyan for lists and so on. And the colours aren’t there just to make the code to look visually attractive. In fact, they help to quickly guide the eye towards the areas of interest, for novice and experts alike. Appropriate blocks are connected to the screen components, added during the design phase. In this way, a field can be dynamically filled with downloaded information, a button click can initiate a custom operation and sensor data can be extracted at periodic intervals.
In App Inventor 2, the projects are stored in AIA files, rather than the previous zip containers. There’s a large and growing collection of these AIA project files available online. What kind of apps can you create? Well, the possibilities are endless. Here
are just a few ideas:
- A smart messaging app that reads some text input and then communicates it as a text message, tweet and email with a single button click. This app could use the ContactPicker, PhoneNumberPicker and Twitter components from the Social palette.
- A location tracker app that includes the Sensor palette’s Location Sensor block, which in turn uses the information from the GPS chip (if available) and local wi-fi network identities.
- A todo list app that stores the entries in the cloud using the TinyWebDB component from the Storage palette.
- A personal lottery number app that creates a randomly generated set of numbers every time your device is shaken, via the Shaking method found in the Sensor palette’s Accelerometer Sensor component.
- A game app that uses the pitch and roll values in the Sensor palette’s Orientation Sensor block to control the movement of an animated image based on one or more sprite animation blocks.
Once your creation is finished, you’ll need to test it. And there are two approaches. One is by establishing a connection to a real Android device. The alternative is to install a virtual device app. To establish a connection to a real Android device you’ll need to download and install the MIT AI2 companion app from the Google Play store. Both the Android device and the computer must be connected to the same wi-fi network. When it starts up, the companion app requests a six-character ‘handshake’ code, which needs to be entered into App Inventor 2 using the Connect menu’s AI Companion option. The virtual device simulation scenario allows apps to be tested without a real Android device. However, a simulation won’t be able to do everything a real device does, so things like wireless communication, GPS location, movement and sensor inputs are best tested using a real Android smartphone or tablet. First, you’ll need to download and install the ‘aiStarter’ software (see instructions on the App Inventor 2 website). When started, the emulator displays a generic-style Android device interface, plus a number of predefined buttons, which emulate specific taps, swipes and other gestures.
After a few adjustments to the code blocks or data, you should now have a fully operational app. The next step is to create an Android package file. Why? Well, this package file can be installed on one of your Android devices or on a friend’s Android device or uploaded to the Google Play store. With App Inventor 2, building a self-contained Android package (known as an APK file) is a simple process, which stores the package file on your computer. Once created, an APK package file can be ‘side loaded’ onto an Android device via a USB connection. To do this, go to the Android Settings app, then turn on USB storage and also ensure the ‘installation of apps from unknown sources’ setting is active. Tap on the associated package icon, and a short while later your app is ready to run.
A good way to begin is by downloading an online project. There’s a wide range of topics to choose from such as fun games, science simulations, math calculators and much more. You could choose a project that’s similar in nature to your own app idea or just whatever sounds interesting. At appinventor.org, there’s a large collection of learning and teaching and resources for the App Inventor platform, but it also has a useful collection of over 20 Android app examples. Each example app is broken down into a number of construction steps, each with its own description and often a short video tutorial too. Associated downloads include PDF format app documentation, the AIA project file and even the complete APK Android app package file. Downloaded AIA projects can be added to App Inventor 2 via the Import Project menu option, while APK app packages themselves can be ‘side loaded’ onto an Android device using a USB connection.
Sharing With The World
If you’ve created something special and would like to share your app with more than just family and friends, then you can. The generated APK Android package file can be placed on the Google Play store as a free app. Once done every Android device owner will be able to find, download and install your app. As there are hundreds of millions of Android devices in circulation, you might become quite famous. All you need is an original idea, a clever and memorable app name and enough time spent playing with App Inventor 2 to create a polished, bug free piece of software.
Selling Your App
Making money from your app creation is an appealing concept. Although app prices on Google Play store are low, typically 50p or £1, with so many Android devices around, the money can quickly mount up. Yet it’s not quite that simple. Any new app has to compete for attention with hundreds of thousands of existing apps. So to make money you’ll have to provide something that’s different to every other app or something better than the competition. That’s quite a challenge. But many have done it in the past. Home-based app creations have given some people a useful second income. Others have been able to give up their previous employment and just concentrate on apps, while a select few have become very rich indeed. However, there are quite a few steps involved in submitting an app, especially a financially successful one, so here’s a quick summary of the tasks to perform. First of all, you’ll need sign up for a Google Play account and then pay a one-off $25 publishing registration fee. Next, you’ll need to decide on the app’s price, which will be from $0.99 upwards. Then there’s the app asset information. This includes the APK package file (max 50MB), at least two app screenshots, a high resolution app icon image (512×512 32-bit PNG), a promotional graphic (180×120 24-bit PNG), a feature section graphic (1024×500 24-bit PNG) and ideally a YouTube video link. And finally there’s the general app information: app title (unique and memorable), app description, language (if not US English), genre (app or game), category type and contact information. Whatever you come with, happy inventing and good luck!