2013-01-15 15 views
1

我计划建立一个跨平台的移动应用,具有类似天然的版本为大多数移动平台,也许Windows手机,安卓,iOS版。它应该将数据存储在服务器上的数据库中,而移动应用程序主要用于可视化(数字)数据。跨平台移动应用程序和RESTful Web服务和评分算法 - 建筑与技术

基本使用场景

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

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

1)您会推荐什么跨平台移动技术?

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

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

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

Basic structure of the service

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

回答

1

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

2)您可以开发与两个Java EE的伟大的RESTful Web服务(参见JAX-RS /春季)和Python(见的Django)。这个选择实际上更多是个人品味的问题。

1

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

1

@thevangelist:这是你提了一个很好的问题,所有的移动开发者,当我们开始编写一个应用程序面临同样的问题。今天,市场上有多个开源框架正试图解决同样的问题,但以不同的方式。

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

查看:查看是任何移动应用程序的重要组成部分。当我们开始构建UI/UX时,我们也认为它是平台设计原则。寻找这些观点我想推荐React Native

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

  • 优点

    • 呈现与本机的行为和交互原生的观点,你将会有一个真正的本地应用程序

    • 具有“一次学习的范例结束,随处写“,开发人员只需要使用React和JavaScript为Andoroid,iOS创建更好的应用程序。

    • 使用本地架构和概念

    • 它不需要的WebView

    • CSS Flexbox的用于布局设计

  • 缺点

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

    • 不能没有API,这是由阵营原生提供工作,在技术上有没有像经典的混合移动应用没有回退

    • 当创建合适的本地应用程序,一个开发商将有关于性能调整更多的权力和控制

    • 阵营本土仍然是一个新的框架,所以我们无法预测可能出现的问题和缺点

这些缺点可以忽略不计,特别是如果我们认为React Native每天都在为越来越多的本地应用程序提供支持。

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

ACTIONHEROStrongLoop

在休息数据:您也将需要进行同步数据离线存储。由于我们没有直接支持JavaScript中的本地SQLite,我们需要使用一些React Native SQLite插件。请在下面找到插件,它在市场上可供选择:

almostandporjbrodriguezramsundark5remobile

用于以休息转机/数据数据,我想推荐Siminov Framework这是适用于所有主要平台(Android,iOS,Windows)。它还支持混合技术,如React NativeCordova,Xamarin

优点

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

缺点

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

算法:我已经找到相关的算法此链接nurlybayevaAMS9,希望这可以帮助你。

+0

有趣的是,这个话题仍然与3年前当我最初提出这个问题时相关。据我所知,刚刚开始真正解决这个问题的React native。 :) – thevangelist

+0

@thevangelist:同意,由于多平台(Android,iOS,Windows),构建/维护移动应用程序非常困难。许多框架都试图解决这个问题,但不幸的是,所有这些都对性能/ UI有一些/其他的影响。去年Facebook发布了React Native,从此它在市场上引起轰动。我个人认为React Native是移动应用程序开发的完美解决方案。 –