Ion is a portable suite of libraries and tools for building client applications, especially graphical ones. It is small, fast, robust, and is cross-platform across many platforms and devices, including desktops, mobile devices, browsers, and other embedded platforms.
For more details and a fair amount of documentation see https://google.github.io/ion.
Why Use Ion?
- Small: < 500k binary size on mobile platforms, often much smaller
- Powerful: Tools for faster productivity when developing applications
- Robust, portable application infrastructure aids in:
- Object lifetime management
- Memory allocation
- Application start-up and static instances
- Run-time setting editing
- Automatic performance instrumentation
- Tools for graphics:
- Analyze graphics scenes to find performance bottleneck
- Trace all OpenGL calls and examine their arguments
- Use scene resources in multiple contexts, automatically
- Run-time graphics state introspection
- Run-time shader editing: change your shaders and immediately see the results
- Fast graphics: Minimal overhead between your application and OpenGL / ES
- Tested: Well-tested and facilitates testing your application
- ~100% test coverage
- Black- and white-box tested, unit tests and integration tests
- Mock implementation of OpenGL API allows direct renderer unit tests and validation
- Integrated Remote: extensible API allows changing arbitrary application settings on-the-fly for faster development, testing, and debugging
- Desktop: Linux, Mac OSX, Windows (OpenGL)
- Handheld: Android (ARM, x86 MIPS), iOS (ARM and x86), and their 64-bit variants
- Browser: Emscripten/asm.js, NaCl / pNaCl
- Used by many teams across Google, running on billions of devices through multiple Google products
NOTE: This is not an official Google product.