Atlas: a visual IDE for desktop-like web apps

With its Atlas IDE for building web apps in Cappuccino and Objective-J, …

Dragging a connection between the RSS controller and a button in the interface exposes the possible methods that could be attached to the button.

280 North has already made two major breakthroughs in building its web-based presentation app 280 Slides. First, it created the Objective-C-like superset of JavaScript called Objective-J. Then it re-implemented much of Apple's popular Cocoa APIs in the web-oriented Cappuccino. Now, its latest project, Atlas, represents perhaps a third breakthrough: a visual integrated development environment for building the next generation of desktop-like web applications.

"Atlas is designed to make it much easier to design, prototype, and build a Cappuccino application," 280 North co-founder, Ross Boucher, told Ars. "By removing the most tedious and repetitive code, and by making the design process visual like it should be, [developers] can be much more productive."

But the power of Atlas isn't just that it lets a developer visually design the user interface, or manage the underlying "business logic" code. "We're also interested in exploring ways to improve the entire development process, including integrating the visual layout editor and code editor, and building in pre-built 'controllers' that know how to talk to existing web services," Boucher said. Using these pre-built controllers, it's possible to develop apps in Atlas almost completely by drag-and-drop.

For those with even a passing familiarity with Mac OS X development, let's extend the Apple analogy a bit further. Mac OS X developers write code in Objective-C, using Cocoa frameworks, in Xcode, and design the UI in Interface Builder. 280 North envisions web app developers writing code in Objective-J, using Cappuccino frameworks, in Atlas, and also designing the UI in Atlas. "Atlas is like Xcode and IB combined—and hopefully with some cool features that neither of them has," said Boucher.

One of those cool features is the aforementioned built-in controllers that can connect to and interact with common web services, such as RSS, Twitter, Facebook, and more. These controllers automatically expose their methods, bindings, and outlets, much like objects created in Xcode do when added to a project in Interface Builder. Developers can connect UI elements to these controllers to accept input from the UI and then output results back to the UI. You can see the power of this in action in a short demo video Boucher created in which he builds a simple RSS feed reader—very similar to NetNewsWire—in seven minutes, without once typing a single line of code.

In addition to the built-in controllers and several common data models, Atlas will integrate a way to easily share and reuse models and controllers that you or others have built. Though many developers make reusable Cocoa code available in the form of a framework, "frameworks in Cocoa don't usually come with IB plugins," Boucher said, "so you can't use them directly in IB."

Further, "there's no obvious place to share frameworks in the Cocoa world. We'd like to learn some lessons from GitHub here and really make sharing code a priority. We want to make it incredibly easy to make and share these kinds of components from right within Atlas—including a sort of integrated plug-in search mechanism."

Of course, 280 North eats its own dog food—Atlas is itself a web app built in Cappuccino. Slated for a summer release, not all the details have been ironed out just yet. The format and mechanism for adding class plug-ins haven't been fully worked out yet. How projects will be saved is still up in the air, too—it could involve one or a combination of local storage, cloud-based storage, or a local or remote git repository. Boucher says these issues will be worked out before the final release.

With Atlas, 280 North is bringing its goal of making web app building easier for developers more familiar with building desktop apps. With Interface Builder-like layout and drag-and-drop data classes, in some cases it might even be easier than desktop development. And, since Atlas runs in your browser, you don't have to leave your IDE to get a preview of how your app runs in a browser. Depending on your project needs, it may even give desktop tools like Dreamweaver a run for its money.