跨平台移动应用程序& RESTful网络服务&评分算法 - 体系结构&技术

时间:2013-01-15 17:25:05

标签: rest web-applications mobile architecture cross-platform

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

基本使用场景

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

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

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

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

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

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

Basic structure of the service

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

3 个答案:

答案 0 :(得分: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每天都在为越来越多的原生应用程序提供支持。

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

ACTIONHEROStrongLoop

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

almostandporjbrodriguezramsundark5remobile

对于过境数据/静态数据,我想推荐所有主要平台(Android,iOS,Windows)上提供的Siminov Framework。它还支持混合技术,例如React NativeCordovaXamarin

<强>赞成

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

<强>缺点

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

算法:我发现此链接nurlybayevaAMS9与算法有关,希望这对您有所帮助。

答案 1 :(得分:1)

1)从未使用PhoneGap,虽然知道它,但不要忘记考虑一个简单的HTML5应用程序。如果可能的话,这将为您节省大量工作并最大限度地提高兼容性。

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

答案 2 :(得分:1)

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