用JavaScript构建本地应用程序的最佳方法是什么?

17

我一直在使用PhoneGap玩耍,对我的Android进行了一些测试...

它很不错。

我的问题是:
使用Web客户端(HTML / JavaScript / CSS)开发本机移动应用程序的最佳框架是什么(您最喜欢的)?

在多个平台上(iOS / Android / BlackBerry)并行构建和维护这些应用程序有多容易? 在不同平台(iOS / Android / BlackBerry)之间会有很多例外吗?

为开发我的iOS应用程序需要哪些要求? 我需要一个特殊的IDE和特殊的SDK吗? 我必须拥有Mac吗?


如果你仔细阅读,PhoneGap文档将回答你所有的疑问。 http://docs.phonegap.com/en/edge/guide_platforms_index.md.html - Mumthezir VP
使用PhoneGap Build来完成这个任务。你只需要添加HTML + CSS + JS代码,PhoneGap Build就会为多个平台构建应用程序。 - Hanh Le
8个回答

14
我们目前正在使用React Native构建本地iOS应用程序。如果不在这里包含它,那将是一件遗憾的事情。
优点:
  • React将DOM视为实现细节。这使得过渡到本地UI非常自然。它还消除了编写本地应用程序时需要HTML/CSS的需求。你只需要用JavaScript编写本地组件。
  • 本地组件!基本的本地组件已经被桥接到JavaScript上,社区正在忙于将其他所有内容移植过来。问题是,如果你知道或愿意学习一些Objective C或Java,那么有一个简单的过程可以将任何本地模块(或第三方模块)添加到React Native中。
  • 快速迭代。自3月份开源以来,主干分支已经有超过2600个提交。
  • 您将获得正常React的所有好处:虚拟视图层,差异化,声明式UI创建,出色的开发者体验和卓越的社区。
  • 您可以从同一存储库构建多个平台,重用大部分相同的代码库(主要是应用程序逻辑)。

缺点:

  • 它仍然很年轻。有一些功能需要进行松散的组合,使用第三方库或自定义Objective-C/Java才能工作。
  • 一些与DOM或浏览器API相关的优秀第三方库仍无法在React Native上运行,包括React Router。
  • 最大的问题与XCode和Apple的开发者计划有关,但是没有办法绕过它。

在多平台上构建和维护这些应用程序有多容易?

React Native for Android于2015年9月14日开源。我还没有使用过它,但是这是我目前所了解到的。 更新时间为10/21/16:React Native for Windows Universal平台是今年早些时候宣布的。这意味着您现在可以使用React Native来构建Windows桌面、Windows手机甚至Xbox的应用程序!

React Native并不打算采用“编写一次,到处运行”的理念。相反,他们采用学习一次,随处编写的范式。iOS平台与Android平台非常不同,因此必须对任何一个平台的设计付出真诚的努力。本地API也将有所不同。

所以,你最终会重新编写本地组件和API的代码。然而,你的应用程序逻辑中的大部分可以被重复使用。事实上,React-Native是这样组织的,你可以将Android和iOS应用程序保存在同一个代码库中,这样当可能时就可以重复使用相同的代码。我认为这很棒,但只有时间才能证明。据他们说,到目前为止它运行得很好。

顺便说一下,Facebook的一个团队使用React Native构建了一个iOS应用程序,然后转而使用87%的相同代码库在三个月内构建了Android版本。

开发我的iOS应用程序需要哪些要求?

目前,您需要拥有Mac和XCode才能进行部署。目前很少有绕过此限制的方法。根据这个问题和在Slack上的对话,一旦部署完成,您实际上可以从Windows或Linux机器上进行开发。Facebook还正在努力开源他们所有的Nuclide软件包,这将包括不需要XCode的打包和构建工具,如F8演讲所示。

总体而言,React Native是一次非常出色的经历。在我看来,它遥遥领先于目前市场上的其他任何东西。社区内的感觉也非常积极。我只能认为随着时间的推移,它会变得更好。


1
非常感谢您的回答,我真的很欣赏其中的细节,并且感觉它相当客观。 - Pure Function
这不仅仅是框架吗?并不是实际构建应用程序的方式吗? - Arno Inen
我不确定你指的是什么Arno - 但React Native是一个通过JavaScript创建本地应用程序的框架。该框架包括开发应用程序的工具以及为目标平台构建以准备部署的工具。 - Jacob Turner

4
如果你的应用程序非常简单(例如一个现有Web应用程序的端口),并且你只需要它在一个平台上,并且不需要与特定于电话的功能集成,那么您可能希望在所选平台上仅使用一个WebView。 如果您选择的平台是iOS,并且您没有任何编程技能,则可以按照以下步骤操作:
  • 在您的Mac上下载xCode
  • 下载此简单的Web视图应用程序项目:https://github.com/nomtek/iOSWebViewApp
  • 在xCode中打开简单的Web视图应用程序
  • 将您的HTML添加到项目中
  • 运行即可 :)

这种方法的优点:

  • 简单设置
  • 无需加载额外的库-该应用程序启动速度更快

3
这是一个不断变化并且只会越来越好的领域。如果你有兴趣,最好的方法就是在搜索引擎上进行搜索。在我写这篇文章的时候,我正在观看以下内容,没有特定的顺序:

Meteor不是更像一个通用的JavaScript框架吗?我知道最初它是为实时Web应用程序构建的。 - agmcleod
引用Meteor的话: "Meteor是一个完整的开源平台,可以使用纯JavaScript构建Web和移动应用程序。" 我同意这可能实际上并不会生成本地应用程序,但值得考虑。 - Indu Devanath

2
这是选项:
Phonegap:http://phonegap.com/ PhoneGap 是一个免费的开源框架,允许您使用标准化的 web API 为您关心的平台创建移动应用程序。下载Phonegap。 Coronalabs:http://coronalabs.com/ Corona SDK 可以为 iOS、Android、Kindle 和 Nook 构建丰富的移动应用程序。在短时间内构建高质量的移动应用程序。
Appcelerator:http://www.appcelerator.com/ Appcelerator 是唯一的移动优先平台,使企业能够创建、交付和分析其移动应用程序。

1

如果您想使用JavaScript构建移动应用程序,那么PhoneGap看起来是最好的选择。

是的,您需要一台Mac电脑,因为您需要安装XCODE(https://developer.apple.com/xcode/)-苹果自己的集成开发环境。


0

目前,React Native是使用JavaScript创建移动应用的最佳选择。

以下是我认为的前三个原因:

  1. 非常活跃的开发和更新 - 毕竟它起源于FB

  2. 学习曲线几乎为零

  3. 丰富的在线资源

即使没有之前的React Native经验,我也能够在2天内编写一个小而功能齐全的应用程序,并将其部署到Google Play商店。

此外,我认为React Native的一个巨大优势是您可以随时“弹出”应用程序并在Android Studio或XCode中继续工作。这对于那些从简单开始但可能随着时间推移变得复杂的项目来说可能是一个巨大的解脱。

在构建我的第一个React Native应用程序时,我制作了一个简短的教程,供大家参考:http://geekycentral.com/creating-a-native-android-app-using-javascript-hello-react-native/


0

如果你愿意花一点时间学习新的脚本语言,Coronalabs 将成为你的新武器。使用它,你可以构建本地(跨平台)应用程序,并且如果需要,你可以使用 webview 添加你的 HTML/CSS/Javascript 内容。


0
使用JavaScript构建原生应用程序变得非常易于访问和高效,借助React Native和NativeScript等框架。这些强大的工具使开发人员能够利用他们的JavaScript技能创建高性能的跨平台应用程序。凭借其丰富的库和直观的API,它们为使用JavaScript打造原生体验提供了最佳途径。在这里你可以找到更多关于使用JavaScript创建Android应用程序的信息。强烈推荐!

1
有没有与那个博客有关联?[/help/promotion] - starball

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接