Catroid Project
Web Page: http://goo.gl/z3stf
Mailing List: http://groups.google.com/group/catrobat/
Catrobat is a visual programming language and set of creativity tools for smartphones, tablets, and mobile browsers. Catrobat and the software developed by the Catrobat team are inspired by the Scratch programming system developed by the Lifelong Kindergarten Group at the MIT Media Lab.
Catroid is an Android app that allows to create and execute Catrobat programs on Android phones and tablets.
Catroid allows kids and teens from age 8 up to easily create Android apps using only their mobile device, without the need for an additional PC. Catrobat programs are assembled in a graphical “Lego”-type style as known from Scratch (only for PCs) or AppInventor (also needs a PC for develoment and is less oriented towards kids or teens). Paintroid is part of the Catrobat project and is a graphical paint editor for the Android platform that, among others, allows setting parts of pictures to transparent (pinch zoom up to single pixel level), which is an important feature if one wants to extract, e.g., one’s own head from a photograph while deleting all the background, or some other part from any image, in order to use the resulting shape as a graphical element inside one’s app.
Catroid’s Web 2.0 community site allows kids and teens to share their apps in a way similar to Scratch's community site, including the sharing and remixing of Catrobat programs under the AGPL license, the aim being to facilitate the learning of programming skills among kids and teens (and also older users). Typical users of Catroid would be, e.g. an 11 year old girl wanting to share her Hannah Montana animation with her friends, or a 15 year old boy wanting to implement a multi-player multi-touch space invaders game. Thus, usability is a major aspect of the project and is accorded top priority.
The motivation behind the Catrobat project is that programming is an important cultural technique on the same level as mathematics and physics, from a practical as well as from a philosophical point of view. Our aim thus is to popularize the skills needed to program from an early age on in a fun and engaging way that will facilitate the spread of its adoption among young people all over the world.
The Catrobat team released a first public beta in March 2012. There are several subprojects involving, e.g., the bidirectional coupling with an AR.Drone quadcopter, with a Lego Mindstorms robot, with a Robocup soccer robot via the Arduino open-source electronics platform, a program that allows to package a Catroid project as an apk file (i.e., as a stand-alone Android app), an HTML5 player (though not supporting all Catroid features as not all sensors etc can be accessed), a localization / internationalization support site (we currently support several languages, with speakers of English, Mandarin, Cantonese, Hindi, Arabian, German, Turkish, French, Japanese, Urdu, and Malaysian in the team), and the building of an engaging tutorial game inspired by the funny tutorial of Nintendo’s Wario Ware: D.I.Y. programming game for the Nintendo DS.
The Catrobat team currently is composed of more than 100 active developers. We use the test-driven development method (test-first style; tests used as declarative executable program documentation) with several additional practices from extreme programming such as ping pong pair programming in frequently changing pairs, kanban system, very clear self-explaining clean code (including test code; no comments in code unless not expressible in the code itself; no prose documentation), continuous usability consideration (paper prototyping on a daily basis, the personas method, usability expert feedbacks, and usability tests with children), continuous integration using git, automated unit-, functional-, regression-, and monkey-testing, permanent refactoring, the YAGNI principle, and collective code ownership. External contributors will need to follow our test-driven development method. While we minimize the amount of test code and are very pragmatic, please understand that we are concerned of producing high quality and highly maintainable code that can be extended and refactored without the need for direct human communication, and without the need to refer to non-executable documents.
Projects
- Brick cut, copy and paste functionality across projects + smart multiselection move The main goal is to implement copy, cut and paste functionality for sounds, looks and bricks. (source: catroid idea page)
- Catrobat textual language representation I'd like to create more readable, flexible and clear textual representation of Catroid programs. It should exclude unnecessary information, be easy for understanding and creating programs in text form.
- CATROID AS A WIRELESS HUMAN INTERFACE DEVICE (GAMEPAD, MOUSE, KEYBOARD) FOR PCS DEVELOP OWN GAMEPAD FOR PCS The idea of this project is a functionality for Catroid that allows children to program their own gamepades and control with them other devices like a pc or a SmartTv.
- Create your own bricks and edit existing bricks in Catroid I want to implement user defined bricks in Catroid. This would be like allowing the user to write functions that they can call later. After I do that, I would be interested in enhancing the social/sharing features of Catroid by allowing users to share their custom bricks. Finally, I would hope to make Catrobat more powerful so that much of the Stage and the built-in blocks can be implemented in Catrobat itself.
- Implementation of a simple object recognizer for Catroid Pocket Code is a visual programming language for smartphones, tablets and mobile browsers. At this GSoC Project I will develop camera access for the Android part of Pocket Code ("Catroid").
- Layers in Paintroid I want to introduce layers in Paintroid. It shall work like the layers in well known application and its use shall work intuitively.
- Remix Visualization Proposal for remix visualization project.
- Sound- and Speechrecognition for Catroid My name is Krell Sebastian, I'm student at Graz University of Technology. I’d like to implement the functionality of recognising sounds and spoken words into Catroid using a new brick.
- Tagging and Recommender System To incorporate a Tagging mechanism into Catroweb, and employ it to create a Recommendation engine that improves the overall UX of Catroweb and hence in total, the Catroid application.