John M. Wargo

Twitter Feed

johnwargo: Here we go - First-time smartphone buyers favor Android over iOS: http://t.co/mQwxRHDP
johnwargo: Ummm, eating a handful of Dark Chocolate M&M's So good!
johnwargo: Working on the book's preface, hard 2 keep myself from saying 'the book you hold in your hand' since many won't ever actually hold the book
johnwargo: When sending an email to a group, why is it that Lotus Notes is smart enough to not send me a copy if I'm in the group but Outlook isn't?
johnwargo: Staying at a hotel without a gym. Ugh. I didn't even think to check to see if they had one, assumed they did.
Home
Third Book? PDF Print E-mail
Wednesday, 22 June 2011 09:00

I've been having discussions with my publisher about my next book.We talked a bit about doing an update to BlackBerry Development Fundamentals, but the market has really seemed to stall with regards to BlackBerry development books. Everyone's interests are now focused on iPhone and Android, but there's also a lot of great stuff being done in the cross platform development space.

I got involved as a tech reviewer for the My Motorola Atrix book, and that was a lot of fun. I tried to get on the books for the BlackBerry Playbook and the BlackBerry Torch books in that series, but those titles were already taken.  I approached the publisher about doing a book on the new BlackBerry Bold, but it's mostly a consumer series of books and I'm not sure (and neither are they) how well the new Bold will fit in the consumer market.

I believe my publisher and I have come to an agreement on my next book. All I need to do is write up a proposal and chapter outline and get it over to him for his review. I'm excited about the possibility and I'll let you know what it's going to be as soon as I start writing. stay tuned.

 
Review of Advanced BlackBerry Development PDF Print E-mail
Tuesday, 21 June 2011 10:00

Here's a review I wrote more than a year ago for Chris King's Advanced BlackBerry Development:

Joining the flurry of BlackBerry books released within the last year is Advanced BlackBerry Development by Chris King (Apress ISBN: 978-1-4302-2656-7). Marketed as a sort of sequel to Anthony Rizk’s Beginning BlackBerry Development, the book is supposed to kick it up a notch and dig into some of the more complicated things you can do with the BlackBerry Java platform. What you’ll find though is that the book should actually be entitled “Mobile Java Development Including BlackBerry” – I’ll try to explain below.

One of the things I’ve noticed lately as I read mobile development forums and the groups on LinkedIn is that when developers talk about mobile development, they usually generalize their comments and don’t identify which area of development they’re talking about: enterprise or consumer mobile application development. They both have very different needs, requirements and issues and effect how you look at a particular problem. Since I come from an enterprise development background, when I look at the title of this book, I expect to see advanced topics covered such as getting data from back-end data sources (especially connecting to XML-based and RESTful web services), dealing with encryption and security issues, plus managing the availability of different network connections. When looking at the topics covered in this book, it’s clear that the author is looking at the topic from the consumer side of mobile development – he gives some cursory coverage to the BlackBerry development tools, connecting to files and networks then jumps into a consumer oriented media grabber application that pulls media files down from web sites. While the book does address more advanced enterprise-related topics such as integration with device-side applications and security, these types of topics take a back seat to topics such as playing and recording media files and sending or receiving text messages. There’s nothing wrong with this approach, it just splits the potential audience for the book.

In digging through the chapters, the author does a really good job of digging deep into the major topic areas he’s selected for the book. The book is broken up into three parts and each part covers a different area of BlackBerry Java development. Part 1 deals with what the author calls Advanced API’s, part 2 deals with device integration and the last part deals with security and more developer oriented topics (as opposed to development-related topics).

In the advanced API’s part of the book, the author describes in great detail how to capture media files (pictures and video), playback media files (audio and video playback), send and receive SMS, MMS and email messages plus use available encryption API’s to encrypt data. For each of these topics, the author does a great job of explaining most available options and provides a wealth of source code that illustrates points made therein. What I found interesting though, was that as the author tackled a topic, in many cases he covered (in great detail) non-BlackBerry ways to address a problem before explaining the BlackBerry way of doing things. This is why I suggested the title change at the beginning of this review. What this book should cover is BlackBerry topics only – leave the other topics to any of the already existing JME books available to developers. The approach the author took here makes me feel that his target audience isn’t BlackBerry developers, but JME developers who work with multiple platforms and are adding BlackBerry to their mix. Again, there’s nothing wrong with this approach, it just isn’t what I expected from an advanced BlackBerry book.

Even the topic of cryptography is covered with a cross platform bias. Considering that the BlackBerry is the most secure mobile platform on the market, the author covers the open source Bouncy Castle cryptography API’s before digging into the robust BlackBerry security API’s and, recent purchase, the Certicom cryptography API’s.

In the second part of the book, covering device integration, contains the most detailed description of how to integrate with the Personal Information Management (PIM) capabilities of the BlackBerry platform that I’ve ever come across. The material includes a detailed description of how it works plus a lot of source code to help you integrate the concepts into your applications. RIM provides some information on the topic in its API documentation, developer web site and sample applications, but this is complete coverage of the topic and very useful.

The next chapter digs into several aspects of the BlackBerry browser. It covers topics related to the different types of browsers and markup languages, then shows you how to launch the browser from your application and embed the browser in your own applications (none of which are really advanced topics). The chapter finally enters the advanced realm at the end with its coverage of how to create and install a plug-in for rendering custom content in the browser. This is a topic I have never seen described anywhere else and I actually didn’t know this was available in the BlackBerry browser until now. It’s a cool feature and I’m not sure how many BlackBerry developers really need to do this, but it’s sure nice to have the information at your fingertips.

The last chapter in this part of the book contains a sort of strange hodgepodge of topics that really don’t seem to go together but needed to find some place in the book. The chapter begins with a very detailed coverage of how to use the Content Handler API (CHAPI, JSR 211) to allow your application to seamlessly communicate with other applications running on the device in a secure and manageable manner. This is another one of those advanced topics that really isn’t covered well anywhere else. It’s clear that the author has spent a fair amount of time working with these API’s in his applications and the reader can really benefit from his experience here.

The chapter next digs into the options related to application icons. It provides basic information about application icons then covers very thoroughly how to manipulate an application’s icon from within a Java application. I’m really not sure why this topic is in this chapter; it needed to be somewhere in the book and the topic is covered well, I’m just not sure why it ended up where it did.

Finally the chapter ends with detailed coverage of the options a developer has for manipulating the menu available to BlackBerry applications. Most BlackBerry Java developers quickly learn how to add menu items to their applications, but where things get more interesting is when you can expose features of your application through a custom menu item in another application. This comes in handy for example when you want to act on information contained in the Contacts application. Just add a menu item in Contacts that allows the user to pass data from a selected contact to your application. It’s this type of seamless integration that really makes a BlackBerry application shine.

The last part of the book provides the necessary coverage of BlackBerry application security. No advanced BlackBerry book would be complete without coverage of the topic. It then jumps into topics related to developing for multiple versions of the BlackBerry Device Software (an issue any BlackBerry developer has to deal with unless they work in a very controlled environment). Because the BlackBerry platform has been around for a very long time and has supported many different wireless networks, device form factors, screen sizes and keyboard layouts, there’s a lot a developer must to do to ensure their application will work on any BlackBerry device. The book does a pretty good job of covering the right topics, but the author refers to issues related to writing applications for different BlackBerry OS versions when that’s not how it works. The BlackBerry OS running on the device is the underlying software (kernel, hardware libraries and so on) that makes the device work – it’s the BlackBerry Device Software running on top of it that provides the UI and the features an application interacts with. Throughout the book, the author incorrectly refers to the OS when he really meant the BlackBerry Device Software.

This last part of the book wraps up with coverage of how to setup an automated build process for your applications. As you build more and more applications, especially if you have to support multiple BlackBerry Device Software versions with your applications, having an automated build process makes life much easier and it’s nice to see it covered in the book. 

There were some serious problems with the book that I think are important to point out. I found myself writing ‘wrong’, ‘huh?’, ‘why?’ and ‘which ones?’ a lot in the margins of the book as I read through it. Let me explain:

The author clearly wanted to cover certain topics in detail but knew at the same time that he had to provide some background information to make the book complete. I really felt like he hurried through many of the more introductory topics in order to provide the needed coverage but was eager to get into the other stuff he wanted to cover. Selecting the right version of the BlackBerry development tools to use based upon the devices that will be using your application is a very important and is the most common thing missed by a developer when getting started. In the section of the book that dealt with this topic, there was only a cursory explanation and the importance of this really wasn’t stressed.

I found that there were quite a few places in the book where the information the author provided was just wrong. It was clear that he regularly encountered things with the BlackBerry development tools that didn’t work or didn’t work like he expected and, rather than try to find out what’s really going on, he just assumed it was a problem, wrote about it in the book and moved on. Very early in the book, on page 5 actually, he indicated that there was a bug in the Eclipse plug-in that prohibited you from having more than one project in an Eclipse workspace. This just isn’t true – it’s not how Eclipse works and it’s definitely not how the BlackBerry plug-in for Eclipse works. It may have been something he encountered with an early beta build of the tool, but a blanket statement like that did not belong in the book. For the entire remainder of the manuscript he created a new workspace before creating any new project and that’s just not the way it works. I have several BlackBerry workspaces in Eclipse and every one of them have multiple BlackBerry projects and it works very well.

The author clearly has a lot of experience working with the BlackBerry platform and through this has uncovered many places where things often don’t work as expected. It’s one of the reasons why people would purchase a book like this – to find out things that aren’t easily covered in the documentation and things that need to be avoided. The problem is that, although the author identified these types of issues in many places throughout the book, in every case he would omit listing the specific device models affected by an issue. He would identify the problem with a blanket statement such as ‘this doesn’t work on several BlackBerry models because of…’ but never actually identifies the models. This is partially useful information – I now know that the issue exists, but I have to look elsewhere to determine whether it affects a device I’m targeting for my application. Having to put down a book and fire up a browser search engine to find out the specific details behind an important topic is not what I expected from a book like this, especially due to the great level of detail included for so many other topics.

As you can probably see, I’m a little lukewarm on the book.  It’s great if you are building BlackBerry Java applications and need information on the specific topics covered here – the author did a very good job of covering most of the selected topics in a very detailed manner (very appropriate coverage for an advanced level book). I find though that the book falls down in several areas. I would have liked to see more detailed coverage of how to deal with the different networks available to modern BlackBerry devices and strategies for communicating with back-end data sources but as I mentioned, it’s mostly a consumer oriented book and those topics aren’t as important to consumer application developers. Most of all, I wish the author wasn’t in such a rush to get to the topics he found more interesting and instead gave equal level of coverage to all included topics.

 
Review of Beginning BlackBerry Development PDF Print E-mail
Monday, 20 June 2011 09:30

Here's a review I wrote more than a year ago for Anthony Rizk's Beginning BlackBerry Development:

Considering how long the BlackBerry platform has been available in the market, it’s amazing that there haven’t been any books on BlackBerry development until very recently. There was Craig Johnston’s Professional BlackBerry that was supposed to be a ‘Programmer to Programmer™’ book but ultimately had very little to do with BlackBerry development (except for some simple chapters on BlackBerry browser development and Push). Beginning in November, the first real BlackBerry development books were released (including mine) and the options a new BlackBerry developer had at his disposal increased dramatically.

One of the first books out of the gate was Beginning BlackBerry Development by Anthony Rizk (Apress ISBN: 978-1-4302-7225-0). The author was one of the founders of the long time BlackBerry ISV Alliance Partner Rove Mobile (formerly Idokorro) and recently started a software company called Zeebu Mobile which produces entertainment applications for children that run on BlackBerry smartphones. He’s been developing BlackBerry applications since the very early days and clearly has the background needed to get you up and running quickly.

The first thing to know about this book is that it’s not really about beginning BlackBerry development. It’s actually about beginning BlackBerry Java development. If you’re looking for a book to help you get started with all aspects of BlackBerry development, you’re looking at the wrong book. This book is for Java developers getting into mobile development on the BlackBerry platform and for that audience the book performs well. I spoke with Anthony about the title before it was published and he indicated that the book was one of a series of Beginning X Development topics from Apress and he couldn’t change the title to more accurately address it’s audience.

It’s not a long book; it weighs in at 238 pages and doesn’t dig too deeply into highly technical topics. It starts with the basics then holds your hand through enhancing your application’s user interface (UI) and adding common features needed by most BlackBerry Java applications (such as networking, location-based services and storing application data). The topics are covered in a clear and easy to understand manner and Anthony provided just the right topics for this entry level book.

Let’s dig into the content.

The book begins with the requisite introduction to the BlackBerry platform and the BlackBerry development tools. The overview is very high level, but if you’re an experienced developer, it’s probably all you need to get started. If you’re an Enterprise developer and need to know more about what the BlackBerry Enterprise Server (BES) and BlackBerry Mobile Data System (MDS) do for you and your application, you won’t find detailed information here. Since it’s really a book for Java developers, and most likely targeted at developers of consumer applications, those details really aren’t going to be missed.

Chapter 2 jumps into the standard Hello World application and uses the topic to help introduce you the ins and outs of the BlackBerry Java development environments (for those that don’t know, the BlackBerry platform sports its own, free Java Development Environment [JDE] plus a more user friendly Eclipse plug-in). After you’ve built the application, your taken on a tour of the debugging capabilities of the platform’s tools and educated on some topics that are often overlooked such as adding an icon to your application, setting the application’s title, signing the application, testing on a device or a device simulator & more.

Chapter 3 digs into the aspects of a BlackBerry Java application that makes it a BlackBerry application. It covers the BlackBerry event and thread models and how a developer needs to write her code to play nice on the device.  It includes coverage on how to update the UI from other threads and how to create libraries and use alternate entry points in your BlackBerry application to provide additional functionality for your users. The topics covered in this chapter are very important to the new BlackBerry Java developer and they’re covered with just the right amount of depth to get you started recognizing that you’ll use the BlackBerry API JavaDocs to dig into more of the details.

The next couple of chapters help you take a simple BlackBerry application and build a more compelling user interface for the application. The BlackBerry UI libraries, while very capable, just aren’t generally used out of the box to create beautiful application interfaces. For someone like me, who’s not a heavy duty Java developer, the topics covered in these chapters were just what I needed to understand how I can extend the base BlackBerry UI classes to create a pleasant look for any application. It shows you how to do some simple enhancements to enhance the look without doing any crazy, processor hogging and battery draining special effects.

The remaining chapters of the book cover in just the right detail the different options available to a BlackBerry Java developer to store application data locally (including the standard JME mechanisms, BlackBerry-specific capabilities, SQLite and writing directly to the file system), using the networking API’s to send data to and receive data from a server, using GPS to build location aware applications plus packaging and deploying applications (including commercial distribution through the BlackBerry App World).

In all, it’s well structured introduction to BlackBerry Java development. It’s clear that the book was rushed out to publication, there are some typos and formatting problems with the text, but that shouldn’t detract from the content. There’s a lot of code in the book, and not a lot of big chunks to digest. There’s just a bunch of little snippets that relate directly to the topics at hand.  If you’re a Java developer and need some help getting started with BlackBerry Java development, this book won’t disappoint.

 
BlackBerry Developer Book Reviews PDF Print E-mail
Friday, 17 June 2011 10:00

Back in 2009, right after BlackBerry Development Fundamentals came out, I approached Dr. Dobb’s Journal about writing some reviews of the other BlackBerry development books that were coming onto the market. The editor told me to go ahead, so I did the writing and submitted two reviews. Nothing happened; I’m not even sure the articles were ever read. So, what I’m going to do is publish them here next week.

It’s two years later, my book has sold well but the BlackBerry development and mobile development worlds have changed a lot since then.  I was thinking of doing an update to my book, but I’m not sure that’s going to happen. I'm not sure whether there's an update coming to Anthony Risk's Beginning BlackBerry Development. I see that Chris King has an update to his book, Advanced BlackBerry Development coming out soon, it's called Advanced BlackBerry 6 Development.

 
<< Start < 11 13 14 15 16 17 18 19 20 > End >>

Page 11 of 51

InformIT (Pearson Education)