Wakanda Studio contains elements that will be familiar to anyone who has used an IDE and a web development package, but also some concepts that are brand new yet easy to master. The studio is comprised of the Solution Manager, the Datastore Model Designer, the GUI Designer, the Users & Groups manager, a Code Editor, and a server-side JavaScript debugger.
Your Command Center
The Solution Manager, which appears at launch, is the gateway to managing all of your Wakanda projects. It provides a straightforward hierarchical menu to quickly navigate your web app's components, including all the HTML, CSS, image, and associated files. You can have multiple solutions, inside which you can have multiple projects. The central workspace pane adapts to the type of file you open, bringing up the Datastore Model Designer for your model, the GUI Designer for HTML, and the Code Editor for JavaScript.
Modeling Made Easier
One of the more novel aspects of Wakanda Studio is the Datastore Model Designer. This is where you visually (and instinctively) draw your data models. You can click, drag, and draw relations between classes naturally. Clicking on each item allows you to modify its associated events and methods via a properties panel. If your model grows beyond what can be seen on the screen, you can easily zoom in and out, show or hide classes, or quite simply navigate a “map” of your structure. With Wakanda, even the most sophisticated data structures are totally manageable.
Manage your permissions In order to address security, you can manage access to each of your solutions by creating users and groups with passwords. Users and groups can be granted various permissions. Projects can have access set at three different levels: Model, datastore class, and attributes or methods.
WYSIWYG that Works
The GUI Designer looks like a typical WYSIWYG web page editor, but it's much more powerful. Each of Wakanda’s interface elements – known as widgets – can be bound to data elements and functions on the server. Define the color, form, shape and overall appearance of widgets, and your CSS file will be autmoatically updated for you. You can further use the model panel to bind widgets to all of the functionality available to your application, all without any code. (Unless you want to add any, of course.) If it exists on the server, it’s available in the panel.
You are not, however, limited to the widgets that come with Wakanda. You can integrate your own or third-party widgets in the framework and make them useable from the GUI Designer. (See documentation on how to create your own widgets.) You can also create modular Web components that can be reused in various parts of your projects with a consistent interface.
WYSIWYG CSS3 Create fully compliant CSS3 by visually designing your interface with Wakanda's GUI palettes and widget library. Take advantage the power of CSS3 in every page you create, without having to mess around with the stylesheets – it's all done for you by the Studio. Gradients. Transparency. Corner radius. Shadows. Web fonts. Wakanda takes care of this for you.
Faster, More Accurate Coding
The Code Editor, which provides all the functionality one would expect from a typical editor. However, Wakanda’s implementation of auto-completion in the editor not only provides type-ahead functionality for syntax, but for all of the data and logic on the server too. The Code Editor can auto-complete datastore class names, methods, JavaScript arrays, variables and objects, saving you even more time and reducing the chance of errors.
The code editor is accompanied by a powerful multi-context server-side JavaScript debugger, specifically adapted to manage WakandaDB datastore classes, entities and collections. You are able to navigate through contexts, the frames of their stack and their related scopes (global, local, closures).
Foolproof Binding The dynamic connection makes for the “unbreakable” nature of Wakanda development. Because everything is so closely tied to the model and the business logic – the datastore classes, the methods, etc. – each part is synchronized with the other. If you change the behavior of a class or an attribute on the back end, it will automatically be reflected in the front end. Each connection carries all of its inherent logic with it, so when you update the back end, you won’t have to redo your front end, and vice versa.