Monday, March 30, 2009 at 1:32 PM | 0 comments  
If you want to do web stuff on your IPhone, like getting files from somewhere, use NSURL

Reference

Here's a document on URL loading for http downloading.

Here
Posted by JP
Thursday, March 26, 2009 at 1:34 PM | 0 comments  
Posted by JP
Wednesday, March 25, 2009 at 5:32 PM | 0 comments  
Take a look at what there is so far:
Video 1
Posted by JP
Tuesday, March 24, 2009 at 10:39 PM | 0 comments  
For someone whose first language isn't Objective-C, it's also good to know the difference between forward declarations (using @class) and #import

Tutorial
Posted by JP
A lot of Objective-C you can pick up as you go along doing IPhone development, but there are several things that are a lot different than in other languages like java.

Check out a tutorial here:
Tutorial
Posted by JP
For my current project I needed a way to add a navigation bar to a tab bar. I know how to do a tab bar by itself and a navigation bar by itself and wasn't sure how to do them together. I stumbled across a video on the iphone development forums that cleared things up a bit.

Click Here for Video
Posted by JP
Thursday, March 19, 2009 at 2:36 PM | 0 comments  
New Features!

Check out some of the new features in the new SDK. One that I'm very excited about is the ability to access your IPhone music library which means we can have apps that do things like play songs depending on your running tempo, or even have power hour plugins.
Posted by JP
Wednesday, March 18, 2009 at 11:57 AM | 0 comments  
Here's my first attempt that putting a curriculum together:

Sample Curriculum 1

I. Introduction to IPhone Development

a. Getting Started (page 2)
1) Intel based Mac running Leopard
2) IPhone SDK
3) IPhone

b. Objective-C (page 5)
1) Pick it up as you go along
2) Objective-C resources

c. Limitations of the IPhone (page 6)
1) What you can and cannot do
2) Important programming practices

d. Setting up a project (page 11)
1) Tour of the development environment
2) Interface builder

II. Model View Controller Paradigm

a. Introduction to MVC (page 30)

b. Basic User Interaction (page 31)
1) Chapter Tutorial

c. More User Interaction (page 53)
1) Chapter Tutorial

d. Multiview Applications (page 113)
1) Chapter Tutorial

e. Tab Bars (page 139)
1) Chapter Tutorial

* Temperature Conversion Assignment

f. Table Views (page 185)
1) Chapter Tutorial

g. Navigation Bar (page 231)
1) Chapter Tutorial

III. Data Persistence

a. Application Settings (page 303)
1) Chapter Tutorial

b. Basic Data Persistence (page 329)
1) Plist Tutorial
2) Archiving Tutorial
3) SQLite Tutorial

IV. Features

a. Animation (page 361)
1) Quartz Tutorial
2) OpenGL Tutorial

b. Accelerometer (page 441)
1) Tutorial

*Etch-a-Sketch Assignment

c. GPS (page 429)
1) Tutorial

d. Camera (page 463)
1) Tutorial

e. Autorotation and Autosizing (page 89)
1) Tutorial

f. Taps, Touches, and Gestures (page 401)
1) Tutorial

*Final Project

V. The Development Process

a. Planning your Application

b. Application Tuning

c. Application Testing

d. Application Publishing
Posted by JP
Monday, March 2, 2009 at 3:16 PM | 0 comments  
Here are some tips I picked up while trying to create some of my own projects.

1) To access the application delegate class do this:

YourAppDelegate *appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate];

Then you can access objects from that class.

2) When using TextFields/TextViews you'll want to conform to the UITextFieldDelegate and UITextViewDelegate protocols. That way when you are done typing in either field you can hide the keyboard with the following code:

-(BOOL)textFieldShouldReturn:(UITextField *)theTextField
{
  if(theTextField == textField)
  {
     [textField resignFirstResponder];
  }
  return YES;
}

-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
  if([text isEqualToString:@"\n"])
  {
    [self.textView resignFirstResponder];
    return NO;
  }
  return YES;
}

3) It's possible to detect when a tab bar controller switches tabs. This is done by specifying a delegate of the tab bar controller, similar to specifying the delegate of the text field. Implement the tab bar controller delegate protocol. Set an object that you want to be the delegate for the tab bar controller, and in that class implement this method:

(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
Posted by JP