Week - 13         Interface and  programming

 

Interfacing development language and Platforms

 

A program is basically set of repeatable instructions to make a computer do something. It involves writing code instructions that will then be passed to a computer via a compiler.

A compiler is basically a translator from human to machine language.

 

Processing

Processing is an open-source programming language and IDE (that is very similar to Arduino in syntax) based on the Java language.

It comes with an easy-to-use, creative coding environment or IDE and has fantastic resources. If you are starting out Processing is a great way to learn how to code.

Good reference to work is Coding Train.

 

 

 

 

 

 

 

 

 

 

 

 

2. Grasshopper/FireFly

 

FireFly is what is called a visual programming add-on for Grasshopper (which works in Rhino CAD) which allows you to interact with the Arduino microcontroller and other input/output devices like web cams, mobile phones, game controllers and more.

 

 

 

 

 

 

 

 

 

 

 

3. Python

 

Python is a very popular high-level programming language for general-purpose use.

Python is an interpretive language which makes it really fast because it execute instructions directly and freely, but they tend to be slower when compiling low level machine instructions.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4. JavaScript

 

JavaScript is a full-fledged dynamic programming language that, when applied to an HTML document, can provide dynamic interactivity on websites.

It was invented by Brendan Eich, co-founder of the Mozilla project.

It has become increasingly popular because of it’s flexibility. Developers have written a large variety of tools such as Node.js which takes Javascript out of the browser.

 

 

MIT App Inventor

 

App Inventor for Android is an open-source web application originally provided by Google and now maintained by the Massachusetts Institute of Technology (MIT).

 

It allows newcomers to computer programming to create software applications for the Android operating system (OS). It uses a graphical interface, very similar to Scratch and the StarLogo TNG user interface, which allows users to drag-and-drop visual objects to create an application that can run on Android devices.

 

https://en.wikipedia.org/wiki/App_Inventor_for_Android

 

 

http://ai2.appinventor.mit.edu/

 

Thunkable

 

Thunkable works on the same principle as MIT App Inventor. In fact, the core idea of both the apps is the same as Thunkable originated from MIT app inventor. Two students who contributed to the development of MIT app inventor forked from the parent company to start their own called Thunkable.

 

 

 

 

 

 

 

 

 

 

 

https://thunkable.com/?gclid=CjwKCAjwur7YBRA_EiwASXqIHLAgHcU3DZikj8YXVa75jv9rWt1lQdwNr9GDENRg13xoRGtP_iAwaBoC33EQAvD_BwE#/

 

Thunkable offers the same services as MIT app inventor, but the major difference between the two is what is going to be discussed.

 

User Interface

 

The User interface is almost similar in both the apps meaning the placement of palette, components and properties but however, the overall look of the app is different in both. The MIT app goes with a lime green theme where the thunkable sticks to minimal white and red design. The buttons and icons look better in thunkable and have a more modern feel to it.

 

 

 

 

Features

 

Thunkable being a new company has many additional features when compared to MIT. They provide a range of customization options such as providing with options to upload the custom font to additional modules in the camera components.

 

User Interface Palette

 

90% of the options are similar in both the environments, however, thunkable has a few additional features like the floating action button, switch and toggle button. Floating action button comes under non-visible components while the other is basic functions as their name suggest.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Maps

 

MIT app inventor gives an additional tab called maps and various options with that to edit and interacts with the map. The Google map function in thunkable is under the visualization tab and does not offer as many options as MIT app inventor.

 

 

 

 

 

Artificial intelligence

 

Thunkable has an additional tab called artificial intelligence that provides features such as emotion recognition and image recognition. This is very useful for live interaction applications

 

 

 

 

 

 

 

 

 

 

 

 

 

Experimentals

 

Thunkable apart from possessing the same features as MIT app also has additional features like AdMob Banner, Ad Mob Interstitial, spreadsheet and push notification.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Properties bar

 

MIT offers customization such as bg color, font size, and color, text dimension. Thunkable offers the same with an addition of custom font face. The user can upload his/her desired font and use the same to design the app. This gives the designer much more option to make the app better. On the other hand, when it comes to color schemes MIT has an option of custom color where the user can enter his hash code or select desired RGB value, this option is not available in Thunkable, where the user is forced to select a color from the predefined palette

 

 

 

Learning

 

Both the apps have not compromised in educating the user about the features of the apps. There are video tutorials and docs that explain the features and how to use them. The guide in both cases is very simple and easy to understand.

 

Thunkable:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

The tutorials are split into different levels depending on the user's preferences to learn.

Then there are docs that are written documentation of the app.

 

https://docs.thunkable.com/thunkable-classic-android

 

There is an online community for thunkable that's super useful to chat with fellow users and clarify any doubt in case any arises.

 

https://community.thunkable.com/

 

MIT App Inventor:

 

The tutorials for app inventor is split as per topics and are super easy to understand

http://appinventor.mit.edu/explore/ai2/tutorials?

 

As in thunkable docs, MIT has a library to refer FAQ's, support etc.

http://appinventor.mit.edu/explore/library

 

The community is much better in Thunkable and MIT is not built as good as that. It is actually a google forum and is not very active.

https://groups.google.com/forum/?#!forum/mitappinventortest

 

Support

 

Another great aspect of using Thunkable is the support. The community provides the much-needed support but apart from that, there is alive chat option, where the user can communicate with one of the officials to clarify questions. This helps clarify queries much faster and MIT does not offer any such service.