如果我有一个钛金属的 iPhone 应用程序,然后还想在 android 和 ipad 上运行相同的应用程序,让它在每个平台上都运行良好是只是进行一些 UI 更改的问题,还是需要重写大量的代码?
2 回答
我要做的第一件事就是在Android模拟器中尝试一下。它有效吗?Titanium 会将 UI 元素映射到目标平台功能,因此它可能会正常工作,尽管它看起来会有所不同。每个平台都有不同的方式在屏幕上显示信息。
Titanium Mobile 是一次编写,随处适应的模型。因此,您编写应用程序的主要功能,然后使 UI 适应平台。如果结构合理,您通常可以为设备重用大部分后端管理代码。在我的情况下,我正在编写一个合理的大型应用程序,我可以重用我所有的网络代码和数据库交互代码。您设置项目的方式允许您在平台特定文件夹中的需要替换平台特定文件。例如,如果您的 form1.js 不能在 Android 上运行,但可以在 iPhone 上运行,则将适用的 form1.js 文件放入与文件夹结构匹配的 Android 文件夹中,它会在编译期间从那里提取文件,但继续将 database.js 文件用于公共代码中的数据存储。
一些跨平台代码的一个很好的例子是可以通过 IDE 获得的RSS Reader示例代码(IDE 中的左下面板)。您可能会从中找出使您的应用程序在 Android 上运行所需的细微更改。我也喜欢Tweetanium应用程序源代码,因为它是一个更大的项目,并且具有类似的跨平台工作,可以使应用程序在两个操作系统上看起来相似。
此外,请搜索 Titanium Mobile Titans 以获取“应用程序”源代码。其实这里是链接:https ://github.com/appcelerator-titans/App 。这是一个考虑了 UI 的跨平台界面示例。
我相信所有这些示例也都有平板电脑(iPad/Android)检测代码,因此您可以看到代码如何针对这些屏幕尺寸进行分支。
虽然 Titanium 在技术上可以是“一次编写,随处部署”的平台,但我认为开发人员最好为每个平台创建相同的代码库,同时稍微改变开发以适应特定的目标平台。
例如,针对 Android 设备(从 Galaxy Nexus 等高端智能手机到 Nexus 7 等平板电脑)的需求与 iOS 应用程序的最佳实践需求大不相同。
我什至不希望完全相同的应用程序针对同一设备系列的成员。以 iOS 为例 - 为 iPhone 和 iPad 设计的最精心设计的应用程序具有强烈的 UI/UX 差异,由于它们在外观和使用上的巨大差异,应该加以考虑。
6wunderkinder 开发的Wunderlist应用程序就是一个不遵循“一次编写,随处部署”模型的应用程序的一个很好的例子。虽然他们使用 Titanium 来开发他们的 iOS 应用程序,但他们并没有将 Titanium 也用于他们的 Android 应用程序,而是决定完全放弃 Titanium 并进行本地开发。
这并不是说您不能在两个平台上都坚持使用 Titanium(我已经在 iOS 和 Android 上制作了改编自相同代码的应用程序),但 6wunderkinder 团队决定做出这是一个完全可以理解的选择。虽然他们可以很容易地将大部分现有的 iOS Titanium 代码库用于他们的 Android 应用程序,但他们可能必须做出许多牺牲才能使其在 Android 上以他们设想的方式显示。
所以,是的,如果想要一个漂亮的应用程序(在两个设备系列上完全按照您想要的方式获得它),您通常需要更改大量代码。