1

我正计划创建一个跨平台的移动应用程序,该应用程序具有适用于大多数移动平台的原生版本,可能是 Windows Phone、Android、iOS。它应该将数据存储在服务器上的数据库中,而移动应用程序主要用于可视化该(数字)数据。

基本使用场景

  • 用户打开应用
  • 应用程序数据通过互联网连接刷新
  • 用户输入新数据
  • 新数据被发送到服务器,处理并更新数据库
  • 用户的应用数据根据数据库数据更新(动画!
  • 用户更新其应用程序上的设置,从而改变其行为。

在单独设计和编程移动应用程序 + Web 服务方面,我是一个菜鸟,所以我希望你能帮助我解决以下问题。我最熟悉的技术:Java EE、Python、HTML/CSS/JS、MySQL、Graphics。也许我应该去PhoneGap?非常感谢!

1) 您会推荐哪些跨平台移动技术?

2)什么样的解决方案最适合服务器/应用服务器?(估计代码行 < 5000)

3) 什么是开始学习评分算法的好地方?

如果您对所提出的任何问题有答案,请回复。

服务的基本结构

编辑:发现了一个类似的问题:Cross-Platform Mobile Application Solution

4

3 回答 3

2

@thevangelist:你提出的问题非常好,当我们开始编写应用程序时,所有移动开发人员都面临同样的问题。今天,市场上有多种开源框架,它们试图以不同的方式解决相同的问题。

根据我的研究和经验,我想推荐以下我们在构建移动应用程序时可以考虑的技术。

视图:视图是任何移动应用程序的重要组成部分。当我们开始构建 UI/UX 时,我们还考虑了它的平台设计原则。考虑到这些点,我想同样推荐React Native

React Native:它是 Facebook 和 Instagram 开发的用于创建原生移动应用程序的 JavaScript 库。它允许我们使用 JSX(一种已知的 HTML 类似代码)和 JavaScript 编写 iOS 和 Android 应用程序。它基于“一次学习,随处编写”的方法。

  • 优点

    • 以原生行为和交互呈现原生视图……你最终会得到一个真正的原生应用程序

    • 具有“一次学习,随处编写”的范式,开发人员只需要 React 和 JavaScript 即可为 Andoroid、iOS 创建更好的应用程序。

    • 使用原生架构和概念

    • 它不需要 WebView

    • CSS Flexbox 用于布局设计

  • 缺点

    • 代码抽象导致错误和内存泄漏

    • 没有 React Native 提供的 API 就无法工作,从技术上讲,没有像经典混合移动应用程序那样的回退

    • 在创建适当的本机应用程序时,开发人员将在性能调整方面拥有更多权力和控制权

    • React Native 仍然是一个新框架,所以我们无法预测可能的问题和缺点

这些缺点可以忽略不计,尤其是当我们考虑到 React Native 每天都在为越来越多的本地应用程序提供支持时。

传输中的数据:如果您的应用程序从 Web 服务同步数据,那么市场上有多种框架可以让我们的工作更轻松。请在下面找到一些最流行的 JavaScript RESTful 框架:

ACTIONHERO , StrongLoop

静态数据:您还需要离线存储同步数据。由于我们在 JavaScript 中没有直接支持原生 SQLite,因此我们需要使用一些 React Native SQLite 插件。请在市场上找到以下插件:

几乎andporjbrodriguezramsundark5remobile

对于Transit/Data at Rest 的数据,我想推荐在所有主要平台(Android、iOS、Windows)上都可用的Siminov 框架。它还支持React NativeCordovaXamarin等混合技术。

优点

  • 适用于所有主要平台(Android、iOS 和 Windows)
  • 易于配置,它提供标准的基于 xml 的结构,使用我们可以轻松配置我们的应用程序数据库
  • 它也允许开发人员将 ORM 与远程 RESTFul Web 服务绑定
  • 还支持所有平台上的SQLCipher

缺点

  • 缺乏社区:最近他们在各大平台上都推出了他们的产品,使用它的人并不多。
  • 由于配置是基于 XML 结构的,这对我来说看起来很旧。但根据他们的文档,它支持所有主要平台

算法:我找到了这个与算法相关的链接nurlybayevaAMS9,希望这可以帮助你。

于 2016-02-17T08:56:20.663 回答
1

1) 没用过PhoneGap,虽然知道,但别忘了考虑一个简单的HTML5应用。如果可能的话,这将为您节省大量工作并最大限度地提高兼容性。

2) 您可以使用 Java EE(参见 JAX-RS/Spring)和 Python(参见 django)开发出色的 RESTful Web 服务。选择实际上更多的是个人品味的问题。

于 2013-01-15T17:45:11.940 回答
1

尽量避免编写跨平台应用程序。使用 HTML5+jQuery 是可行的。但是您永远无法获得与原生应用程序相同的外观和感觉。其次,windows、ios和android都有自己的外观和感觉,会想出自己的元素。您永远无法满足所有三个具有相同代码库的需求。更好的是使用本机 sdks 进行编码。

于 2013-01-16T01:01:00.783 回答