Publishing and beyond - Hello App Inventor!: Android programming for kids and the rest of us (2015)

Hello App Inventor!: Android programming for kids and the rest of us (2015)

Chapter 15. Publishing and beyond

In this chapter, we’ll set you off on the road to publishing your finished apps. If you’re ever flagging in your quest for early fame and fortune in the app world, we’ve drafted some support in the form of quotes and profiles of some teen and preteen programmers and app developers. Then, to wrap up, we’ll talk about the future of App Inventor and consider whether there are other app-development tools out there for you.

Publishing apps

OK, so you’ve made an app that is going to sweep the nation, or perhaps you just think it’s pretty good and would be fun to share. As an expert app inventor, you already know that you can email the .apk file to your friends or share the file on your website, via Twitter, or on your Facebook account. But what if you want to take things further and share your inspiration with the world? You can upload your app to the Google Play Store for a one-time cost of $25.00.

If you’re serious about uploading your app to the Google Play Store, you must access Google’s own resources via the Web to ensure that your understanding of the process is as up to date as possible. Many developers use app-publishing experts to help them publish to the Web in the most effective way, because there are so many potential complications and opportunities (like creating screenshots in the requested formats and writing a good description of the app). We’ll provide a starting point to help you understand the steps in the process. But first let’s see what some inspiring teens and preteens have been up to.

Young app developers

Many young app developers and programmers have been making an impression in the world of computer science and beyond. We’ve included profiles of five of them here, although there are many more to choose from.

Thomas Suarez: believes in sharing knowledge with othersPhoto by - MakerBot Industries: http://mng.bz/oO7Y. Thomas’s TED talk: http://mng.bz/YQzp.

In 2011, a 12-year-old American named Thomas Suarez spoke about his passion for technology and apps in front of a very appreciate audience during a TED talk. TED talks are conferences during which speakers from a multitude of different backgrounds talk about “ideas worth spreading.” Thomas talked about two iPhone apps he had developed and posted to the app store. He believes in the power of sharing knowledge and how kids can help teachers in this area. During his TED talk, Thomas said, “These days students usually know a little bit more than teachers with the technology so ... sorry ... so this is a resource [for] teachers. Educators should recognize this resource and make good use of it.”

Nick D’Aloisio: app developmen millionairePhoto by Puramyun31: ht- ttp://mng.bz/cNqV.

English born Nick D’Aloisio was just 17 when he sold his app to Yahoo! for an unconfirmed sum of $30 million. In an interview with news agency Reuters, D’Aloisio encouraged other entrepreneurs, saying, “If you have a good idea, or you think there’s a gap in the market, just go out and launch it because there are investors across the world right now looking for companies to invest in.”

His app idea was inspired when, while studying for history exams, he found it very time consuming to trawl through lots of web pages looking for information. His iPhone app called Summly (originally called Trimit) automatically reduces the content of web pages to 400 words to be read on a mobile device.

With technical know-how and incredible persistence, he attracted investors who helped further develop his app and also helped him become a very rich young man and Yahoo!’s youngest employee—all while still in school and planning to go to college.

Jordan Casey: My Little World

At the age of 12, Irish boy Jordan Casey had published four games to the Google Play Store. Since then he has written more apps, including some using iOS. He explained that his app My Little World took eight months to program. He advises young developers that they should “Never give up” when trying to get their apps published.

Charley Hutchinson: “Why don’t I make my own app?”

At the age of 11, Charley Hutchinson of Mississippi wrote an iPhone app to keep track of the Flickr photos posted by his friends. In 2012, he was interviewed on CNN and talked about the race to get the app published to the App Store before his 12th birthday. He had published an app called Doodles to the Google Play Store the year before. Asked how he decided to make an app for the iPhone, he said, “I’ve always been really interested in computers. Then my parents had an iPhone, and I really loved playing with apps on there, so I decided, why don’t I make my own app?” Charlie continued, “If there’s so many already on the store, surely I can make one myself.”

Where are the girls?CodecademyGoldberg, AdeleHopper, GraceLovelac- ce, AdaMather, Amypublishing appsyoung developer experiencesAmy MatherAda Lovelace photo by Duncan Hull: http://mng.bz/5PsP.

If you’re a girl reading this book, don’t be downhearted that we didn’t immediately find any semi-famous young girl app developers in the media. If you look at the App Inventor website’s news page (http://mng.bz/J1Yw) or search the Web for the words “girls in computing,” you’ll find that lots of people are desperate to get girls involved in computing. Research shows that although fewer girls than boys choose to study computing, when they do, they achieve just as well or better than boys. In fact, the world’s first computer programmer was female. Ada Lovelace lived in the mid-19th century and wrote “Notes” that are understood to have included the first algorithm that was intended to be processed by Charles Babbage’s early mechanical general-purpose computer, the Analytical Engine.

Given Ada Lovelace (first program), Grace Hopper (first compiler), and Adele Goldberg (first object-oriented language), why would anyone think women aren’t in computing?

Amy Mather is an accomplished and passionate young programmer. We first met Amy in 2012 when she came to a school event and wowed our teacher trainees with her computer science knowledge. She first learned HTML and then joined other organizations in the UK that engage young computer scientists. She has had some great mentors but is mostly self-taught, using a free resource called Codecademy (www.codecademy.com) to teach herself Python programming. When talking at an event for enthusiasts of the Raspberry Pi computer (known as a Raspberry Jam), she explained what first caused her to get interested in programming: “It’s all very well to use iPads and stuff. But I thought, how could I get it to do what I want it to do?” If you want to see Amy demonstrating how she developed a pretty complicated Python program, which links to some LED lights to represent a concept called Conway’s Game of Life, watch this video: http://mng.bz/txd5.[4]

4 Photo by Alan O’Donohoe.

A career in app development?

Where could a career in app development take you? Let’s take, for example, Amanda Wixted.

Amanda worked for a software house called Zynga, was the USA’s first mobile engineer in 2005, and has been involved in the development of top-10 mobile apps such as Farmville, Live Poker, Mafia Wars, Pac-Man, and more.

Amanda left Zynga and in 2012 created her own company called Meteor Grove Software where she continues to successfully develop apps for customers in Brooklyn, New York. Interestingly, she says that when she was in college, she “randomly took a class in computer science and decided to change (my) major from dance to computer science.”[5]

5 See http://amanda.wixted.usesthis.com/.

Steps in the publishing process

Google provides very detailed guidance about preparing your app for release that you can find at http://mng.bz/dGU4. This diagram gives you some idea of the different steps involved in the process. If you’re a teen reading this book, run things by an adult, particularly because there is a cost involved!

As you’ll notice, there are terms in these steps that we haven’t talked about, so we’ll go over them a little here. You may have to learn more about them directly from the Google site if you want to do more, but this will get you started.

Step 1: gather materials for release

This first step includes a few tasks to get materials including cryptographic keys (explained in a moment), license agreements, and graphics ready for release.

Cryptographic keys

Sounds exciting, like perhaps it has to do with an Egyptian tomb, but in this context a cryptographic key means a unique code that links to your app and your app only. App Inventor sorts this out for you when the .apk file is being written. But it’s sensible to make a backup of your keystore as part of the process of backing up your app.

When you’re in the My Projects page, select the app you intend to publish, and select More Options/Download Keystore. Export the keystore to a computer, rather than relying solely on MIT’s cloud servers ... just in case. If your keystore gets lost, it can’t be re-created, even if you’ve re-created the source code of the app when upgrading the app on the Google Play Store. The keystore needs to be the original one; otherwise you’ll have to completely republish, which means existing users won’t get the upgrade. Experienced programmers save the keystore several times. Possibilities are on a USB stick, on cloud storage, and via email to yourself or trusty people like parents or caregivers.

Application icon

In the Designer with the Screen1 component selected in the Properties panel, choose Icon and select a suitable image to be your application icon.

EULA

A EULA is an end user license agreement that lets users know what they’re agreeing to in downloading your app. It also protects your property. You’ve most likely agreed to hundreds of them yourself by clicking through and “accepting” at the end of the text. If you want to see what a commercial EULA looks like, search for “end user license agreement” and the name of an app. One very typical item to include is that your users can’t copy or resell your app, which seems fair enough!

Miscellaneous materials

These include promotional materials such as images or video of your app in action plus some promotional text selling your app to the public. Google has some strict guidelines about the quality of images and type of promotional material required. You’re required to provide a minimum of two screenshots as follows:

· JPEG or 24-bit PNG (no alpha)

· Minimum dimension of 320 px

· Maximum dimension of 380 px

· Maximum dimension can’t be twice as long as the minimum

To maximize the usage of your app, it does make sense to provide screen shots for other devices such as 7-inch and 10-inch tablets. Google permits you to upload up to eight screenshots. In addition, there is more guidance about designing for tablets. Read up on this to maximize the likelihood that your app is successful.

Version code and version name

Every app you publish must have a VersionCode and a VersionName. You can set these in the Designer in the Properties panel for the Screen1 component. The VersionCode is an integer (whole number) that, although invisible to users, can be used by other apps to check whether your app has been upgraded. Now you know how your phone tracks upgrades automatically!

The VersionCode always starts at 1 and increases by 1 each time a small or large upgrade is made. The VersionName is a string (number, symbols, or text) that also changes inline with upgrades. It’s common for the first VersionName to be a decimal number 1.0: when a small upgrade is made, it changes to 1.1; and when a large upgrade is made, it changes to 2.0. It’s essential that your users be able to track what version of your app they have installed and to be able to automatically access upgrades.

Saving the .apk file

From the design screen of the app that you want to publish, choose Download to This Computer. The .apk file will be saved to your Downloads folder.

Step 2: configuring your application for release

At the very minimum, ensure that there are no bug warnings in your blocks, and remove any deactivated blocks. When you’re in the home screen of your app in App Inventor, select Debugging and select Clear to remove any messages or developer messages.

Step 3: building your application for release

Good news: App Inventor does this bit for you. In the home screen of your app, select Build/App (Save .apk to My Computer) and download the file to your computer. App Inventor automatically compiles the .apk file for you and saves it into your Downloads folder.

Step 4: preparing external servers and resources

If your application relies on another server, ensure that the server is secure and suitable for production use. If you’re intending to bill from your app, this is of course essential. The type of mistake that could be made here is a developer leaving the app pointing to a test server rather than the live server that will be used for a content feed or billing.

Any apps containing TinyWebDB are dependent on external servers maintained by MIT. In chapter 12, you developed the Dream Sharer app, which allows the user to share the contents of their dreams with their friends via the web using the TinyWebDB component. But the default server accessed by TinyWebDB is a test service that isn’t suitable for apps that will be published, because the contents will be eventually overwritten. So if you produce a published app that will use TinyWebDB, you can create a customized TinyWebDB service. Follow the instructions at this link:http://mng.bz/Oq12.

Step 5: testing your application for release

Google Play Store requests that you have tested your app on at least one handset-sized device and one tablet-sized device. But if you have friends with Android devices, why not try it on a few different-sized screens to see how it looks and works? The types of things you could consider are the fit of the screen, changes in orientation, and different settings such as languages available for the app. In addition, if your app is dependent on other external resources such as SMS or Bluetooth, what happens when these aren’t available?

The future of App Inventor

In August 2011, Google handed over control and development of App Inventor to MIT (Massachusetts Institute of Technology). Since then, interest in and use of App Inventor has taken off across the world. In 2013, there was a big upgrade of App Inventor, which is also known currently as App Inventor 2. If you see any mention of App Inventor Classic, this was the first version of App Inventor, which has now been replaced. The current App Inventor team is very interested in making App Inventor a fantastic resource for the world of computer science education, engaging young people in developing their own apps.

Other platforms

If you really want to get into programming, it’s a good idea to be part of a programming community. Have you tried Scratch programming yet? Scratch is similar to App Inventor in that it involves slotting together blocks to create programs for laptops/desktops. It’s a free download available at http://scratch.mit.edu/. What is particularly great about Scratch is that its attitude is concerned with sharing and remixing each other’s work. You’re encouraged to upload your projects and download the source code of other programmers’ projects and adapt it with your ideas. There are also plenty of tutorials, education resources, and forums available on the site to keep you busy and happy.

Or you can try Codecademy, which is another free resource. The young programmer Amy Mather (mentioned earlier) used Codecademy to teach herself Python. Once you’ve created an account and signed in, it keeps track of your progress and encourages you as you learn to code in Python, HTML, and JavaScript. The website address is www.codecademy.com/.

If you want to expand your app inventing experience, take a look at other platforms that are available. If you want to progress down the Apple route and develop apps that can be used on iPhones or iPads, you’ll need to purchase the iOS developer program (http://mng.bz/K1an). There are plenty of support materials to help you learn the skills necessary to become an Apple developer at http://mng.bz/T7nQ, although these materials are targeted more at experienced developers rather than beginners.

If the up-front cost of the iOS developer’s kit puts you off and you’re looking for something free, a program called Lua is available at www.lua.org/download.html. We have seen this taught in a school. Again, the resources aren’t set up with younger developers in mind, but it’s worth the persistence to spread your wings a bit. Lua is a powerful, fast, lightweight, embeddable (can be used inside other applications) scripting language. It’s powerful enough to be used in applications that you may have heard of, like Photoshop and Lightroom, and it’s been used in some complex and successful games such as World of Warcraft and apps like Angry Birds. The website Lua for Kids (http://luaforkids.com/) contains a couple of tutorials to get you started. One of the special things about Lua is that you get to choose which platform you write your app for. So, you can produce apps for Android or Apple.

Another option is TouchDevelop (www.touchdevelop.com/), which is also free and enables users to develop apps on iPad, iPhone, Android, PC, Mac, and Windows Phones. A colleague of ours has used the interactive tutorials with high school students, who produced their first app within one hour.

Staying with App Inventor for the time being?

If you’ve created all the apps in this book but want to develop further, you can backtrack through the book and do the Try It Out challenges. These are extensions of the original tutorials that expect you to really think about what components and blocks will be needed to adapt the apps. For example, in chapter 6, we suggest that you create a slot-machine game using three lists of fruit. Award points and play a sound when three matching fruits are selected—then take it further by adding delays and animation sprites. Give it a go!

What about trying some advanced features?

In the pages of this book, we have used 38 of the 46 (counting LEGO Mindstorms as one!) components. But there are a few left that you could have fun investigating for yourself:

· Slider (Palette group: User Interface)—The only component from the User Interface group that we haven’t used in a tutorial is Slider. A slider is a progress bar that adds a draggable thumb. You can touch the thumb and drag left or right to set the slider thumb position. You can use a slider to change other component properties such as font size or radius of a ball.

App idea

Produce a drawing app in which the user uses sliders to tailor their own screen.

· Camcorder (Palette group: Media)—This component allows you to open the device’s camcorder record and save a video file.

App idea

Combining this functionality with TinyDB, set up a video diary app to record a holiday diary.

· VideoPlayer (Palette group: Media)—As long as the video is under 1 MB and in WMV, 3GP, or MPEG-4 format the VideoPlayer component appears as a rectangle on the device screen; when tapped, it displays video controls.

App idea

Perhaps adapt the Inspiration Scrapbook app from chapter 11 and include a video of your hero rather than just text to speech, or build a Snapchat.

· SoundRecorder (Palette group: Media)—Just like it sounds! This component allows you to record audio.

App idea

“Good ideas get lost, just like good pens.” Why not create an ideas app and, when you get an idea, record it? It’ll be fun to listen to later.

· NearField (Palette group: Sensors)—This component allows you to use near-field technology to read and write text to another device in the immediate vicinity (only a few inches away).

App idea

Create an app that enables you to share contact details immediately, without using SMS texts.

· PhoneCall (Palette group: Social)—Often used with a list picker, this component allows you to make phone calls.

App idea

Create an app that picks from your social phone list and automatically calls friends on their birthdays.

· FusionTablesControl (Palette group: Storage)—This non-visible component communicates with Google Fusion Tables. Google Fusion Tables let you query, store, share, and visualize data tables. This component lets you query, create, and modify these tables.

App idea

Create an app that looks at the weather in all your favorite holiday destinations.

· BluetoothClient and BluetoothServer (Palette group: Connectivity)—Both components enable you to connect to other devices wirelessly.

App idea

Create an app that enables you to share contact details immediately, without using SMS texts.

· LEGO Mindstorms —This group of components lets you control LEGO Mindstorms robots using Bluetooth technology.

There is a forum for this book on the publisher website (www.manning.com/beer > Author Online). If you have some success with these other components, why not share what you think about them? Also consider posting some tutorials yourself to the App Inventor 2 website.

Final words

At the beginning of the book, we shared with you this quote:

Any sufficiently advanced technology is indistinguishable from magic.

Arthur C. Clarke’s Third Law of Prediction[6]

6 In the essay “Hazards of Prophecy: The Failure of Imagination,” in Profiles of the Future (Gollancz, 1962).

We hope you’ve found some magic in the creation of your own apps. From the simple Getting to Know Ewe starter app in chapter 2 to the more complicated A-Mazeing Penguin app in chapter 14, we hope you’ve learned plenty about what you can do with App Inventor. You’ll find that once you’ve followed the tutorials and learned the basics, you can see what is possible and become more creative and adventurous in your programming ideas. Keep experimenting, coding with your friends, and enjoying what App Inventor has to offer.