AquaPrompt 1.2 Released
Compilers
What, nobody’s excited? Well, we are. Here’s why. We’re using the new Clang/LLVM compiler which features the latest and greatest technology. It won’t have much direct effect on you besides a slight speed increase, and in our apps the code is so highly optimized already that you probably won’t notice much of a difference. And yes, that’s the official logo at the right! Who could refuse a compiler with that cool of a logo?
It will, however, have an indirect effect in that it will allow us to debug our apps and strip out errors easier and faster. Any time we can have the compiler tell us that our code may cause an error, that’s one less error that has the potential to find its way into a shipping product. Technology like this allows us to innovate faster and more efficiently. So the end result is a better product simply because of the help it affords us.
The first product to be built by the new compiler is the upcoming AquaPrompt 1.2 release.
AquaPrompt Save and Load
Of course, it has the
ability to detect if the document has been
modified. And it’s really smart. If, for example,
you completely retype the document,
AquaPrompt will still know that it’s the same
document despite the fact that you retyped it and
will not bother to re-save what’s already there.
The new version 1.2 will be available within a
couple weeks, but there’s no way we’re putting a
set date on it — we learned several times that set
dates can backfire when you least expect them to,
especially for a small company with limited
resources. But we do promise it’ll be relatively
soon.
Extending Proof
The Proof architecture revolves around a central controller that manages different preview subcontrollers. Each subcontroller has its own code and views to handle specific types of files. If necessary, Proof could easily be expanded to support chaining, so a single subcontroller would have its own set of subcontrollers.
The benefit of this is that I can easily implement advanced preview features. One example is LaTeX. While Proof supports viewing the source, it doesn’t view a finished product (unless you export to a PDF first). But if I wanted to add live LaTeX previews, all I’d have to do is add a subcontroller to the text viewer module that would take control of .tex files. When asked if it could handle the file, it would check if TeX was installed. If not, it would simply ignore the file and it would be handled by the normal previewer, with full backward compatibility.
So that’s the next plan. LaTeX live preview support is coming, thanks to an anonymous contributor showing me the right commands to execute to generate the preview. Now I just have to figure out how to work them in (and learn the ins and outs of NSTask in the process). So while it may take a little while, expect this neat feature sometime in the future!
The really cool part about the Proof platform is that it can be easily opened up to third-party viewers. I don’t have much experience with actual plugins and security issues surrounding them (if anybody knows how to easily allow plugins to be loaded without any major trouble, let me know!) but a relatively easy way for me to do it would for developers to send me their viewer modules for me to integrate into the original application. I’m also considering making Proof open-source, although I’ve never handled that kind of thing before and I have no idea what’s really involved, so it’d be more of a trial thing, but I’d really like to keep it open. I’m considering using GitHub but if anybody knows which one works best or how best to manage something like this send me an email.

