In this research, the main objective is to develop an intuitive control API in Catroid to improve its usability as a graphical programming tool for children and to study the human-mobile interaction and experience enabled by this control API. Another goal is to develop this control API in open source development method and benchmark it with the typical software development method. However, currently Catroid does not have control API support to develop intuitive user interaction with the application.
This research examines the maximum programming power of Catroid and the advancement of the control API in Catroid to a more intuitive form. The intuitive control API that integrates phone sensors will further enhance user interaction and experience when using Catroid and the application. Accelerometer and orientation sensor are implemented in this control API, with each of the sensors having three different contributions.
Background
If you tilt the phone to the right, the plane moves smoothly to the right side of the screen. If you tilt it to the left, you have the plane to go in the opposite direction.” (Catroid, 2011). The researches and studies prove that sensors are widely used in most mobile applications on Android devices to create intuitive controls in applications.
Problem Statement
Objectives
Scope of Study
- Introduction
- Definition of Intuitive in Control
- Conceptual Elements of Catroid
- Children Programming Tools –Control and Concept
- Smartphone Operating Systems
- Catroid Development Tools & Methods & License
- Open Source Development Method
Catroid is an open source (Perens, 1999) Android software that supports a Lego-like graphical programming language designed specifically for children. Users commented that the techniques were "intuitive and easy to switch to different modes", "simple and magical" or that "the icons are alive!". In the development of open source software, the participants, who are mostly volunteers, are distributed across different geographical regions.
Open Source Development Methodology is not the newest but the most popular method adopted in smartphone application development. Catroid is an open source that adopts OSDM, so this project will adopt OSDM with extreme programming development methodology. There are several compatible licenses for open source software, such as the GNU General Public License, Creative Common Attribution License, GNU.
- Introduction
- Previous Related Work
- Research Methodology
- Open Source Development Method
- Test-Driven Development Method
- Technical Specification Design
- Technology Used
In the open source development model, the first phase is started by identifying existing projects that need further improvement and the problem in existing projects. The identified issues and ideas are posted online at Google Code Hosting (Appendix 4) and the Android community website to find volunteers to form the development team. This project managed to get the Software Technology Department in TU Graz, Austria, the founder of Catroid, to provide remote support and assistance.
A work plan, which is this proposal, is made to outline the important elements in the development of this project. This review phase is very important to eliminate errors in code and for benchmark evaluation. The first prototype in this project is given to a selected target group to perform project evaluation and redefine the user requirements.
After testing by the target user, bugs and errors are identified and the project development phase is repeated back to start for planning or run for coding. Open source software is long-term software in steady development, the development has no end because the software develops together with the users. The accelerometer and digital value then change when the Android device is tilted or manipulated.
Integrating the SDK with Eclipse simply required downloading the Android Development Tools (ADT) Plugin (Android SDK). The Android platform is specially designed for Java as it is available on many different platforms. To get started, the Android SDK and Eclipse ADT plug-in were required (Android SDK).
The Android SDK comes with an emulator that simulates a clean install of an Android device.
- Deliverable’s Interface
- Sensor variables
- If-Then-Else Command Block
- The Mechanism of Intuitive Control API
- Sensor Coordination System
- The Intuitive User Interaction & Experience
- Open Source Development Method Benchmarking
The values of both sensors are implemented as a variable/parameter named X-Sensor, Y-Sensor, Z-Sensor, Azimuth, Pitch and Tilt. These variables can be assigned or removed from any text box in command blocks using the Formula Editor as shown in Figure 15. In the Formula Editor, clicking on one of the 6 sensor variables will add the corresponding variable identifier to the text box and a text box for sorting. The layout of the Formula Editor and how it works is done according to the 6 rules in Schneiderman's Eight Golden Rules: command display.
Figure 18 is the interface of the If-Then-Else command block to be used together with the sensor variables to create intuitive control. The layout of the If-Then-Else Command Block is following the layout of the Control Categories to try for consistency and has 2 text fields and a logical operator. When a sensor variable is assigned to one of the fields in the If-Then-Else command blocks, intuitive control takes place as in Figure 19.
When a device is held in its default orientation, the X-axis is horizontal and points to the right, the Y-axis is vertical and points up, and the Z-axis points out of the screen. Android's sensor APIs define the sensor's coordinate space relative to the top and sides of the device - not the short and long sides. This reduces the usability of the intuitive control command blocks, and users will have to consider this complicated coordination issue whenever they program in Catroid.
The intuitive control API can program different intuitive user interactions in Catroid depending on the creativity of the programmer. The script tells that particular Sprite to say the direction the top of the device is pointing. The script tells that sprite in question will move to the left if the right side of the device is raised and vice versa.
The strict coding style and testing projects can help improve the security of the software and ensure the compatibility of the implementation of new features.
Conclusion
When a sensor variable is assigned to one of the fields in the If-Then-Else command blocks, intuitive control is developed. The statement blocks between the If statement statement block and the End of If statement block will be executed whenever the logical condition in the If statement is true. There are various intuitive user interactions in Catroid that can be programmed with the intuitive control API depending on the creativity of the programmer.
The commonly used intuitive user interactions are shake, track direction, titles and spin movements. This project chose to adopt open source development method to compare it with the typical software development method. Its features and best practices can improve code quality, communication, efficiency and performance that typical software development method could not achieve.
In addition, the open source development method reduces the risk of the software not meeting the user requirement. Overall, this project has a significant impact on the programming power of Catroid and its user experience. This project will bring the programming language for children to the next higher level and subsequently improve the usability for beginners, both children and adults.
Recommendation
Catroid - a scratch-inspired on-device visual programming language for android - google project host Retrieved from http://code.google.com/p/catroid/. GNU affero general public license - GNU Project - free software foundation (FSF) Retrieved from http://www.gnu.org/licenses/agpl.html Gartner says android will command nearly half of smartphone operation worldwide the world. Open Source Software Development Retrieved from http://chinese-school.netfirms.com/computer-article-open-source.html.
Rules of Clean Code
No Discrimination Against Subjects – Restrictions that prevent the use of the software by a particular company or area of research are not allowed. License must not be specific to a product - Rights associated with a program must not be contingent on that program being part of a specific software distribution. License must not restrict other software - The license must not restrict other software distributed with the licensed software.
License Must Be Technology Neutral – No provision of the License may be based on any individual technology or style or interface.
Gantt Chart of Project Tracking
GNU AFFERO GENERAL PUBLIC LICENSE …
The "source code" of a Work means the preferred form of the Work for making modifications to it. The Corresponding Source need not contain anything that users can automatically recreate from other parts of the Corresponding Source. Inclusion of a covered work in an aggregate does not mean that this License applies to the other parts of the aggregate.
A shareable piece of object code whose source code is excluded from the Corresponding Source as a System Library should not be included in the working stream of the object code. You are not required to accept this license to obtain or run a copy of the Program. You may not impose any further restrictions on the exercise of the rights granted or asserted under this License.
"Contributor" means the copyright holder who permits the use of the Program or the work on which the Program is based under this License. This corresponding source includes the corresponding source for any work covered by version 3 of the GNU General Public License that is incorporated in accordance with the following paragraph. The terms of this license will continue to apply to the part of the covered work, and the work with which it is combined will continue to be governed by version 3 of the GNU General Public License.
The Free Software Foundation may from time to time publish revised and/or new versions of the GNU Affero General Public License. If the Program does not specify a version number of the GNU Affero General Public License, you can choose any version ever published by the Free Software Foundation. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.
You should have received a copy of the GNU Affero General Public License with this program.
Wiki Page of Control API for Catroid