Posts Tagged iPhone

iPhone Pattern: The ID Device?

I’ve seen stories lately that make me think another app pattern is emerging: iPhone as an ID. (Not news to you? Gotta love intelligent readers.)

It does make some sense.  In cases where serious identification is not crucial, the iPhone can be used.  With a full iPhone, you can bet people don’t just loan them out to people indiscriminately.   On days when I’ve forgotten my wallet, I still didn’t forget my iPhone.

Think about these:

  • Companies are sending account information, such as passwords or password reset info to the mobile phone recorded in the account.
  • RSA has a “SecurID” app for the iPhone.  Its used just like the cards and keychain dongles that give a code number once a minute.  That’s 2-factor authorization.
  • iPhone and iPhone apps are being used to pay for physical goods and services. A hotel reportedly issues iPod Touches to guests.  The guests uses them to order food and drinks by the pool and pay on the room account.  (They give the devices back at checkout time.)
  • Apps are used to exchange contact information.

Tags: , , , ,

Article on iPhone as Gaming Platform

The iPhone Website has an interesting article about how iPhone devices are taking a bigger and bigger percentage of the mobile video game market each year, going from 5% in 2008 to 19% in 2009. The article asks if the readers have given up mobile platforms to consolidate on iPhone devices (which includes iPod Touch and soon iPad.)

It wasn’t a surprise to me to move to gaming on the iPhone after seeing so many others pick up gaming with it.  What surprised me was my son putting down his GameBoy DS and using the iPod Touch almost full time.  He is now able to play new games practically every day (when I approve the games and homework is complete.)  I’ve given him a bit of an allowance to buy some, but he’s going with freebies mostly.

For his birthday, he’s asked for his own iPod Touch and iTunes account so he can get what he wants.  We’ll have to see how the parental controls work out for the account, but he’ll probably get the iPod Touch.

For me, this brought up memories of reading “The Innovator’s Dilemma” by Clayton Christensen (professor of Harvard Business school.)  The “disruptive technologies” always start out small and ignored by the leading firms in the field. It also starts out as being less than the main customers need or want, but grows quickly into the space where the customer feels it is “good enough”.

I think iPhone fits the bill.

Tags: , , , ,

iPhone Developer Group Meetings in Orlando

I was surprised recently to see how many groups are starting up around iPhone development in the Orlando area.  I’ll compile my list into a page and see how it works out.

I’ve attended two meetings and enjoyed both greatly.  The levels of focus, curiosity, and participation were great.  The discussions of just development challenges in general were also very good.

  • NSCoder Orlando (site twitter)   – meets every Tuesday
  • Mac & iPhone Developer Meetup (site twitter)  –
  • Orlando Cocoa-Heads  (site twitter)  – 2nd Tuesdays suggested, but still variable

The Panera’s restaurant downtime for the Mac & iPhone meetup group was pretty tough to find parking near, so go with a little extra time for that. Maybe take $5 or so in cash if you have to pay for a parking space.   That Panera’s does close at 8:30 pm.  While they are very gracious to people lingering, you won’t be able to get in or buy anything after that.

If you are more interested in a group for simply using the iPhone, check out the meetings of  the Florida Macintosh Users Group.  All the meetings wind up talking about iPhones at some point, but some will have different focus.

  • FLMUG main meeting (site twitter)
  • iPhone SIG (special interest group)  (site twitter)
  • FLMUG Business SIG (site twitter meetup)

Tags: , , , ,

Is your Apple warranty still active?

After helping the great folks at my daughter’s school with an external monitor issue, it seemed the problem was in the Mac itself. So naturally, questions about the status of the warranty came up.  I knew that all the Apple Authorized service centers can look up the status, but getting someone on the phone isn’t necessarily easy or convenient (especially during off-hours.)

So, Googling (sp?) for the answer turned up a page I had not found before (ok, I had not really looked in a long time) : https://selfsolve.apple.com/GetWarranty.do

You can put in your serial number and get an answer immediately about the status of your warranty.

Things to know:

It can be a real pain to find and read the really tiny serial number sticker on a modern Mac, iPod or iPhone (or maybe its just my eyes going downhill).  Much easier,  you can copy and past the serial number from the “System Profiler” utility. Its in the “Hardware Overview” information which comes up first by default.  You can find the System Profiler in the “Utilities” folder in the “Applications” folder,  or you can go to the Apple Menu, select “About This Mac”, then press the “More Info” button.

If you bought an AppleCare extended warranty, but the site only shows a 1-year warranty, it may be that the extended warranty didn’t get registered. (The registration instructions should be in the box.) It may or may not have been automatically registered if you bought the computer and AppleCare together at an Apple Store.  You have to buy an AppleCare extended warranty while the original 1-year warranty is still good.  If you bought it, but didn’t register it, you may have to call Apple or talk to someone in an Apple store and show them the purchase receipt showing both the Mac purchase and the AppleCare purchase.  Someone can then re-instate the extended warranty.

Tags: , , ,

iPhone Developer Bits 2

Are you getting kAMDApplicationVerificationFailedError when you try to run your app on a device?
– Check the status of your provisioning profile’s certificate in the Keychain Utility.  It may be expired.  If so, go to the program portal and create a new one.

Tags: , , ,

iPhone & iPod Touch Tips 2

“Maps” works in Starbucks without an AT&T account.  I used it a few days ago to help someone find a local bank.  I suddenly realized that I had not logged into anything.  A quick test showed that the web browser would not access anything without logging into AT&T first (I use the Starbucks Gold membership to get the free wifi occasionally.)  It could be that the data is relaying through Apple.com.  Or, perhaps Google has its own deal with AT&T or Starbucks?

Tags: ,

iPhone & iPod Touch Tips

Accessing anything that ends in “Apple.com” works in Starbucks for free (without any of the paid account types.)  No doubt this is how Apple got iTunes to work with the store’s music to tell you what was currently playing.  I havent’ seen this work in a while.  Going to the iTunes store shows that they can’t tell me, but I can access the store.  It is fun to look at the Apple “I’m a Mac, I’m a PC” ads at Apple.com/getamac/ads.

Tags: ,

A Technique for Finding iPhone App Crashes at ojbc_msgSend

(if this helps you, even to save a little time, please leave a comment)

Recently, I was working on an iPhone application for a client when I ran headlong into a crash in objc_msgSend.  It was a hair-pulling bit of frustration for me as it seemed so hard to debug for a long time.  Every time I encountered it, this was all I saw on the stack:

Debugger Stack for objc_msgSend problem

Debugger Stack for objc_msgSend problem

I saw several posts online which gave me more than few hints.  It seemed very clear that I had over-released something, but all the zombies and other flags didn’t really make it clear which thing was getting over-released or where.  I could tell what it was, but nothing much else until I struck on this idea while taking a walk:  if the crashes are always related to the release of an auto-release pool, then I need to control the auto-release pool. I can’t wait for this _NSFireDelayedPerform thing to decide to release it. (Steve Maguire’s  “Writing Solid Code” has been one of my favorite industry books for a long time.)

So in essence, I started bracketing all my suspect code like this:

Sure enough, my debugger stacks went from looking like the one above to looking like this:

Debugger Stack With Manual Pool Release

Debugger Stack With Manual Pool Release

That’s a LOT better. Now I know where to look.  Further application of layers of pools narrowed down the target pretty quickly.

In the end,  I found that my mistake was a call like this in an initializer:

which isn’t wrong.  However,  I never actually filled the allocated array entries.  When it was released later, it caused my crash.  Changing the code to to allocate the array later, when I had items to fill it,  fixed the problem.

There is one little problem with this technique that I see: you have to be careful how you bracket things with the pool-release calls.  If you release a pool, then try to use something that was allocated on that pool, you may be trying to use something you’ve already released.  The easiest way I saw to use it was to put them around a call to a routine or a message.  When I had to use them inside a block of code, I had to be careful that allocations and releases that used the pool would all be inside the bracketing calls.

I hope this helps someone else find a solution.  If it did, please leave a comment.

Tags: , ,