- 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
- (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
Wednesday, June 9, 2010
WWDC 2010 - Day 2
Monday, June 7, 2010
WWDC Day 1
Friday, June 4, 2010
Standford Assignments
Thursday, June 3, 2010
Go to class.....
UC Davis Extension also has a series that you will find here: http://deimos3.apple.com/WebObjects/Core.woa/Feed/ucdavis-public.3002137116.03002137129
Let me know which other ones you have found that are good.
Wednesday, May 26, 2010
Apple got me – and you too…
There is another wave coming – in fact we are on it now. Like a surfer you have to decide if you are going to ride this one or not. The problem with this wave is it is huge – much bigger than the Internet wave in 1995 and much, much bigger than the .Net wave of 2001/2002. This wave is labeled the ‘commoditization of computing’ or the ‘computer as an appliance’ and Apple gets it. Apple is now the most highly valued public technology company. Apple has released several devices recently which may seem useless to technical savvy users. The iPad is an example of this.
As I talked with several developers and IT support people they really don’t see the point of a device like the iPad. The point is that devices like the iPad are not trying to be a device that does everything (like a laptop or tablet computer). It also is not trying to only do one thing like the Kindle. It is trying to do most of what most people do with computers today which is surf the web, email, shop online, view content (ebooks, movies, TV) and social network. The iPad is perfect for that and that is why Apple is selling 200,000 of them each week. It isn’t about a device a techie wants, it’s about a device the non-technical consumer wants.
http://www.pcmag.com/article2/0,2817,2364545,00.asp
Friday, May 21, 2010
iPad and iPad SDK
Next step for me was to begin doing iPad development. To do this you need to have the latest SDK installed at least SDK 3.2. I had an older version installed so I was a bit worried about how XCode and the SDK would update (you will likely need to install both). I downloaded XCode with the SDK 3.2. It is about a 2GB download so be prepared for a long download. Once it downloaded I ran the installer and it detected what I already had installed and installed the new versions of XCode and the SDK with no problem. I fired up XCode and selected iPad as the target under iPhone apps and built a blank screen iPad app. When I ran it the iPad emulator started up just like the iPhone emulator does. The iPad emulator works great just like the iPhone emulator.
Monday, May 17, 2010
Keeping Track of Updates
You can follow the blog via RSS with these links...
If you want to follow the comments made to the blog...
Full site feed:
- Atom 1.0: http://blogname.blogspot.com/feeds/posts/default
- RSS 2.0: http://blogname.blogspot.com/feeds/posts/default?alt=rss
Comments-only feed:
- Atom 1.0: http://blogname.blogspot.com/feeds/comments/default
- RSS 2.0: http://blogname.blogspot.com/feeds/comments/default?alt=rss
Label-specific site feed:
- Atom 1.0: http://blogname.blogspot.com/feeds/comments/default/-/labelname
- RSS 2.0: http://blogname.blogspot.com/feeds/comments/default?alt=rss/-/labelname
Individual post comment feed:
- Atom 1.0: http://blogname.blogspot.com/feeds/postId/comments/default
- RSS 2.0: http://blogname.blogspot.com/feeds/postId/comments/default?alt=rss
Friday, May 14, 2010
Getting Started with iPhone Development (for Windows Developers)
Many developers are used to using some great tools out there to put together applications quickly. iPhone development isn't easy but it certainly isn't impossible. Apple provides a good set of tools for free and like Linux tools that are free you get what you pay for. If you are used to Visual Studio or tools like Delphi it may seem like you are taking a step backward but remember that most of that feeling is because you are facing a steep learning curve. I suspect over time we will see even better tools. The tools that Apple provides are professional level but they aren't Visual Studio :-)
I will now describe a minimal environment you will need to get started with iPhone development.
- MacMini - you will find this the easiest entry point. Unlike Windows systems you don't have to have the biggest hard drive and the most memory to have a good development environment. Remember the MacMini won't have a keyboard or mouse but a PC keyboard and mouse will work fine (you don't have to buy the Apple keyboard and mouse). It will have built in ethernet, built in wireless and a good graphics card (with VGA/DVI out).
- Apple Developer ID - this is your entry point to the Apple developer community and your access to the free development tools.
- Once you have your MacMini set up and your Apple Developer ID head to the Apple Developer site and go to the iPhone developer site and view the getting started docs and videos. There are some good ones over there. This will walk you through installing XCode (think Vidual Studio kind of) and the iPhone SDK.
I recommend using Safari - many of the Apple web pages have an annoying habit of not rendering nicely in other browsers so pick up a copy of Safari (it's free).