Register FAQ / Rules Forum Spy Search Today's Posts Mark Forums Read
Go Back   MacRumors Forums > Apple Systems and Services > Programming > Mac Programming

Reply
 
Thread Tools Search this Thread Display Modes
Old Apr 4, 2008, 10:25 AM   #1
wrldwzrd89
macrumors G4
 
wrldwzrd89's Avatar
 
Join Date: Jun 2003
Location: Solon, OH
Maintaining multiple code bases

After doing some searching, and getting opinions from various people familiar with what I'm trying to do, I've come to the conclusion that the only satisfactory solution is going to be developing completely separate code bases in 3 different programming languages, for 3 different platforms - Mac OS X, Windows, and Linux. I know that this is going to be a royal pain to manage. Additionally, I am the only developer right now, so I'm really going to have my work cut out for me.

Any tips anyone has on orchestrating such an effort? I'm open to all suggestions - even those that involve me not working alone.

Note to the curious: I didn't mention exactly what I'm programming because I realized that I'm going to have to use this solution for ALL future applications I create, regardless of what kind they are. My past applications were written in Java - but that simply doesn't meet my needs anymore.
__________________
iMac Intel (Rev H, 27"), 1TB HDD, 16GB RAM, 10.8.4
wrldwzrd89 is offline   0 Reply With Quote
Old Apr 4, 2008, 10:46 AM   #2
Zortrium
macrumors 6502
 
Join Date: Jun 2003
Assuming that lots of the files will be common to every platform, I think part of what you're trying to do can be done without too much hassle by clever use of copies and branches in Subversion to create multiple distinct "projects" that reference many of the same files. Take a look at the Subversion documentation book at http://svnbook.red-bean.com/en/1.4/svn-book.html, with particular attention to the section on vendor branches. I think that'll give you some idea of how you could go about this.

On the actual development side, now quite sure what to recommend - coding stuff in 3 different languages is just that, and I don't think there's really any good shortcut.
Zortrium is offline   0 Reply With Quote
Old Apr 4, 2008, 10:46 AM   #3
lee1210
macrumors 68040
 
lee1210's Avatar
 
Join Date: Jan 2005
Location: Dallas, TX
As you said, there is no mention in your post of what you are working on. What I would try to do if i were you is break the project into components. For the GUI, you're probably stuck with platform-specific APIs (wxWidgets or something else that's cross-platform might work for you, but it doesn't sound like it in this case).

For the back-end logic, however, you should be able to only write this once. I would try to write it in something generic as possible (C, probably. Java, perhaps, since you're comfortable with it, but JNI is a pain in the ass so that might not be viable) and stick it into a library that can be used by all of the platforms. That way the real grunt work is the same on all the platforms.

I wouldn't say implementing the business logic 3 times is the best way to go. Do the specific coding you have to do (hopefully GUI only), but try to break out the "generic" parts and only do them once. This will make debugging much easier, and should save you time.

-Lee
lee1210 is offline   0 Reply With Quote
Old Apr 4, 2008, 10:51 AM   #4
Zortrium
macrumors 6502
 
Join Date: Jun 2003
I'd also second Lee's suggestion of breaking as much common functionality as you can out into something like a library that you can then plug into the three separate pieces. I'd probably work on finishing the backend stuff and getting it to work with only a single front-end - then, when that was working, I'd get the other two front-ends working.
Zortrium is offline   0 Reply With Quote
Old Apr 4, 2008, 11:53 AM   #5
wrldwzrd89
Thread Starter
macrumors G4
 
wrldwzrd89's Avatar
 
Join Date: Jun 2003
Location: Solon, OH
Quote:
Originally Posted by Zortrium View Post
I'd also second Lee's suggestion of breaking as much common functionality as you can out into something like a library that you can then plug into the three separate pieces. I'd probably work on finishing the backend stuff and getting it to work with only a single front-end - then, when that was working, I'd get the other two front-ends working.
Excellent advice - thanks, guys.
__________________
iMac Intel (Rev H, 27"), 1TB HDD, 16GB RAM, 10.8.4
wrldwzrd89 is offline   0 Reply With Quote

Reply
MacRumors Forums > Apple Systems and Services > Programming > Mac Programming

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Similar Threads
thread Thread Starter Forum Replies Last Post
Docking bases vs. the new 5s/5c DucMike iPhone Accessories 3 Dec 12, 2013 06:32 PM
Question about maintaining library. tpcollins iPod 4 Apr 15, 2013 04:54 AM
Another multiple ID, multiple device, multiple phone number iMessage question mrcalabash iOS 6 3 Jan 12, 2013 07:45 PM
ML code with multiple apple id? stark4 OS X 10.8 Mountain Lion 1 Aug 6, 2012 06:32 PM

Forum Jump

All times are GMT -5. The time now is 10:07 PM.

Mac Rumors | Mac | iPhone | iPhone Game Reviews | iPhone Apps

Mobile Version | Fixed | Fluid | Fluid HD
Copyright 2002-2013, MacRumors.com, LLC