是否有用于开发iPhone / Android应用程序的多平台框架? [关闭]

最后发布: 2008-08-27 19:19:52


问题

我有兴趣为iPhone和Android平台编写应用程序。 我希望找到一种中间件/框架,该中间件/框架可以抽象出API中的一些差异,并允许我在构建时指定目标平台。 是否存在这样的框架或计划中的框架?

iphone android frameworks middleware
回答

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和相信与否,的Adobe Flash可以发布本机二进制文件到iOS,安卓,桌面,当然还有网络。 性能是合理的,但并不令人难以置信。 如果您有Flash游戏,则可以很轻松地将其带到手机上。 而且这不需要任何形式的插件。 它实际上创建了在每个平台上运行的本机独立二进制文件。

土坯


回答

编辑:自从提出此问题以来,已经开发了许多可行的解决方案。 虽然此答案的语气可能仍然是准确的(要从硬件/操作系统中获得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界面之间提供漫游配置文件的附加优势。


回答

在此处添加另一项服务: Rhomobile正在寻求创建此服务。 它的报价看起来确实很笨拙-回想90年代初期的网络。 但这可能是将您喜欢的应用程序移植到每个主要移动平台的最简单方法。

更多详细信息: Rhomobile承诺:构建一次,部署到任何智能手机

(注意:我不为Rhomobile工作;今天刚遇到这个故事。)


回答

我没有使用iPhone或Android的直接经验,但是我只是读了一篇有关“钛”的文章,然后当我访问他们的网站时发现:

http://www.appcelerator.com/products/titanium-mobile/


回答

我使用“本机”解决方案Obj-C和Java(4 Android)进行了大量工作。 我还使用适用于iPhone和Android的Appcelerator构建了一个应用程序,效果很好。 Appcelerator API相当广泛。 Appcelerator厨房水槽应用程序显示了许多准备包含在应用程序中的元素和功能( https://github.com/appcelerator/KitchenSink )。 但是,由于我的Appcelerator应用程序不太复杂,因此一般不推荐它。 一位同事告诉我,他们的开发团队尝试过,但不满意。 但是他不能说出真正的原因。 但是,我将继续对其进行测试,以了解其局限性。 最大的限制是平台支持(目前仅支持iOS和Android)。

对于Rhodes而言,此解决方案在纸面上看起来非常令人印象深刻,尤其是在受支持的平台方面。 我看到了一些问题。 首先,演示应用程序和厨房接收器应用程序需要大量磁盘空间,运行时有些断断续续,有时看起来很时髦(至少在Android上如此)。 其次,很少有“现实世界”称呼可以找到。 我的意思是下载的应用程序至少已下载1000次以上,并且可以满足现实世界的需求,而不仅仅是演示目的。 对我而言,可用性在移动(消费者)应用程序中具有最高优先级!

我认为HTML / CSS / JavaScript / PhoneGap应用程序具有巨大潜力。 最近,我读了很多有关使用HTML(5)来构建其应用程序的较大公司的文章(例如Netflix http://mashable.com/2010/12/03/netflix-html5/,Zynga http://www.spielsucht24。 de / 2010/12/21 / zynga-launches-html5-mafia-wars-atlantic-city-for-mobile-web / )在使用Web技术构建移动应用程序时,仍然需要解决可用性和敏捷性方面的一些问题。 另一个问题可能是企业级HTML应用程序的测试,调试和维护。


回答

Rhomobile的Rhodes框架可以做到这一点。 Rhodes应用程序是每个智能手机的本地应用程序


回答

Mytopia有一个未发布的框架,称为RUGS。 他们最近在TechCrunch 50大会上发表了演讲,他们的技术看起来非常有趣。 他们能够编译在所有智能手机平台上运行的应用程序(并能够利用iPhone上每个加速度计的功能)。 不幸的是,他们的网站说,如果您需要更多信息,则需要给他们发送电子邮件。 如果您真的想在跨平台智能手机定位系统上进行开发,可能值得向他们发送电子邮件。

我通过TC50网络广播观看了他们的演讲,但很遗憾,现在无法为您找到视频。

请在此处返回摘要,说明您决定使用哪种框架以及选择它的原因。


回答

QuickConnectiPhone允许您使用JavaScript编写应用程序,但仍可以安装。 目前,Android版本尚未发布。

同时拥有这两种功能后,您就可以使用JavaScript,CSS和HTML创建应用,并通过iPhone或Android手机拨打电话以查询设备行为,例如振动,GPS位置等。

可从https://sourceforge.net/projects/quickconnect/下载iPhone版本,如果您与我联系,我可以向您发送Android版本。


回答

您可以使用iSpectrum为iPhone开发Java应用程序。 这样,您将能够在Android和iPhone之间重用一致数量的应用程序代码(可能还会根据您的操作使用桌面小程序或J2ME MIDlet :))

有关更多信息, 请访问http://www.flexycore.com


回答

看看这个:

http://www.xmlvm.org/overview/

该项目试图将以多种源语言编写的程序交叉编译为多种目标语言。 最初的测试用例之一是用Java编写程序并在iPhone上运行它们。 在网站上观看视频是值得的。 他们讨论了也可以定位Android的可能性。

话虽如此,我还没有尝试过。 该项目似乎是beta版本,其SourceForge网站上没有很多活动。


回答

即使您确实愿意,也无法创建自己的多平台框架-iPhone是本机代码,Android是Java。

当然,没有什么可以阻止您的,例如,与iPhone对应的桌面应用程序共享核心C / C ++逻辑。


回答

您最好的选择是AirPlay,请访问AirPlay网站

一键式即可部署到Android,Iphone,三星Bada,Symbian,Windows Mobile,BREW,WebOS和Maemo。


回答

我的书《适用于iOS和Android的HTML5》使您可以将以HTML,JavaScript和CSS创建的网络应用程序转换为独立的应用程序,然后可以上传到应用程序商店(免费或出售)– http://html5formobile.com -可以在网站上免费获得针对iOS和Android SDK的包装器,如果您按照书中的说明进行操作,则无需了解任何一种编程语言。


回答

我意识到这个问题已经很久了,但是它出现在Google搜索中,所以我认为更新它是一个好主意。

我认为,目前针对两个平台并实际上以本机运行的,可以编写出色游戏的良好框架将是Corona。

链接: http//www.anscamobile.com/corona/


回答

我只想提一下,使用Gears插件的Web应用程序可以利用 Geolocation 不再可用)(GPS和Wifi定位服务),并且可以在Android上使用(G1上的浏览器附带内置Gears支持)。

我不确定是否有希望在iPhone上获得齿轮支持,但这是构建具有附加功能同时仍具有广泛设备的Web应用程序的另一种有用方法。


回答

我们在Ice-Touch中间件方面取得了成功,可以使iPhone和Android设备与同一台服务器通信。 并为网络对象和方法生成了相当不错的代码。 但是本地逻辑仍然必须用手机的语言编写。 这样,我们可以利用每个UI的优势,而我们的模型则位于同一服务器上,并且控制器是自动生成的。

连结文字


回答

从本质上讲,这样的框架无法利用iPhone特有的功能,例如加速度计或多指手势。 这也可能会使Apple的SDK条款无效。

正如Andyuk建议的那样,请考虑编写Web应用程序。 可以通过这种方式访问​​基本功能,例如呼叫某人。


回答

没有任何东西存在(值得依靠,如果有的话),而且我怀疑会不会有官方计划的东西。