在Android和iOS(iPhone / iPad)上本机应用程序和跨平台解决方案之间的权衡

时间:2011-05-20 18:44:24

标签: iphone android ios ipad cross-platform

我即将开发平板电脑(Android / iPad)上的应用程序。 我们的客户要求我们跨平台,除非有任何理由坚持一个。 我在这里查看了一些与跨平台iOS / Android开发相关的帖子,但我仍然不确定是否应该在特定平台上开发本机应用程序,或者我应该尝试使其跨平台。 我是新手在移动设备上开发应用程序。 如果您能提供任何建议/经验,那就太棒了!

据我所知,由于技术原因,权衡取舍如下:

  • 原生应用程序更快,但在其他平台上重用代码并不容易。
  • 使用基于Web的应用程序(例如PhoneGap)的跨平台解决方案性能较慢,对操作系统和硬件API的访问受限,类似于Web的用户界面。
  • 像Appcelerator Titanium这样的跨平台解决方案将代码编译为本机代码,但我不确定它的限制(如果我必须在开发三个月后将其更改回本机应用程序,我会哭!)然后它花钱。

此外,在平板电脑上开发本机应用程序或跨平台应用程序所需的时间/精力,一般来说,开发/维护本机应用程序比跨平台解决方案更容易,更可靠吗?

有什么建议吗?

提前致谢! :)

2 个答案:

答案 0 :(得分:1)

就个人而言,我会坚持使用原生应用。我正在为一家想要为多个平台创建应用程序的公司工作,他们一直在寻找原生开发的替代品,例如Titanium和PhoneGap。我们选择了以下方法:

  • 我受雇开发iPhone应用程序。
  • 大学的一些学生可能会使用Android版本,其中数据框架/图层的外观和工作方式与我的Objective-C代码有些相同,例如:

-getFlightInfoWithId:forUserId:将成为Java中的(void)getFlightInfo(flightId, userId)

视图和控制器层可能会有很大不同,主要是因为Android和iOS设备具有不同的GUI指南和功能(例如,Android屏幕尺寸可能有很大不同,而在iOS上只有2个实际选项)。

对于其他较小的平台,我们将提供HTML5应用。对我来说,本机应用程序总是优于使用跨平台工具集创建的应用程序,因为通常本机应用程序应该表现更好,应该具有更好的“感觉”并且可能具有更多功能,例如可能能够使用平台本机的某些硬件功能,并且在跨平台工具集中不可用。

答案 1 :(得分:0)

坏消息是除非你打算写一个网页,否则你将不得不写两个版本。

好消息是你可以在它们之间共享资产。

我猜你写的可以用C语言编写你的iPad版大块,然后通过NDK编译为Android,但是那里有所有UI的东西,所以它仍然是两个版本。