Exploring Mobile App Builders

  • Learn about different app builders and programming languages
  • Get set up to use an app builder to build a mobile app

BUILDING A MOBILE APP

For your Technovation project, you will be building an app that can run on a mobile device. Web apps are an option, but suggested for participants who have some previous coding experience and who are looking for a challenge.

Here we’ll start to explore building a mobile app using block-based coding. If you are new to coding, this is the place to start!

To make a mobile app, you will use an App Builder. App Builders are also called coding platforms. 

Coding platforms are software that either run on your computer, like Android Studio, or online websites like MIT App Inventor. They allow you to write code, whether using blocks, like App Inventor, or text, like Android Studio. Your code gets compiled, or turned into machine code, something that computers (and mobile phones) understand. Once converted to machine code, the computer or phone can run the code to follow your instructions.

APP BUILDERS

App Builders usually have a drag and drop interface that allows you to build apps by using blocks instead of typing code. Even though the code looks simple in app builders, you will still be learning valuable coding concepts.

If you are new to coding, we recommend you use either App Inventor or Thunkable for your programming language. You are not limited to using these platforms for your project, but these are the ones we will support in this curriculum.

App Inventor bee logo
MIT App Inventor
Thunkable beaver logo
Thunkable

To choose between App Inventor and Thunkable, you should base your decision on which platform has better support for the features you want to include in your app. Check out the following table to help decide.

Feature App Inventor Thunkable
Can run and test project on both iOS and Android Yes Yes
Open Source* Yes No
Free Yes Free with limits, maximum 3 projects, each with 5 screens, all are public
Available in many languages other than English Yes No
Gallery with example projects With phone over wifi, or with emulator Built-in preview in browser (easier to test with), or with phone
Live Testing Yes Yes
Build app to install on phone or upload to App/Play Store Android only Limited to 2 downloads per month
User Interface Basic More options and control
Maps More options and control Basic
Sprites and animations for games Easier to use Works but is more complicated
Storing data on mobile device TinyDB (tag/value pairs) Stored variables
Storing & sharing data in the cloud CloudDB, Firebase, Google Sheets Airtable, Firebase, Google Sheets, Media DB (many more options, easier to implement)
Artificial Intelligence Personal Image Classifier, Personal Audio Classifier, Face Mesh, Posenet (many more options) Image Recognizer (pre-built Microsoft image classifer)
Generative AI ChatGPT, Dall-E ChatGPT, Dall-E
Data Science/Charts Built-in chart component, regression models Use external API

* What is Open Source?

Open source means that all the code used to create the app builder is free and open to use on the web. This may be important to you if you are concerned about losing your work if an app builder stops being supported or goes out of business. It may also be important to you if you want to find a work around to use an app builder offline.

Note that as of mid-October 2024, Thunkable is limiting its free plan to just 3 projects. Each project is limited to 5 screens. If you think your app might be more complex than 5 screens, you should consider using App Inventor to code your app. There is also the possibility of losing access to your Thunkable projects in the future, depending on whether Thunkable continues to downgrade its free offerings.

OTHER LANGUAGE OPTIONS

There many other programming languages that you can use to build apps besides App Inventor and Thunkable, mostly text-based. 

Below are four top languages other than App Inventor or Thunkable that Technovation participants used last season. You are not limited to these languages and can use any programming language you are comfortable with. You will need to provide the source code files with your submission.

Programming Language Create apps for Coding Platform Starting Resources
Java Android Android Studio
Swift iOS XCode
Dart (Flutter SDK) Android/iOS Android Studio
Streamlt (Python) Web apps (any browser) Anaconda (Windows) or any text editor/IDE

Not sure which coding platform/language to use?  Listen to these Technovation alumnae talk about what coding platform they chose and why.

Best practices: Check out the Technovation YouTube Coding Playlist and watch a couple with your team to help understand how each one works and to make your decision. 

Advice from past participants: 

  • Thunkable has a clean interface, innate compatibility with iOS, and availability of features that other app builders might not have
  • App Inventor is reliable and many participants have some familiarity with the tool
  • Swift and Java can be great for returning students who want to challenge themselves or explore different features
  • Other programming languages are great too.

Mentor tips are provided by support from AmeriCorps.

stylized A, AmeriCorps logo in navy

GETTING STARTED

To code mobile apps for your Technovation project, you will need:

  • a computer or laptop
  • Internet access
  • Mobile device is optional but highly recommended for testing. Both Android and iOS devices can be used.
To get started, you’ll have to set up your computer and mobile device so you are ready to code a mobile app!
 

ACTIVITY 1: SETTING UP YOUR CODING PLATFORM

Estimated Time: 30 minutes

If you are using something other than Thunkable or App Inventor, use this time to download all necessary software to get your computer set up by following the resource links above and following setup instructions.

For Thunkable and App Inventor coders, click on the appropriate tab below and follow the instructions to get your workstation set up to begin coding! Feel free to try both platforms to see how you like each one.

Part 1: Signup
  1. In your browser, visit http://ai2.appinventor.mit.edu. Sign up with a Gmail account. If you don’t have a Gmail account, make one now.
  2. Once you have logged in and see the splash screen, click Continue.
  3. Click on Start a Blank Project to open a new project.
  4. Take a moment to look around the platform.
Part 2: Setup to Test
You will need to test your app as you build it to make sure it works correctly. There are multiple options found here

Part 1: Sign Up

In your browser, visit the Thunkable Signup page to sign up for a free account. 

Part 2: Setup to test

You can test your app in Thunkable right in the browser using Web Preview. At some point you will want to live test your app on your mobile device. You will need to install the Thunkable Live App on your device.  

ACTIVITY 2: CODING YOUR FIRST APP

Estimated Time: 30 minutes

Now that you’ve got your computer and mobile device set up for your app builder, let’s jump right in with a starter tutorial!

Click on the tab below for your chosen coding platform and follow the instructions. 

Instructions:

Make theTalk to Me app. Click here to follow a written tutorial in the App Inventor platform.

If you prefer video, follow along with this tutorial:

Instructions:

Make theTalk to Me app by following this video tutorial by Dave Wolber.

WANT MORE?

If you have time, try another tutorial on your chosen coding platform:

REVIEW OF KEY TERMS

  • App Builder –  program that usually has a drag and drop interface that lets you build apps without typing code 
  • Programming Language – a way to talk to a computer, or mobile phone, to tell it to do things
  • Coding platform – program or website that allows you to write programs or apps
  • Compile – convert computer code into machine code that can be understood by a computer

REFLECTION

Congratulations on making your first app! Here are some reflection questions for you to consider with your team and with your mentor.

Sunset and reflection over lake
What are some things from this lesson that you think will be useful in creating your app? Why do you think so?
How do you think the block language is different from the language you are used to using in everyday life?