(Note: This page was posted in 2016. The AppInventor/AppyBuilder software referenced in this page may not be less relevant today).
Nowadays, everyone has their own app idea. I, too, had an idea, which I recently brought to fruition. Below is the process I went through to build my app. Perhaps this will be a useful read for some other English teachers or educators in a similar boat.
Firstly, my app is called North American Idioms. It is available on Google Play. In a nutshell, it's an app that helps users study 100 essential North American idioms. It is not incredibly high-tech; in the app, users select the appropriate idiom to fill in the blank, match idioms with definitions, and so on. It is largely text-based and it runs off a small database (a file exported from Excel, to be specific).
For creating the app, my goals were twofold:
- To help ESL students learn idioms
- To create another passive revenue stream for myself
My top-performing page on this website has been my idioms page, which gets roughly 1,000 unique visitors a day. One day it dawned on me that this could be a great place to promote an idioms app. Instead of solely relying on people finding my app 'organically' either via search or in the Apple Store or Google Play, I would be able to drive downloads directly from my own website. This would be a great advantage.
How Should I Build It?
Firstly, I thought about programming it myself. I have built this website and I can code in PHP, but that's a far cry from compiling an application in Java. My design skill is also quite poor. I realized that if I wanted to do it right and well, I'd have to hire someone.
In search of a programmer and designer, I advertised my project on UpWork.com, a website that connects freelance designers and programmers to entrepreneurs and their projects.
My budget in my mind: $200-400
On UpWork, I came across a slew of programmers from India, China, and Ukraine that would work for $10 and hour. I posted my project and then received several inquiries from programmers who bid on the job. When I got in touch with them, I was surprised by their quotes.
To build the app for Android = $1,500
To build the app for iPhone = $1,500
To build the API* = $1,000
Estimated total cost = $4,000
Total time estimate = 2 months
(*Application Program Interface aka the 'backend' that interacts between the app and the Internet)
I was flabbergasted by the price. I had no idea that Android apps and iPhone apps are coded in entirely different languages. I naively thought this would be something that could be coded in 10 hours or so. Clearly, this was not the case.
Knowing that an ESL app would not be able to recoup $3,000 in investment (at least not for many years), I was faced with the choice: abandon the project or build it myself.
My Resolution: Build It Myself
I had a month off. A man has to do something productive with his time, so I decided to build it myself. Next, I did some research on the differences between the Android app market and iPhone market and found the general consensus that Android has a greater share of the market and its market share is increasing. Therefore I decided to:
1. Only build my App for Android (at least f0r now) -- This would be easier me for me to test, too, since I don't have an iPhone.
2. Ensure the app is simple enough so that it can work offline (meaning, an online API isn't required to interact with the app for it to function)
I saw before me three options.
1. Paid App. e.g. 2.99 per download
Conclusion: No. The growing consensus online is that people generally don't pay for anything, particularly Android users. Also, many of my visitors come from south and southeast Asia. I didn't figure they would be interested in the equivalent of 2.99 Canadian for an app.
2. Freemium - e.g. Users get the first five levels for free, but have to pay for the final five levels.
Conclusion: No. I don't think my userbase is going to pay for an app.
3. Monetize it with Ads from Admob (similar to Adsense ads for the web -- which are on this very webpage)
Conclusion: Yes. I have already seen how this type of affiliate program works on this site. To get paid, though, requires a user to actually click on an ad in my app. Admob does allow interstitial ads (full screen), however, which have a higher click-through rate and would probably result in some clicks. Through this method I could probably get one click per 100 pageviews, I figured.
How Can I Program It?
Again, I don't formally know any object-oriented programming languages like Java, so I was a bit daunted by the task. In my Googling, I came across a reference to a free block-based programming tool called MIT App Inventor 2. I started playing with it (it's free to sign-up, and all web-based) and soon I was halfway to building my app. This is what it looks like.
Screenshot of the Design View
Screenshot of Blocks Editor
Essentially, it's block-based programming. This means, instead of coding something like:
if CorrectAnswers = 10
echo 'Well Done!';
You would click on the 'IF' block in the block editor and use your mouse to connect it to the variable CorrectAnswers, etc. It's similar to the idea of the Microsoft Frontpage from the late 1990s: it's a visual way to code. There are plenty of tutorials and resources online as well, so it's not hard to improve your skills.
With MIT App Inventor 2, my app development was underway.
The Next Step: Dealing with App Inventor's Limitations
There were two big limitations:
1. Design -- there are a limited number of features available. The buttons and fonts look quite basic.
2. Advertisements - App Inventor, developed by an educational institution (MIT), does not allow you to place ads in its apps. To do so would be a violation of its policy.
Being that creating an additional revenue stream was the main aim of my app, this second limitation was serious for me.
The Solution: aiLive (Formerly known as Ai2LiveComplete)
AiLive is essentially an enhanced version of MIT App Inventor. Key improvements include:
- The ability to add affiliate programs (ads) such as Admob, Amazon, and In-App Purchases
- Better design features such as being able to import custom fonts (something I took advantage of)
There are other features as well that I have not played with. It does cost a little, however. When I signed up there was a sign-up fee and a monthly fee. As of today, there's only a monthly fee of $8.
After a few weeks of enhancing my app with aiLive, I was ready to upload it to Google Play.
Here are some previews of some of the screens (slightly older version):
Again, it's nothing stunning, but it accomplishes what I had set out to do and the app functions well. There are many apps that are much more beautiful that mine that have been designed with aiLive, believe me. Check out the demos on the above website to get more information.
So how's the app doing?
Well, just this week it got a total of 61 installers (36 from the Google Play store, and 37 from my website). This shows that even if you don't have a site like this to drive traffic, you'll still get some downloads from the Google Play (assuming you've named and described your app sensibly on Google Play).
As for the monetization, I've had a few clicks this week, but not so many. Ten to twenty cents per day so far. But this will increase over time. The app will get more installs, which will increase it's ranking in the Google Play. As the ranking increases, it will become more visible in the store, further increasing its installs, along with the clicks.
The ESL market is huge. Top-ranking apps can accumulate a million installs. While it may take me a while to get to a million, a thousand downloads feels like it's just around the corner.
This has been my app story. I will update it if I feel there's anything else that would be useful to share. I hope this has been insightful for those of you looking to find more ways to diversify your income.
- Matthew Barton, Creator of Englishcurrent.com and North American Idioms App
Posted March 18, 2016