Cappuccino in action

This is the first in a series of articles where the community can showcase what they are doing with Cappuccino.

In this blog post I will briefly explain what we are doing here at Nuage Networks, why we chose Cappuccino, why we love it, and what we’ve done with it.


Cappuccino News 2014 July 14th

Here's a quick update on what's new with Cappuccino for the last two weeks.


New features


Cappuccino News

Here's a quick update on what's new with Cappuccino this past month.

New features

  • Some major features have been added to xCodeCapp:
    • xCodeCapp has been upgraded to version 3.1.
    • You can update Cappuccino from xCodeCapp.
    • You can check the code style (capp_lint) of the current project from xCodeCapp.


Building Cappuccino Documentation

In this post I will explain how you can use the jake command to build the Cappuccino documentation straight from the source. I will cover building both the HTML version of the source, as well as a DocSet version suitable for use in Dash or XCode.


Cappuccino 0.9.7

After nearly a year's worth of work we are truly excited to introduce Cappuccino 0.9.7, a major update to the Cappuccino framework featuring a massive number of new features.

Since Cappuccino is such a wide framework, ranging from a low foundations such as our Objective-J compiler, all the way up to the full featured, fully themable UI kit AppKit, it's incredibly hard to summarise all the changes. But here's our best stab at it:


Cup - The File Upload Framework

A common need for Cappuccino apps is the ability to upload files. Until now, the only native Cappuccino upload solution was DeepDropUpload by David Cann. While DeepDropUpload works, it hasn't been updated in two years, and it doesn't integrate directly with Interface Builder.


The New Objective-J 2.0 Compiler

The new Objective-J 2.0 compiler has three components: tokenizer, parser and code generator. The merging of this pull request brought major improvements to the tokenizer and code generator.

Tokenizer improvements: macros and preprocessor directives


The Node Project - Take 2

The time has come to move Cappuccino to Node.js. Why move to Node? There are three main reasons:

1. Cross-platform parity

Cappuccino's build system is built on top of narwhal + rhino (jsc on Mac OS X). Rhino/jsc is the Javascript engine, narwhal is a set of libraries that interface with the host system. Rhino requires Java and is very slow. Narwhal has been abandoned. In addition to these dependencies, our current build system relies on Posix binaries to overcome limitations in narwhal.


Pass by Reference

Objective-J 2.0 now supports pass by reference using the new @ref and @deref syntax. Pass by reference allows you to store a reference to a variable in a different variable and then to pass it around. Among other things this makes it possible to send a message which returns multiple values (one as the return value, and an arbitrary number as output variables).


Dictionary Literals

Support for dictionary literals has today been added to Objective-J 2.0 in Cappuccino master. A dictionary literal allows you to allocate a CPDictionary with specific contents in a concise and readable manner.