Skip to content

Latest commit

 

History

History
 
 

documentation

Moddable SDK – Documentation Overview

Copyright 2019-2020 Moddable Tech, Inc.
Revised: December 4, 2020

This directory contains documentation for the Moddable SDK.

Getting Started

The Getting Started Guide provides step-by-step instructions for installing, configuring, and building the Moddable SDK for macOS, Linux, and Windows. It also provides instructions for keeping the Moddable SDK tools and build environment up to date over time.

Guides for working with specific microcontrollers supported by the Moddable SDK are in the devices directory. These include links to additional detail for specific development boards including Moddable One, Moddable Two, and Moddable Three.

API Documentation for Modules

The JavaScript APIs for the modules in the Moddable SDK are documented in the following files:

  • Base: Fundamental runtime capabilities including time, timer, debug, instrumentation, and UUID
    • Setup: Using setup modules to configure a host before other modules execute
    • Worker: Using Web Workers and Shared Workers
  • Commodetto: Bitmap graphics library including parsing and rendering of BMP, JPEG, and PNG images, and BMFont files; classes for operating on bitmaps, and pixel format conversion
    • Poco: Examples and reference for using the JavaScript and C APIs of the Poco renderer
  • Crypt: Cryptographic primitives
  • Data: Base64 and hex encoding and decoding
  • Files: Storage capabilities including files, flash, preferences, resources, and ZIP
  • Network: Network socket and protocols built on socket including HTTP, WebSockets, MQTT, mDMS, DNS, SNTP, telnet, and ping; also, Wi-Fi APIs
    • Secure socket: Using the TLS /SSL and managing certificates
    • BLE: Creating Bluetooth LE clients and servers, including a guide to examples
  • Pins: Hardware protocols including digital (GPIO), analog, PWM, I2C, SMBus, and servo
    • Audio out: Playing audio and adding audio data to projects
  • Piu: User interface framework
    • Die cut: Using complex clipping shapes with Piu
    • Expanding keyboard: Adding an animated expanding keyboard to Piu projects
    • Keyboard: Adding a touch keyboard to Piu projects
    • Localization: Using JSON data to efficiently localize Piu applications

XS JavaScript Engine

The xs directory contains documentation about the XS JavaScript engine.

  • ROM Colors: Optimization applied by the XS linker to improve look-up speed of properties of objects stored in ROM
  • XS Conformance: Detailed test results for XS from the test262 language test suite
  • XS Differences: Discussion of design considerations for implementing JavaScript for a resource constrained target
  • XS Platforms: Porting XS to a new host
  • XS in C: API to bridge between C and JavaScript code
  • XS linker warnings: Discussion of warnings given by the XS linker when preparing code to be stored in ROM
  • Handle: How native implementations of JavaScript classes can reduce memory fragmentation
  • Mods: Working with archives of precompiled JavaScript modules (mods)
  • Preload: Reducing memory use and start-up time of JavaScript modules
  • xsbug: Using xsbug, the source-level debugger for XS
  • xst: Using xst, the command line tool for running test262 conformance tests

Developer Tools

The tools directory contains documentation for developer tools.

  • Tools: Command line build tools including mcconfig, mcrez, png2bmp, xsc, xsl, and desktop simulator
  • Manifest: Explanation of the JSON manifest files used to configure the build of projects
  • Defines: Using the project manifest to configure native code options