Week 16

May 8. Interface and Application Programming



Group Assignment

Compare as many tool options as possible

Qt

  1. Background
    • Qt is developed as a free and open source software through the Qt Project, where both the community and developers of Nokia, Digia and other companies participate. Previously, it was developed by the Qt software division of Nokia, which came into force after the acquisition by Nokia of the Norwegian company Trolltech, the original producer of Qt, on June 17, 2008. Qt is distributed under the terms of the GNU Lesser General Public License and others. On the other hand, Digia is in charge of commercial licenses of Qt since March 2011.
    • Qt is used in KDE, desktop environment for systems such as GNU / Linux or FreeBSD, among others.
    • Qt uses the C ++ programming language natively.
  2. Pros
    • It's cross-platform and it uses the system's resources to draw windows, controls, etc so your application will get a native look (e.g on a Mac your app window will be lacking the menu bar and the menu bar will appear on the system's menu bar as it is the standard behavior on the Mac platform).
    • Writing in C++ gives you great control, the possibility to work with fantastic libraries like the STL, Boost, etc; and your code is compiled to native binaries that will run at full speed without the need for a virtual machine.
    • Qt is open source and is developed by the Qt Group (formerly Trolltech) at Nokia so you have a very large enterprise maintaining it with the support from the community and ensuring it's evolution.
    • QT isn’t simply a user interface library, so when you want to write an app for Windows and QT, you will write it in C++ and it will be uncomplicated to change it to work with Android, as there exist cross-platform modules, like database, media playback, networks, and so on. It is vital for testing. The support of docs and tools are on a good level as well.
  3. Cons
    • The fact that it uses a metaobject compiler adds a bit of complexity to the build process and is just kind of ugly on an aesthetic level. People who write C++ like C++. They don't want to write to some third-party extension to C++; that is, think of the vitriol we see when Microsoft designs frameworks like this.
    • Because of the metaobject thing and other issues, it is a lot easier to develop Qt applications using QtCreator but you might not want to because you might happen to like your normal C++ development environment.
    • Qt tends to re-invent the wheel instead of relying on the standard library; e.g., do we really need yet another string class? I understand this is mostly for historical reasons but it is annoying nonetheless.
    • The time of startups of applications is long without using Qt Quick Compiler, and to get this, you must obtain the Commercial version of Qt.


Processing

  • Background
    • Started by Ben Fry and Casey Reas in 2001
    • Created as a form of providing a way to code to non-coders, visual types
    • Software sketchbook
  • Pros
    • Free and Open Source
    • Runs in Mac, Windows & GNU/Linux platforms
    • Really good for creative types
    • Great community that adds libraries and tools constantly
  • Cons
    • Don't have full control over code
    • Not great with system resources
    • As in any open source language, the constante evolution can become confusing over time
    • Multi-Platform but not yet available for iOS


App Inventor

  1. Background
    • App Inventor for Android is an open-source web application originally provided by Google, and now maintained by the Massachusetts Institute of Technology (MIT), which allows newcomers to computer programming to create software applications for the Android operating system (OS).
  2. Pros
    • Easy and intuitive
    • You can work online
    • It is very less time-consuming; you can develop an App in less than one hour.
    • Access to most of the phone's functionality: phone calls, SMS texting, sensors for location, orientation, and acceleration, text-to-speech and speech recognition, sound, video, etc.
  3. Cons
    • It’s not possible to generate Java code for deeper developments.
    • Only for Android, IOS is excluded.


Software

description

Scenarios Process

I decided to keep on going with the watercolor approach for the scenarios and this meant I had to actually draw and paint before including them in the app.

Basic App

Basic Function of the App without connection with tha electroncis yet.

Story in App

The App reads a QR Code, lights a lamp and starts telling a short story automatically.

Instructions

  1. To make the most out of this project I decided to create the app for my final project
  2. The investigation on native apps for iOs and Android gave me the idea of just doing for iPhone (my current cell phone), after a few more days of investigating I found Flutter. whichs is google's UI toolkit to create apps. Its compiler is DART and creates native apps for different operating systems with minor effort.
  3. Flutter is free and open source which alligns with the Fab Academy experience.
  4. The App reads a QR Code to identify which story to present. For more information go to Final Project.
  5. The app interacts with the lamp started on the outputs an dinputs by including the networking project.