Music256b Final Project
Exquisite Cache
A social, location-based, sound-image game
Luke Dahl, Winter 2010
The idea
The
original goal of this project were to create some kind of social
interaction on the iPhone that includes some audio or musical aspect.
My
app is called Exquisite Cache and it combines two ideas: Geocaching and
Exquisite Corpse games. Geocaching involves leaving objects at
locations for others to find. Exquisite Corpose games typically
involve a group of people constructing a story or picture in a
sequence. Each person creates one part, but they cannot see the
entirety of others' contributions.
In this app a 'cache' is a
sequential strings of images and sounds which is virtually cached at
some location. A user can create a new cache by physically going
to some location, they then take a picture and record a short (less
than 12 seconds) sound to accompany it. Users can use a mapview
in the app to discover existing caches and view them. Users
can also add to a cache by physically travelling to the cache location,
and then taking a new picture and recording a new sound.
Subsequent viewers of a cache see a sequence of previous images
accompanied by their sounds.
How it works
Users
interact with this game with an iPhone app called exqCache, which is
buikt almost entirely in Cocoa and uses the MKMapView to display google
maps, MKAnnotationViews and related protocals to display caches on
maps, and UIImagePicker for taking photos. The momu api is
(or rather will be) used for audio in and out. Cache data is
stored on a mySQL database and php is used for talking to the database.
My Code - how it doesn't work
This
app is incomplete and buggy. I struggled with many technologies
which were entirely new to me. Right now most of the interactions
are implemented with images, but it will crash frequently. Sound
capability will be added when everything else works (that's the easy
part for me.)
Here's the code for the app if you want to look at
it. I don't recommend running it. Email me if you want the
php code (currently only runs on my machine.)
exqcache.zip
Evaluation of project
I
learned a ton while working on this. I had absolutely no previous
experience working with databases of any kind, mySQL, php, or parsing
xml (required when getting data from the database.) Also my
previous experience with cocoa was very limited, and this project
required figuring out quite a bit of cocoa-specific coding conventions
as well as the use of specific iphone sdk objects. I would like
to add that mus256b taught none of these things. A few code
examples were provided (thanks Jorge and Nick!), but otherwise this
project was learn by process of try, fail, repeat.