Android& iOS:如何为两者开发?

时间:2010-11-04 20:20:42

标签: android ios portability

我想为Android和iOS设备开发一个应用程序。有没有办法开发一次应用程序并在两者上部署?或者是否必须单独为每个平台开发?

9 个答案:

答案 0 :(得分:6)

如果您想要提供本机体验的应用程序,则必须编写单独的应用程序。

我认为最好的起点是为移动浏览器优化的非常好的网页版本。我认为最好的网络应用程序比许多原生应用程序更好,但它们与更好的原生应用程序没有竞争力。

还有一些选项,如TitaniumPhoneGap,它们是混合网络/本机系统,它们使用网络技术构建原生应用。

答案 1 :(得分:5)

你有http://monotouch.nethttp://monodroid.net。这样,您就可以拥有通用的业务逻辑,只重新开发UI。

答案 2 :(得分:2)

这一切都取决于您要开发的应用程序类型。如果是游戏,我建议您将大部分内容编写为本机代码,并利用OpenGL ES 2.0在两个平台上本机支持的事实。显然,所有的Java代码都不能在iOS上重用,因此任何可以作为可移植本机库的东西都有助于减少不可重用代码的数量。

答案 3 :(得分:2)

有很多选择。这取决于您是否需要本机体验,或者您是否希望将某些内容放在Webview中。有了本机经验,您可能需要进行一些本机编码,但它仍然比开发2个独立的本机应用程序更好。

以下是我有过的一些经验。

原生经验

<强>网页视图

答案 4 :(得分:1)

使用Qt,这是一个具有LGPL和商业许可证的跨平台开发的C ++框架,您可以针对这两个平台进行开发,只需从同一来源重新编译您的应用程序即可。作为奖励,你也可以针对Windows,Linux和Mac。

但请记住,Qt会渲染自己的控件,因此小部件在Android和iOS上看起来都不是原生的。此外,与所有跨平台框架一样,它将在功能方面为您提供最低的共同点。

来自their official blog

  

借助Qt,您可以开发真正的跨平台应用程序,这些应用程序可在桌面,嵌入式和移动平台上运行。 Qt 5.2引入了对Android和iOS平台的全面支持,因此可以创建跨平台的移动应用程序,这些应用程序从一个代码库打包并部署到Google Play和App Store。您可以使用Qt编写一次,而不是使用两种不同的技术编写相同代码的两个版本。

Apple App Store可能不接受使用dylib的应用,但对于封闭源应用可能会force you to use the commercial license

  

在iOS上,可以使用动态链接的Qt库版本,并将它们与应用程序捆绑在一起。这允许应用程序使用QPL的LGPL许可证,同时允许应用程序本身是封闭源。 Apple是否会接受将dylib捆绑到iOS App Store的应用程序还有待观察。如果Apple不接受将捆绑的dylib用于App Store的应用程序,则需要将Qt静态链接到应用程序。由于Qt for iOS端口使用QPL的LGPL版本,因此静态链接LGPL的规则将会启动 - 这对于封闭源应用程序来说可能是一个问题。

最后,由于Qt是一个C ++框架,您需要使用C ++来开发您的应用程序。

答案 5 :(得分:0)

Codename One是另一个,用于两个平台上的Java开发。但是没有经验。

答案 6 :(得分:0)

如果是游戏或主要是图形应用,BatteryTech Engine会做你想要的。哟仍然需要为iOS构建XCode,否则它是两个平台的单个主代码库。

答案 7 :(得分:0)

我开始使用https://www.owasp.org/index.php/Application_Threat_Modeling,看起来很有希望。

  

NativeScript是您在没有Web视图的情况下构建跨平台,原生iOS和Android应用程序的方式。使用Angular,TypeScript或现代JavaScript来获得真正的原生UI和性能,同时与Web共享技能和代码。通过JavaScript 100%访问本机API,并重用NPM,CocoaPods和Gradle中的软件包。开源并由Telerik支持。

答案 8 :(得分:0)

在过去的几年里我使用了很多跨平台,从我的角度来看Xamarin是最好的,因为最后它可以判断应用程序是否是跨平台的。但是使用Xamarin它会编译为原生,因此在UI方面它们之间没有明显的区别。 你可以从这里开始:https://www.xamarin.com