是否有用于开发iPhone / Android应用程序的多平台框架?
我有兴趣为iPhone和Android平台编写应用程序。我希望找到一种中间件/框架,该中间件/框架可以抽象出API中的一些差异,并允许我在构建时指定目标平台。是否存在这样的框架或者计划中的框架?
解决方案
回答
没有任何东西存在(值得依靠,如果有的话),我怀疑是否会有任何官方计划。
回答
从本质上讲,这样的框架无法利用iPhone特有的功能,例如加速度计或者多指手势。这也可能会使Apple的SDK条款无效。
正如Andyuk建议的那样,请考虑编写Web应用程序。可以通过这种方式访问诸如呼叫某人的基本功能。
回答
即使我们确实愿意,也无法将自己的多平台框架制作为iPhone是本机代码,Android是Java。
当然,没有什么可以阻止,例如,与iPhone对应的桌面应用程序共享核心C / C ++逻辑。
回答
编辑:自从提出此问题以来,已经开发了许多可行的解决方案。尽管此答案的语气可能仍然是准确的(要从硬件/操作系统中获得100%的收益,可能需要使用本机应用程序),但我们可以在此问题下方找到许多可能的答案。
Android和iPhone都有非常明确的用户界面。即使我们发现了一个框架,该框架弥合了最低方面方面的巨大差异(Android是在自定义VM之上使用Java编程的,iPhone是在Objective-C中编程的本机代码),而在更高层次(iPhone应用程序是完全沙盒化和隔离化,Android对象模型已分发,并且在应用程序和库之间自由调用类),最终应用程序会感觉陌生且在两者中都不合适。考虑一下Android中缺少多点触控,或者iPhone中缺少专用的硬件按钮。
最好的选择是开发特定于平台的用户界面,并以某种脚本语言拥有应用程序的模型和核心逻辑。然后在纯C语言中(对于iPhone)和Java(对于Android中)找到一个解释器。Lisp和Javascript可以满足要求。只需确保口译员没有暴露给最终用户,否则我们将违反iPhone NDA ...
如果应用程序数据量很大,则可以遵循许多iPhone应用程序的模型,并为iPhone和Android开发本机用户界面,并将所有应用程序逻辑存储在远程服务器中。UI成为应用程序中唯一已安装的部分,其他所有内容都托管在网络上。这具有可以在不同设备和Web界面之间提供漫游配置文件的添加优势。
回答
Mytopia有一个未发布的框架,称为RUGS。他们最近在TechCrunch 50大会上发表了演讲,他们的技术看起来非常有趣。他们能够编译在所有智能手机平台上运行的应用程序(并能够利用iPhone上每个加速度传感器的功能)。不幸的是,他们的网站说如果我们需要更多信息,则需要给他们发送电子邮件。如果我们真的想在跨平台智能手机目标系统上进行开发,可能值得向他们发送电子邮件。
我通过TC50网络广播观看了他们的演讲,但很遗憾,现在无法为我们找到视频。
请在此处返回摘要,说明我们决定使用什么框架以及选择它的原因。
回答
Phonegap是一个基于javascript / css / html的框架,面向iPhone,Android和Blackberry。它(至少在iPhone上)也可以捆绑为本地应用程序。这些应用程序的UI层通常内置于html / javascript中,并且可能比真正的本机应用程序慢。
电话间隙
React Native使我们能够使用基于JavaScript和React的一致的开发人员体验,在本机平台上构建世界一流的应用程序体验。 React Native的重点是在我们关心的所有平台上的开发人员效率,一次学习,随处编写。 Facebook在多个生产应用程序中使用React Native,并将继续投资React Native。 React Native应用程序的UI是本机控件,因此UI通常比用于GUI管理的纯HTML / javascript方法更快。
反应本机
Unity是Unity Technologies开发的跨平台游戏引擎,用于为PC,控制台,移动设备和网站开发视频游戏。 Unity以将游戏定位到多个平台的能力而著称。支持的平台包括Android,Apple TV,BlackBerry 10,iOS,Linux,Nintendo 3DS line,OS X,PlayStation 4,PlayStation Vita,Unity Web Player(包括Facebook),Wii,Wii U,Windows Phone 8,Windows,Xbox 360,和Xbox One。
统一
OpenFL是Flash API的开源端口,用于
桌面,浏览器,iOS,Android,Flash,HTML5等对于那些来自Flash世界的人来说是一个考虑因素。它构建为本机二进制文件,也以浏览器为目标(Flash / HTML5)。
打开文件
MonoGame是Microsoft XNA 4.x Framework的开源实现。
XNA开发人员可以轻松地以极高的代码复用率创建跨平台游戏。它目前支持iOS,Android,Windows(OpenGL和DirectX),Mac OS X,Linux,Windows 8 Store,Windows Phone 8,PlayStation Mobile和OUYA控制台。
单人游戏
不管我们信不信,Adobe Flash可以将本机二进制文件发布到ios,android,台式机以及网络上。性能是合理的,但并不令人难以置信。如果我们有Flash游戏,则可以很轻松地将其带到手机上。而且这不需要任何形式的任何插件。它实际上创建了一个在每个平台上运行的本机独立二进制文件。
土坯
回答
我只想提一下,使用Gears插件的Web应用程序可以利用Geolocation(不再可用)(GPS和Wifi定位服务),并且在Android上可以使用(G1上的浏览器附带内置Gears支持)。
我不确定是否有希望在iPhone上获得齿轮支持,但这是构建具有添加功能同时仍具有广泛设备的Web应用程序的另一种有用方法。
回答
看看这个:
http://www.xmlvm.org/overview/
这个项目试图将以多种源语言编写的程序交叉编译为多种目标语言。最初的测试用例之一是用Java编写程序并在iPhone上运行它们。在网站上观看视频是值得的。他们讨论了也可以定位Android的可能性。
话虽如此,我还没有尝试过。该项目似乎是beta版本,并且在SourceForge网站上没有很多活动。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
回答
QuickConnectiPhone允许我们使用JavaScript编写应用程序,但仍可以安装。目前,Android版本尚未发布。
同时拥有这两种功能后,我们就可以使用JavaScript,CSS和HTML创建应用,并通过iPhone或者Android手机拨打电话以查询设备行为,例如振动,GPS位置等。
可从https://sourceforge.net/projects/quickconnect/下载iPhone版本,如果我们与我联系,我可以向我们发送Android版本。
回答
在此处添加另一项服务:Rhomobile正在寻求创建此服务。它的报价看起来有些沉闷-想想90年代初的网络。但这可能是将我们喜欢的应用程序移植到每个主要移动平台的最简单方法。
更多详细信息:Rhomobile承诺:构建一次,部署到任何智能手机
(注意:我不为Rhomobile工作;今天刚遇到这个故事。)
回答
我们在Ice-Touch中间件方面取得了成功,可以将iPhone和Android设备与同一台服务器进行通信。并为网络对象和方法生成了相当不错的代码。但是本地逻辑仍然必须用电话的语言编写。这样,我们可以利用每个UI的优势,而我们的模型则位于同一服务器上,并且控制器是自动生成的。
连结文字
回答
我没有使用iPhone或者Android的直接经验,但是我只是读了一篇有关"钛"的文章,然后当我访问他们的网站时,发现了以下内容:
http://www.appcelerator.com/products/titanium-mobile/
回答
Rhomobile的Rhodes框架可以做到这一点。 Rhodes应用程序是每个智能手机的本地应用程序
回答
我们可以使用iSpectrum为iPhone开发Java应用程序。
这样,我们将能够在Android和iPhone之间重用一致数量的应用程序代码(并可能根据操作来使用桌面小程序或者J2ME MIDlet :))
有关更多信息,请访问http://www.flexycore.com