使用JavaScript构建本机应用程序的最佳方法?

时间:2013-11-12 09:32:30

标签: javascript mobile cordova native

我已经玩了一段时间的电话, 在我的Android上做了一些测试...

非常好。

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

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

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

7 个答案:

答案 0 :(得分:14)

我们目前正在使用React Native构建原生iOS应用程序。如果不包括在内,那将是一种耻辱。

优点:

  • React将DOM视为实现细节。这使得转换到本机UI非常自然。在编写本机应用程序时,它还消除了对HTML / CSS的需求。您只需要用JavaScript编写的本机组件。
  • 原生组件!基本的本机组件已经被桥接到JavaScript,并且有一个社区忙于工作,带来其他一切。问题是,如果您知道或愿意学习一些Objective C或Java,则可以easy process将任何本机模块(或第三方模块)添加到React Native。
  • 快速迭代。自3月开源以来,已经有超过2600次提交给主分公司。<​​/ li>
  • 您可以获得正常React的所有好处:虚拟视图层,差异化,声明性UI创建,出色的开发人员体验以及出色的社区。
  • 您可以从同一个存储库构建多个平台,重用大部分相同的代码库(主要是应用程序逻辑)。

缺点:

  • 它还很年轻。有一些功能需要使用jimmy-rigging,第三方库或自定义Objective-C / Java才能正常工作。
  • 与DOM或浏览器API绑定的一些优秀的第三方库仍无法在React Native上运行,包括React Router。
  • 最大的痛苦与XCode和Apple的开发者计划有关,但是没有办法解决这个问题。

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

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

React Native 意图是一次写入,随处运行的心态。他们采用一次学习,改写任何范式。 iOS是一个与Android不同的平台,因此需要在任一平台的设计中付出真诚的努力。原生API也会有所不同。

因此,您最终将重写本机组件和API的代码。但是,您的大部分应用程序逻辑都可以重复使用。实际上,React-Native是有条理的,因此您可以将Android和iOS应用程序保存在同一个存储库中,以便在可能的情况下重用相同的代码。我认为这很棒,但只有时间会证明。 According to them,到目前为止效果很好。

顺便说一句,Facebook built an iOS app using React Native的一个团队随后转而使用87%的相同代码库在三个月内构建了Android版本。

为iOS开发我的应用有哪些要求?

目前,您需要Mac和XCode才能进行部署。目前,解决这个问题的方法很少。根据{{​​3}}以及Slack上的对话,一旦部署,您实际上可以从Windows或Linux机器开发。 Facebook还致力于开源所有this issue软件包,根据Nuclide,这些软件包将包含无需XCode打包和构建的工具。

总的来说,React Native一直是一个很棒的体验。在我看来,这是目前在那里的头脑和肩膀。社区内的感觉也非常积极。我只能假设随着时间的推移它会变得更好。

答案 1 :(得分:4)

如果您的应用程序非常简单(例如现有Web应用程序的端口)并且您只需要在一个平台上使用它并且不需要与手机特定功能集成,您可能只想使用WebView选定的平台。如果您选择的平台是iOS并且您没有任何编程技能,则可以按照以下步骤操作:

  • 在Mac上下载xCode,
  • 下载这个简单的网络视图应用项目:https://github.com/nomtek/iOSWebViewApp
  • 在xCode
  • 中打开简单的网络视图应用
  • 将HTML添加到项目中
  • 运行它:)

这种方法的优点:

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

答案 2 :(得分:3)

这是一个不断变化的舞台,它只会变得更好。在您感兴趣的时刻谷歌搜索将是最好的选择。在撰写本文时,我现在正在观看以下内容,没有特别的顺序:

答案 3 :(得分:1)

这些是选项

Phonegap:http://phonegap.com/

  

PhoneGap是一个免费的开源框架,允许您创建   针对您关注的平台使用标准化Web API的移动应用程序   关于。   。下载Phonegap.

Coronalabs:http://coronalabs.com/

  

Corona SDK为iOS,Android,Kindle和Nook构建了丰富的移动应用程序。   在很短的时间内构建高质量的移动应用程序。

Appcelerator:http://www.appcelerator.com/

  

Appcelerator是唯一支持企业的移动第一平台   创建,提供&分析他们的移动应用程序。

答案 4 :(得分:1)

如果您尝试使用javascript构建移动应用,那么Phone Gap看起来确实是您的最佳选择

是的,你需要一台mac,因为你需要安装XCODE(https://developer.apple.com/xcode/) - 苹果自己的IDE。

答案 5 :(得分:0)

如果您投入一点学习新的脚本语言,Coronalabs将成为您选择的新武器。有了它,您可以构建本机(跨平台)应用程序,如果需要,您可以使用webview添加HTML / CSS / Javascript内容。

答案 6 :(得分:0)

目前,React Native是在JavaScript中创建移动应用程序的最佳选择。

以下是我的三大理由:

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

  2. 可忽略不计的学习曲线

  3. 很棒的在线资源
  4. 我能够编写一个小型但功能强大的应用,没有以前的React Native体验,甚至可以在2天内将其部署到Google Play商店。

    我在React Native中看到的另一个好处是,您可以随时“弹出”您的应用并继续在Android Studio或XCode中处理它。对于那些开始变得简单但在一段时间内变得复杂的项目来说,这可能是一个很大的缓解。

    这是我在为Android构建我的第一个原生应用程序时整理的简短教程: http://geekycentral.com/creating-a-native-android-app-using-javascript-hello-react-native/