• iPhone Development is Cool, but not easy

    TextToAFriend.pngI've been doing some iPhone development lately (screenshots and announcement of my first app will be next week) and realized yesterday why I keep running into hurdles; I'm a perfectionist. I want everything to look and work well and have studied the built-in apps for guidance. In my app, the hardest part was the settings believe it or not. As I was looking at apps yesterday and found some issues with some major applications in terms of functionality and interface.

    AddLocation.pngLet's take a look at a screen from the AP news application pictured to the right. The text placeholders are far too big and in my opinion, there should be labels to the left of each text field. Second and this is where someone really didn't pay attention to details is that if you hit the + button, it brings up the people picker; there is a cancel button like there should be, but if you hit the Groups button (standard in the people picker), you're stuck. You must choose a group and then hit the cancel button. Next if you goto the Local section, if you add a location, there are 2 glaring issues to me; first, the return button in the lower right. That really should be a done or something else. The second is that the title says "Add Zip Code", but the keyboard is NOT theNumberPad.png standard number pad used for PINs and the like. Furthermore, you can enter something like Los Angeles, CA and it says that there is no local news. This is not very user friendly. Do I happen to know the zip code for LA? (OK, I could enter 90210 and get close).

    Am I nitpicking? Of course. Will someone pick apart my apps? I'm sure that someone will just to say that I can talk the talk, but not walk the walk. Everyone and his brother is going to say that they do iPhone apps and there will be tons; I hope that people pay close attention to detail as that is what I think will separate the iPhone from other platforms.

    I hope to have some neat apps for the iPhone in the near future; so far I really enjoy the platform, but paying attention to detail is the hardest part. In the current app I'm working on, I re-did my settings 3 or 4 times until I liked how it worked.

    If you have any ideas or need a contract iPhone developer, please let me know.

  • No excuse for crappy UI

    I've been reading about Stevens Creek's new TripLog/1040 application through some discussions about bad UI. Steven Patt, the author and long time Palm developer (like me, however I stopped a few years back), defends his decisions saying that users want everything viewable on one screen. While this may be true, this app looks like a horrible Palm OS app. It follows none of the Apple UI guidelines and looks nothing like any built-in iPhone application. There is absolutely no excuse for it; some of the buttons are far too small to actually hit on a device. They may work fine in the Simulator, but they are not usable. Then the background color is just awful.

    He can justify his decisions all he wants, but this kind of UI just makes the iPhone look like a piece of junk. Developers need to adhere to the guidelines to make the platform look solid. Years ago I wrote an article for one of the Palm conferences about minor things developers could do to polish their apps, like have the correct button sizes and placements. Many Palm OS developers ignored it.

    While I'm ranting about software, it was so nice of him to violate his non-disclosure with Apple by posting screenshots of his application. It seems like he wasn't only in this violation. Does Apple care? I don't know, but it annoys me to no end that even if I did have an app ready, I would have honored the NDA and not posted anything until I was released from the NDA. I would have hoped that Apple would have punished these developers by not accepting their apps into the AppStore, but this didn't happen.

  • No financial incentive to recycle

    Here in San Diego we have free trash pickup (for single family residences) due to the People's Ordinance of 1919 which I believe came out of the city selling refuse to pig farmers and making money on it (hmmm, it would appear that the city leaders back then had some of the same issues of public trust as the current ones). With free trash pickup, what incentive do we have to recycle? We recycle as much as possible and just started a compost bin last week to reduce the amount we send to the dump. If the city wants to encourage more recycling, they should offer a financial incentive (don't take away the free trash pickup) to say lower property taxes or something like that. The city is already in hot water as state law requires it to recycle more, but it isn't meeting that. While people should just feel good about "going green", let's be realistic. Unless it positively or negatively affects people's wallets, it just isn't going to be adopted by everyone.

    (I'm not new to "going green"; back in 1990, I started a paper recycling program for my Eagle Scout project. Times have changed, but I've tried to do my part to help.)

  • New features for newer operating systems

    I've written a number of times (I think) about how long should I support an older OS. I've also said that I'm not abandoning Tiger users, quite yet, but I may have mentioned that new features are likely going to be Leopard only as required to make things easier. In the recent past, I've implemented 2 Leopard only features; the first is support for Image Capture scanners. Image Capture seems like a broken framework that might be fixed someday. In the meantime, the only way for me to reliably test and get things working is to require Leopard.

    The other feature (which I just finished today) is allowing a library to be encrypted. The approach I took was to create an encrypted disc image and shove everything in that. Encrypted disc images are supported on Tiger, but one of the slick features in Leopard is a sparsebundle. What is a sparsebundle? Well, it is a growable disc image that has "bands". This means that if you modify a few files in the disc image, only the necessary bands are updated. This is absolutely necessary for backups otherwise each time a user touched a ReceiptWallet library, he'd have to backup the entire disc image (backup apps do the right thing; it isn't a manual process to copy the bands). With one of my libraries approaching 1 GB, that would be a complete waste of time. Time Machine uses sparsebundles for the Time Capsule and if it is good enough for Apple, it's good enough for me! So, I've disabled encryption on Tiger. I'm sure that some people won't be too happy about this, but doing encryption another way would have taken significantly longer with no true reward.

    Everyday, I look at the statistics I collect on what operating systems users run. The large majority run Leopard. In the graph below, you have to make one big assumptions as the data is anonymous so users that check for updates all the time (more than the default once a day) will get recorded more than once, and that is that Tiger and Leopard users check for updates at the same rate. The actual numbers are irrelevant; it is the trends I look at and the ratio of Leopard to Tiger users. The blue and red lines represent the most recent versions of Leopard.

    UserData.png