2012-05-15 35 views
6

我們有一個程序,我們希望在多個設備上進行部署。多個項目一個來源

  • 獨立圈養AIR
  • 基於Web的Flash應用程序
  • iOS應用
  • Android應用

比一些UI的東西以外的代碼是在很多部分是相同的。我想知道什麼是最好的方法。我們是否應該有一個共享庫項目,或者我們是否應該有一個使用不同的編譯器設置通過ant或其他方法控制的大項目。

回答

3

訪問和使用共享庫項目是跨平臺項目實施的最佳方式。除了這種方法,你可以使用ant Build。

+0

我覺得這是最好的解決辦法 –

2

答案通常與「UI東西」有很大關係,但因爲它聽起來像你是Flash/AIR,所以這可能不是一個大問題。如果是我,我會去參加「一個大項目」的方法,並獲得與我的IDE兼容的認真的CI/NI和SCM套件。如果您使用Eclipse/Aptana,我喜歡Husdon/Surround。 (完全公開:我曾經在@ Seapine工作。)如果你不使用Eclipse,你應該檢查集成了你的IDE的CI/SCM選項(和它們自己;例如Hudson有一個環繞模塊,反之亦然) 。共享庫的工作原理,但由於閃存閃光附近到處都是,我不認爲需要增加分開的項目。全功能的CI可以非常有效地爲您管理編譯器差異。

1

我們使用的方法這樣的組合對於目前存在於iOS應用大規模移動/ Web項目,並將很快在Android設備和網絡發佈:

  • 一個主體工程使用編譯器指令來處理特定的平臺邏輯和元素
  • 編譯器指令,主要項目上的代碼庫
  • 一個單獨的項目內處理特定的平臺邏輯,我們視頻和交互引擎,它主要是平臺獨立的,使用用於平臺特定邏輯的開關語句
  • 一個共享用於圖形資產的SWC。平臺特定的元素以平臺和下劃線爲前綴。編譯器指令用於指定獲得在屏幕上顯示
  • Ant腳本做各種平臺
  • 本機擴展編譯與硬件接口的特定功能

我們使用一些商業其中動畫片段,一些開放源代碼以及一些自制ANE,用於AppStore集成,社交媒體功能,網絡監控,通知和應用程序間通信等。

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

(我有milkmangames沒有隸屬關係)

我目前正在編寫Android ANE來處理使用Intents的應用程序間通信。這是我打開採購項目:

https://github.com/interactivenyc/ANESampleProject

我目前被困在那裏的一個問題,並會很快發佈一個問題,如果任何人有興趣跟隨該項目的細節。項目設置在項目首頁顯示的自述文件中有相當好的描述。

0

如果您使用git進行版本控制,請查看子模塊。我用它來把所有東西都保存在一個項目中,但是分別對每個模塊進行版本控制,結果是一個很好的解決方案。