2012-05-15 10 views
6

Abbiamo un programma che desideriamo implementare su più dispositivi.Più progetti una fonte

  • Standalone cattività Air
  • Web basato su flash app
  • iOS
  • Android

Il codice diverso da un po 'di roba UI è identico in molte parti. Mi chiedo quale sia l'approccio migliore. Dovremmo avere un progetto di libreria condivisa o dovremmo avere un grande progetto con diverse impostazioni del controllore controllate tramite ant o qualche altro metodo.

risposta

3

L'accesso e l'utilizzo di Progetto libreria condivisa è il modo migliore per implementare progetti multipiattaforma. Oltre a questo approccio puoi usare form Build.

+0

Penso che questa sia la soluzione migliore –

2

La risposta avrebbe normalmente molto a che fare con la "roba dell'interfaccia utente" che è diversa, ma dal momento che sembra che tu sia Flash/AIR, probabilmente non è una grande preoccupazione. Se fossi in me, andrei con l'approccio "one big project", e otterrò una seria suite CI/NI e SCM che fosse compatibile con il mio IDE. Se si utilizza Eclipse/Aptana, mi piace Husdon/Surround. (Full disclosure: ero solito lavorare @ Seapine.) Se non stai usando Eclipse, dovresti controllare le opzioni CI/SCM che si integrano con il tuo IDE (e loro stessi, ad esempio, Hudson ha un modulo Surround e viceversa) . La cosa della libreria condivisa funziona, ma dal momento che Flash Flash è accanito ovunque, non vedo la necessità di aumentare la divisione di progetti separati. Un CI completo di tutte le funzionalità può gestire le differenze del compilatore in modo abbastanza efficace.

1

Stiamo utilizzando questa combinazione di approcci per un progetto mobile/web su larga scala che attualmente esiste nel IOS AppStore, e sarà presto rilasciato su Android e web:

  • Uno progetto principale che utilizza direttive del compilatore di gestire logica piattaforma specifica e elementi
  • direttive compilatore per gestire logica specifica piattaforma all'interno del progetto principale codebase
  • un progetto separato per il nostro motore video e interattivo, che è per lo più indipendente dalla piattaforma, utilizzando istruzioni switch per logica specifica della piattaforma
  • Uno SWC condiviso per le risorse grafiche. Gli elementi specifici della piattaforma sono preceduti dalla piattaforma e da un trattino basso. direttive del compilatore vengono utilizzati per specificare quali MovieClip ottenere visualizzato sullo schermo
  • script Ant a fare la compilazione per le varie piattaforme
  • estensioni native per interfacciarsi con l'hardware caratteristiche specifiche

Usiamo un po 'commerciale , alcuni open source e alcuni ANE fatti in casa per cose come l'integrazione di AppStore, le funzionalità dei social media, il monitoraggio della rete, le notifiche e le comunicazioni tra le app.

  • com.adobe.extension.NetworkInfo.ane
  • com.milkmangames.extensions.EasyPush.ane
  • com.milkmangames.extensions.GoViral.ane
  • com.milkmangames.extensions.StoreKit.ane

(non ho alcuna affiliazione con milkmangames)

I Attualmente sto scrivendo un ANE Android per gestire le comunicazioni tra app tramite Intents. È un progetto che sto aprendo a:

https://github.com/interactivenyc/ANESampleProject.

Attualmente sono bloccato su un problema e pubblicherò una domanda molto presto con i dettagli se qualcuno è interessato a seguire quel progetto. La configurazione del progetto è abbastanza ben descritta nel file Leggimi visualizzato sulla prima pagina del progetto.

0

Se si utilizza git per il controllo delle versioni, consultare i sottomoduli. L'ho usato per mantenere tutto in un progetto, ma il controllo di versione di ogni modulo separatamente, e ne risultò una soluzione eccellente.

Problemi correlati