我有兴趣为iPhone和Android平台编写应用程序.我希望找到一个中间件/框架,它抽象出API中的一些差异,并允许我在构建时指定目标平台.是否存在或计划了这样的框架?
Phonegap是一个基于javascript/css/html的框架,面向iPhone,Android和Blackberry.它(至少在iPhone上)也可以捆绑为本机应用程序.这些应用程序的UI层通常使用html/javascript构建,并且可能比真正的本机应用程序慢.
PhoneGap的
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系列,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).
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,桌面,当然还有web.表现合理,但并不令人难以置信.如果你有Flash游戏,你可以很容易地将它带到移动设备上.这不需要任何类型的插件.它实际上创建了一个在每个平台上运行的本机独立二进制文件.
土砖
编辑:由于这个问题被问到,已经开发了许多可行的解决方案.虽然这个答案的基调可能仍然准确(为了从硬件/操作系统中获得100%的本地应用程序可能是必要的),您可以在此问题下找到许多可能的答案.
Android和iPhone都有非常强大的用户界面.即使你找到了一个框架来弥补最低层面上的巨大差异(Android在Java上编程,在自定义VM上编程,iPhone是用Objective-C编程的本机代码),在更高层次上(iPhone应用程序是一个完全沙盒化和隔离,Android对象模型是分布式的,并且应用程序和库之间可以自由调用类)你的最终应用程序会感觉很陌生并且在其中任何一个都不合适.想想Android中缺少多点触控,或者iPhone中没有专用的硬件按钮.
最好的办法是开发一个特定于平台的用户界面,并以某种脚本语言提供应用程序的模型和核心逻辑.然后在普通C(对于iPhone)中找到一个解释器,在Java中找到一个解释器(对于Android.)Scheme,Lisp和Javascript可以满足要求.只需确保解释器不会暴露给最终用户,否则您将违反iPhone NDA ...
如果您的应用程序数据量很大,您可以遵循许多iPhone应用程序的模型,并为iPhone和Android开发本机用户界面,并将所有应用程序逻辑放在远程服务器中.您的UI成为应用程序中唯一安装的部分,其他所有内容都在网络上托管.这具有额外的优点,即可以在不同设备和web界面之间提供漫游配置文件.
在这里添加另一项服务:Rhomobile正在寻求创造这一点.看起来确实如此愚蠢 - 回想起90年代早期的网络.但它可能是将您喜爱的应用程序移植到每个主要移动平台的最简单方法.
更多细节:Rhomobile承诺:构建一次,部署到任何智能手机
(注意:我不为Rhomobile工作;今天就碰到了这个故事.)
我没有iPhone或Android的直接经验,但我刚看了一篇关于"Titanium"的文章,然后当我访问他们的网站时,发现了这个:
http://www.appcelerator.com/products/titanium-mobile/
我使用"原生"解决方案Obj-C和Java(4 Android)工作(ed).我还使用适用于iPhone和Android的Appcelerator构建了一个应用程序.Appcelerator API非常广泛.Appcelerator Kitchen Sink应用程序显示了许多可以包含在应用程序中的元素和功能(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位置等.
iPhone版本可从https://sourceforge.net/projects/quickconnect/下载,如果您与我联系,我可以向您发送Android版本.