Pages

Monday, March 21, 2011

Mobile UI Patterns

Looking at some of the most popular apps in the App store you can learn a lot about successful mobile UI patterns.
Mari Sheibley, the lead designer at foursquare has an awesome website that catalogs common mobile UI patterns.

Thursday, March 17, 2011

Some Useful iOS Libraries

AppDev Magazine previously listed some useful iOS libraries. Below are the libraries listed and a couple of additional libraries that I have used.

A lot of the libraries in the above list are very useful, very current and widely used so there should be a lot of examples around on how to use them. I recommend the ASIHttpRequestShareKitFlurry , GData Objective-C ClientFacebook iOS SDKRegexKitListTouchJSONJSON Framework for Objective-CCore Plot and SDWebImage because I have used them recently. The rest I haven't used recently so I cannot recommend them. You can also read 10 iOS Libraries to make your life easier. for more information about some of these libraries.

Friday, March 11, 2011

Xcode 4 is now available

Yesterday Xcode 4 was made available to developers. It is a significantly better Xcode with lots of new features and enhancements. I was able to open my Xcode projects, build and run them without any problems. You cannot install the release version on Lion, but there is a Lion release that you can use to build Lion apps.
Xcode now works like most other IDE's where there is a workspace and an integrated Designer tool. Yes, now Interface Builder can run inside of Xcode and the single window model works really well.

Some Notable Changes

  • Single Window model
  • Built-in Interface Builder
  • LLVM Compiler
  • Faster Debugger
  • Version Editor and Management
  • Improved Instruments.
The most significant change is the Single window model UI which consolidates many windows that are used for key development tasks. The new Xcode 4 work area called a workspace has several UI elements that make it easy to work on many different tasks while keeping your editor front and center. The new workspace window contains a Toolbar, a Tab bar, a Navigator area, a Utility area and a Debug area. You can have as many workspaces as you want (File>New>New Window creates a new workspace window). The workspace Navigator provides tools for viewing and managing your project. The Utility area is for inspectors and properties of selected artifacts. The UI changes combined with the improved compiler and faster debugging make it so much easier to develop software faster and more efficiently. There are many changes and the only way to understand them is to use them.

Wednesday, February 9, 2011

iPhone Pull to Refresh

There are several ways to implement Pull-toRefresh on iPhones. The best method that I have found so far is Leah Culver's technique. I especially like it because all you have to do is add PullRefreshTableViewController.h and PullRefreshTableViewController.m to your project and subclass them in your UITableViewController. You should also add the the arrow.png image included with the code or replace it with your own image. This technique should be included in Apple's Sample code.

iPhone Pull to Refresh

Ever since Tweetie 2, the pull-to-refresh paradigm has been a hot feature for iPhone applications. The idea is that you can pull down on a list of items to refresh them. This saves you from needing some sort of "refresh" or "reload" button. Nice!

For the upcoming V2 of the Plancast iPhone app we really wanted to replace the current "reload" toolbar item with the pull-to-refresh style. However, the existing open source pull to refresh examples such as Three20's Pull to Reload and EGOTableViewPullRefresh are a little too complicated for my taste. Heck - this should only require one file!

So here it is... a very simple pull-to-refresh:

PullToRefresh

All you need to do is add the .h and .m files to your project and subclass them. I've added a bit of a hack to make pull-to-refresh work with tables that have multiple sections (like Plancast).

There's even a built-in demo so you can try it out right away.

Refresh-1 Refresh-2 Refresh-3

see iPhone Pull to Refresh - Leah Culver's Blog

The Daily done better


Here is how Loren Brichter would do "The Daily", It is faster and more fluid.

He also "created" the fastest way to scroll UITableViews. His solution:
Pre-blend of course… with CoreGraphics into your own view. If you blend your stuff together into a single static view on demand (e.g. when a table view moves a cell onscreen), it’s a little bit more expensive for the first frame, but every frame after that CoreAnimation is just dealing with one big, opaque texture… which it loves. It’s more than just the blending too. If you think about what is happening in terms of overdraw, having one big view per table cell is a big win because CoreAnimation will only touch a single given pixel on the screen once rather than multiple times (potentially, depending on how much overlap your old view hierarchy had).

DECEMBER 12, 2008
Scrolling is the primary method of interaction on the iPhone. It has to be fast. Ithas to be fast. More than a few developers have asked me how I do it inTweetie, so I figured I would share a really fast and really clean technique people can adopt in their own apps.

The Solution

Cutting to the chase, here’s the secret: One custom view per table cell, and do your own drawing. Sounds simple? That’s because it is. It’s actually simpler than dealing with a ton of subviews of labels and images, and it’s about a bzillion times faster (according to my informal tests).

Why it’s Fast

Much like on Mac OS X, there are two drawing systems on the iPhone. One is CoreGraphics, the other is LayerKit CoreAnimation. CoreGraphics does drawing on the CPU, CoreAnimation does drawing on whatever it thinks is fastest - most likely the GPU.
The GPU on the iPhone hates blending, that’s why Apple recommends that you keep as many of your views opaque as possible. Sometimes you have no choice - if you have a label over an image you are forced to make the label transparent otherwise you get a big ugly block around your text.
What’s a developer to do? Pre-blend of course… with CoreGraphics into your own view. If you blend your stuff together into a single static view on demand (e.g. when a table view moves a cell onscreen), it’s a little bit more expensive for the first frame, but every frame after that CoreAnimation is just dealing with one big, opaque texture… which it loves. It’s more than just the blending too. If you think about what is happening in terms of overdraw, having one big view per table cell is a big win because CoreAnimation will only touch a single given pixel on the screen once rather than multiple times (potentially, depending on how much overlap your old view hierarchy had).

The Code

I put together a small example project showing off this technique. It’s a simple scrolling list of cells with some text but draws the text using two different fonts, much like the Address Book Contacts list on the iPhone (regular and bold fonts). The technique is extensible to pretty much any style cell you need - I use the same thing in Tweetie and draw the chat bubble, text, and avatar all together into a single view.
There is one handy class that you can use for everything, see:ABTableViewCell.h and ABTableViewCell.m in the full example project here:FastScrolling.zip.
It doesn’t help that Apple doesn’t have any good examples on how to get good scrolling performance. The one table view example I checked (a while ago, it may have been updated) was absolutely horrible in terms of scrolling performance. Horrible.
If you wanted to know why Tweetie is so fast, now you do. It’s an incredibly simple technique and should be very easy to adopt.
Update: It looks like Apple has in fact updated the example code. Check out the fifth example in their TableViewSuite.

Monday, January 24, 2011

iOS code samples anyway you want it

In a previous blog post I listed all the Apple iOS related code samples. Since these samples are also updated regularly so they are current and relevant for the latest iOS SDK, I decided to list them based on Frameworks and Date updated.
This should make it easy to find a sample you are interested in by framework, topic or date last updated.
Since these samples are also included in Apple's Developer Documentation, the best way to use these samples is to open the Developer Documentation in Xcode and navigate to the sample. You can then browse the sample source code and documentation or open the sample directly from there.

TopPaid
This sample demonstrates how to build a universal application capable of running on both the iPhone and iPad.
Last change: Upgraded to support iOS 4.2 SDK.
UIKit2011-01-13
Content Update

UICatalog
This sample is a catalog exhibiting many of the UI elements found in the iOS UIKit framework.
Last change: Upgraded to support 4.2 SDK, Picker page now supports landscape orientation.
UIKit2011-01-12
Content Update

AdvancedTableViewCells
AdvancedTableViewCells shows several methods for displaying complex content in UITableViewCells.
Last change: Upgraded to support iOS 4.2 SDK, now using UINib class to help load and instantiate xib-based table view cells.
UIKit2011-01-11
Content Update

iAdSuite
Demonstrates how to manage ADBannerViews in three common scenarios.
Last change: Updated for iOS 4.2, changed deprecated content size identifiers, "AdBannerNavigation" sample now shares ad banners across view controllers.
iAd2011-01-03
Content Update

MoveMe
Illustrates simple drawing, touch handling, and animation using UIKit and Core Animation.
Last change: Upgraded to iOS 4.2 SDK, DisplayStrings now included in project, now checking for more GCC warnings.
2010-12-23
Content Update

iPhoneACFileConvertTest
Demonstrates using the Audio Converter to convert PCM audio to a compressed format including AAC if supported.
Last change: New document.
AudioToolbox2010-12-10
First Version

GKTapper
Demonstrates how to implement Leaderboards and Achievements.
Last change: -Fixed bug in how the "submitAchievement:" method handles the "earnedAchievementCache". -Updated Read Me to clarify iTunes Connect's role in GameCenter.
GameKit2010-12-10
Minor Change

CurrentAddress
Demonstrates basic use of MapKit, displaying a map view and setting its region to current location.
Last change: Upgraded to iOS 4.2 SDK, now using "mapView:didUpdateUserLocation:userLocation" to enable showing the user's address.
MapKit2010-12-01
Content Update

avTouch
avTouch demonstrates how to play an audio file using the AVAudioPlayer class.
Last change: audioPlayerDidFinishPlaying should not update meter when in the background.
AVFoundation2010-11-16
Minor Change

MessageComposer
demonstrates how to target older OS versions while building with newly released APIs.
Last change: Changed the rainy.png image into a JPEG image, because PNG-optimization made it unreadable on some platforms when sent as an attachment.
MessageUI2010-11-08
Content Update

iPhoneUnitTests
Illustrates the use of unit tests on an iPhone application project.
Last change: Fixed bugs. Added workaround for running unit tests against the iPhone Simulator in Xcode 3.2.4 with iOS SDK 4.1.
2010-11-01
Content Update

Icons
This sample demonstrates the proper use of application icons on iOS.
Last change: New document.
UIKit2010-10-22
First Version

MVCNetworking
Shows how to create a network application using the Model-View-Controller design pattern
Last change: New document.
2010-10-22
First Version

WiTap
The WiTap sample application demonstrates how to achieve network communication between applications.
Last change: Updated for iOS 4.1, added IPv6 support, fixed problem causing delayed writes
Foundation2010-10-22
Content Update

Popovers
This sample demonstrates proper use of UIPopoverController in iOS.
Last change: New document.
UIKit2010-10-20
First Version

ScrollViewSuite
A series of examples that illustrate how to use UIScrollView.
Last change: Updated 1_TapToZoom to use Interface Builder for UI objects. Removed TapDetectingImageView class since the sample no longer requires it.
UIKit2010-10-20
Content Update

aurioTouch
iPhone example to monitor audio input and play it out (duplex audio I/O)
Last change: Updated for iOS 4.1
AudioUnit2010-10-20
Content Update

PageControl
Demonstrates how to display pages of data differently between the iPhone and iPad.
Last change: Updated as a universal application for iPhone and iPad.
UIKit2010-10-18
Content Update

PrintWebView
Demonstrates how to print content contained within a web view in iOS 4.2 or later.
Last change: Use the same toolbar autoresizingMask for iPad and iPhone.
UIKit2010-10-11
Content Update

DocInteraction
Demonstrates how to use UIDocumentInteractionController to obtain information about documents and how to preview them.
Last change: Fixed Xcode project deployment target to 4.0.
UIKit2010-10-06
Content Update

Breadcrumb
Demonstrates how to draw a path using the Map Kit overlay, MKOverlayView, that follows and tracks the user's current location.
Last change: Option kCLLocationAccuracyBestForNavigation turned off by default, sound feedback on location updates added as an option.
MapKit2010-10-06
Content Update

PrintPhoto
PrintPhoto demonstrates how to print photos in iOS 4.2 or later.
Last change: New document.
UIKit2010-09-23
First Version

ZoomingPDFViewer
This sample code project demonstrates how to create a PDF viewer using the UIScrollView and CATilerLayer classes.
Last change: New document.
CoreGraphics2010-08-31
First Version

ListAdder
Demonstrates the technique of thread confinement using NSOperation.
Last change: New document.
Foundation2010-08-27
First Version

Table View Animations and Gestures
Shows how to use gesture recognizers and animated update blocks with a table view.
Last change: First public version. * Uses plays and quotations instead of RSS feed. * Uses SectionInfo class instead of struct. * More comments. * Minor user interface changes.
UIKit2010-08-27
Minor Change

HazardMap
Demonstrates how to create a custom Map Kit overlay to display USGS earthquake hazard data.
Last change: Localized xib files, editorial updates.
MapKit2010-08-24
Content Update

KMLViewer
Demonstrate how to display KML files on top of a MKMapView.
Last change: Localized xib files, editorial changes.
MapKit2010-08-24
Content Update

PhotoScroller
Demonstrates the use of embedded UIScrollViews and CATiledLayer to create a rich user experience for displaying and paginating photos.
Last change: Added autorotation.
UIKit2010-08-19
Content Update

SeismicXML
Demonstrates how to use NSXMLParser to parse XML documents.
Last change: Now using NSOperation to perform the XML parsing.
UIKit2010-08-18
Content Update

GLSprite
Shows how to create an OpenGL texture from image data in a Core Graphics bitmap context.
Last change: Upgraded project to build with the iOS 4.0 SDK
OpenGLES2010-08-18
Minor Change

GLPaint
Demonstrates how to support single finger painting using OpenGL ES.
Last change: Updated to take into account the view's contentScaleFactor. Updated to draw strictly with premultiplied alpha pixel data.
OpenGLES2010-08-04
Content Update

Audio Mixer (MixerHost)
Demonstrates how to use the Multichannel Mixer audio unit in an iOS application.
Last change: New document.
AudioUnit2010-07-27
First Version

Audio UI Sounds (SysSound)
Demonstrates how to play short sounds and invoke vibration.
Last change: Upgraded project to build with the iOS 4.0 SDK. Other minor corrections and improvements.
AudioToolbox2010-07-27
Content Update

EADemo
Demonstrates use of the ExternalAccesory.framework to communicate with attached MFI device
Last change: Update sample for iOS 4 SDK
ExternalAccessory2010-07-26
Content Update

PhotoLocations
Illustrates a Core Data application that uses more than one entity and transformable attributes.
Last change: Added UIGraphicsEndImageContext to EventDetailViewController.m. Updated for iOS v4.0.
CoreData2010-07-23
Minor Change

PhotoPicker
Demonstrates choosing images from the photo library, take a picture with the camera, and how to customize the camera.
Last change: New document.
UIKit2010-07-22
First Version

iPhoneExtAudioFileConvertTest
Demonstrates using the ExtAudioFile API to convert from one audio format and file type to another.
Last change: Upgraded project to build with the iOS 4.0 SDK.
AudioToolbox2010-07-22
Content Update

GenericKeychain
An example of how to use Keychain Services on iOS.
Last change: Fixed minor memory leak and upgraded project to build with the iOS 4 SDK.
Security2010-07-22
Content Update

BatteryStatus
Demonstrates the use of the battery status properties and notifications provided via the iOS SDK.
Last change: Upgraded project to build with the iOS 4.0 SDK.
UIKit2010-07-22
Content Update

SimpleNetworkStreams
Demonstrates networking using the NSStream API.
Last change: Updated for iOS 4.0
2010-07-20
Content Update

SimpleURLConnections
Demonstrates simple networking using the NSURLConnection API.
Last change: Updated for iOS 4.0
Foundation2010-07-20
Minor Change

Reachability
Shows how to monitor network state and host reachability.
Last change: Updated for iOS 4.0
SystemConfiguration2010-07-20
Minor Change

AdvancedURLConnections
Demonstrates various advanced networking techniques with NSURLConnection.
Last change: Updated sample of iOS 4.0
Foundation2010-07-13
Minor Change

LocateMe
This sample uses CoreLocation to get and track the user's location.
Last change: Updated for iOS 4.0.
CoreLocation2010-07-09
Content Update

SimpleFTPSample
Demonstrates simple FTP operations using the NSURLConnection and CFFTPStream APIs.
Last change: Updated for iOS 4.0.
Foundation2010-07-09
Minor Change

XMLPerformance
Performance and parsing XML, focusing on speed, memory footprint, and user experience.
Last change: Updated for iOS 4.0
Foundation2010-07-08
Minor Change

iPhoneMultichannelMixerTest
Demonstrates how to build an Audio Unit Graph using the Multichannel Mixer and Remote I/O units.
Last change: Upgraded project to build with the iOS 4 SDK.
AudioUnit2010-07-07
Content Update

GLES2Sample
This sample demonstrates how to create an OpenGL ES 1.1 and 2.0 compatible project.
Last change: Upgraded project to build with the iOS 4.0 SDK
OpenGLES2010-07-07
Minor Change

GLGravity
Demonstrates how to use the UIAccelerometer class in combination with OpenGL ES rendering.
Last change: Upgraded project to build with the iOS 4.0 SDK.
OpenGLES2010-07-06
Minor Change

Touches
Demonstrates how to handle multiple touches.
Last change: Changed deployment target back to iOS 3.2 and added CFBundleIconFiles in Info.plist.
UIKit2010-07-01
Content Update

WeatherMap
Demonstrates the use of the MapKit, displaying a map view with custom MKAnnotationViews.
Last change: Updated for iOS 4.0.
MapKit2010-07-01
Content Update

Formulaic
Demonstrates how to use the iPhone Accessibility API to make an iPhone application accessible.
Last change: Updated project to build with the iOS 4.0 SDK
UIKit2010-07-01
Minor Change

Locations
Complete implementation of the Locations project from the Your First iPhone Application With Core Data tutorial.
Last change: Added CFBundleIconFiles in Info.plist.
CoreData2010-06-29
Content Update

CoreDataBooks
Illustrates use of Core Data in an iPhone application.
Last change: Added CFBundleIconFiles in Info.plist.
CoreData2010-06-29
Content Update

oalTouch
iPhone example to play a single audio source using OpenAL.
Last change: Changed deployment target back to iPhone OS 3.2 and added CFBundleIconFiles in Info.plist.
OpenAL2010-06-29
Content Update

HeaderFooter
Demonstrates how to implement and customize UITableView's header and footer views.
Last change: Added CFBundleIconFiles in Info.plist.
UIKit2010-06-29
Content Update

GLImageProcessing
Demonstrates how to implement simple image processing filters using OpenGL ES1.1.
Last change: Added CFBundleIconFiles in Info.plist.
OpenGLES2010-06-29
Content Update

TaggedLocations
This sample illustrates how to manipulate attributes and relationships in an iPhone application.
Last change: Added CFBundleIconFiles in Info.plist.
CoreData2010-06-29
Content Update

TouchCells
Demonstrates how to implement trackable-settable UIControls embedded in a UITableView.
Last change: Added CFBundleIconFiles in Info.plist.
UIKit2010-06-29
Content Update

AppPrefs
Demonstrates how to display your app's preferences or settings in the "Settings" system application.
Last change: Deployment target set to iPhone OS 3.2.
UIKit2010-06-29
Content Update

CopyPasteTile
Demonstrates how to implement copy, cut, and paste in your application.
Last change: Added CFBundleIconFiles in Info.plist.
UIKit2010-06-28
Content Update

AQOfflineRenderTest
Demonstrates using Audio Queue offline render functionality using the AudioQueueOfflineRender API.
Last change: Added CFBundleIconFiles in Info.plist.
AudioToolbox2010-06-28
Content Update

LazyTableImages
Asynchronously downloads images for a UITableView so the UI is more responsive.
Last change: Deployment target set to iPhone OS 3.2.
UIKit2010-06-28
Content Update

ViewTransitions
Demonstrates how to perform transitions between two views using built-in Core Animation transitions.
Last change: Added CFBundleIconFiles in Info.plist.
QuartzCore2010-06-28
Content Update

AccelerometerGraph
Demonstrates how to use the UIAccelerometer class and filter its results.
Last change: Added CFBundleIconFiles in Info.plist.
UIKit2010-06-28
Content Update

Teslameter
This application implements a Teslameter, a magnetic field detector.
Last change: Updates to make project compatible with iOS 4.0 SDK
CoreLocation2010-06-28
Minor Change

SimpleEKDemo
shows how to use EventKit and EventKitUI frameworks to access and edit calendar data
Last change: New document.
EventKit2010-06-25
First Version

DateSectionTitles
Shows how to create section information for NSFetchedResultsController using dates.
Last change: Changed deployment target back to iPhone OS 3.2 and added CFBundleIconFiles in Info.plist.
CoreData2010-06-25
Content Update

QuickContacts
Demonstrates how to use the Address Book UI controllers and various properties.
Last change: Upgraded project to build with the iOS 4.0 SDK.
AddressBook2010-06-25
Content Update

iPhoneCoreDataRecipes
Shows how you can use view controllers, table views, and Core Data in an iPhone application.
Last change: Deployment target set to iPhone OS 3.2.
CoreData2010-06-25
Content Update

GLTextureAtlas
Demonstrates how to use a texture atlas to draw multiple objects with different textures simultaneously.
Last change: Changed deployment target back to iPhone OS 3.2 and added CFBundleIconFiles in Info.plist.
OpenGLES2010-06-25
Content Update

QuartzDemo
Demonstrates many of the Quartz2D APIs made available by the CoreGraphics framework.
Last change: Changed deployment target back to iPhone OS 3.2 and added CFBundleIconFiles in Info.plist.
CoreGraphics2010-06-25
Content Update

WorldCities
Demonstrates basic use of MapKit, including displaying a map view and setting its region.
Last change: Upgraded project to build with the iOS 4.0 SDK.
MapKit2010-06-25
Content Update

PVRTextureLoader
This application illustrates how to load PVR texture files and then display them using OpenGL.
Last change: Changed deployment target back to iPhone OS 3.2 and added CFBundleIconFiles in Info.plist.
OpenGLES2010-06-25
Content Update

Reflection
This sample shows how to implement a "reflection" special effect on a given UIImageView.
Last change: Changed deployment target back to iPhone OS 3.2 and added CFBundleIconFiles in Info.plist.
UIKit2010-06-25
Content Update

MapCallouts
Demonstrates the use of the MapKit framework, displaying a map view with custom MKAnnotations each with custom callouts.
Last change: Updated icons and artwork. Upgraded project to build with the iOS 4 SDK.
MapKit2010-06-25
Content Update

iPhoneMixerEQGraphTest
Demonstrates using an AUnit Graph connecting a MultiChannel Mixer to the iPodEQ to the RemoteIO and setting EQ presets.
Last change: Changed deployment target back to iPhone OS 3.2 and added CFBundleIconFiles in Info.plist.
CoreAudio2010-06-25
Content Update

TransWeb
Demonstrates how to implement UIWebView with a transparent background.
Last change: Updated iTunesArtwork.
UIKit2010-06-25
Minor Change

URLCache
Demonstrates how to download a resource, store it in the data directory, and use the local copy.
Last change: Fixed several minor bugs. Upgraded project to build with iOS 4.0 SDK.
2010-06-25
Minor Change

DrillDownSave
Demonstrates how to restore the user's current location in a drill-down list style user interface and restore that location when the app is relaunched.
Last change: Upgraded project to build with the iOS 4.0 SDK.
UIKit2010-06-24
Content Update

TableViewSuite
Shows how to use UITableView through a progression of increasingly advanced applications.
Last change: Upgraded project to build with the iOS 4 SDK, fixed NSTimeZoneWrapper parsing bug, replaced use of deprecated "addTimeInterval".
UIKit2010-06-24
Content Update

LaunchMe
Demonstrates how to register and service incoming requests of a new URL type.
Last change: Upgraded project to build with the iOS 4.0 SDK.
UIKit2010-06-24
Content Update

HelloWorld
Demonstrates how to edit text with a keyboard and how to display the text in a label.
Last change: Upgraded project to build with the iOS 4.0 SDK.
UIKit2010-06-24
Content Update

HeadsUpUI
Demonstrates how to implement a headsUp or HUD-like user interface over the app's primary view controller.
Last change: Upgraded project to build with the iOS 4.0 SDK.
UIKit2010-06-24
Content Update

WhichWayIsUp
Tracks the orientation of the device.
Last change: Upgraded project to build with the iOS 4.0 SDK.
UIKit2010-06-24
Content Update

Accessory
Demonstrates how to implement a custom accessory view for your UITableView in the form of a checkmark button.
Last change: Upgraded project to build with the iOS 4.0 SDK.
UIKit2010-06-23
Content Update

TheElements
TheElements is a sample application that provides access to the data contained in the Periodic Table of the Elements.
Last change: Upgraded project to build with the iOS 4.0 SDK.
UIKit2010-06-23
Content Update

Scrolling
Demonstrates how to implement two different style UIScrollViews: single image, and multiple images.
Last change: Upgraded project to build with the iOS 4.0 SDK.
UIKit2010-06-23
Content Update

NavBar
Demonstrates how to use UINavigationController and UIViewController classes as building blocks to your application's user interface.
Last change: Upgraded project to build with the iOS 4.0 SDK.
UIKit2010-06-23
Content Update

SimpleUndo
Illustrates how to use undo on iPhone.
Last change: Upgraded project to build with the iOS 4.0 SDK.
2010-06-23
Content Update

Metronome
Simulates the operation of a simple mechanical metronome.
Last change: Upgraded project to build with the iOS 4.0 SDK.
AudioToolbox2010-06-23
Content Update

SimpleDrillDown
Illustrates a simple drill-down application using a UITableView.
Last change: Upgraded project to build with the iOS 4.0 SDK.
UIKit2010-06-23
Content Update

AlternateViews
Demonstrates how to implement alternate or distinguishing view controllers for each particular device orientation.
Last change: Upgraded project to build with the iOS 4.0 SDK.
UIKit2010-06-23
Content Update

MusicCube
Demonstrates basic use of OpenGL ES, OpenAL, and Audio File Services for manipulating sound in a 3D environment.
Last change: Upgraded project to build with the iOS 4.0 SDK.
OpenGLES2010-06-23
Content Update

MailComposer
Demonstrates how to target older OS versions while building with newly released APIs.
Last change: Upgraded project to build with the iOS 4.0 SDK.
MessageUI2010-06-22
Content Update

DateCell
Demonstrates formatted display of date objects in UITableViewCells and using UIDatePicker to edit those values.
Last change: Upgraded project to build with the iOS 4 SDK.
UIKit2010-06-17
Content Update

TopSongs
Demonstrates importing data from an RSS feed into a Core Data store.
Last change: Upgraded project to build with the iOS 4 SDK.
CoreData2010-06-17
Content Update

TableSearch
Demonstrates how to search contents of a UITableView using UISearchBar and UISearchDisplayController.
Last change: Upgraded project to build with the iOS 4 SDK.
UIKit2010-06-17
Content Update

International Mountains
This sample demonstrates ways to incorporate and manage localized data in an iPhone application.
Last change: Updates to make project compatible with iOS 4.0 SDK
UIKit2010-06-17
Minor Change

BubbleLevel
Simulates the operation of a simple, physical bubble level.
Last change: Updates to make project compatible with iOS 4.0 SDK
UIKit2010-06-17
Minor Change

BonjourWeb
Shows how to find network services that are advertised by Bonjour.
Last change: Updated to work with iOS SDK 4.0.
Foundation2010-06-16
Minor Change

SimpleGestureRecognizers
Shows how to use standard gesture recognizers.
Last change: Added localization support; viewDidUnload now releases IBOutlets.
UIKit2010-04-20
Content Update

MultipleDetailViews
Illustrates how to use a split view controller with multiple detail views.
Last change: Added localization support; viewDidUnload now releases IBOutlets.
UIKit2010-04-20
Content Update

Trailers
Dashcode Project containing a Trailer web application built using bindings and data sources.
Last change: Updated data source URL.
2010-04-20
Content Update

ToolbarSearch
Shows how to use a search field in a toolbar and present a list of recent searches in a popover.
Last change: viewDidUnload now releases IBOutlets, added localization support, fixed rotation layout bug.
UIKit2010-04-19
Content Update

KeyboardAccessory
Shows how to use a keyboard accessory view.
Last change: viewDidUnload now releases IBOutlets, added localization support.
UIKit2010-04-19
Content Update

GKRocket
Demonstrates the use of GKSession and GKVoiceChatService in a simple networked game.
Last change: New document.
GameKit2010-03-19
First Version

FastEnumerationSample
Demonstrates how to implement the NSFastEnumeration protocol.
Last change: New document.
Foundation2009-12-07
First Version

AddMusic
Demonstrates how to play audio items that are synced from a user's desktop iTunes library.
Last change: Minor changes.
MediaPlayer2009-10-01
Minor Change

SpeakHere
Demonstrates iPhone recording and playback using the Audio Toolbox framework.
Last change: Add support for pausing playback when headphones are removed
AudioToolbox2009-09-08
Content Update

GKTank
Sample application demonstrating Peer-to-Peer Connectivity using GameKit framework.
Last change: Minor edits.
GameKit2009-06-08
Minor Change

CryptoExercise
Highlights the Cryptographic APIs found in the Security framework and CommonCrypto for the iPhone OS SDK
Last change: Adopted iPhone OS 3.0 UITableView and UITableViewCell APIs. Added check for availability of WiFi network. Made minor bug fix in hash computation.
Security2009-05-13
Content Update

MoviePlayer
Demonstrates how to use the Media Player framework to play a movie full-screen.
Last change: Added support for receiving streaming audio and video over HTTP.
Media

Popular Posts