David Clayworth

Heading in BlackBerry Live and the subsequent Jam Sessions I was a bit nervous. One of the reasons I made the trek from New York all the way down to Florida was to expand my coding skills and try my hand at learning Cascades. Now I had never used C++ or QML before nor did I have any experience with JavaScript so it did seem a bit intimidating going into the Cascades 101 sessions. However, all that changed when attending the App in Sixty Minutes session hosted by David Clayworth and Mattias ​Öhman. They would be compiling a native Cascades application in less than an hour.

First off, I must say that building a BlackBerry application in under sixty minutes just didn’t seem possible. Throughout the session, David kept reminding us that all coding was live and then continued to make off the cuff jokes on how we probably didn’t believe that. However, as a small disclaimer, all data files that we would be importing into the app were created in advance. It was a tag team effort with David guiding us through each stage of the process while Mattias remained at the computer entering the code.

Diving right into the presentation, they stated the resulting application should be “beautiful, integrated, and social,” which are the three guidelines and requirements that every BlackBerry app should meet. For the purposes of this demo, they would build their restaurant guide completely with QML to demonstrate that C++ was not the only method available to code an application with Cascades. Even with QML it would still offer the full BlackBerry performance without any lag whatsoever (unless more complicated mathematical calculations were needed).

During the first three minutes, David guided us through the process of opening the IDE, starting a Cascades project, and importing the data files into the project. Next, they inserted code to create the page and list item views, all while giving definitions of each one which was appreciated. Having those thorough explanations made things simpler and easier to follow, more so than what was taught in prior sessions.

Once the basics were coded, it was time to load on a Q10 for testing. While the information displayed was just a list, David quipped that it was good enough for BlackBerry World but maybe not one to pay $0.99 for, at least not yet. Following that step, it was time to code the details page so that users could access not only a list of restaurants but their information such as phone number, address and webpage as well. In a matter of minutes, they inserted the QML pages to define the layout. Keep in mind, all of these actions were performed in under ten minutes and fulfilled the first requirement of being “beautiful.”

Stage two involved adding the code for the actual details by linking to the pre-compiled. In turn, and without even realizing it, this made the application “integrated.” So how does one make the application integrated? In this case, with zero lines of code! You heard that correctly, by utilizing Cascades, the ability to link to BlackBerry applications such as the phonebook, browser, and maps is already inherent in the code as is the peek and flow gestures without any additional work on the developer’s part. How this worked is simple. The ability to recognize a phone number, website, or address is built-in and will automatically perform the corresponding action. As a novice developer, the idea that this was part of the backbone blew my mind as it demonstrates how easy it is to create a native application.

For those of us keeping track, we were less than thirty minutes in and already had a working application minus a few features. Note that most of the time was dedicated to David’s explanations. Next up was including the menu items of each restaurant by adding a simple button.

The final stage is the social aspect and being able to share your dining details. In this example they used “I’m eating [insert menu item] at [restaurant name].” To accomplish this task only required the insertion of the context and invoke actions which grants access to the invocation framework for BlackBerry applications and services. Once accomplished, they saved the code and launched on the Q10 to demonstrate. David noted that the system automatically handles this and prompts you which method is available to share (i.e. BBM, Twitter, Email, etc.) unless you specifically code it otherwise.

At this point only thirty two minutes had elapsed since the session began and an entire application was built from scratch that satisfied many, but not all of the Built for BlackBerry requirements: gestures and flow, icons, different form factors, menus and navigation, shortcuts, consistent menus, focus on content, and service integration. Did I mention they included shortcuts for keyboard devices as well? David stressed that BlackBerry is dedicated to one application for all devices. This concept was explained in further detail in other breakout sessions for WebWorks and Cascades. This means that by using only one application, the lines of code meant for the Q10/Q5 is ignored on the Z10 yet is taken advantage of on the keyboard devices and vice versa.

I must say that this was one of the best sessions held this week. Having never been exposed to this programming language before it certainly broke things down into a more digestible format. I still can’t get over what they accomplished in technically under 20 minutes that could be submitted to BlackBerry World. David remarked how in rehearsals they designed it in 16 minutes without the commentary.

While this was held on the final day for BlackBerry Jam, the excitement and passion seen in the room was evident. David was engaging, informative, and showed that Cascades is not as daunting as we first thought. As a side note, it is my opinion that David should moderate other Cascades sessions because of his ease with teaching and his rapport with the audience during the Q&A. My takeaway from this session is that I feel more comfortable with Cascades and I can't wait to get home and apply this new knowledge.