网络内容与融合
互联网上的内容主要为两种,一种是网页,另一种是应用。信息及其搜索是互联网时代的主旋律,服务及其遥控则是物联网时代的主旋律。在互联网上,人们通过搜索获得信息。在物联网上,人们通过遥控获得服务。
对于物联网来说,网络融合达成致简才是未来的终极趋势。触控2.0交互让我们重新思考真正的物联网系统应该是什么样子的。我们不要老跟着别人走,有时候跳出来,前面就会是一片蓝海。
互联网的精髓是信息无处不在、无时不在的自由流通。无论大小的不同设备上,运行同一套内核驱动的系统级服务和软件。对于物联网市场来说,融合才是未来的终极趋势。
将移动、桌面等各种操作系统融合为一体,能够支持不同屏幕尺寸的连接设备,包括电视机、汽车媒体系统、台式机电脑、家具物联和智能手机等产品,以便对电子设备进行统一操作。在互联互通的多设备时代,可谓是当务之急。操作系统将变成一个应用,它正好是发生启动的首个应用程序。
网络架构与设想
现在竞争的关键在于 UI,而不是引擎。引擎之间的功能差异很大,这意味着需要为同一个东西构建不同的版本。我不认为浏览器引擎之间的竞争会带来多大好处。我希望在输入并运行代码时能够看到相同的结果,而不管使用的是哪个引擎。看到不同的输出结果或者错误并不是一种好处,而是一种痛苦。
人们设想建设一个巨大的服务器终端,其终端用户却只是价值不超过500美金的“瘦客户机”,各种应用软件都放在服务器上,用户使用的终端只用一个浏览器入口即可,需要什么软件就通过网络到服务器上去取。
在未来,网络即计算机,一切应用软件可以在“云端”找到,此时,一套极简的终端系统即可实现用户的所有需要。依靠着“云计算”在背后的支持,可以慢慢模糊浏览器与操作系统之间的界限。
万物互联时代,各种设备都会将计算和数据放到云端,云端负责海量的计算和服务的整合。云端的负责的计算、存储越来越多,设备越来越轻,设备只负责数据收集、人机交互和物理功能。
浏览器与操作系统
在PC上,几乎任何操作都要打开浏览器完成。这一现象,在移动端并不存在。人们使用移动设备时,更多打开的是各个服务自有的客户端,即原生应用。移动浏览器在移动操作系统上的位置被大大的削弱。在移动操作系统上,没有全民级的浏览器,原生浏览器的市场占有率很高。
人们越来越厌恶胖乎乎的操作系统,越来越希望浏览器能够取代操作系统。
在浏览器上,工作、视频、游戏、防毒、程序一应俱全,甚至取代操作系统也指日可待。下一代浏览器集成了文档处理、视频、3D游戏、音乐、照片分享、即时通讯、语音视频会议、多媒体编辑等多项功能。
用户将通过浏览器完成所有以前需要在PC操作系统中完成的工作,包括文档编辑、网页浏览、听音乐、看视频乃至于玩游戏,数据既可以存储在网络所提供的“云计算”服务之中,也可以存储在本地。
网页浏览器上资源丰富,人们可以用网页浏览器干各种事情。将来,通过网页浏览器可以实现操作系统的大部分功能,甚至是主要功能,而对网页浏览器实现不了的那一小部分功能,再用极简操作系统加以实现。
在用户需求不高、功能相对简单的应用场景,网页浏览器完全可以取代操作系统,从而跃升为人机交互的最直接平台。浏览器式操作系统恐怕会成为物联网智能设备的主流。
在可预期的将来,有必要安装在操作系统之上的软件无外乎是两大类:一类是包括浏览器、安全软件等的通用类基础软件,另一类则是要求比较高的游戏,其他的程序都将逐步往浏览器搬迁。
触控2.0交互方式的普及应用,会让网页浏览器及其程序更快捷、更好用、更实用,实现浏览器性能革命性提升,使H5内容可以媲美原生应用的体验。
基于浏览器开发的应用,其运行效率和展现效果,将很快追上基于操作系统的原生应用。网页应用与原生应用的差距有希望减小到不被用户察觉的级别。
基于操作系统的原生应用的优势会越来越不明显,在产品丰富度、用户体验和跨领域内容共享方面将受到巨大冲击。未来重要的不再是占据用户的桌面,而是占据用户的浏览器。
HTML5的出现,将弥补原生应用的缺陷,让智能设备的应用回到浏览器的平台之上。
HTML5更激动人心的特性是其提供的Web数据存储和离线数据存储功能,更多的接口能让浏览器具有更强的处理本地数据的能力。大多数需要插件和扩展来完成的功能,原生的HTML5语言已经能够全部提供。这就使得浏览器可以部分代替操作系统。
浏览器无法完全取代操作系统,因为操作系统不仅是资源管理器。操作系统里运行的各种软件之下,是复杂的文件管理、内存管理、进程调度的代码,这些才是操作系统里最核心的东西。
chrome 浏览器
整个浏览器市场初步形成了由IE、Firefox和Chrome“三分天下”的局面。
Chrome 是最好的浏览器。它的更新速度快、网页打开速度快速度快,具有非常好的用户界面,扩展支持非常好,开发者工具也很出色。其市场份额不断快速上升,掌控了70%左右的市场份额,几乎处于垄断状态。火狐虽名列第二,但市场份额仅有10%。
2016年5月,Chrome的市场份额首次超越IE浏览器,成为全球目前使用人数最多的浏览器,正式终结了IE在浏览器市场上的长期霸主地位。
在中国,360、搜狗和QQ浏览器等国产浏览器,使用的是IE或Chrome的浏览器内核,能实现两个内核之间的切换,提供了更快速的上网速度。
谷歌的Chrome继续凭借跨桌面、平板和智能手机等多终端的统一体验,吸引着更多的用户。未来整个Chrome将运行三大类应用:WEB App、Native App和浏览器插件。Google试图用其Chrome浏览器配以下一代超文本置标语言HTML5来控制全球每一个互联网用户。
chromebook
近期,谷歌推出了一款上网本产品:Chromebook。这款上网本的开机时间仅需5秒钟,进入系统之后,用户所直观接触的界面是谷歌的Chrome浏览器。
用户将通过浏览器完成所有以前需要在PC操作系统中完成的工作,包括文档编辑、网页浏览、听音乐、看视频乃至于玩游戏,数据可以存储在谷歌所提供的“云计算”服务中,也可以存储在本地。
使用Chromebook时,已经不需要再去关心操作系统功能设置,所有的工作几乎都在浏览器中完成,这一切要归功于HTML5。
跨平台应用
触控2.0交互实现用户界面、操作方式、操作系统三大统一,打造统一的用户界面、统一的操作方式、统一的操作系统,实现了一步到位的大统一,对电子设备进行统一操作。
用一个操作系统取代若干个操作系统,或者说将众多操作系统合为一体,使其适用所有种类的设备、所有尺寸的屏幕。这是一个美好的未来,这是一条自由之路,在互联互通的多设备时代,这是当务之急。
对于移动应用开发商而言,存在一个普遍的需求:开发一次,到处可用,即一套代码,多平台使用。无论大小的不同设备上,运行同一套内核驱动的系统级服务和软件。
只开发一套基于 Web的应用,就可以同时部署在应用商店、社交平台、浏览器,可以被搜索访问,甚至还可以被其他应用直接调用。开发者在任何一个设备上开发的任何应用,都能流畅地运行在所有平台上,不必考虑不同系统的兼容问题和不同设备的适配问题。
随着移动计算设备种类的增加,开发者需要针对各种不同的操作系统和机型进行适配开发,而这浪费了大量的资本与开发者精力。据了解,开发并维护不同操作系统和不同机型上的应用,占据的资金与精力投入,与开发一款新应用几乎相同。
多套代码、不同技术工种、业务逻辑同步,这是折磨人的过程。在多屏年代,开发者的痛苦指数非常高,人人都期盼HTML5能扮演救星。
在移动互联网时代,app开发技术无疑是行业发展的重要驱动力,企业对于产品快速落地与灵活迭代的迫切需求,则使跨平台开发技术广泛应用。
HTML5允许程序通过浏览器运行,浏览器成为通用的计算平台。以后,我们开机几秒之后,就直接进入了浏览器,一切操作都在上面完成,用户无需离开浏览器就能完成一切任务。
浏览器总是与H5应用相提并论,因为它主要负责解析基于H5技术的web应用,而不是原生 App。实现了H5 app 低成本快速开发、多平台运行。
开发者将不必关心开发的程序,针对的是什么样的系统、什么样的设备,只需要针对HTML5进行开发。各种设备上搭载的浏览器,则将几乎无差别地运行这些HTML5程序。web app属于HTML5程序,所以Web App天然可以跨平台。
HTML5 是唯一一个通吃 PC、Mac、iPhone、iPad、Android、Windows Phone 等主流平台的跨平台语言。
HTML5的通用性,打通了应用在不同操作系统和不同设备之间的障碍,形成了巨大的跨平台优势。由于HTML5的通用性,只要浏览器支持HTML5,就意味着使用HTML5开发的应用,可以在所有的操作系统和所有的设备机型中运行。
跨平台技术在早期大多因为性能问题夭折,但中后期硬件能力增强后又会占据主流,因为跨平台确实是刚需。
HTML5规范
网页编写者通过HTML所设立的规范,将内容以及内容的格式写入HTML文件,形成网页内容。浏览器通过读取这些内容和格式的信息,根据统一的规范,以更加可视化和优化的界面,展现在用户面前。
触控2.0交互弥补了H5技术自身渲染性能较弱的缺点,例如,对复杂的图形样式、多样的动效、自定义字体等的支持性不强。触控2.0交互限制了每个网页显示内容,即每页只需要显示少量数据,用户可通过翻页寻找期望的数据。
基于MVVM的H5APP,相对来说,它们获取数据和更新数据的方式更敏捷、更科学。H5 APP是很难承担大规模数据的页面,在它们之中频繁切换更是难上加难如果页面加载进来之后,数据更新的速度太慢,也会让页面模板等待很长时间。
随着HTML5的推出与普及,浏览器的功能会更加强大,以至于强大到可能取代操作系统的地步。HTML5 将真正开始颠覆原生App 世界。大多数需要插件和扩展来完成的功能,HTML5语言已经能够全部提供,包括Flash、Silverlight和JavaFX等软件所能实现的功能。
随着HTML5提供更强的文字处理能力和存储能力,一般用户将完全可以通过在线文档满足办公需要。基于浏览器的在线文档产品将在很大程度上冲击Office软件的市场占有率。HTML5中的一个名为 PostMessage的功能,当用户切换到其他网页上,聊天网页仍然可以接受和更新信息。
依目前,Firefox、Chrome、Opera、Safari和IE等主流浏览器都已经开始支持HTML5。使用这些浏览器,即便是不安装任何其他的辅助软件,如Flash Player,仍然能够直接通过网页观看互联网视频。
国内的一些视频网站,如优酷,已开始支持HTML5,用户使用智能手机可以直接通过网页观看视频内容。
HTML5提供了基于Javascript的2D绘图功能和基于WebGL的3D绘图功能,这意味着HTML5增强了图像功能,可以实现良好的网页游戏功能,无需任何插件或者扩展的帮助。大部分游戏能够在浏览器中直接运行,无需借助于操作系统,无需在操作系统中安装客户端。
HTML5应用的入口多、流量大,导流效率高,超级App(如微信朋友圈)、搜索引擎、应用市场、浏览器,到处都是HTML5的流量入口。而原生App的流量入口只有应用市场。
标准的 HTML5 引擎并不能解决 HTML5 的所有问题,拥有大流量入口的互联网巨头,莫不在思考内嵌更优秀的增强引擎。腾讯推出了 X5 浏览器引擎,就是看中这个机会。
可以做出性能、设计、效果和流畅程度与原生App 的软件和服务媲美的web app。HTML5将变得很强大,强大到将Web的内容渗透到操作系统上面。相信在不远的将来,应用开发商都会拥抱web App。
网页应用取代原生应用
Web App 不仅可以取代 Native App,而且可以取代程序员。Web App 已经能够解决人们 80% 的需求,增强型 Web App,比如微信小程序,则能够解决剩下那20%里的80%。
基于浏览器的应用,能够实现自动更新,不需用户自己进行升级,做到了随时更改,随时可见。用户访问服务器的时候,自然得到是最新版本的HTML JS代码,服务器只要一次部署就可以确保所有的用户都使用最新版本的App。相比原生应用冗长的审核和上传过程,网页应用发布和测试新功能的效率大幅提高。
web app由“HTML5云网站+APP应用客户端”两部份构成。基于 Web 访问业务,可以方便地跨应用访问和调用数据,这一点原生应用目前还很难做到。
web app无需用户安装,在应用进行版本迭代时也不用用户下载,这是开发成本最低的方式。每次打开web app时,去云端取数据呈现给用户。
从移动设备上的浏览器访问,不需要安装额外的软件,软件更新只需要服务器就够了。任何时候都可以发布App,因为根本不需要官方卖场的审核。官方会发布很多开发工具或者人工支持来帮助你的开发Web App,所有的用户都是用同样的版本。
尽管HTML开发简单且容易跨平台,但源码易被复制,开发者利益难以得到有效保障。由于网络限制,网页应用的使用体验缺乏稳定性,消息推送不如原生应用及时。
由于Html5语言的技术特性,网页应用无法调用系统级别的权限。例如,系统级别的弹窗,系统级别的通知,地理信息,通讯录,语音等等。且与系统的兼容性也会存在一些问题。以上限制通常导致网页APP的拓展性不强,体验相对较差。
原生APP偏向于交互,注重用户体验;Web App偏向与浏览器简单的交互,用于信息展示。现在流行的方法是将原生APP与Web App进行融合。核心功能、需要访问的功能、需要调用底层系统服务的功能、需要后台运行的功能使用原生APP,内容展示等辅助简单功能使用Web App。这样便于更新、保证核心功能的交互体验。
利用HTML与CSS的组合,可以很快地开发出在iOS和Android系统下风格统一的UI界面,而native App的UI开发比较费时,并且很难在两个平台下开发出风格统一的UI。
网页应用无需安装,节省移动终端的内存空间。所有用户同一个版本,版本更新速度方便,直接服务器更新数据即可,即时上线。
原生应用与信息孤岛
目前的APP,因为自身进行封装的原因,形成了信息的孤岛,应用之间的接口无法连通,导致APP不能像浏览器应用一样,相互之间共享信息。
目前的原生应用市场,用户需要这样操作:选一个应用、等待下载、确认权限、等待安装,然后点击打开。每次获取最新的APP功能,需要升级APP应用。这样糟糕的体验迟早要被颠覆。
无论是首次安装,还是更新安装,用户都需要通过应用商店对原生应用进行下载。即使是想要完成一个特别简单的功能,仍旧需要从应用商店下载。对于普通用户来说,每部手机上平均安装的应用数量达到数十个。随着应用安装数量的增加,这一过程将变得不胜其烦。
原生型APP应用的安装包相对较大,包含UI元素、数据内容、逻辑框架。手机用户无法上网,也可访问APP应用中以前下载的数据。需要使用各自的软件开发包、开发工具以及各自的控件。
针对不同的操作系统,原生应用都需要独立的开发项目、开发不同的版本。针对不同的平台,原生应用都需要独立的开发语言和开发框架。
原生 App 的推广成本实在是太高了:知道了不一定下载,下载了不一定使用,使用了不一定继续使用,继续使用的也不一定会购买你的增值服务。
由于版本更新十分麻烦,新旧版本均需维护,项目维护成本高,项目维护难度大,项目无法及时迭代,导致原生app脱离用户需求,给项目带来了相当大的风险。
一旦发现过去发布的App存在bug或者设计上的缺陷,就需要发布新的版本来修正,但是并不会保证所有用户都升级到新版本。用户可以自由地选择是否更新软件版本,所以会出现不同用户同时使用不同版本的情况。
为了支持过去版本的客户端,增加了很多针对不同版本不同的处理逻辑,服务器端的实现变得越来越复杂,这样会提高潜在bug发生的概率。
客户端一旦发现bug,解决bug简直就是噩梦,有时候服务器为了迁就已经发布出去的客户端上的bug,不得不加入一些不符合正常业务逻辑的特殊处理,而这些处理极有可能在未来的某一时刻制造出无法预料的另一个bug。
原生应用更新新功能,涉及到每次要向各个应用商店进行提交审核。
乔布斯之所以选择原生应用,首先是当时硬件性能上的限制,其次是旧有的HTML语言以及诸多的插件,使得浏览器运行程序的效率不高。而原生应用则提供了更高的效率和更好的展现效果。
虽然原生应用数以百万计,但用户常用的业务类型只有10种左右,除游戏外,用户只需要针对每种业务类型选择安装 1~2 种垂直领域的“超级 App”,就可以满足日常绝大部分互联网需求。
类似京东、淘宝、亚马逊等大型电商,知乎和各种阅读类应用,各种工具类软件,都在各自的领域内属于高频应用,依然需要独立的原生 App。
原生APP可以调用手机终端的硬件设备,如语音、摄像头、短信、GPS、蓝牙、重力感应等。原生应用最大的优势就是对硬件资源的利用更加淋漓尽致,基于系统级别的 API、Native App ,可以做出性能、设计、效果和流畅程度远远超过 Web App 的软件和服务。
日均 DAU 5000 万以上的超级 app,增长已趋近停滞,9 月最后一周,用户规模增幅最大的超级 app 是支付宝,增幅仅 1.3%。另一家叫 TrustData 的数据统计公司的报告显示,9 月,短视频领域的头部 app,抖音、快手、西瓜视频、火山小视频的月活跃用户全部呈现负增长。
用户增长停滞,互联网巨头的竞争就变成了零和博弈。抖音、快手的崛起影响到了微信用户的使用时长;反过来,微信用户活跃度的提升,也会让头条系产品在用户总使用时长中的比例下降。
网页浏览器
android在底层基础上有个虚拟机,这个虚拟机,就可以把它理解成一个网页浏览器,然后在它的基础上跑各种应用。
基于网页浏览器的手机,还可以增加一些扩展功能,比如离线浏览,可以打开本地图片、文字、视频等本地资源等。
页面响应速度(页面访问速度 页面加载速度)
页面响应速度才真正决定了用户对一款应用的印象。这就是所谓天下武功,唯快不败。web App的页面响应速度永远不会快于native App。
原生应用采用的是“云服务器数据+应用客户端”架构,所有的UI元素、数据内容、逻辑框架均安装在移动终端上。访问时,只需要加载数据,应用页面框架无需下载,所以加载速度快,页面响应速度快。
web app每打开一个页面,都需要重新加载页面的所有元素,访问速度受移动终端性能和网络环境的限制,导致加载速度慢,操作频繁时容易卡死。高品质的手机游戏,如果完全基于传统 Web App 即时下载的运行模式,根本无法启动运行。
不管是 App、游戏还是音视频,未来都将即点即用。谁先满足用户这个需求,谁就制胜。
页面布局渲染控件
数据获取都是在资源页面上异步完成的,因为只有这样才能让这些资源页面完成预加载或者渲染。异步拿到的数据在填入页面中时可能会涉及DOM操作。
众所周知,DOM操作非常消耗性能,如果页面小还好,页面稍大数据稍微复杂一点,频繁的DOM操作会导致明显的闪白。DOM 体系的解析、布局和渲染,未来也可能基于 JS + webGL 直接实现。
未来的渲染框架引擎,可以直接基于JS+webGL 完成,而不需要依赖 Native 的渲染框架,这将帮助大量具备 HTML5 商用开发经验的团队灵活地实现和提供更有针对性的开发框架。
JS是非常灵活的高级语言,其开发灵活的代价就是运行效率明显低于 Native 程序,因为JS 在设计之初根本没有料想到将来会在手机这样的微型设备上运行。
H5 APP是很难承担大规模数据的页面,在它们之中频繁切换更是难上加难。最重要的一点是,如果页面加载进来之后数据更新的速度太慢,也会让页面模板等待很长时间。如果获取服务端数据处理的方式不合适,卡顿白屏的现象会更严重。
大量的css页面会导致渲染卡顿,滑入时可能会有白屏/机器卡顿的现象。大面积或过场使用css3动画,会让app低端手机体验非常差。复杂多变的CSS样式消耗了性能,但是它带来了排版的多样性,能够细致到每一个字宽行高和风格的像素级处理。
为了解决这些性能问题又必须要用到预加载或模拟动画,甚至是批量的预加载、批量的截图模拟动画。最好的选择一般是通过框架调用底层的动画,但不管怎么样等于在原来的代码上包上了一层,性能还是不可避免的受到影响。
webGL 的开放价值远不止于提供 3D 渲染,而是在于直接向 Web 应用开放硬件渲染能力。
移动 Web UI 控件的形态,应当与 Native App 的控件形态看齐,而不是与 PC 浏览器的 Web 形态保持规范上的一致。移动 Web 技术平台,应当更多地考虑如何基于 Web 技术实现 Native App 的内容体现和运行效果。