Development Restructure Structure

Announcing: Restructure 1.0.0

In the process of writing Formula Control, I decided it was time to rethink my SQLite wrapper, Structure. I started writing my original library when Swift 1.0 was announced. It was migrated through the big language transitions of Swift and was starting to show its age. The framework was also my first attempt at writing a Swift library and a SQLite wrapper, so I didn’t know what I needed and which features were overkill.

And so Restructure was born. The new framework simplifies the API I had created before, hiding relationships between statement and database, and removing internal queueing that was never necessary. It adopts many more datatypes, and makes it easier to work with more complex datatypes like arrays and dates.

Along with a clean up, Restructure also adopts more modern features of Swift. Statements are also Sequences, so now results can be iterated, mapped, reduced, or anything else a Sequence can do. Statements are Encodable and Rows are Decodable, making transitions between database and data structure seamless.

Check it out on GitHub. There are examples and unit tests to learn form.

Development Structure

Structure 1.0.1

Structure 1.0.1 has been released. This release brings minor changes to best practices for Swift. Specifically:

  • Audited closures for use of @noescape.
  • Audited parameter throws for use of rethrows.
  • Concurrency testing.
Development Structure

Announcing: Structure 1.0

Before Swift, projects that I worked on used SQLite directly. I could have done the same with Swift, but it felt like I could benefit from writing a wrapper. I used this as a means to teach myself Swift, as well as create something that I could reuse throughout my projects.

Enter Structure! Structure is by no means a complete SQLite wrapper. This framework performs the basic CRUD operations I need, as well as maintain some semblance of thread safety. It also provides simple data access and value transformations.

If you’re curious, check out the GitHub page. There is some simple documentation and lots of tests to get a feel for how the framework works.