This repository contains the source code and documentation of the Kinoma software platform. For a high-level overview of what you'll find here, see this document. Links to specific sections of this repository are provided below.
The build system for KinomaJS open source software supports building for Mac OS X, iOS, Android, Linux GTK, Embedded Linux, and Windows targets. The build system runs on Mac OS X (Yosemite and later), Windows (7+) and Linux (Ubuntu 14.04).
xsbug is a full-featured debugger for developers building standalone KinomaJS applications, shells, and tools on all devices running XS. xsbug supports over-the-air debugging of concurrent targets running on different devices. Similar to other debuggers, xsbug supports setting breakpoints, browsing source code, the call stack and variables. For more information about xsbug refer to the xsbug documentation. Instructions for building xsbug are included in the platform-specific build instructions.
Note: These resources are also available in the Develop Tab on the Kinoma website
Kinoma Create uses the KinomaJS application framework, so all source code, tutorials, and documentation listed above can be used as references for Kinoma Create developers.
The following resources are specific to Kinoma Create.
./kinoma/kpr/notes/create-notes/ contains the following references to help developers set up and properly use Kinoma Create:
Kinoma Element's form factor and resources demand the use of a lighter application framework than Kinoma Create. It therefore does not use the KinomaJS application framework detailed above. However, Kinoma Element and Kinoma Create offer many of the same software APIs so developers will often be able to re-use their code that communicates with pins, as well as many modules they create.
The source code for Kinoma Element is located in ./xs6/sources/mc/.
The source for Kinoma Code (originally called xsedit) is located in ./xs6/xsedit.
KinomaJS Blocks is a visual code editor designed to help developers build starter projects for Kinoma Create and Kinoma Element. The project is built on Angular 2(RC7) and runs in a web browser. The live version is hosted using Google App Engine, but you can modify and build it yourself by following the instructions in this document.
The Kinoma Porting Layer (KPL) is the bottom of the KinomaJS stack. It is a very light portability layer, modeled, as much as practical, on POSIX. Because KinomaJS runs on a wide variety of operating systems, the goal is to isolate all direct calls to the host operating in KPL. Some RTOS hosts do not support the full ANSI C library, so it cannot even be safely assumed that functions like printf are available. To avoid surprises with the size of types, a portable-type system modeled on that used by QuickTime is used.
KinomaJS builds for Linux-based systems use KPL. For historical reasons, the iOS, Mac OS X, Android, and Windows builds do not. They rely instead on conditional compilation. It is strongly recommended that newly developed ports of the Kinoma Platform be based on KPL rather than the older method.