我们有一个希望跨多个设备部署的程序。
- 独立俘虏 AIR
- 基于网络的 Flash 应用程序
- iOS 应用
- 安卓应用
除了一些 UI 内容之外的代码在很多部分都是相同的。我想知道最好的方法是什么。我们应该有一个共享库项目,还是应该有一个具有不同编译器设置的大项目,通过 ant 或其他方法控制。
我们有一个希望跨多个设备部署的程序。
除了一些 UI 内容之外的代码在很多部分都是相同的。我想知道最好的方法是什么。我们应该有一个共享库项目,还是应该有一个具有不同编译器设置的大项目,通过 ant 或其他方法控制。
访问和使用共享库项目是实现跨平台项目的最佳方式。除了这种方法,您还可以使用 ant Build。
答案通常与不同的“UI 东西”有很大关系,但因为听起来你是 Flash/AIR,所以这可能不是一个大问题。如果是我,我会采用“一个大项目”的方法,并获得一个与我的 IDE 兼容的严肃 CI/NI 和 SCM 套件。如果您使用的是Eclipse / Aptana,我喜欢Husdon / Surround. (完全披露:我曾经在 @Seapine 工作。)如果您不使用 Eclipse,您应该查看与您的 IDE 集成的 CI/SCM 选项(以及它们本身;例如,Hudson 有一个环绕模块,反之亦然) . 共享库的东西可以工作,但由于 Flash 几乎无处不在,我认为不需要增加单独项目的划分。功能齐全的 CI 可以非常有效地为您管理编译器差异。
我们正在将这种方法组合用于目前存在于 IOS AppStore 中的大型移动/网络项目,并将很快在 Android 和网络上发布:
我们使用一些商业的、一些开源的和一些自制的 ANE 来实现 AppStore 集成、社交媒体功能、网络监控、通知和应用程序间通信。
(我与 Milkmangames 没有任何关系)
我目前正在编写一个 Android ANE 来使用 Intents 处理应用间通信。这是我开源的一个项目:
https://github.com/interactivenyc/ANESampleProject。
我目前在那里遇到一个问题,如果有人有兴趣关注该项目,我将很快发布一个包含详细信息的问题。在项目首页上显示的自述文件中对项目设置进行了很好的描述。
如果您使用 git 进行版本控制,请查看子模块。我用它把所有东西都保存在一个项目中,但是分别对每个模块进行版本控制,它产生了一个很好的解决方案。