Whizu is a lightweight Java library that makes it easy to create fast and good looking jQuery Mobile applications. It focuses on the development of HTML5 web applications with developer productivity and extreme runtime performance as key characteristics. Whizu being an open source effort and a work in progress, I welcome you at my website and hope that you too will be inspired to engage.
The easiest way to get a sense of how that's possible is to look at some code. Let's write a simple jQuery Mobile app to add notes to your notebook. Here's a screenshot…
…and here's the code.
@App("/whizu/notebook") public class Notebook implements JQueryMobile { private StringValue title = new StringValue("Title"); private StringValue description = new StringValue("Description"); private ListView notebook = new ListView(); private Form createForm() { Form form = new Form(); form.addText(title); form.addTextarea(description); form.addButton("Add note"); form.onSubmit(this::addNote()) return form; } public void addNote() { ListItem note = notebook.addItem(title); note.p(description); } /** * Initialize the app */ @Override public void onLoad(Page page) { page.header("My notebook"); Layout layout = new HorizontalLayout(); Form form = createForm(); layout.add(form); //left layout.add(notebook); //right page.add(layout); page.footer("jQuery Mobile by Whizu"); } }
Whizu is an all-Java approach to Web 2.0 application development, providing you with an easy-to-use Java API to write jQuery Mobile applications that doesn't require any client-side JavaScript coding. It is a lightweight Java library with a minimal footprint, runs on any Java servlet engine and focuses on developer productivity and runtime performance.
Whizu only depends on commons-lang and slf4j-api.
By the way, this dependency model is in fact a yUML.me class diagram that has been generated with Whizu like this:
import org.whizu.yuml.ClassBuilder; import org.whizu.yuml.ClassDiagram; import org.whizu.yuml.ClassDiagramBuilder; import org.whizu.yuml.Type; Type commonslang = ClassBuilder.create() .name("commons-lang-2.6") .build(); Type slf4japi = ClassBuilder.create() .name("slf4j-api-1.7.5") .build(); Type whizu = ClassBuilder.create() .name("whizu-jquery-mobile") .dependsOn(commonslang) .dependsOn(slf4japi) .build(); ClassDiagram diagram = ClassDiagramBuilder.create() .addType(whizu) .build(); page.add(diagram);
While Whizu still has its fair share of warts, with a lot of exciting problems and challenges yet to be solved, we've found it to be a powerful abstraction that fundamentally changes the nature of how we write software. That difference increases the richness and nuance of product designs that we take on. And, perhaps most importantly, Whizu enables us to deliver a desktop-quality experience in a web browser, with real-time collaboration automatically baked into every feature we build.
Whizu being an open source effort and a work in progress, I welcome you at my website and hope that you too will be inspired to engage. Follow this project on Google+ for news and latest developments.