Thursday, April 23, 2009
at
10:17 PM
|
0
comments
Here's an article I found on CVS.
CVS
CVS
Posted by
JP
|
|
IPhone Application DevelopmentMy independent study to design a curriculum for IPhone application development |
|
|||
|
Monday, April 13, 2009
at
11:59 PM
|
0
comments
Sample Curriculum 3 was revised a little bit. Here's version 4.
Posted by
JP
Wednesday, April 8, 2009
at
10:12 PM
|
0
comments
My third attempt at a curriculum is up. Here
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
Saturday, March 21, 2009
at
4:32 PM
|
0
comments
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
Thursday, February 26, 2009
at
2:58 PM
|
0
comments
My last summaries were mainly about broader topics. The things that I've covered recently are cool features so here is a summary of the features I've covered: 4. Features
Posted by
JP
at
2:49 PM
|
0
comments
The last chapter that I covered before the completion of this book was on using the camera. One of the IPhone's main limitations is that you are generally restricted to your own application's "sandbox" meaning that you can not access things outside of your own data. The camera is an exception to this. An application can not only access your camera, but can also access your library. In a simple application that I made through following the tutorial, you can either take a picture with your camera, or choose a picture from your library and it will display it on the screen. It is a very simple application that allows you to see how this works.
Posted by
JP
Another awesomely cool feature of the IPhone and IPod Touch is the built in accelerometer which can detect when the device is moving. The accelerometer is a 3-dimensional one in that it can detect movement in any direction. This lends to some interesting applications including ones that sense whether the IPhone is being shook (maybe to erase a drawing in a paint program) or tilted (to steer a car in a racing program) among others. Luckily, it's very simple to use. I followed two tutorials from this chapter. One detects if the device is being shook and makes a breaking glass sound and shows a picture of a broken screen. The other simulates the rolling of a marble depending on how you tilt your screen. Both are very cool. I've uploaded the sample code. ![]()
Posted by
JP
Tuesday, February 24, 2009
at
5:27 PM
|
0
comments
I finally got to learn how to use the Location functionality of the IPhone. The IPhone can determine your location via GPS, cell phone triangulation, or WIFI. It will automatically use whatever is available. It is fairly accurate within 10 meters. It will drain your battery however if you are constantly polling for location so make sure to be careful about polling. It was very easy to use the Location API as most of the work is done for you. This opens up many new possibilities for application ideas.
Posted by
JP
I just got through a relatively short chapter on touches/taps/gestures. The IPhone can recognize up to 5 fingers touching the screen at once and can figure out how many consecutive taps one finger is doing. You can also program the IPhone to recognize certain gestures. In one of the tutorials I was able to get the IPhone to recognize a checkmark gesture. The code is uploaded.
Posted by
JP
Sunday, February 22, 2009
at
12:07 PM
|
0
comments
I finally got to start doing animation! There are two main ways to do animation. The first is using Quartz and the second is with OpenGL-ES. Quartz is really simple to use and with it you can easily create 2-D animations. OpenGL-ES is for 2-D and 3-D animations and is much more powerful and much more difficult to use than Quartz. It takes advantage of various hardware acceleration mechanisms to draw things efficiently unlike Quartz. For this tutorial I made a paint application using both Quartz and OpenGL-ES. Using Quartz was much simpler for this application. Without prior knowledge of how OpenGL works, beginners might want to stick with Quartz for their 2-D creations. ![]()
Posted by
JP
I finished the chapter on data persistence. Being able to save application data is very important for applications that require things to be saved between different runs of the application. There are three main ways of persisting data; property lists, archiving, and SQLite3. Property lists are really easy and convenient but only work for serializable objects that can be put into a dictionary or array. You can't put custom classes into property lists though. Archiving allows you to write any objects to files as long as you specify how it will be done by supporting certain protocols. SQLite3 is the IPhone's version of SQL. It is for storing large amounts of data in a database. This requires knowledge of the SQL language. I didn't do much with this because this book doesn't talk too much about SQL.
Posted by
JP
Tuesday, February 17, 2009
at
2:34 PM
|
0
comments
Here's a continuation of my last summary to help tie things together into a curriculum idea. 2. Model View Controller (continued)
Posted by
JP
|
Good Course MaterialsGood Supplementary MaterialsTips/Tasks
Private Resources |
||||