17

我一直在玩phonegap,在我的Android上做了一些测试......

这很不错。

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

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

为 iOS 开发我的应用程序有什么要求?我是否需要带有特殊 SDK 的特殊 IDE?我必须有Mac吗?

4

7 回答 7

14

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

优点:

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

缺点:

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

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

React Native for Android 于 2015 年 9 月 14 日开源。我还没有使用它,但这是我迄今为止能够学到的。2016 年10 月 21 日更新:今年早些时候宣布了适用于 Windows 通用平台的 React Native。这意味着您现在可以使用 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包,根据他们在 F8 上的介绍,这些包将包括无需 XCode 即可打包和构建的工具。

总体而言,React Native 是一次出色的体验。在我看来,它比目前其他任何东西都高出一筹。社区内的感觉也非常积极。我只能假设它会随着时间的推移而变得更好。

于 2015-07-28T15:07:16.480 回答
4

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

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

这种方法的优点:

  • 简单的设置
  • 无需加载额外的库 - 应用程序启动速度更快
于 2015-01-30T15:44:48.123 回答
3

这是一个不断变化的舞台,而且只会变得更好。在您感兴趣的那一刻谷歌搜索将是最好的选择。在撰写本文时,我正在观看以下内容,排名不分先后:

于 2015-06-25T01:07:48.883 回答
1

如果您尝试使用 javascript 构建移动应用程序,Phone Gap 确实是您的最佳选择

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

于 2013-11-12T14:05:39.503 回答
1

这些是选项

电话间隙: http ://phonegap.com/

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

电晕实验室: http ://coronalabs.com/

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

应用加速器:http : //www.appcelerator.com/

Appcelerator 是唯一让企业能够创建、交付 > 和分析其移动应用程序的移动优先平台。

于 2013-11-12T09:41:59.450 回答
0

如果您在学习一门新的脚本语言方面投入一些精力,Coronalabs将是您选择的新武器。有了它,您可以构建原生(跨平台)应用程序,如果需要,您可以使用 webview 添加 HTML/CSS/Javascript 内容。

于 2013-11-29T11:39:44.327 回答
0

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

以下是我的三大理由:

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

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

  3. 很棒的在线资源

我能够在没有以前的 React Native 经验的情况下编写一个小而实用的应用程序,甚至可以在 2 天内将其部署到 Google Play 商店。

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

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

于 2017-09-01T13:56:42.817 回答