Blog

Ext GWT Spotlight: SambaStream

SambaStream is an online software company that specializes in building innovative web applications for businesses. Our customers range from personal, community and business users. SambaJAM provides innovative web-based tools that ultimately save our customers time and improve their ability to respond and share information with colleagues and clients.

All of our features are built using Ext GWT components. Key features include:

“To build SambaJAM, we made extensive use of the Sencha Ext GWT library.”

Secure workspaces

Management dashboards

Rich documents and media library

Agile task management

Rich user profiles and micro-blogging

Centralized search with full text search indexing

Rich Document and Media Library We built our platform with a focus on documents since they are still the major deliverable on most projects. We decided to build on top of Alfresco ECM to guarantee a robust and enterprise-quality product. The key features are: drag and drop document management, document/image thumbnails (videos coming soon), preview of documents/media online, and ability to create new and edit existing office documents online.

Click image to view high-quality version.

Agile Task Management We needed a way to stay on top of the tasks we had to do. The best solution we devised was swim lanes on a door with a bunch of post-it notes. It worked. It worked very well, in fact. So well, we decided to build it. We split our solution into three areas: Create (use this to rapidly add new tasks), Manage (assign tasks to team members using our swim lane/post-it design), and Action (see a list of tasks and take action).

Click image to view high-quality version.

Rich User profiles and micro-blogging Taking documents out of people’s inbox is a natural step towards collaboration. Unfortunately, most documents are in people’s inboxes because they’re part of a conversation, question or task. We decided to minimize the dependency on email by allowing users to have these conversations directly in SambaJAM. This has the advantage of allowing agreements, conversations and knowledge to be captured even if team members change or projects come to an end.

We’re excited about some new features that are coming soon including an iPhone application, Microsoft Office integration, and desktop syncing.

Why We Chose Ext GWT

When we set out to design SambaJAM, the client framework was one of our top three priorities. With a global user base, it was important to choose a technology that would provide an enterprise-oriented architecture. In addition, we wanted a framework that would help to reduce the development complexity of delivering the latest web standards and cross browser compatibility, so we could spend more time building a product with an innovative user experience.

We thoroughly evaluated several frameworks. We started by looking at pure JavaScript libraries such as iQuery, Ext JS and others. Although these were good libraries, we quickly realized that the challenges we faced were huge in creating an enterprise application of SambaJAM’s scale. We needed a technology that would allow us to tap into leading enterprise development frameworks and tools.

One day, a good friend of mine said: “Hey, you should look at GWT, it seems interesting,” and so I did. Eureka! Using GWT, we were suddenly able to produce highly optimized JavaScript code very quickly with all the advantages of using an enterprise scale language like Java.

We had found the technology, and our focus changed to a new dilemma, the interface. The existing widgets in GWT were underdeveloped and not sustainable for use with our demanding, web savvy customers. So, our quest for a GWT library started and happily concluded when we discovered Sencha Ext GWT.

To build SambaJAM, we made extensive use of the Sencha Ext GWT library. One of our main components is the ListView, which is a real work of art. The performance is superb, and it allows us to display data lists with ease. We’ve found ways to use JavaScript objects and arrays, so our XTemplates can iterate through and display nested JSON values. We also love the JsonReader and ModelData objects, which we’ve successfully combined with a Dispatcher allowing us to cache server responses and avoid duplicate calls.

Business Value of Using Ext GWT

By using Ext GWT, we were able to invest more time in building our product with an innovative user experience and focus on making our customers happy. The core advantage of using Ext GWT was development time savings — we knew we had a library of trusted components. The business value has been tremendous because we focused our development time on high-value features and spent less time building, maintaining and validating boilerplate code and components. Ext GWT has made it easier for us to rapidly respond and update our product interface based on customer feedback.

“The core advantage of using Ext GWT was development time savings — we knew we had a library of trusted components.”

Another great advantage of using Ext GWT is that it is a GWT library, which allows you to use the optimizations offered by the GWT compiler. Now, manually optimizing JavaScript code is a huge pain point, not to mention trying to debug optimized code. This benefit alone has saved our development team months of additional work.

Also, we had the flexibility to extend components, which gave us confidence that we could switch standard Ext GWT components for our own modified interface components and plug them into the client framework without any issues.

Our Advice to New Developers

Most important, new developers should supplement the documentation by reading through the Ext GWT example page, which gives a basic understanding of what’s going on. Everything else can be understood by reading the source code and making use of the active community forums.

Final Thoughts

We recommend using Ext GWT if you want to quickly develop a product without worrying about creating the building blocks. We see Ext GWT continuing to evolve, and as it does, it will become even more powerful.

Written by Jay Robinson
Jay Robinson is a designer at Sencha. He is passionate about using web standards to create flexible projects for the open web.Follow Jay on Twitter