This iOS project is developed to meet the needs of the Atlanta CocoaCamp 2010 event with the intention of sharing with the rest of the Cocoa community.
Three20 is a collection of iPhone UI classes, like a photo viewer, and general utilities, like an HTTP disk cache. See the project resources for more info
The Bump API is included in the source tree. No setup needed.
Setting Up Your Project
Fork the CocoaCamp iOS GitHub Master project to your own GitHub account
Clone both our project and three20 to the same parent directory (Obviously, you need Git installed)
[Terminal] cd ~/MyXcodeDevelopmentDirectory git clone git://github.com/facebook/three20.git git clone email@example.com:<your user name>/CocoaCamp-iOS-App.git open CocoaCamp-iOS-App/CocoaCamp.xcodeproj [/Terminal]
You need to tore the repository parallel to the CocoaCamp xcode project, in the same parent directory, because Xcode will need to reference the files every time you compile your project.
That's it! As far as I know, it should work at this point. If you have any trouble, see the README.markdown in the three20 project. But please communicate through the CocoaCamp Google Group so we can straighten it out.
There are 4 tabs:
- People - bump contact exchange UI
- Schedule - conference schedule
- Flickr Wall - take pictures and share with other attendees on Flickr
- Twitter Fall - twitter stream for cocoacamp
Merging from Main Trunk
To merge the changes from upstream(for this time and future instances), first do a:
and make sure you don't have local changes on either of these files:
if you do have local changes on either file, throw away the changes by:
git checkout <filepath>
If you'd never done this before, you'll need to add cocoacamp as a remote repo(you only need to do this the first time):
git remote add cocoacamp http://github.com/cocoacamp/CocoaCamp-iOS-App.git
git fetch cocoacamp git merge cocoacamp/master
If you don't have any merge conflicts then you've completed the merge on your local repo. If you get merge conflicts you will still have to merge manually. Rule of thumb: code files are easy to merge, nib files are not. After manually merging, follow the steps in Committing Your Work.
Committing Your Work
First add each new file you newly created by:
git add <filepath>
then if you want to commit all modified files do:
git commit -am "put commit comment here"
then push it to github:
git push origin master
Going forward, this is the recommended git workflow(note, this is different from what I said at our last lunch):
- Work as you normally would.
- When you are done with a set of changes, commit all files and push to your fork on github. Follow instructions in Committing Your Work.
- Email me at (firstname.lastname@example.org) or send me a pull request at (airportyh) and kindly ask to merge your changes. I'll get to it as soon as I can(usually same day, except for weekend). If there are any special instructions that can help me, such as what frameworks you've added, or what controller/nib should go on what tab in the MainWindow nib, please write me a note.
- I'll email you back or comment on your pull request(which should in turn notify you via email) when I'm done w the merge. Then at this point, follow the Merging from Main Trunk instructions above to merge back to your repo. Between the time you send me the pull request and the time I am done with the merge, it's best that you don't do anything that modifies CocoaCamp.xcodeproj/project.pbxproj or MainWindow.xib.
CocaoCamp Atlanta 2010 is over! Here are some complaints we heard from the field:
- iPhone 3G which were upgraded to iOS 4.x crash on startup.
- Some have experienced problems with Bump, although it's worked for me every time, so, I believe this is more of a usability problem than a bug.
- Crashing going back to the Twitter Fall tab after leaving it for a while.
- In the Flickr image viewer, some images failed to load.