- iOS Human Interface Guidelines
- Object Oriented Programming With Objective-C
- Cocoa Fundamentals Guide
- The Objective-C Programming Language
- iOS Technology Overview
- iOS Application Programming Guide
Tuesday, December 21, 2010
Free Apple Development e-books
Sunday, December 19, 2010
WP7 physical keyboard use
Thursday, November 18, 2010
New iOS Development Resources
Saturday, October 30, 2010
Windows Phone 7 Petzold book in PDF
http://www.charlespetzold.com/phone/index.html
Note: I downloaded the PDF and the source code, then discovered there are file names in the Chapter 5 example that are too long for Windows 7. I had to download the ZIP to my MBP, copy them to a USB drive, then rename them to copy to my Win 7 directory... Win 7 didn't throw any exceptions when they were in long name format on the USB drive, though.
Tuesday, October 19, 2010
Windows Phone 7 Petzold book
http://www.charlespetzold.com/phone/index.html
One thing that becomes obvious very quickly: Microsoft designed the WP7 platform to be a gaming device as well as a phone. It appears that the topics covered are 50/50 Silverlight/XNA. I almost wonder why Microsoft didn't call their new phone software "xPhone".
Monday, September 20, 2010
Monotouch apps in the app store
http://monotouch.info/MonoTouch/Apps
Thursday, September 9, 2010
App Store Review Guidelines (Third-party tools allowed)
Sunday, September 5, 2010
Tab Bar Custom Icons
Video Capture of iPhone Simulator
Here is my first sample using this application:
Saturday, August 28, 2010
The autorelease lightbulb
Photo *photo = [NSEntityDescription insertNewObjectForEntityForName:@"Photo" inManagedObjectContext:[myFF managedObjectContext]];
photo.name = [key objectForKey:@"name"];
photo.path = [key objectForKey:@"path"];
photo.photoOwner = person;
[[myFF managedObjectContext] save:&error];
[photo release];
Return Value
A new, autoreleased, fully configured instance of the class for the entity named entityName.
Sunday, August 15, 2010
Useful XCode editor tip
Sunday, August 8, 2010
Working with Core Data
Thursday, July 29, 2010
Improving your UI and all the control options

Here is the after:
- (void)viewDidLoad {
UIImage *buttonImageNormal = [UIImage imageNamed:@"whiteButton.png"];
UIImage *strechableButtonImageNormal = [buttonImageNormal stretchableImageWithLeftCapWidth:12 topCapHeight:0];
[button1 setBackgroundImage:strechableButtonImageNormal forState:UIControlStateNormal];
buttonImageNormal = [UIImage imageNamed:@"blueButton.png"];
strechableButtonImageNormal = [buttonImageNormal stretchableImageWithLeftCapWidth:12 topCapHeight:0];
[button2 setBackgroundImage:strechableButtonImageNormal forState:UIControlStateNormal];
[super viewDidLoad];
}
Thursday, July 22, 2010
Using TFS with Xcode
Thursday, June 17, 2010
Human Interface Guidelines and other UI info
Apple provides explanations of what they intend the different UI components to be used for and why certain components work better than others when designing for a mobile device instead of a full desktop.
Apple pushes highly polished, intuitive user experiences with most tasks being no more complex than they have to be. This same theme is present in their HIG documentation. The idea they are trying to convey is about fluid and consistent experiences. The good news is they have already figured this out; we just have to become familiar with it.
Here are a few links to some useful UI information and additional tools:
Human Interface Guidelines: www, pdf
Sunday, June 13, 2010
Imitation is the sincerest form of flattery!
“The iPad makes using a computer less of a commitment and that has important implications for the way I compute.”
Coming from a VC, too… Nice. But I digress.
The above, plus other reasons the esteemed readers of this blog can certainly provide make a compelling case for us to study the iP* ecosystem of products Apple has produced from a development perspective. I took some time this weekend to try some iPhone programming, using the simulator provided with the SDK. (It also supports the iPad.) Like most people, I rummaged through the Apple SDK documentation looking for a place to start. I also looked on the web for blogs like this that might offer some basics. There are number of sites that discuss Cocoa, but I didn’t find any that really offered a comprehensive tutorial. This is also complicated by the fact that that XCode, and especially IB have evolved. As usual, this led to me to look at the latest dev books that are available. I bought a book on Objective-C recently:
Programming Objective-C 2.0.
With a language reference in hand I looked for one that is focused on iP* development with a good discussion of XCode and IB. After reading the reviews for many books, I finally decided to buy:
Beginning iPhone 3 Development.
(Sidebar: Technical books are generally available in Kindle format. Given how perishable tech books are, I decided to download the Kindle reader instead of buying the physical book. It’s also a bit less expensive, and of course you get it instantly. The Mac version of the reader is still Beta, but it worked well.)
So far I am happy with the “Beginning iPhone 3” book. It’s a “learn by example” book, which I like for bootstrapping my ability to develop in a new environment. Does it explain everything the way I would like? No, but no single tech book is ever perfect, except for “Oh! Pascal”. Petzold’s “Programming Windows 3.0” was close to perfection, too. Now someone hand me my Geritol…
Most of us seem to have Macbook Pros or Minis. I have an iMac and a MBP. I tried using VNC to connect from my triple head Windows system to the iMac for development purposes, but that didn’t work very well. Apple offers remote management software, but it’s expensive. I bought the MBP to replace my Dell laptop when travelling, which allows me to develop for the iP* products and Windows, since I loaded Parallels. (The Dell will now become a VM host.) The MBP will allow me to use iLife, which is the most compelling reason to own a Mac from my perspective as a user.
If you are like me, you like to have a lot of screen space. This is especially true when using XCode and IB. (The return of the MDI interface! Holy VB 3, Batman!) I thought about buying a KVM, but once you go digital the price goes up and I didn’t want to have another widget on my desk if I could avoid it. My 24” monitor has two inputs: VGA and DVI. It allows me to switch sources, so I have the PC and the MBP connected to it. I also bought a Magic Mouse, since I really like the gestures the touchpad offers on the MBP.
If you own a Magic Mouse, you can improve the way it works (since Apple has yet to get a mouse right) by downloading this:
MagicPrefs
On another note, working with the Mac so much recently has reminded me of why I dislike the Mac UI compared to Windows or Unix window managers. It is truly a PITA when you work with lots of active windows. The main frustration is with the “One Ring To Bind Them” menubar, which always represents the active app. I much prefer the Windows and Unix way of associating the menu with the app window itself. Compared to the Windows 7 task bar, the Mac is a pain even with Expose and Spaces. Of course this may seem irrelevant, since it sounds like a personal preference. I mention it because it demonstrates some of Job’s insight, however. As we all know, the iPhone and iPad pre-iOS4 are essentially single-taskers. Many have thought this a serious flaw, but I think Job’s insight is that a substantial majority of users only work in one app at a time anyway. As developers, we must keep this in mind, since our typical manner of working with many windows represents a minority of users.
A corollary to the above can be found in iAd. Job’s point about the current state of advertising that requires users to leave the app strikes me as being insightful, too. Allowing the user to stay within the app while interacting with the ad certainly has merit. Context sensitive advertising should have an edge over the random variety, but there are exceptions. When I was in the online music business, I noticed that some promotions would always get significant click-through. American Express used to run ads that featured a free MP3 download if you clicked on their ad. People would click on the AmEx ad like tigers on Obsession. But in general, tying ads to the context, and this by all means includes the visual context, is an important consideration.
Note to self: don’t wear Calvin Klein products when visiting the Wild Animal Park…
If you are developing a consumer app, I think it would extremely worthwhile to consider integrated ad placement in the app – a UI requirement that is relatively new and worthy of discussion.
Friday, June 11, 2010
WWDC 2010 Wrapup
- iAd looks to be pretty awesome for people who have popular apps but beware the Apple licensing agreements.
- Iterative software development is not dead - Apple seems to have that dialed in pretty well.
- The User Experience is much more than art - it encompasses how the user feels about the application when they run it.
- Learn MVC if you want to develop for Apple - and really do it
- Build apps as universal apps that will work on iOS. You have to do true, Apple-stlye, MVC to pull that off

