The vast amount of knowledge available today to billions of consumers worldwide is untapped. Smartphone use is relatively new, but for their widespread use, their potential is not very well understood. New programs and applications are frequently being created to help users navigate the expansion of technology. App Inventor for Android’s Visual Block Language, or MIT App Inventor, as it is now known, is one web-based program that was designed to teach the average person how to create mobile applications through computational thinking concepts. In more simplified terms, it allows beginners with no experience in coding or software development to design applications for Android and now iOS, although iOS is still in beta testing. The abilities of a programmer are no longer only achievable to someone with a master’s degree or solely for the engineer but for every individual for use in their daily lives, solving everyday problems.
As of today, there are over 6.8 million people in more than 190 countries that have used App Inventor to create over 24 million apps. These applications have been designed for many different purposes. One of them is to help solve real-world problems, such as developing apps for emergency/first responders.
The project to create MIT App inventor began in 2007 by Professor Hal Abelson at Google Labs while he was on a sabbatical from MIT. Abelson’s vision was to create something to enable younger learners to be able to program for Android. The App’s creation was fueled by an intensified interest in block programming languages for educational purposes modeled after programs such as StarLogo, Scratch, and the Android operating system.
Java is the programming language that Google’s Android operating system is written in and use to be the preferred language in which to write Android apps because of how versatile and compatible it is. At the time though, developing mobile applications with Java was only accessible with expertise in system-level or embedded programming, or both. This issue created a barrier to entry for people not versed in computer science, App Inventor’s target demographic. To overcome these challenges, they used blocks to eliminate the complexity of the underlying programming language.
MIT App Inventor was designed to help bridge the gap between experienced app and web developers and beginners. It does this by using a graphical user interface (GUI), allowing its users to drag and drop graphical images to create an application. The MIT App Inventor’s, GUI has two main interfaces: the design editor and the block’s editor. The design editor uses a drag and drops feature for the user to layout different elements of their application while the block editor allows the user to create their app by logically laying out color-coded blocks that cling together like magnets for the application to work.
One important feature of the design editor for App Inventor permits creators to see exactly what the app will look like on their device’s screen, so they are able to adjust the form factor accordingly. The user can adjust the features of the app, for example, color, size, and background, and to see the changes as they happen. What is more, apps may also run in a live development mode utilizing the Companion.
MIT App Inventor Companion:
A notable characteristic of MIT App Inventor is its live development environment for cellphone and tablet applications. App Inventor does this by providing the user with an additional app that they install on their mobile device called Companion. The App Inventor API sends code to the companion app, it then reads the code and displays it on the app for the developer to see. This response allows the developer to change how the app looks and functions in real-time. For example, “someone developing a basketball game may intend for the ball to bounce out of bounds, but initially, the basketball may hit the wall and stop. Then after discovering the Ball.EdgeReached event, the developer can change the event by using the Ball. Bounce method.” The developer can explore the app by testing and adjusting its program to achieve the desired response.
All these features make the MIT App Inventor simple and easy to use. With its considerably basic drag and drop feature, it took me no time at all to learn the fundamentals of building my own app. With the different types of blocks, such as control blocks that create an “if statement” it teaches someone new to coding the logical process needed to code. Also, with blocks, It is far less time consuming to create an app. It is even possible to develop an app in less than one hour with only a little bit of experience using App Inventor. With most programming languages, you will spend hours just typing out hundreds of lines of code and hours more going over your code, function checking it. With App Inventor, all the code is written into the prewritten functions in the form of blocks that you choose from.
The If & Else If block: “tests a given condition. If the result is true, it performs the actions in the -then series of blocks; otherwise, the block tests the statement in the -else if section. If the result is true, it performs the actions in the -then series of blocks; otherwise, the block performs the actions in the -else series of blocks.”
The Initialize Global Name block: “is used to create global variables. It takes in any type of value as an argument. Clicking on a name will change the name of this global variable. Global variables are used in all procedures or events so this block will stand alone.
Global variables can be changed while an app is running and can be referred to and changed from any part of the app even within systems and event handlers. You can rename this block at any time and any related blocks referring to the old name will be updated correspondingly.”
The Procedure block: “collects a sequence of blocks together into a group. You can then use the sequence of blocks repeatedly by calling the procedure. If the procedure has arguments, you specify the arguments by using the block’s mutator button. If you click the blue plus sign, you can drag additional arguments into the procedure.
When you create a new procedure block, App Inventor chooses a unique name automatically. Click on the name and type to change it. Procedure names in an app must be unique. App Inventor will not let you define two procedures on the same screen with the same name. You can rename a procedure at any time while you are building the app, by changing the label in the block. App Inventor will automatically rename the associated call blocks to match.”
Pros & Cons
The knowledge gained from learning MIT App Inventor is transferable and will help you in understanding the logical steps you need to take when trying to code in a coding language such as python. Although it is different from other programming languages in the sense that you will not be typing the different statements to create the functionality needed to develop your program. You will be choosing from a selection of presets in the tab on the left-hand side of the program that allows you to do the same thing. As when trying to learn any other language, there are plenty of resources out there such as tutorials to help you.
App Inventor has become so popular with Android creators that there is now a large demand in the marketplace for similar programming for iOS devices. Because of consumer demand, MIT has created the App Inventor Companion for iOS, which is now in final beta testing, as of July 2019.
For all the MIT, App Inventor’s, positive points, it does come with its drawbacks or limitations. Its user interface lacks versatility, is still a bit buggy and limited. For instance, there are some glitches with orientation changes, and you are unable to create apps with multiple screens. Apps created with App Inventor also have limited access to the web because the API is not compatible with certain protocols unless you program or have someone else program an App Inventor compliant API that wraps an existing API. Lastly, the apps created cannot access the full functionality of your phone. For example, you are unable to save and retrieve files from the file manager and you only have limited access to the contacts list. Since MIT App Inventor is more of a learning tool to introduce someone to the world of app development and coding, it is not widely used to create apps among app developers.
In 2011, Google Labs closed, and Google’s rights were transferred to the Massachusetts Institute of Technology to continue the educational portion at MIT’s Center for Mobile Learning. Google provided the original funding to keep the project going with the understanding that it was important for educational purposes. The team, still led by Professor Hal Abelson, was joined by Professor Eric Klopfer and Professor Mitch Resnick. Here, the team focused heavily on the educational portion, developing an additional curriculum, and making them free to use for everyone, especially encouraging use by educators for computational thinking and computer science and to help with the development of critical thinking skills in youth.
As the use of technology becomes integrated into our daily lives, a deeper understanding of computational thinking is required. Those who choose to learn the principles of computational thinking will carry the advantage in our world. Online educational materials accessible by anyone are available to increase their knowledge, understanding, and skill. MIT App Inventor was primarily invented for anyone with an interest in building apps by giving them the tools necessary to solve problems. MIT’s Master Trainers program gives especial instruction to educators to help facilitate and “grow a global community of experts on mobile app development who are available to guide others through the exploration of mobile app creation…, thus providing a pathway into computer science, software development and other disciplines relevant in today’s digital world.”
Smartphones and tablets have become an integral part of our daily lives, providing us with life-changing features and yet most smartphone users have little to no idea of the processes behind their cellphone or tablet. The ability to call and talk to someone almost anywhere in the world at any time of the day is only the most basic feature that 100 years ago would have seemed unimaginable, let alone what cellphones are now capable of doing. There is an almost unlimited number of possibilities when creating an application for a smartphone in today’s world and the opportunities for solving problems we envision using new technologies are only growing.
The future we imagine today is not the future imagined by generations past. Our world requires us to adapt, to solve critical problems using computational thinking. Children are learning to use technology almost before they learn to speak. Their use of smartphones and tablets goes beyond the initial use of making calls and sending texts. Already, children and young adults are using technology to make changes in the world around them and to solve real-world problems. MIT App Inventor is just one tool that will help enable them to accomplish these goals. Our world will continue to change, and we must grow and adapt to it. Households will need to become increasingly technological and computationally savvy to succeed and compete in a global economy.