我想要开发一款适用于Android和iOS设备的应用程序。是否有一种方法可以统一开发应用程序然后同时部署到两个平台上?还是必须分别为每个平台进行开发?
我想要开发一款适用于Android和iOS设备的应用程序。是否有一种方法可以统一开发应用程序然后同时部署到两个平台上?还是必须分别为每个平台进行开发?
你可以使用 http://monotouch.net 和 http://monodroid.net。这样,你就可以拥有相同的业务逻辑,并仅重新开发用户界面。
这完全取决于你想要开发的应用程序类型。如果是游戏,建议大部分使用原生代码,并利用OpenGL ES 2.0在两个平台上本地支持的优势。显然,所有Java代码都不能在iOS上重复使用,因此任何可以制作为可移植本地库的内容都有助于减少不可重复使用的代码量。
使用Qt可以进行跨平台开发的C++框架,它具有LGPL和商业许可证,您可以为两个平台开发应用程序,并从同一源代码简单地重新编译您的应用程序。此外,您还可以将其目标设置为Windows、Linux和Mac。
但请记住,Qt渲染自己的控件,因此在Android和iOS上的小部件将不会具有本机外观。此外,与所有跨平台框架一样,它会提供具有最低公共特性的功能。
来自他们的官方博客:
使用Qt,您可以开发真正跨平台的应用程序,这些应用程序将在桌面、嵌入式和移动平台上运行。Qt 5.2引入了对Android和iOS平台的全面支持,从而使得可以从一个代码库创建打包并部署到Google Play和App Store的跨平台移动应用程序。您只需要使用Qt编写一次,而不需要使用两种不同的技术编写相同的代码版本!
苹果应用商店可能不接受使用dylibs的应用程序,这可能迫使您使用商业许可证来为闭源应用程序服务:
在iOS上,可以使用Qt库的动态链接版本,并将其捆绑到应用程序中。这允许应用程序使用LGPL许可证来使用Qt,同时允许应用程序本身是闭源的。尚不清楚苹果是否会接受将dylibs捆绑到iOS应用商店中的应用程序。如果苹果不接受使用捆绑dylibs的应用程序,则需要将Qt静态链接到应用程序中。由于Qt for iOS端口使用Qt的LGPL版本,因此静态链接LGPL的规则将生效-这可能对闭源应用程序构成问题。
最后,由于Qt是一个C ++框架,因此您需要使用C ++来开发应用程序。
有很多选择。这取决于您想要原生体验还是希望在 Webview 中进行操作。使用原生体验可能需要进行一些本地编码,但仍然比开发两个单独的本地应用程序要好得多。
以下是我有经验的一些选择。
原生体验
Webview
我开始使用NativeScript,它看起来很有前途。
NativeScript是一种构建跨平台本地iOS和Android应用程序的方式,而无需使用Web视图。使用Angular、TypeScript或现代JavaScript,可以获得真正的本地UI和性能,同时与Web共享技能和代码。通过JavaScript获得对本地API的100%访问权限,并重复使用来自NPM、CocoaPods和Gradle的软件包。这是一个开源项目,由Telerik支持。
现在,您可以使用Flutter
、ReactNative
从单一代码库构建适用于不同操作系统的应用程序。它们都有优点和缺点。
但是,在我看来,最好的选择是使用本地语言编写本地代码,并使用本地IDE。这并不是一项复杂的任务,特别是高级语言使用相同的原则(Java、Kotlin、Swift)。您将能够操作本地组件和策略,这些组件和策略得到支持,具有最新的更新和教程。无论如何,如果您有高性能任务,可以使用C++来共享核心代码。