Skip to content
jorgesilva edited this page Feb 6, 2013 · 16 revisions

If you are interested in contributing code to the Tecla Access project, follow the steps below:

1. Become familiar with the project.

Tecla Access is a set of tools that provides access to mobile devices, such as smartphones and tablets, for those who are unable to manipulate them due to disease or disability.

To learn more about Tecla Access you can watch the Tecla Access YouTube playlist. However, the best way to become familiar with the Tecla Access project is by using the Tecla Access app for Android. The video here will guide you through the process of downloading, installing and configuring the Tecla Access app on an Android device. The video also explains how to enable the full-screen switch mode, which will demonstrate how the device would be controlled using a single switch. Please note that it is not necessary to have an Android device, nor a Tecla Shield unit in order to understand how the Tecla Access system works. Developers who do not have the hardware can still use the Android emulator from the Android SDK to run and test the application.

2. Sign up to the mailing list

Once you have a better idea of how the Tecla Access app works, you can sign up to the development mailing list at: http://komodoopenlab.com/mailman/listinfo/development_komodoopenlab.com Use this list to submit any questions you may have about using or developing for Tecla Access, but please make sure to browse through the archive first in case your questions have already been answered.

3. Set up your development environment.

If you are planning to work on the Tecla Access app for Android, follow the steps below:

  1. Download and install the Android ADT Bundle for your Operating System
  2. Fork the TeclaAccess repo at https://github.com/idrc/TeclaAccess. For detailed instructions visit http://help.github.com/fork-a-repo/
  3. Fork the InputAccessLib repo at https://github.com/idrc/InputAccessLib. For detailed instructions visit http://help.github.com/fork-a-repo/
  4. Check out the develop branch on both repositories.
  5. Import the TeclaAccess source (TeclaAccess/source folder) into a new Android project in Eclipse. Use the API level 9 (Android 2.3.1) as the target of your project.
  6. Import the TeclaFramework source (TeclaAccess/framework folder) into a new Android library project in Eclipse. Use the API level 9 (Android 2.3.1) as the target of your project.
  7. Import the InputAccessLib source into a new Android library project in Eclipse. Use the API level 9 (Android 2.3.1) as the target of your project.
  8. Go to the project properties of your Tecla Access project and add the projects TeclaSDK and InputAccessLib as libraries.
  9. You should now be able to compile the project
  10. Before you start coding, please study [this branching model] (http://nvie.com/posts/a-successful-git-branching-model/) carefully. It will save everyone in the team a lot of time and effort incorporating your changes if your contributions follow that model. In particular:
  • ALWAYS pull from the develop branch, do not work out of the release branch
  • ALWAYS create a new branch when you start working on a new feature
  • ALWAYS make your pull requests against the develop branch
  1. Hack away! And do not hesitate to post an email to the list if you have any questions!

4. Resolve an open bug.

We request all new developers to resolve an open bug as a way to introduce themselves to the Tecla Access developer community. This will ease your transition into the team as it demonstrates the following:

  • That you have a clear understanding of the goals of our project,
  • That you have set up your development environment,
  • That you are familiar with distributed version control (i.e., git and github),
  • That you are ready to start coding,
  • That even if you haven't contributed any code to a particular platform or open source project before, you can learn quickly.

You are also welcome to work on an issue or suggested feature that you have identified as long as:

  1. A new issue has been opened for it, and
  2. The issue has been approved by a member of the core development team (you can post your request for approval to the development mailing list)

The list of open bugs for the Tecla Access app for Android is available at: https://github.com/idrc/TeclaAccess/issues

Note that the Tecla Shield has its own separate repo at: https://github.com/komodoopenlab/TeclaShield

5. Understand the current priorities

Fixing bugs is a great way to get your feet wet and start getting yourself some respect from the Tecla Access developer community, but if you are taking a year off to 'find yourself' or you are looking to impress your prof with an amazing term project, you should definitely get involved in our longer term goals and priorities. This is also the best way for Google Summer of Code applicants to increase their chances to be selected for the program.

Input source integration

Currently, switch events from the Tecla Shield are transferred to the Tecla Input Method (Tecla keyboard) for key simulation via the Switch Event Provider. This works well but is complicating the logic for processing of switch events from sources other than the Shield (e.g., phone sensors, fullscreen switch). As a result, we are forced to duplicate switch processing for each source. Our current goal is to resolve this issue by merging the switch event provider into the Tecla Input Method. This will be done indirectly, taking advantage of the ability to extend classes in Java. Thus, the goal is to work on a library framework that extends the InputMethodService class and which can be imported into any IME in order to make it Tecla-compatible.