Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


advertisement
 

A Developer's-Eye View Inside the BREW Percolator

A front-line soldier in the BREW development trenches, RocketMobile's Shane Conder, tells the inside-out story about what the environment is really like and how best to utilize it for fun and profit—mostly profit


advertisement

Okay, so maybe you've heard of QUALCOMM's BREW, and mostly what you know is that it's not something you drink.

Get a sip of this, however: BREW—a.k.a. the Binary Runtime Environment for Wireless, is the foundation for data services in an impressive (and increasing) number of wireless phones. BREW is being deployed nationally in the U.S. by Verizon Wireless on its Z800 handset and on the Kyocera 3035. All told, there are over one million BREW-enabled phones in the market internationally.

Maybe we should look a little more closely at what this is all about. And there's no better way than to find out from somebody who has actually been working with BREW on a daily basis, and for some time, now.



Shane Conder is that man—a field soldier on the front lines of BREW development. He is the lead developer for RocketMobile, Inc. of Los Gatos, Calif., which produces wireless applications—including several for BREW-enabled phones.

Conder's been there, done that, and likes what he's doing.

"I was first introduced to BREW while working at fusionOne last year, sometime around April '01. By May, I didn't like it (BREW) very much," Conder said. "I was on and off BREW most of the rest of the year until fusionOne laid me off and I rejoined with Wayne and RocketMobile, where I was able to immediately start doing BREW work for him. By January (2002), I was beginning to like BREW, having learned tons about it and figured out how to get it to do what I wanted."

What exactly is BREW like?
In describing BREW, Conder said, a developer needs to know what BREW is and what it is not. BREW is not an operating system, nor is BREW a programming language.

  • To developers, BREW is simply a set of C APIs made by QUALCOMM for writing software for mobile phones. To date, these are mostly CDMA phones, but as QUALCOMM has shown, BREW can run on other chipsets as well (they've demo'd BREW on a GPRS handset).
  • To the carrier, BREW allows third-party companies to provide applications that the carrier can choose to allow users to download, Conder said. BREW also provides a few other features, such as integrated billing - meaning end-users pay for BREW apps on their regular monthly phone bill and BREW developers are paid for each application download. It's all monetized for the developer by BREW's billing and payment system.
  • To the user, BREW allows the downloading of applications on the handset. "I actually find it fun to look through the list of applications occasionally to see anything new that has come up," Conder said.

So, what is BREW like to a developer? "It's just like writing in C (you can use C++, too) for a specific set of APIs that are a cross between the type of functionality the Win32 API provides to Windows and what MFC provides for developers," Conder said. "That is, BREW has a range of APIs that range from fairly low level to fairly high level."

"It's also a lot like embedded development because, unlike J2ME, a developer is writing C code that will be compiled directly on an ARM processor in a low-resource environment."

What are the advantages in using BREW and was there an adjustment period?
"Now I like BREW. It's grown on me and others," he said. "There are some things it can't do, and may never do, but for other things QUALCOMM has been very responsive to developers and that has helped out. It's small, simple, and easy to control. There's a lot less to worry about due to the restrictions."

"Everyone that I've worked with, and others, have initially disliked BREW," Conder said. "The initial reaction is often, 'What do you mean you can't do that?' "

"At first it was annoying; learning what all couldn't be done (no multitasking, no serial port access, etc.). There was a lot of roughness because it was in beta, and then the early handsets were all in beta, so they didn't work that well, either. Eventually, though, I began to learn it and be able to work with it. Then I began to see what was good about it and how to use it for what it was meant."

"So, you can expect a bit of an adjustment period, coming from another platform. But that will happen in any kind of development transition. However, once the adjustment is made," Conder says, "it can be smooth sailing."

What's cool about using BREW?
Conder says BREW is cool for a few reasons. "It's just an API for C, so for any C programmer it's just a matter of finding the API that you need to use. It has that embedded programming taste to it — being very close to the hardware," he said.

BREW also lets developers write applications for cell phones. "Once you get something compiled for the ARM processor and get it loaded, it's really quite a thing to have your code running there, on your cell phone," Conder said. "It's quite different than getting an app running on a computer, at least perceptually. The phones are small, fit in your hand, and are normally only programmable if you happen to work at one of the OEMs."

Seeing an application you worked on being made available for download as one of only a few (though that's changing rapidly) to who-knows-how-many people nationwide is also quite cool, Conder said.

"Another cool thing is that because it's on a cell phone, you know there's going to be a network connection (at least if the phone has a signal). That opens the door for many possible applications," he said.

What's Unexpected?
BREW has some unexpected things about it. For one, BREW is designed only for cell phones. "There are lots of fun things you can do, such as have your application dial the phone for a voice call, or get to the main contact list," Conder said. "Java 2 Micro Edition (J2ME) is generic for small devices, not just cell phones, so each OEM has implemented phone things differently."

This has made BREW more "cross platform" than J2ME when it comes to cell phones.

Why You Don't Have to Have a Lot of Wireless Experience
"You don't have to be an expert in wireless development to program for BREW," said Conder's boss, RocketMobile CEO Wayne Yurtin. "We write most of our apps in C or C++, so experience in those would be excellent. You mainly have to have a good mindset for working with small-footprint RAM, storage, and so on. You have to be able to work in tight quarters, so to speak."

You don't even have to have much marketing or sales experience once you've written an app for BREW, Yurtin said, because one of the key attractions to getting involved with BREW is their app distribution and billing system—that helps bring developers to carriers and get paid.

How the BREW application billing system works
"Developers will love to hear this," Yurtin said. "When you go to the BREW Shop on your Verizon Wireless cell phone to buy a BREW-enabled app, the app is downloaded over the air in short order (maybe eight to 15 seconds) so the customer gets use of it right away. At the end of the month, the line item simply appears on the customer's Verizon Wireless bill. The developer gets 80 percent, the line carrier gets 10 percent, and QUALCOMM gets the other 10 percent. It's a great arrangement for everybody."

Resources:

  • Rocket Mobile Products
  • BREW SDK
  • QUALCOMM BREW
  • Become a BREW Developer
  • BREW Alliance Program

    Originally published in the BREW Wireless Resource Center



  •    
    Chris Preimesberger is a free-lance writer based in Redwood City, Calif., and a former editor at DevX and Software Development magazine. He is also the wireless analyst for Evans Data Corp. in Santa Cruz, Calif. He can be reached at cpreimesberger@attbi.com.
    Comment and Contribute

     

     

     

     

     


    (Maximum characters: 1200). You have 1200 characters left.

     

     

    Sitemap