《互联网产品设计》一1.4 本地应用程序作为网络产品

简介:

本节书摘来自异步社区《互联网产品设计》一书中的第1章,第1.4节,作者【美】Randy J. Hunt,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.4 本地应用程序作为网络产品

互联网产品设计
“能在iOS和Android上运行的程序是什么?”这是一个很好的问题。在你的设备上直接运行,而不是在网络浏览器中运行的应用程序通常被称为“本地应用程序”。例如,iPhone版本的Twitter就是基于iOS系统编程的,可以用于iPhone和iPad。因此,iPhone版的Twitter是iOS平台的“本地应用程序”。

多年来我们都在自己的桌面上使用本地应用程序。“桌面应用程序太旧了吧”,你说什么?再想想。流行的网络产品,如Evernote一类的应用程序可以运行在你能想到的每一个平台上,包括Mac OS X和Windows。因为Evernote在任何地方都可用,你可以非常便捷和频繁地使用它。这也是能让产品保持可用和活跃的原因之一。

使用应用程序几年后,我开始相信我们应该像思考网络产品那样去思考应用程序。当然,它们有着固有的差异(其中有些让应用程序感觉更像盒装软件),但它们也有相似之处。让我们看看它们的差异和相似之处,并考虑如何通过网络产品的透镜去查看应用程序,以帮助做出更好的产品和程序。

1.4.1 是什么让应用程序和基于浏览器的网络产品不一样

网络产品从来没有“被安装”的概念, 相反,它们只是“存在”在一个特定的URL中。因此,它们在每个浏览器内都是随处可见的(假设合理地尝试解决了任何跨浏览器编程的怪异问题)。

因为产品代码存在于一个地方而不是安装在每个个人用户的设备上,所以一个基于浏览器的产品可以对世界上每一个用户立即改变或升级,这简直难以置信。网络产品分发给每个用户的单点形式,让用户仅需在网上访问该产品就能体验到最新最好的功能。

在大多数情况下,网络产品需要实现一个独立的代码,应用程序开发需要复杂的编程语言,当然还有UI(用户界面)设计以及其他的细节问题。此外,创建一个基于本地操作系统的应用程序通常需要为应用程序的每一个操作系统重新编程——Android、iOS、Mac OS X、Windows、Linux等。即使你正在开发一款多个平台都可使用的“克隆”产品,也难以避免大量的独特设计和工程工作。

如果这一切听起来像是不支持开发本地应用程序的理由,那么你将会在认为网络应用程序是唯一出路的设计派别中找到理想的合作伙伴。那么,为什么你还会开发一款本地应用?

本地应用作为首选的主要原因之一可能是,本地应用能更深地进入移动和本地的硬件设备(如内存芯片连接的设备、摄像头、麦克风、GPS数据等资源)。

虽然这个断言通常是有争议的,但一般情况下,本地应用程序的执行速度更快,也更能响应用户输入。换句话说,它们经常让用户“感觉”更好。此外,本地应用程序可以更容易创建,所以它们不需要数据/网络连接工作。这方面对居住在地下排满各种参差不齐数据线地区或通过限制流量控制成本的用户来说更加重要。

最后,在某些情况下,由于上述原因,比起网络应用程序你的用户可能更喜欢本地应用程序,那些让人难以理解的原因根植于目标用户的观念中。他们可能更乐于购买软件并享受占有感,在这种情况下,本地应用程序可能非常合适。

1.4.2 为什么会认为本地应用程序是网络产品呢

尽管创建和发布网络应用不同于本地应用程序——它们不具有相同功能,但你的客户可能会同时使用它们。应用的类型是次要的,最终还是要基于整个产品的体验。如果你的产品服务很好,他们会很满意。如果他们预期的体验是许多类型产品的延伸,那么你将接受的挑战是达到或超过他们的
预期。

将互联网产品和本地应用产品在你的思绪中隔离开来,会危及一个深思熟虑的产品体验。这个结果很可能会对品牌和形象的持续构建带来负面影响。

在许多情况下,同一拨开发者会既做网络产品又做本地应用产品。发布、分发和安装对本地应用程序的开发要求非常严格,这或多或少降低了工作的流畅性。你可以接受这个过程,但我更喜欢重新定义本地应用程序,尽可能多地把它们当成网络产品。这种重新定义可以帮助你思考,使你的应用程序更容易改变和快速发展,并以自然的节奏进行迭代,与建立一个网络产品的步调保持一致。在本书后面我们将讲述所有这些想法的更多细节。

虽然应用程序可能有一些独特的约束、挑战和机遇,但让我们把它们看成是与网络产品无异的产品吧。在本书的其他部分将涉及它们。

相关文章
|
25天前
|
机器学习/深度学习 自然语言处理 数据处理
大模型开发:描述长短期记忆网络(LSTM)和它们在序列数据上的应用。
LSTM,一种RNN变体,设计用于解决RNN处理长期依赖的难题。其核心在于门控机制(输入、遗忘、输出门)和长期记忆单元(细胞状态),能有效捕捉序列数据的长期依赖,广泛应用于语言模型、机器翻译等领域。然而,LSTM也存在计算复杂度高、解释性差和数据依赖性强等问题,需要通过优化和增强策略来改进。
|
29天前
|
数据库 Android开发 开发者
构建高效Android应用:采用Kotlin协程优化网络请求处理
【2月更文挑战第30天】 在移动应用开发领域,网络请求的处理是影响用户体验的关键环节。针对Android平台,利用Kotlin协程能够极大提升异步任务处理的效率和简洁性。本文将探讨如何通过Kotlin协程优化Android应用中的网络请求处理流程,包括协程的基本概念、网络请求的异步执行以及错误处理等方面,旨在帮助开发者构建更加流畅和响应迅速的Android应用。
|
1天前
|
存储 监控 安全
网络安全与信息安全:防范漏洞、应用加密、提升意识
【4月更文挑战第18天】 在数字化时代,网络安全与信息安全保障已成为维护国家安全、企业利益和个人隐私的关键。本文深入探讨网络安全的多面性,包括识别和防御网络漏洞、应用加密技术保护数据以及提升全民网络安全意识的重要性。通过对这些关键领域的分析,文章旨在为读者提供实用的策略和建议,以增强其网络环境的安全防护能力。
4 0
|
2天前
|
数据采集 机器学习/深度学习 数据挖掘
网络数据处理中的NumPy应用实战
【4月更文挑战第17天】本文介绍了NumPy在网络数据处理中的应用,包括数据预处理、流量分析和模式识别。通过使用NumPy进行数据清洗、格式化和聚合,以及处理时间序列数据和计算统计指标,可以有效进行流量分析和异常检测。此外,NumPy还支持相关性分析、周期性检测和聚类分析,助力模式识别。作为强大的科学计算库,NumPy在处理日益增长的网络数据中发挥着不可或缺的作用。
|
10天前
|
传感器 监控 安全
|
10天前
|
安全 SDN 数据中心
|
10天前
|
安全 网络安全 网络虚拟化
虚拟网络设备与网络安全:深入分析与实践应用
在数字化时代📲,网络安全🔒成为了企业和个人防御体系中不可或缺的一部分。随着网络攻击的日益复杂和频繁🔥,传统的物理网络安全措施已经无法满足快速发展的需求。虚拟网络设备🖧,作为网络架构中的重要组成部分,通过提供灵活的配置和强大的隔离能力🛡️,为网络安全提供了新的保障。本文将从多个维度深入分析虚拟网络设备是如何保障网络安全的,以及它们的实际意义和应用场景。
|
25天前
|
机器学习/深度学习 PyTorch 算法框架/工具
卷积神经元网络中常用卷积核理解及基于Pytorch的实例应用(附完整代码)
卷积神经元网络中常用卷积核理解及基于Pytorch的实例应用(附完整代码)
20 0
|
25天前
|
存储 安全 网络安全
网络安全与信息安全:防范漏洞、应用加密技术与提升安全意识
在数字化时代,网络安全与信息安全已成为维护网络空间稳定的重要基石。本文将深入探讨网络安全中的关键问题——漏洞挖掘与利用,分析加密技术在信息保护中的核心作用,并强调提升个人与企业的安全意识的重要性。文章将提供对当前网络威胁的全面剖析,介绍前沿的防御策略,并分享如何构建一个多层次、全方位的安全防线。
|
29天前
|
机器学习/深度学习 安全 网络安全
网络安全与信息安全:防范漏洞、应用加密技术与提升安全意识
【2月更文挑战第30天】 在数字化时代,随着网络技术的迅猛发展,网络安全和信息安全问题日益突出。本文将深入探讨网络安全漏洞的成因与危害、加密技术的应用以及如何提升个人和企业的安全意识。通过分析不同类型的网络攻击手段,我们旨在提供一系列的防护策略,以增强信息系统的抵抗力。同时,文章还将介绍最新的加密技术动态,并讨论如何培养良好的网络安全习惯,为读者打造一道坚实的信息安全防线。

热门文章

最新文章