Weekly update: Zircon

This week was mainly spent with preparing for the next major release and upgrading stuff. Nothing fancy was done this week, just hard work: code cleanup, testing, and some streamlining:

  • A pretty old issue was finally closed: the TextArea was refactored and now it implements the Operational Transformation model for text editing.
  • Added ComponentMetadata which holds all the necessary data for Components. This greatly simplified the way Components are created
  • Fixed an error in the RadioButton which was reported by @Milo
  • Added Observable which is just a pub/sub tool for event handlers
  • Now you can have Positions with negative x and y coordinates. This was an unnecessary limitation as /u/coldwarrl pointed out so we removed it and added checks where negative Positions wouldn’t make sense
  • Fixed Boundable because it was a code smell for a long time now. It turned out that some classes like TileGrid and TileGraphics don’t need Boundable at all, they just need a simple Size (width + height). This lead to a significant simplification in code.
  • Introduced TileComposite which is the common parent of TileImage and DrawSurface. This was also a code smell which I had no proper solution for a long time, but now everything is in place
  • The JaCoCo setup for coverage was also upgraded. Now it properly reports coverage data
  • Since we are close to release and all the features are complete it is customary to refurbish tests. 3 bugs were luriking in the codebase (so far) which got fixed after tests were added for some cases. I was surprised to see that Zircon now almost has 1000 tests in place.
  • The Builders got cleaned up and their API got streamlined.
  • We’ll add Kotlin builders for Kotlin users soon next to the Java-friendly Builders we have currently.

A next major release is coming up for this Autumn, so stay tuned.

Do you have questions? Ask us on our Discord Server.

If you like what we do and want to support us consider becoming a Patron.