SnapCode is the first real Java IDE in the browser. This means it's the first written entirely in Java, the first that compiles in the browser, and the first to run compiled apps in the browser. SnapCode is enabled by SnapKit, a new Java UI toolkit for desktop and browser that runs natively in the browser - meaning it uses browser rendering technologies (WebAPIs) for vector graphics, text, images, effects and 3D. SnapCode browser is also enabled by CheerpJ, a new JVM for the browser.

This talk will cover the technologies used and developed to bring SnapCode to the browser:

  • The SnapKit UI classes to render components and graphics on desktop and browser
  • The SnapKit 'snp' file to define UI in XML, separate from code, with SnapBuilder UI builder
  • The SnapKit ViewOwner controller class to easily create, initialize, reset and respond UI
  • The SnapKit parse package to quickly create parsers from a simple grammar file with handler classes
  • The SnapCode javakit package to parse Java files, statements, expressions and REPL
  • The SnapCode javatext package to edit Java with code completion, syntax coloring, etc.
  • The CheerpJ JVM, to easily run full featured Java in the browser
  • Bonus: SnapKit 3D APIs to run with OpenGL on desktop and WebGL in browser