web应用程序和web网站_Web应用程序是未来

web应用程序和web网站

Native mobile apps are a little weird, if you stop and think about them.

如果您停下来考虑一下,本机移动应用程序会有些奇怪。

The average mobile app weighs around 20MB, often requires an internet connection in order to be used as intended, and issues several data-heavy updates during its lifetime. Some of these mobile apps have a web version that contains all or most of the same features, at nearly 1/20th of the size.

一般移动应用程序的重量约为20MB ,通常需要互联网连接才能按预期使用,并在其生命周期内发布大量数据更新。 其中一些移动应用程序的网络版本包含全部或大部分相同的功能,其大小几乎是其1/20。

When you buy a mobile phone, a lot of these apps come preinstalled, and can be difficult to remove from your device. There is an app for every use you can think of, but every download means less available storage on your device. Many native apps have specific and trivial use cases (calculators, alarm clocks, sound recorders), while still having large file sizes and internet connection requirements.

当您购买手机时,其中许多应用程序都已预装,可能很难从设备中删除。 您可以想到一个可以满足各种用途的应用程序,但是每次下载都意味着设备上的可用存储空间减少。 许多本机应用程序都有特定而琐碎的用例(计算器,闹钟,录音机),同时仍然具有较大的文件大小和Internet连接要求。

If you’re a developer, it only gets weirder. You can’t just make an app and release it into the wild. You first have to get it approved it on some marketplace to be seen, which can be a difficult and expensive process ($99 USD on apple app store). If you want to make your app available to a wider audience (apple, android, and Firefox OS), you have to release separate versions, which include additional marketplace approval processes and plenty of extra development time.

如果您是开发人员,那只会变得很奇怪。 您不能只是制作一个应用并将其发布到野外。 您首先必须让它在某些市场上获得批准才能被看到,这可能是一个困难而昂贵的过程(苹果应用程序商店上的价格为99美元)。 如果要使您的应用程序可供更广泛的受众(Apple,Android和Firefox OS)使用,则必须发布单独的版本,其中包括其他市场批准流程和大量额外的开发时间。

Vector Hands touching a Smart phone with Social Marketing icon

问题 (The Problem)

Although native mobile applications are useful and entertaining, they’re also a giant inconvenience.

尽管本机移动应用程序有用且有趣,但它们也带来了极大的不便。

For developers, they’re difficult to develop if your skill set revolves around HTML, CSS, and JavaScript. They’re difficult to get on a marketplace, because of tightly controlled requirements and licensing fees. They’re difficult to support because of multiple software versions and device incompatibilities. As an Android user, I’ve come across several great apps that I’d love to install and use, but am unable to because they only exist for iPhone users. This is an upsetting (albeit “first world”) problem, but I can’t blame the developers of the app, because supporting just one platform is difficult enough!

对于开发人员而言,如果您的技能集围绕HTML,CSS和JavaScript进行,则很难进行开发。 由于要求和许可费用受到严格控制,它们很难进入市场。 由于多个软件版本和设备不兼容,因此难以支持它们。 作为Android用户,我遇到了一些我希望安装和使用的出色应用程序,但由于它们仅适用于iPhone用户而无法使用。 这是一个令人烦恼的问题(尽管是“第一世界”),但是我不能责怪该应用程序的开发人员,因为仅支持一个平台已经非常困难!

For users, they’re difficult to install because of bandwidth constraints, file sizes, and frequent updates (open your application manager on your phone and see how many of your apps need or have recently downloaded an update). How many times have you had to uninstall an app on your device to make room for a more important one?

对于用户而言,由于带宽限制,文件大小和频繁的更新,它们很难安装(在手机上打开应用程序管理器,查看有多少应用程序需要或最近下载了更新)。 您必须卸载设备上的应用程序多少次才能腾出空间来安装更重要的应用程序?

Let’s not forget that several mobile applications have web versions that have the same content and capabilities, negating the need for an app in the first place.

让我们不要忘记,几个移动应用程序具有具有相同内容和功能的Web版本,从而一开始就不需要应用程序。

So native mobile applications are difficult for both users and developers alike. But developers keep building them, users continue to download them, and everyone keeps complaining. So is there a solution to the problem of native mobile applications, or are we stuck with the problems we have?

因此,本机移动应用程序对于用户和开发人员都非常困难。 但是开发人员继续构建它们,用户继续下载它们,并且每个人都在抱怨。 那么,是否有解决本机移动应用程序问题的解决方案,还是我们陷入困境?

解决方案 (The Solution)

The solution is the browser. Remember when I said that most applications require some form of an internet connection to work properly? Well truthfully, all applications require an internet connection to work properly, because without the internet, you can’t download any applications. We use the internet to download applications and updates for them, and often to send and receive application-related data.

解决方案是浏览器。 还记得我说过大多数应用程序需要某种形式的Internet连接才能正常工作吗? 说实话,所有应用程序都需要Internet连接才能正常运行,因为没有Internet,您将无法下载任何应用程序。 我们使用互联网为他们下载应用程序和更新,并经常发送和接收与应用程序相关的数据。

If all our applications depend so heavily on the internet, why don’t we just keep them there? This is exactly what a web app does. A web app relies on the browser and its capabilities to render the application, whereas a native mobile app relies on the device and its capabilities to render the application.

如果我们所有的应用程序都非常依赖互联网,那么为什么不将它们保持在互联网上呢? 这正是Web应用程序所做的。 Web应用程序依赖于浏览器及其功能来呈现应用程序,而本机移动应用程序依赖于设备及其功能来呈现应用程序。

Web apps cause plenty of native mobile application headaches to disappear. If you’re a developer, you only need HTML, CSS, and Javascript to start building your application! In some cases, your application can be completely static, meaning you don’t need to rely on any server side processing.

Web应用程序导致许多本机移动应用程序头痛消失。 如果您是开发人员,则只需要HTML,CSS和Javascript即可开始构建应用程序! 在某些情况下, 您的应用程序可以是完全静态的 ,这意味着您不需要依赖任何服务器端处理。

Although marketplaces for web apps do exist, the user doesn’t need to go to one to download your application. Web apps live in the browser, which means your users can navigate to a URL to use your application, and installation is as simple as bookmarking a website. Developers can also avoid the need to make several different versions depending on their users’ operating systems.

尽管确实存在用于Web应用程序的市场 ,但用户无需转到其中就可以下载您的应用程序。 Web应用程序驻留在浏览器中,这意味着您的用户可以导航到URL来使用您的应用程序,并且安装就像将网站添加为书签一样简单。 开发人员还可以避免根据用户的操作系统制作多个不同版本的需求。

Web apps are great for users, especially because they make distribution and installation so easy. They also eliminate size constraints, which means no more having to uninstall an application in order to make room for more! Updating a web application for a user is a seamless process, requiring nothing more than a browser refresh.

Web应用程序非常适合用户使用,特别是因为它们使分发和安装变得如此容易。 它们还消除了大小限制,这意味着不再需要卸载应用程序来腾出更多空间! 为用户更新Web应用程序是一个无缝过程,只需要刷新浏览器即可。

陷阱 (Gotchas)

Although web apps offer a potential solution to native mobile headaches, there are plenty of technology gaps that exist between browser and native rendering engines. Paul Kinlan writes an excellent article about this issue, in which he journals the results of his quest to live on nothing but web apps for a whole day.

尽管Web应用程序提供了解决本地移动难题的潜在解决方案,但浏览器和本地渲染引擎之间仍然存在大量技术差距。 保罗·金兰(Paul Kinlan)撰写了一篇有关此问题的出色文章 ,在其中记录了他寻求一整天只生活在网络应用程序上的结果。

Although explained in the above article, the issue of web apps and offline performance deserves its own mention. Offline-first architecture means structuring your content in such a way that when a user doesn’t have an internet connection, they don’t get a blank white screen from your web app. Instead, they can interact with the web app, and data will sync up to a server when a connection is available. Many web apps today are very bad at this, and as a result, the market for web apps is not as large as it could be. A list Apart has a great article explaining the concept in depth, and it’s well worth the read. Solutions for solving the offline problem are growing, one of the most exciting being PouchDB (here’s a guide to getting started).

尽管在上面的文章中进行了解释,但是Web应用程序和脱机性能的问题值得一提。 脱机优先架构意味着以这样的一种方式来构造您的内容,即当用户没有Internet连接时,他们不会从您的Web应用程序中获得白屏。 相反,他们可以与Web应用程序进行交互,并且当连接可用时,数据将同步到服务器。 如今,许多Web应用程序在这方面都非常糟糕,因此,Web应用程序的市场规模不尽如人意。 列表Apart有一篇很棒的文章深入解释了这个概念,值得一读。 解决离线问题的解决方案正在增长,其中最令人兴奋的就是PouchDB (这是入门指南 )。

Another large issue that the web platform has yet to fully solve, is the issue of caching and storing application resources on the client side. Appcache was created to solve this problem, (we’ve covered it before), but it had its issues, and so the community is looking to service workers for a final solution. But service workers are not yet ready either.

Web平台尚未完全解决的另一个大问题是在客户端缓存和存储应用程序资源的问题。 Appcache的创建是为了解决这个问题(我们之前已经讨论 ), 但是它存在问题 ,因此社区正在寻求为工人提供最终解决方案。 但是服务人员还没有做好准备

System notifications and background tasks are two other issues that web applications have yet to solve, although Google Chrome’s hosted web app solution seems to offer a fix for these problems.

系统通知和后台任务是Web应用程序尚未解决的另外两个问题,尽管Google Chrome托管的Web应用程序解决方案似乎可以解决这些问题。

入门 (Getting Started)

Even though there are areas in which web apps have yet to catch up, we shouldn’t be discouraged from building web applications today. Although technology limitations get in the way of making all web applications obsolete, we can currently start to replace native applications with the technology that we have right now. Here are some resources to help you get started.

即使在某些领域Web应用程序尚未赶上,我们也不应该阻止我们今天构建Web应用程序。 尽管技术限制阻碍了所有Web应用程序的淘汰,但是我们现在可以开始用我们现在拥有的技术替换本机应用程序。 这里有一些资源可以帮助您入门。

  • Hoodie is a framework for building web applications that features offline-first capabilities, making it great applications that need to work on mobile devices. Here’s how to get started with Hoodie.

    Hoodie是用于构建具有脱机优先功能的Web应用程序的框架,使其成为需要在移动设备上工作的出色应用程序。 这是Hoodie入门的方法

  • Intel XDK is an “HTML5 Cross-platform Development Tool” for building Web and Hybrid applications. Here’s a more detailed look at XDK.

    英特尔XDK是用于构建Web和混合应用程序的“ HTML5跨平台开发工具”。 这里是XDK的更详细介绍

  • Google Chrome and Firefox OS will allow you to create “Hosted Web Apps”, which can give your application extra features and capabilities, and even make your app installable on a users device.

    Google ChromeFirefox OS允许您创建“托管的Web应用程序”,它可以为您的应用程序提供额外的功能,甚至可以将其安装在用户设备上。

  • Offline.js is a library that will notify your users if they have lost their internet connection.

    Offline.js是一个库,它将在您的用户失去互联网连接时通知您。

  • Famo.us is a javascript framework for building UIs that perform like native on any screen.

    Famo.us是一个JavaScript框架,用于构建在任何屏幕上都像本机一样运行的UI。

  • Treo is a jQuery like solution to using indexedDB.

    Treo是类似于jQuery的使用indexedDB的解决方案。

结论 (Conclusion)

We’re not yet at the point where the web can fully replace all native applications, but we can build high-performing responsive web applications right now. With new web APIs and libraries getting released every day, the web app is starting to look more appealing over traditional native apps. Let’s start building things on the web that perform like native apps, taking into consideration issues such as screen real estate, offline capabilities, and file size.

Web尚不能完全替代所有本机应用程序,但现在我们可以构建高性能的响应式Web应用程序。 随着每天都有新的Web API和库发布,与传统的本机应用程序相比,Web应用程序开始显得更具吸引力。 让我们开始在网络上构建性能类似于本机应用程序的东西,同时考虑诸如屏幕空间,脱机功能和文件大小之类的问题。

If you’re looking for a new side project, pick an application currently installed on your phone, and try to build a web app prototype. As a bonus, be sure to watch this great talk by Christian Heilmann where he touches on the subject of the web versus native applications,and what developers can do to make the web a better place to visit.

如果您正在寻找新的辅助项目,请选择手机上当前安装的应用程序,然后尝试构建Web应用程序原型。 另外,一定要观看Christian Heilmann的精彩演讲 ,他谈到了Web与本地应用程序的主题,以及开发人员可以做些什么来使Web成为更好的访问场所。

What native-app-like capabilities would you like to see implemented in the web platform?

您希望在网络平台上实现什么样的类似于本机应用程序的功能?

翻译自: https://www.sitepoint.com/long-live-web-app/

web应用程序和web网站

近年来,以复用技术和组件、构件为特征的企业级应用软件、中间件,已成为当前国际软件产业市场的热门需求和发展趋势。   因此,国内许多专家和业内人士不断强调,以“中间带动两端”,大力发展以复用技术和组件、构件为特征的中间件尤其是应用开发平台,已成为中国软件产业整体发展的新机会和重要突破口。   随着国内中间件市场的需求量日益增加,以及国家、政府的高度重视和国内厂商纷纷加大技术投入,国内中间件市场尤其是应用开发平台发展迅速,而国内厂商在该方面的优势也日益凸显。 市场需求与政府促进推动本土应用开发平台市场发展   世界各国所有的IT项目都已证明,最大程度的复用已有成果,无疑是提高软件开发效率,缩短开发周期,降低开发成本,并改善软件质量的有效方式。   由于成熟的应用开发平台采用了先进的设计理念,并且提供了大量成熟、实用的组件,使得软件开发和部署的过程都大大简化,效率也有很大提高。比如,国内创恒信软件公司的eFlow应用开发平台就采用了配置化的设计理念,在J2EE技术架构上,通过高度封装,提供大量成熟、通用化的应用组件和可视化的开发环境,从而增强了软件的重用性能,减少软件开发的编码量,提高了软件开发和部署的效率,降低了信息化建设的成本。由于J2EE基于开放体系、跨平台跨操作系统,从开发工具到中间件,可选择性非常强。从长远的市场发展趋势来说,J2EE相对更有活力,而WEB应用开发也成为国际软件开发的一个趋势。   同时,由于很多企业尤其是大型企业分期、分批上马的各种应用系统之间的兼容性、关联度不高,从而造成很多IT项目实施后即处于搁置状态,或造成新的信息孤岛;此外,由于自主研发投入较高,而一些大型应用又较为复杂等原因,使得很多开发厂商、系统集成商和大型用户越来越倾向于直接采用成熟、稳定的应用开发平台来开发各种应用系统。   据专业研究与咨询机构计世资讯(CCW Research)2008年发布的一项研究结果显示,有2/3的系统集成商(SI)改变采购渠道,从厂商采购第三方业务基础软件平台。而近年来各种研究咨询机构的报告都表明,各类技术平台尤其是应用开发平台的需求量正日益增加。   另一方面,随着国家对基础软件越来越重视,从资金、政策、采购等方面都给予支持,国内中间件尤其是应用开发平台在近几年中也取得长足发展,担当起信息化建设的重任。   在我国“十一五”规划以及各项
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值