3

Dear fellow programmers,

Recently me and my partner have developed an application for the AppStore. It was our first iPhone app and it is doing quite good.

But it wasn't done very professionally (One of us would have the master version of the project, then the other would send just the code for one calculator and the other person would have to manually add it in). We had to do this because we had differing versions of XCode.

But now we both have the most recent version of XCode and are wondering if there is an easy way to develop as a team.

Basically we are looking for a way that we could both have access to the main project, and keep it updated to the most recent version.

  • How would we do this?
  • What if we are working at the same time?
  • And any other tips would be appreciated!

Thank you for your time, and if you need any other information, I will gladly provide it!

Sir Kaydian

Neil
  • 2,004
  • 3
  • 23
  • 48
  • 1
    Use some sort of version control system. If there are only 2 of you, the Perforce demo will work as if it were a full version. SVN also works well, and can be set up to work over the internet. Or you could use Git. – Almo Aug 08 '12 at 15:56
  • Use the built-in Git functionality. Talk to one another when one of you books out the Storyboard. With a small team communication is easy. Job done. – Robotic Cat Aug 08 '12 at 16:07

5 Answers5

3

You're looking for a version control system. In the essence, that's a piece of software, from which both of you check out a working copy, with which you can do whatever you want...and once you're done, you check your changes back in, and the system merges the changes together.

That way, you can work on different aspects simultaneously, with both of you having the freedom to develop independently, without having to worry about the manual implementation.

Rather well known version control software includes 'Subversion', 'Mercurial' or 'Git'. There are graphical frontends for most any VCS, which will allow you to get by, without having to learn difficult command line commands.

Please remember though, that the system will NOT do the 'thinking for you', so when you're both working at the same file, at the same spot, it will raise a conflict, which you will have to resolve manually.

ATaylor
  • 2,598
  • 2
  • 17
  • 25
  • "Please remember though, that the system will NOT do the 'thinking for you', so when you're both working at the same file, at the same spot, it will raise a conflict, which you will have to resolve manually." --- Right, is that only an exception if we where working on the same .m or .h file? – Neil Aug 08 '12 at 16:00
  • Yes, quite so. As long as you keep your working coordinated on different files, it'll simply replace your copy of the files with the updates from your friend and vice versa. The system is also smart enough to put changes made in different areas of the source files together without so much as a hiccup. But please be careful when it comes to binary files, the system can only use one or the other with those. – ATaylor Aug 08 '12 at 16:01
  • So rule of thumb, don't work on the same file (ex. .h or .m) at the same time. Also, what would be an example of a binary file? – Neil Aug 08 '12 at 16:03
  • Basically everything, that's not a text file (i.e. a bitmap or whatever) is considered a 'binary file'. And yeah, that's the gist of it. Don't worry though, even if you run into a conflict (which you most likely will, considering that you'll change project files too), they're not impossible...or often even hard...to fix. After all, such systems were built for the purpose of teamwork :) – ATaylor Aug 08 '12 at 16:08
  • let us [continue this discussion in chat](http://chat.stackoverflow.com/rooms/15084/discussion-between-sirkaydian-and-ataylor) – Neil Aug 08 '12 at 19:08
1

You have to set up a subversion. This way you'll both be able to commit your code to repository that will always have most current version.

http://osxdaily.com/2010/06/03/configuring-xcode-to-use-subversion/

Using Subversion in Xcode

Community
  • 1
  • 1
bobek
  • 8,003
  • 8
  • 39
  • 75
1

The very first thing is to setup a repository with your favorite source code management system (scm). Most common are subversion and git, while git seems to be more popular, but a bit more complex to learn.

Xcode provides built-in support for both scm, but I recommend to use either the console (you learn a lot) or a dedicated app (you have more functions than in Xcode in a nice GUI).

git scm
Subversion

The next step is to set up an issue tracking system to keep track of bugs you, your users, or other testers have discovered. You can also describe new features or architectural changes you plan for. Common systems are trac, Jira or pivotal tracker.

ff10
  • 3,046
  • 1
  • 32
  • 55
1

You can use git or svn with Xcode Source Control feature.

You can find all the basic commands like commit, update, merge, push, pull etc. under the File > Source Control menu.

And you can manage your repositories from the same menu.

You can see all the revisions using version editor: View > Version Editor > Show Version Editor

erkanyildiz
  • 13,044
  • 6
  • 50
  • 73
0

Do you happen to have any kind of source control in place, because it doesn't sound like you do?

I'd look into getting started familiarizing yourself with a revision control system such as Git and hosting your project on a site like GitHub that way you two can collaborate on your project. There's a bit of a learning curve, but once you get over the hurdles you'll never understood how you lived without it.

Convolution
  • 2,351
  • 17
  • 24