Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Directory structure for cross-platform phonegap project

What's a good directory structure for a single source repository that holds both Android and iOS versions of a phonegap project? I'm okay using sym-links since I don't expect any development to happen on PCs. (But if there's a clean way to do it without, I'm all ears, since git and symlinks on PCs are a nightmare.) I've tried this:

www/
    index.html
    js/ *.js
    xpjs-ios/ *.js
    xpjs-android/ *.js
    css/ *.css
    html/ *.html  (all other files)

android/
        (lots of java and config files)
android/assets/www/index.html -> www/index.html
                   js -> www/js
                   xpjs -> www/xpjs-android
                   html -> www/html
                   css -> www/css
ios/
    (xcode config and such)
ios/www/index.html -> www/index.html
        js -> www/js
        xpjs -> www/xpjs-ios
        html -> www/html
        css -> www/css

Then I point xcode at the ios/www directory, and eclipse at the android/www directory. For platform-specific javascript, the html files refer to xpjs/phonegap.js and xpjs/my-quirks.js and get either the android or ios versions of those files.

This all seems like it should work, but xcode4 doesn't seem to deal with symlinks. If I open one of the source files in the xcode editor, it reads fine, but when I try to save it it says something like

The document "index.html" could not be saved.  It does not exist.

and the app when I try to run it fails with

ERROR: Start page 'www/index.html' was not found.

Surely somebody's figured this out.

like image 278
Leopd Avatar asked Sep 01 '11 16:09

Leopd


2 Answers

Its actually quite easy with Git and Submodules. The phonegap wiki referenced above is indeed a bit slim so I actually went ahead and implemented a solution that configures xcode & eclipse project.

See the link on my blog post: Phonegap project structure using git submodules

If you don't want to use Git submodules, there is a Symlink solution as well which doesn't care if you use Git or SVN.

http://www.tricedesigns.com/2012/02/16/linked-source-files-across-phonegap-projects-on-osx/

like image 106
Truong-An Thai Avatar answered Nov 07 '22 11:11

Truong-An Thai


there's a writeup (looks like a first pass) on the phonegap wiki that explains how to use a git submodule. to supplement that entry, i also did a writeup on using the svn:externals property. my only thought on symlinks is that it's something people have to setup as opposed to getting them intrinsically from the source control repository. not really a problem, but it is a logistic to the setup when you switch computers or get additional devs on a project. i'll be taking the svn:externals route until i find something better.

like image 37
pinkeerach Avatar answered Nov 07 '22 12:11

pinkeerach