是否有开发iPhone/Android应用程序的多平台框架?

qquod 发布于 2018-04-23 android 最后更新 2018-04-23 10:30 738 浏览

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

已邀请:

ehic

赞同来自:

没有任何东西存在(值得依赖,如果有的话),我怀疑是否有任何官方计划。

ueum

赞同来自:

这种框架本质上不能利用iPhone特有的功能,如加速度计或多指手势。这也可能使Apple的SDK条款无效。 正如andyuk所建议的,考虑编写一个Web应用程序。诸如打电话给某人的基本功能可以这样访问。

punde

赞同来自:

即使你真的想,制作自己的多平台框架也不现实 - iPhone是本地代码,Android是Java。 当然,没有任何东西可以阻止你,例如,在iPhone上与桌面应用程序共享核心C/C++逻辑。

vet

赞同来自:

编辑:由于这个问题被问到一些可行的解决方案已经开发。虽然这个答案的基调可能仍然是准确的(为了从硬件/操作系统中获益100%,可能需要一个本地应用程序),但您可以在此问题下找到许多可能的答案。 Android和iPhone都有非常强大的用户界面。即使你发现了一个桥接最底层方面的巨大差异的框架(Android在自定义虚拟机之上用Java编程,iPhone用Objective-C编程的本地代码),而在更高层(iPhone应用程序是一个完全的沙盒和隔离,Android对象模型是分布式的,而类是在应用程序和库之间自由调用的),你最终的应用程序会感到陌生和不合适。想一想Android中缺乏多点触控,或者iPhone中缺少专用硬件按钮。 最好的选择是开发一个特定于平台的用户界面,并以某种脚本语言为应用程序提供模型和核心逻辑。然后在普通C语言(用于iPhone)和Java语言(用于Android)中找到解释器。Scheme,Lisp和Javascript可以满足要求。只要确保翻译不会暴露给最终用户,否则你会违反iPhone NDA ... 如果您的应用程序数据量很大,则可以遵循许多iPhone应用程序的模型,并为iPhone和Android开发本机用户界面,并在远程服务器中拥有所有应用程序逻辑。您的用户界面将成为应用程序的唯一已安装部分,其他所有内容都将保存在网络上。这具有可以在不同设备和Web界面之间提供漫游配置文件的附加优势。

oqui

赞同来自:

Mytopia有一个名为RUGS的未发布框架。他们最近在TechCrunch 50会议上介绍了他们的技术,看起来非常有趣。他们能够编译在所有智能手机平台上运行的应用程序(并且能够利用iPhone上每个加速度计的功能)。不幸的是,他们的website表示如果您需要更多信息,您需要通过电子邮件发送给他们。如果你真的想在跨平台的智能手机目标系统上开发,可能值得给他们发一封电子邮件。 我通过TC50网络直播观看了他们的演示,但不幸的是我们现在无法为您找到一个视频。 请在这里回顾一下您决定使用哪个框架以及为什么选择它的总结。

wmagni

赞同来自:

Phonegap是一个基于javascript/css/html的框架,面向iPhone,Android和黑莓。它(至少在iPhone上)可以作为本地应用程序捆绑在一起。这些应用程序的UI层通常以html/javascript构建,并且可能比真正的本机应用程序慢。 phonegap


通过React Native,您可以使用基于JavaScript和React的一致开发人员体验在本地平台上构建世界级的应用程序体验。 React Native的重点在于您关心的所有平台上的开发人员效率 - 学习一次,随时随地编写。 Facebook在多个生产应用中使用React Native,并将继续投资React Native。 React Native应用程序的用户界面是本机控件 - 因此您的UI通常比纯HTML/JavaScript方法更快地进行GUI管理。 React Native
Unity是由Unity Technologies开发的跨平台游戏引擎,用于开发PC,控制台,移动设备和网站的视频游戏。 Unity以其将游戏定位到多个平台的能力而着称。支持的平台包括Android,Apple TV,BlackBerry 10,iOS,Linux,Nintendo 3DS,OS X,PlayStation 4,PlayStation Vita,Unity Web Player(包括Facebook),Wii,Wii U,Windows Phone 8,Windows,Xbox 360,和Xbox One。 Unity
OpenFL是Flash API的开源端口 桌面,浏览器,IOS,Android的,闪光,HTML5等。对于那些来自Flash世界的人来说,这是一个可以考虑的选项。它建立到本机二进制文件并且也是目标浏览器(Flash/HTML5)。 openfl
MonoGame是Microsoft XNA 4.x Framework的开源实现。 它使XNA开发人员可以轻松地创建具有极高代码重用的跨平台游戏。它目前支持iOS,Android,Windows(包括OpenGL和DirectX),Mac OS X,Linux,Windows 8商店,Windows Phone 8,PlayStation Mobile和OUYA控制台。 monogame
Adobe Flash不管信不信,Adobe Flash都可以将本机二进制文件发布到ios,android,desktop,当然还有web。表演是合理的,但并不令人难以置信。如果你有一个Flash游戏,你可以很容易地将它移动到移动设备上。这并不需要任何形式的插件。它实际上创建了在每个平台上运行的本机独立二进制文件。 adobe

ased

赞同来自:

我只想提一下,使用Gears插件的Web应用程序可以使用 Geolocation (不再可用)(GPS和Wifi位置服务),这适用于Android(G1上的浏览器内置Gears支持)。 我不确定是否有希望在iPhone上获得齿轮支持,但这是另一个有用的方法来构建具有额外功能的web应用程序,同时仍具有广泛的设备范围。

funde

赞同来自:

看看这个: http://www.xmlvm.org/overview/ 这是一个试图将各种源语言编写的程序交叉编译成各种目标语言的项目。最初的测试案例之一是用Java编写程序并在iPhone上运行它们。在网站上观看视频是值得的。他们已经讨论了能够瞄准Android的可能性。 这就是说,我没有尝试过。该项目看起来相当不错,并且SourceForge网站上没有太多活动。

tsint

赞同来自:

QuickConnectPhone允许您使用JavaScript编写应用程序,但它仍然可以安装。此时,Android版本尚未发布。 两者都允许您使用JavaScript,CSS和HTML创建应用程序,可以调用iPhone或Android手机的设备行为,例如振动,GPS位置等。 iPhone版本可从https://sourceforge.net/projects/quickconnect/下载,如果您与我联系,我可以向您发送Android版本。

baut

赞同来自:

在这里添加另一项服务:Rhomobile正在创造这一点。它确实看起来很虚伪 - 在90年代初回想起网络。但它可能是将您最喜爱的应用程序移植到每个主要移动平台的最简单方法。 更多详情:Rhomobile promises: Build once, deploy to any smartphone (注意:我不为Rhomobile工作,今天刚刚遇到了这个故事。)

funde

赞同来自:

我们使用Ice-Touch中间件获得成功,让iPhone和Android设备与同一台服务器交谈。为网络对象和方法生成相当不错的代码。但本地逻辑仍然必须用手机语言编写。通过这种方式,我们可以充分利用各自的UI优势,而我们的模型则位于同一台服务器上,而我们的控制器则是自动生成的。 link text

gcum

赞同来自:

我对iPhone或Android没有直接的经验,但我只是阅读了一篇关于“Titanium”的文章,然后当我访问他们的网站时发现了这一点: http://www.appcelerator.com/products/titanium-mobile/

eomnis

赞同来自:

Rhomobile的Rhodes框架可以做到这一点。 Rhodes应用程序适用于每个单独的智能手机

zsed

赞同来自:

您可以使用iSpectrum为iPhone开发Java应用程序。 通过这种方式,您可以在Android和iPhone之间重复使用一致的应用程序代码(可能还有桌面小程序或J2ME MIDlet,具体取决于您的操作:)) 更多信息在http://www.flexycore.com

sunde

赞同来自:

您的最佳选择将是AirPlay,请访问AirPlay web site 点击一下,你就可以部署Android,Iphone,三星Bada,Symbian,Windows Mobile,BREW,WebOS和Maemo。

tvel

赞同来自:

我用“本机”解决方案Obj-C和Java(4 Android)工作(编辑)很多。我还使用适用于iPhone和Android的Appcelerator构建了一个应用程序,它工作得很好。 Appcelerator API相当广泛。 Appcelerator Kitchen Sink App显示了许多可以包含在应用程序中的元素和功能(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应用程序的测试,调试和维护。

ynulla

赞同来自:

我的书适用于iOS和Android的HTML5使您能够使用HTML,JavaScript& CSS,并将它们转变为独立的应用程序,您可以上传到应用程序商店(免费或销售) - http://html5formobile.com - 为iOS和Android SDK执行此操作的包装可在网站上免费获得,而且您不需要如果您按照本书中的说明进行操作,可以使用任何编程语言的知识。

iid

赞同来自:

我意识到这个问题是相当古老的,但它出现在谷歌搜索,所以我认为这是一个好主意,更新它。 我认为现在有一个很好的框架,既针对这两个平台,又实际运行本地,允许编写出色的游戏是Corona。 链接:http://www.anscamobile.com/corona/