#Navigating the KinomaJS Application Framework Source Code and Documentation
Note: In this document, 'KinomaJS' refers to the JavaScript application framework for embedded devices created by Kinoma, not the entire Kinoma software stack.
The source code for the KinomaJS application framework is contained in kinomajs/kinoma/kpr. This document is an overview of what's there, complete with links to source code and documentation.
##Extensions
The extensions folder contains the source code for KinomaJS features related to network connectivity, including Wi-Fi configuration and a variety of network protocols.
###Network Protocols
KinomaJS has its own implementations of the following network protocols. Links in the Protocol column lead to the source code. The samples are part of our collection of KinomaJS sample apps.
Protocol | Documentation | Samples |
---|---|---|
CoAP | Creating a CoAP Client and Server in KinomaJS applications: Provides an overview of CoAP and explains how to use it in KinomaJS applications | coap-client coap-server |
HTTP | Embedding an HTTP Server in your Application: Describes how to start, stop, and customize your app's HTTP server | basic-web-service-request |
MQTT | ||
SSDP | Net Scanner: describes SSDP and how it's used on Kinoma Create | ssdp |
WebSockets | websocket-client websocket-server |
|
Zeroconf | Zeroconf troubleshooting guide: For developers who encounter problems when using Pins Sharing or other Zeroconf features | zeroconf |
##Libraries
The libraries folder contains several JavaScript libraries. Some are built-in to the platform, others must be added to the build path. The table below provides a description of each and links to the corresponding source code, documentation, and (where applicable) to samples that showcase them from our collection of KinomaJS sample apps.
Library | Description | Documentation | Samples |
---|---|---|---|
Controls | Templates for basic on-screen buttons, radio buttons, checkboxes, sliders, switches, and input fields | Adding User Interface Controls : Describes how to use a selection of sample modules and assets to create onscreen input controls. | [basic-checkbox] (https://github.com/Kinoma/KPR-examples/tree/master/basic-checkbox) controls-buttons |
Creations | Templates for frequently used UI elements, such as dialogs, headers, and graphs | - | level-meter This module is mainly used by the built-in apps on the home screen of Kinoma Create, rather than those in the samples repository |
HID | Allows you to make Linux platforms (e.g. Kinoma Create) act as an HID keyboard, a mouse, and/or gamepad | Prototyping Peripherals with Kinoma Create: Explains how to build peripherals using your Kinoma Create Version 2 with the KinomaJS HID library | hid-gamepad hid-keyboard hid-mouse |
LowPAN | BLLs for the KinomaJS BLE implementation; accessed through the Pins module. | KinomaJS BLE V2 API : Describes the class-based BLE V2 API, which supports both BLE central and peripheral roles. | ble-ancs ble-clapper ble-keyboard +many more Walkthrough tutorials available in our our hardware tutorials |
MobileFramework | A collection of templates for a variety of features useful for developing mobile apps, including scrollers, screen transitions, and headers/footers | - | basic-scroller basic-dialog menu-button +many more |
MultiTouchLib | Simplifies programming controls for devices with touch screens; includes multi-touch handling, swiping gestures, and more | - | multitouch-picture multitouch-slide-browser |
Pins | The API to communicate with the BLLs of sensors/external hardware attached to the pin connectors on Kinoma Create | See the Programming with Hardware links in the Kinoma Create section of the root README of this repository | digital-in-hello-world analog-starter pwm-tricolor-led +many more Walkthrough tutorials for a collection of common sensors are available in our our hardware tutorials |
Transitions | A collection of basic Transitions that can be used to switch between screens of an app | - | transitions serial-7segment-display |
##Projects
The projects folder contains tools built using the KinomaJS platform, including the Kinoma Create and Kinoma Element launchers.
###Kinoma Create
The Kinoma Create subfolder includes:
- The source code of the built-in apps seen on the home screen of Kinoma Create.
- The source code of the Pins simulators used when apps using built-in BLLs are run on the Kinoma Create simulator.
- Source code for the shells that host the Kinoma Create software in simulation and on the device.
###Kinoma Element
The Kinoma Element subfolder includes:
- The source code of the Pins simulators used when apps using built-in BLLs are run on the Kinoma Element simulator.
- The source code for shell that hosts the Kinoma Element simulator.
##Sources
The sources folder contains the C code that implements the KinomaJS application framework; in other words, it contains the native implementation of the JavaScript objects that KinomaJS applications and shells interact with.
##Notes
The tech-notes folder contains additional documentation on miscellaneous topics that may be of interest to developers:
- Realtime Cross-Device Communication with PubNub
- Garbage Collection in KinomaJS
- Using JavaScript 6th Edition Features in KinomaJS
- The Mystery of THEME
- Specifying Color in KinomaJS
- Introducing KinomaJS Dictionary-based Constructors and Templates
- Using Dictionary-based Constructors for KinomaJS Behaviors
- Using Fractional Coordinates for Animation in KinomaJS
- Playing Audio with KinomaJS
- Net Scanner
- Using DIAL to Launch Apps Remotely: introduction to the DIAL protocol, how to discover DIAL-compatible devices using Net Scanner, and how to add DIAL support to your KinomaJS app.
Note: These resources are also available in the Tech Notes section of the Kinoma website