There has been a lot of buzz around the iPhone and obviously some brands are jumping on the opportunity to reach their consumers on this new and exciting medium.
On my iPhone blog, I discussed an application that Charmin did in partnership with a mobile company in the US and its now nice to see that brands in Canada are not only catching up but are sometimes ahead of their American counterparts.
Mazda Canada is one example of a brand that has now entered into the mobile playing field and has done so ahead of their Mazda counter parts in the US. They have recently released an iPhone application called Concert Quest that allows Canadians to search (based on their location) for upcoming concerts in their cities. Mazda has very delicately branded a utility music application for users that are in the market to find concerts. They have coincided the launch of this application with the launch of their new Mazda 3. Mazda has made a great entry into this space and it will be nice to see others join them in the near future.
Branded applications are likely going to become more popular as brands work to differentiate themselves and enter the mobile space.
Got an iPhone? Try it out for yourself: Concert Quest iPhone app




A requirement for a recent application we worked on was to produce a spinning picker view for randomly selecting items similar to the popular Urbanspoon application. There were several parts to our solution, making the picker components circular, blurring and animating the spinning, and correctly displaying the final result. This post will deal with our solution to these items.
The solution to the circular picker came from this post on Jeff LaMarche’s iPhone Development blog.
To achieve the spinning effect we use a series of images animated using UIImageView and placed on top of the UIPickerView.
The most challenging part of the solution was properly displaying the UIPickerView after the animation was complete. On our first attempt we were seeing random rows of the picker were left blank as in the image below.

The reason for this appears to be due to the fact a view cannot be drawn on the screen twice. When setting the selected row any rows that were displayed before the new selection would potentially be drawn blank. Our solution? Landing on the final selected row is a two step process. We know the row that we will land on, and how many rows are displayed at once. The first step is to select a row far enough away from our destination so that all the rows that will be displayed are not. In our case that was six. Then we select the row that we want to end up on. The code to this would be something like this:
-(void)selectionReadyRow
{
[pickerView selectRow:(selectedRow1 -6) forComponent:0 animated:NO];
[pickerView selectRow:(selectedRow2 -6) forComponent:1 animated:NO];
[self performSelector:@selector(moveIntoPosition) withObject:nil afterDelay:0.5f];
}
-(void)moveIntoPosition
{
[pickerView selectRow:(selectedRow1) forComponent:0 animated:NO];
[pickerView selectRow:(selectedRow2) forComponent:1 animated:NO];
//stop and hide animating image
}
Note the delay of 0.5s using the performSelector:withObject:AfterDelay method. This seemed to be necessary or else the row selection performed in moveIntoPosition would not always occur.
In writing this post I though another solution to the missing row problem could be to have two copies of every view. This would eliminate the need of having to position the row twice. You could choose an alternate copy of a view each time it gets displayed. This seems like it could be a better solution when you have fewer views to display.
If you use the solution detailed above or the alternate proposed solution we would love to hear how it works out for you in the comments.
The most interesting article that I came across this week was about cell phone payments and an interview with RIM CEO Mike Lazaridis.
I have been particularly interested in payment processing with mobile devices for some time now and specifically noticed that its really starting to take off in other places of the world such as Asia. I always imagined that if payment processing were to take place, it would really need to be driven through the carriers. I guess Mike Lazaridis also sees it that way.
In his interview with Laptop, there were discussions about PayPal and the ability for apps to be paid for through Paypal. Unlike Apples iTunes model, this means that Blackberry users have one extra step and that is to sign up with PayPal. Obviously Lazaridis recognizes this barrier and has mentioned that they are working with carrier partners to get the payment processes to be handled on their end. If this does in fact happen, the mobile space in North America would forever be changed.
The only reservation I have is where the carriers would draw the line on payments. Would they allow for payments only from applications or would they allow payments to be processed through retailers and be billed to a cell phone bill at the end of the month. And if they did in fact allow for billing by retailers would they ultimately become a credit agency? Would they allow some of their users to make purchases and they would prohibit others? Will they begin to replace VISA, MasterCard and AMEX?
I can’t say for certain what role they will play but I am sure that they will take a larger role in our daily payment process. This is only a little while away and it will be interesting to see how it all unfolds.