Posts tagged with “tvOS”

Ejecta 2.1

Version 2.1 finally marks the point where Ejecta feels like a first class citizen on iOS. The updated JavaScript Core API on iOS 10 now provides an API to read and write Typed Arrays from JavaScript natively, which speeds up many WebGL operations and direct pixel manipulations in for Canvas2D.

Ejecta 2.1 makes use of this new API - this streamlines the whole internal design, making Ejecta's code more elegant and straightforward then ever.

I previously wrote a lengthy blog post about the ordeal and hoops we had to jump through with Typed Arrays before this new API became available. You can read about my whole journey over at phoboslab: The Absolute Worst Way To Read Typed Array Data with JavaScriptCore.

Screenshot from my Wipeout Model Viewer running in Ejecta

Of course Ejecta 2.1 also comes with a lot of bugfixes and small improvements.

Ejecta 2.1 requires XCode 8.0 to compile and runs on iOS 10 and tvOS. As always, the newest release can be found on the Ejecta project page. If you need compatibility with an older iOS version, please use the 2.0 release.

Wednesday, September 21st 2016 / Tags: Releases, iOS, Ejecta, tvOS

Ejecta 2.0

After more than a year since the last release, Ejecta 2.0 brings support for Apple's tvOS, the Gamepad API and dozens of bugfixes.

This release is called 2.0 mainly because it marks a major change in how Ejecta is built up internally. Previous versions of Ejecta used a custom fork of the JavaScriptCore library. Even though JSC has been a public API on iOS for a while now, missing support for Typed Arrays prevented us from using the JSC lib provided by the system. Current versions still don't have an API to deal with TypedArrays, but Ejecta now works around this issue.

Without the custom JSC lib, Apps build with Ejecta can now be as small as 1 Megabyte, instead of ~12 Megabyte previously. However, using the system provided JSC lib also has its downside: reading and writing of Typed Arrays in native code is now a good deal slower than it was previously. This only affects WebGL and the get/setImageData() for the Canvas2D and is still plenty fast for most use cases.

Support for Apple's new tvOS platform is also a major milestone. tvOS doesn't support any Browser or WebView, which makes Ejecta the only viable way to bring HTML5 Games and Canvas animations onto the Apple TV.

Ejecta 2 requires XCode 7.1 to compile and runs on iOS8 or tvOS. As always, the newest release can be found on the Ejecta project page.

Thanks to everyone who contributed and reported bugs!

Ejecta, running on the new Apple TV


  • Added tvOS support
  • Added Gamepad API
  • Added support for gradient and pattern strokes
  • Added support for sending Array Buffers for XMLHttpRequest
  • Added Audio readyState property
  • Added Audio playbackRate property
  • Added support for changing orientation in running App
  • Added antialias support for WebGL
  • Removed custom JavaScriptCore fork
  • Removed deprecated pixel auto doubling for Canvas2D
  • Use XIBs for launch screens where possible
  • Allow arbitrary retina scale (i.e. 3x for iPhone6)
  • Smarter console.log() – logs only 2 levels deep
  • Images are now lazy loaded on first use
  • + ...countless bugfixes
Friday, December 18th 2015 / Tags: Releases, iOS, Ejecta, tvOS