方法来开发移动应用程序,支持Web应用程序 [英] Approach to developing mobile application that supports a web application

查看:193
本文介绍了方法来开发移动应用程序,支持Web应用程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我公司建立了自己的项目管理Web应用程序。这就像大本营的类固醇。这个应用程序的核心特征是:

My company built its own project management web application. It's like basecamp on steroids. The core features of this application are:

  • 创建任务列表
  • 将任务分配给团队成员
  • 在对任务项目跟踪小时

我期待构建移动应用程序(S)作为扩展到Web应用程序。移动应用程序(S)必须:

I am looking to build mobile application(s) as an extension to the web application. The mobile applications(s) must:

  • 重现上述特征
  • 连接到同一数据库作为Web应用程序
  • 在保留拖放功能
  • 提供了丰富的用户体验等同于或高于Web应用程序更好地
  • 在iphone工作,Droid和黑莓

鉴于上述要求,我应该怎么处理这个移动应用程序的开发?有大约20智能手机用户在我公司:8部iPhone,7机器人和5黑莓

Given the requirements above, how should I approach the development of this mobile application? There's about 20 smart phone users in my company: 8 iphones, 7 droids and 5 blackberries.

我听说过这样的PhoneGap开发框架,使您在HTML,JavaScript和CSS来开发。然后,该软件可以跨黑莓,iPhone和Droid的跨平台。如果我是一个平均/稍为高于平均水平的程序员,我将能够建立一个高品质的跨平台PhoneGap的移动应用程序(或其他X平台开发框架),以符合上述要求?

I've heard of development frameworks like Phonegap that allow you to develop in HTML, Javascript and CSS. The software then works cross platform across blackberry, iphone and droid. If I am an average/slightly-above-average programmer, will I be able to build a high quality cross platform mobile application with PhoneGap (or another x platform development framework) that meets the above requirements?

或者我应该建立每部iPhone,Droid和独立黑莓应用程序?

Or should I build each iphone, droid and blackberry application independently?

什么是最好的方法呢?什么是权衡?

What's the best approach? What are the trade offs?

推荐答案

约翰,

那么它听起来像你有一些工作之前,你!当你有一个现有的基于web的应用程序,有两种基本方法,让你的应用程序提供任何特定的设备上:您可以:(1)编写本机应用程序,实现你想要的每个设备要支持也可以将功能(2)编写一个基于网络的包装为您现有的应用程序,服务内容,HTML / CSS这些相同的设备。

Well it sounds like you've got a bit of work ahead of you! When you have an existing web-based application, there are two basic approaches to getting your app available on any particular device: you can (1) write a native app that implements the functionality you want for each device you want to support or you can (2) write a web-based "wrapper" for your existing app and serve the content as HTML/CSS to those same devices.

选项1:建立你要支持的每个平台的本机应用程序

对于第一种方法,好处是可以很大。通过使用各设备的本机的框架,有完整的能力和灵活性,以利用每个设备的最佳特性的优势。您的应用程序的意见,也可以使速度更快,因为你会从你的服务器上获取的数据来填充(也就是说,你不必在所有加载图像,HTML模板,或CSS文件)的意见。

As for the first approach, the benefits can be great. By using each device's native frameworks, you have the complete ability and flexibility to take advantage of the best features of each device. Your app's views can also render faster, since all you will be fetching from your server is the data to populate the views with (i.e., you do not have to load images, HTML templates, or CSS files at all).

这种方法的缺点是,它本身就要求每个设备具有其自己的应用程序。因此,如果你支持的Web应用程序,iPhone应用程序,Android应用程序,而黑莓的应用程序,这意味着你有4个完全独立的codebases维护。如果添加了某种新的功能,以您的Web应用程序(你presumably会在某个时候),你也必须实现在其他三个单独的code碱基的新功能。鉴于这些设备可具有不同的交互模式,这可能是一个挑战。这里的另一个缺点可分配(即,你可能要经过一个审查程序类似iPhone的应用程序商店,这取决于您要分发您的应用程序)。这也意味着,你将要学习的量还是比较大一些,因为每个设备都有自己的API集和编程的哲学。

The drawback with this approach is that it inherently requires each device to have its own application. So if you're supporting a web app, an iPhone app, an Android app, and a Blackberry app this means that you have 4 completely separate codebases to maintain. If you add some sort of new feature to your web app (which you presumably will at some point), you will also have to implement that new feature in the three other separate code bases. Given the fact that these devices can have different interaction models, this could pose a challenge. Another drawback here can be distribution (i.e., you may have to go through a review process for something like the iPhone app store depending on how you want to distribute your app). It also means that the amount you will have to learn is quite a bit greater since each device has its own API set and programming "philosophy".

选项2:编写一个基于Web的包装为您的应用程序(可能使用的库)

这种方法也有很大的好处。首先,如果你使用像的PhoneGap 或的煎茶触摸 Rhomobile的,最大的好处是您理论上写出了移动应用code,一旦和它的作品在每个被框架所支持的设备。比起写了三个平台的本机应用程序,这是少了很多的工作。

This approach also has a great deal of benefits. First off, if you use a framework like PhoneGap or Sencha Touch or Rhomobile, the big benefit is that you theoretically write the "mobile app" code once and it works across each of the devices supported by the framework. Compared to writing a native app for three platforms, this is a lot less work.

下面缺点如下:这种方法运行在设备的浏览器的网站,这样你就不会获得所有的每一个设备的功能。所有伟大的东西,在iOS和Android API的意愿定义不会提供给你。您也有所这里限于对于本地存储,但是这可能不会是一个极大的关注给你给你的web应用程序。另一个缺点是,将有来自您的服务器需要更多的带宽,这样一来,因为你所服务的所有HTML,图像和CSS,否则你将不必与本机应用程序的。取决于用户和网页的复杂性的数量,这可能是显著到你与否。这里的另一个缺点是,你不能去全屏幕(与iPhone在移动Safari比如总有一个工具栏在底部)。

Downsides here are as follows. This approach runs as a website in the device's browser, so you will not have access to all of the functionality of every device. All of the great stuff in the iOS and Android API's will by definition not be available to you. You are also somewhat limited here with regard to local storage, but this may not be a great concern to you given your web app. Another drawback is that there will be more bandwidth required from your server this way, since you are serving all of the HTML, images, and CSS that you would otherwise not have to with a native app. Depending on the number of users and complexity of the pages, this could be significant to you or not. Another downside here is that you cannot go full-screen (with the iPhone in Mobile Safari for instance there is always a toolbar at the bottom).

普遍关注

有一点担心我读你的问题,这是你的要求清单。再现功能,并连接到远程数据存储的东西,你绝对可以用本机和基于Web的移动应用程序做的。但保留[和]拖拽能力是没有的。随着iPhone,例如,你可以使用手柄在一个UITableViewCell提供一种方法来重新排序名单,但完全在拖和下降是不是真的东西,与移动设备的用户交互模型拟合。您可能需要重新考虑这一点。

One thing that concerned me reading your question was your list of requirements. Reproducing features and connecting to a remote data store are things you can definitely do with both native and web-based mobile apps. But "retain[ing] drag drop capabilities" is not. With an iPhone, for instance, you can use handles in a UITableViewCell to provide a way to reorder lists, but full-on drag-and-drop is not really something that fits with a mobile device's user interaction model. You may have to re-think this one.

要求,以提供用户相当或比web应用更好的丰富体验也有点麻烦。而基于手机的应用程序可以有真正简化的方法来获得在和操纵数据,请记住,你正在设计的屏幕,是一个几平方英寸。它在物理上是不可能提供相同的信息广度有组织的方式比你可以用21高清宽屏显示器。

The requirement to "provide a rich user experience equivalent to or better than the web application" is also a bit troubling. While phone-based apps can have really streamlined ways to get at and manipulate data, remember that you are designing for a screen that is a few inches square. It is physically impossible to provide the same breadth of information in an organized manner than you can with a 21" HD widescreen monitor.

记住,你是在这里设计为移动,所以要充分利用现有的平台优势,但要记住,你正在处理的小屏幕和有限的交互方式(触摸,挥笔,和手势)。

Remember that you're designing here for mobile, so you want to take advantage of the available platforms but remember that you're dealing with small screens and limited interaction methods (touches, swipes, and gestures).

我的建议是,如果这是你第一次在此,要支持所有这些设备,并且你已经有了经验的网络,我建议采取备选方案2和使用一个的上述框架。这将是开始最简单的方法,并不会有任何完全不同的概念,让你不得不学习。

My recommendation is that if this is your first time at this, you want to support all of these devices, and you already have experience with the web, I would suggest taking Option 2 and using one of the above-mentioned frameworks. It would be the easiest way to start and there wouldn't be any radically different concepts for you to have to learn.

祝你好运!

这篇关于方法来开发移动应用程序,支持Web应用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆