蘇煜輝 楊明戊 陳正銘 戴經國



摘要:隨著我國移動互聯網的發展,應用市場已經面臨著大批流量向熱門應用傾斜的嚴峻問題,其他普通應用推廣受阻。2016年發布的基于微信生態圈下的微信小程序更是給了應用廠商巨大的沖擊,2018年由9家廠商聯合打造的快應用更加推進了無須下載安裝,即點即用特點的新一代應用的發展。通過研究微信小程序及快應用的源程序的框架、文檔結構、常用組件、API等分析其技術特點異同,并以餓了么應用為例分析其標示、功能、應用場景的異同,最后以一款自主設計的詩歌App主界面為例,通過微信小程序和快應用的具體設計實現來分析其設計異同,使得開發人員減少開發成本,提升開發效率。
關鍵詞:微信小程序;快應用;前端;模式;框架
中圖分類號:TP311? ? ? 文獻標識碼:A? ? ? 文章編號:1009-3044(2018)31-0085-05
Analysis of Similarities and Differences between Quick App and WeChat Mini Program Technology
SU Yu-hui, YANG Ming-wu, CHEN Zheng-ming, DAI Jing-guo
(School of Information Science and Engineering, Shaoguan University, Shaoguan 521000, China)
Abstract: With the development of China's mobile Internet, the application market has been faced with a large number of traffic to popular applications tilt the serious problem, and other common application promotion is blocked.The WeChat Mini Program released in 2016 based on the ecosystem of WeChat gives the application manufacturers a huge impact. In 2018, the fast app jointly built by 9 manufacturers promotes the development of a new generation of apps without download and installation, namely point-to-use features, which can promote the healthy development of the application market. By studying the framework, document structure, common components and API of WeChat Mini Program and Quick App, this paper analyzes the differences and similarities in its technical features. And use eleme app as an example to analyze the similarities and differences of its labeling, functions and application scenarios were analyzed.Finally, taking the main interface of a poetry application independently designed as an example, the design differences and similarities are analyzed through the specific design implementation of WeChat Mini Program and Quick App,which makes the developers reduce the development cost and improve the development efficiency.
Key words: WeChat Mini Programs; Quick App; front end; mode; framework
隨著國內移動應用的發展,手機應用難以滿足消費者對于便捷的需求,并且傳統手機應用還面臨著占用內存大、啟動速度慢、運行卡頓等諸多問題。而微信小程序的問世又給了應用市場當前一棒,逐漸讓消費者養成一種思維習慣:一碰到未安裝的應用時,第一反應是看看這款軟件有沒有微信小程序,而不再是去應用市場下載該款軟件,這將使應用市場的發展受阻。2018年快應用的成功問世卻給了手機應用廠商另一個發展空間,更何況有競爭才有發展。本文將從宏觀理論上分析兩者的異同,并結合具體實例來進行科學分析,最終達到減少開發成本的目的。
1 微信小程序與快應用簡介
1.1 微信小程序
微信小程序是一種基于微信生態圈下的輕應用[1],在2016年9月進入內測,正式進入人們的視野,它具有無須安裝、隨時使用,用完就走的特點,讓用戶“觸手可及”地使用應用[2]。所以,微信小程序是一種內置在微信APP內的輕應用,可以直接在微信內打開使用,功能實現也與原生應用相近。
1.2 快應用
快應用是一種基于手機系統本身的輕應用,其標準于2018年由九大手機廠商在北京聯合發布,快應用框架是深入結合于手機操作系統當中,可以實現用戶需求同應用服務間的極速銜接,同時提升了用戶的使用感受和應用服務的質量,而且快應用也同樣具有無須下載、隨時使用、用完就走的特點,也支持桌面生成快捷方式。[3]同時快應用區別于微信小程序很大的一點是快應用無須基于任何軟件基礎,不像微信小程序一樣要依賴微信生態圈來運行;而且快應用還可與手機搜索功能、語音功能使深度結合交互,進一步提高用戶的交互性以及使用的便捷性。
2 微信小程序與快應用的技術特點異同
2.1 微信小程序的技術特點
2.1.1 微信小程序的文檔組成與結構
微信小程序主要由整體與局部相結合,包括總體描述的app和局部各分頁面描述的page。其主體部分由app.js、app.wxss、app.json三個文件所構成,其中app.js作為小程序的入口文件,用于存放交互邏輯控制文件,如控制用戶點擊效果,獲取地理位置等交互邏輯功能;app.wxss控制小程序的樣式顯示效果,與前端的CSS極為相似,包含了層疊樣式表的大部分屬性,但同時又有其他新的樣式元素加入;app.json作為小程序的全局配置,用于配置小程序的頁面路徑、頁面的顯示顏色效果、頂部和底部的顯示效果等。[4]每個app頁面下都會由若干page文件構成,用于局部調整。文檔結構圖如圖1所示。
2.1.2 微信小程序的組件
微信小程序為開發者提供了一種重要的功能—組件,大量的組件相結合搭配有利于縮短開發者開發小程序的時間和難度,為開發者提供了極大的便利。組件的使用極為方便,例如小程序中需要顯示地圖,寫上<map></map>,與前端的標簽類似,由一個開始標簽和結束標簽組成,然后在組件內也可使用css來控制顯示樣式。
基礎組件分為以下七大類,分別是:視圖容器(View Container),基礎內容(Basic Content),表單(Form),導航(Navigation),多媒體(Media),地圖(Map),畫布(Canvas)。[5]
2.1.3 微信小程序的API
由于微信小程序的運行是基于微信生態圈,因此提供了許多帶有微信色彩、甚至直接是微信本身的API供開發者調用,使得開發者開發起來更加得心應手。微信小程序的API不僅可以直接獲取用戶個人微信信息,還可以輕易獲取手機設備的各類系統信息、內存、聯系人、藍牙、NFC、WIFI、定位等信息。而且微信小程序的開放接口還提供了微信登陸、微信授權、微信支付、微信運動等。
2.2 快應用技術特點
2.2.1 快應用的文檔組成與結構
快應用的文檔結構主要由manifest.json文件、app.ux文件、ux文件三個部分構成;其中manifest.json文件是對項目的整體信息進行配置; app.ux文件則是用于配置項目的公共腳本資源;ux文件則是對每個頁面或者組件的具體化描述,文檔結構圖如圖2所示。
2.2.2 快應用的組件
快應用為開發者提供兩大便捷的開發工具——list組件和tabs組件。
list組件主要用來對列表進行優化、從而達到對快應用的使用性能進行優化、用戶需求可以快速響應。list組件的性能優化分為精簡DOM層級、復用list-item、細粒度劃分list-item、關閉scrollpage四個方面。
tabs組件主要用于對選項卡、頁面標簽等的布局上,讓開發者可以對組件進行靈活搭配,進一步達到對快應用的使用性能、操作體驗進行優化的目的,tabs中封裝了常見功能和效果:頁簽支持橫向滾動,支持手勢滑動切換內容頁等。
在對快應用組件的使用上,開發者還可以自定義各種小的組件來渲染其他頁面標簽內容,從而達到對代碼的合理使用,提高代碼的可讀性,從而便于開發者本身后期的維護以及其他開發者對該工程的修改。
2.3 微信小程序與快應用的異同分析
2.3.1 框架異同分析
微信小程序和快應用都是采用公共樣式、設置統一放在一種文件里面,而其他特殊的樣式再放到另一個文件當中。兩者都是把公共樣式、配置分別存放于不同的文件當中;文件各自選擇的編輯語言不同,微信以js、json為主,快應用以json、ux為主。
2.3.2 組件異同分析
微信小程序選擇使用的組件帶有微信風格,而快應用則是以list、tabs組件為核心,共同點均是為了使開發者開發的方便快捷、使用組件也能夠減少一定的開發時間,可以進一步優化開發的代碼、邏輯,提升代碼的可維護性。
3 微信小程序與快應用的標示、功能、應用場景的異同
從應用的桌面圖標看(如圖3所示),微信小程序圖標與原生APP的圖標幾乎沒區別,而快應用則在圖標上多出一個<E:\知網文件\電腦\電腦31 32\31\3xs201831\Image\image5_3.png>小標記。在使用過程中,三種應用都必須得到獲取當前所處位置的權限;微信小程序可以直接使用微信賬號授權登陸,而原生應用與快應用,只能通過賬號密碼傳統方式登錄;進入三個不同實現的應用之后,布局功能幾乎相同,都可完成用戶最常使用的操作。微信小程序的入口只有微信APP本身;快應用的入口較多,分別有應用商店入口、全局搜索入口、瀏覽器入口、場景化入口、短信入口、負一屏入口、內外搜索入口、語音喚起入口…[6]特別是快應用與語音助手的組合十分便捷實用,直接一句話,便可完成喚醒操作。如用戶通過語音告知語音助手:要訂一張從哪里到哪里的火車票時,語音助手在識別完語音后,可以直接喚起購買火車票的快應用(如:攜程快應用),然后就直接調出搜索結果的頁面等待用戶下單支付。快應用可以實現對手機的深層次交互,從而給用戶帶來更為方便快捷的用戶體驗。
4 一款詩歌軟件主頁的設計實現的分析
在本小節,將介紹一款詩歌學習軟件主頁的設計過程與部分源碼對比
4.1 主頁的顯示效果
該詩歌軟件的主頁分為四個部分,分別為頂部的搜索框;中間的智能推薦模塊,通過輪播圖進行展示;下面就是這個詩歌軟件的功能分區,分為詩社、詩趣、小雜鋪、小秘密四個部分,底部是tabBar快捷操作。
4.2 代碼組成文檔結構對比
微信小程序主要由.js、.json、.wxml、.wxss為后綴的四類文件構成,其中js文件與前端所涉及的JavaScript基本一致,用于存放控制程序邏輯功能的相關代碼,即用于控制頁面的行為動作,wxml文件可以理解為html文件,功能與html一致,書寫方式相似,都是各類標簽,不過是小程序所定義的標簽,當然也涵蓋html本身的一些標簽,wxss文件可以理解為css文件,用于控制頁面的樣式,使得頁面的顯示效果更加人性化。
app.js、app.json、app.wxss是微信小程序的全局文件。app.js可以存放整個小程序相關聯的js邏輯控制的代碼,app.json原來對小程序的全局進行定義,例如小程序的最頂部window內容以及新建pages下的文件夾,底部taBar等
快應用的代碼結構組成較為簡易,其主要代碼存放于ux文件中,該文件內分別由頁面整體框架、頁面樣式控制、頁面邏輯控制三部分組成,即快應用將頁面的js文件、wxml文件、wxss文件合并為一個頁面的ux文件。其編寫方式與前端更為相似。
4.3 搜索框設計代碼對比
4.3.1 微信小程序搜索框代碼
位于pages/index/index.wxml中搜索框的代碼如下:
<import src="/wxSearch/wxSearch.wxml"/>
<view class="wxSearch-section">
<view class="wxSearch-pancel">
<input bindinput="wxSearchInput" bindfocus="wxSerchFocus" value="{{wxSearchData.value}}" bindblur="wxSearchBlur" class="wxSearch-input" placeholder="搜索" />
<button class="wxSearch-button" bindtap="wxSearchFn" size="mini" plain="true">搜索</button>
</view>
</view>
<template is="wxSearch" data="{{wxSearchData}}"/>
搭配引入文件wxSearch/wxSearch.wxml及wxSearch/wxSearch.js后顯示效果如圖7所示。
4.3.2 快應用搜索框代碼
位于pages/index/index.ux中搜索框的代碼如下:
<import name="import-wxsearch" src="../../wxSearch/wxSearch.ux"></import>
<template>
<div class="u-w-view u-w-page">
<div class="u-w-view u-w-tabs">
<div class="u-w-view wxSearch-section">
<div class="u-w-view wxSearch-pancel">
<input class="u-w-input wxSearch-input"
onchange="$handlePageEvent('wxSearchInput',false,false)" onfocus="$handlePageEvent('wxSerchFocus',false,false)" value="{{wxSearchData.value}}" onblur="$handlePageEvent('wxSearchBlur',false,false)"
placeholder="搜索">
</input>
<input class="u-w-button u-w-button-mini u-w-button-default-plain wxSearch-button"
onclick="$handlePageEvent('wxSearchFn',false,false)"
type="button" value="搜索">
</input>
</div>
</div>
<import-wxsearch is="wxSearch"
data="{{wxSearchData:wxSearchData}}"></import-wxsearch>
搭配引入文件wxSearch/wxSearch.ux及wxSearch/wxSearch.js后顯示效果如圖8所示。
通過兩者代碼的對比,我們可以看出兩者代碼的結構與內容十分類似,但快應用的編寫格式更加貼近html,微信小程序除了部分標簽與html相同外,還需要另外遵循wxml的相關標簽規定。快應用則是與html類似,除了小部分的改用外均與html標簽一致。其次通過圖7圖8效果圖的直觀對比可以發現兩者實現后的顯示效果基本一致。
5 小結
通過本文的研究,可以發現微信小程序和快應用均采用前端技術棧作為主要開發框架,但具體實現的技術、方式雖不相同但亦有相似之處,可謂是各有千秋,不分伯仲。當今的應用市場格局,應用流量難以獲取,并且大部分流量流向大型應用。百度、騰訊作為應用流量前茅,而華為、小米等作為手機大型廠商,擁有著大批流量基礎,這些足以吸引開發者們投入研究。
無論是最初百度的輕應用,還是基于輕應用理念開發出來的微信小程序和快應用,都是值得推廣發展的,因為其憑借著開發的成本、周期、難度低,開發上手速度快,用戶實際操作體驗佳,很多場景下的使用效果優于原生App,開始逐步占據市場的流量份額。通過本文研究,期望應用開發人員能盡快了解和熟悉開發框架與技術,提升開發效率,占據市場高處。
參考文獻:
[1]唐文捷,劉士成,張伍菲,朱鵬輝.輕應用(Lapp)——App未來發展趨勢[J].三峽大學學報:人文社會科學版,2014,36(S2):27-29.
[2]劉紅衛.微信小程序應用探析[J].無線互聯科技,2016(23):11-12,40.
[3]康嘉林. 九大手機廠商聯手推快應用對壘小程序[N]. 通信產業報,2018-03-26(023).
[4]劉玉佳.微信“小程序”開發的系統實現及前景分析[J].信息通信,2017(1):260-261.
[5]微信小程序基礎組件之視圖容器[EB/OL].[2018-08-24]. https://blog.csdn.net/hedong_77/article/details/54669912.
[6]周成成.手機廠商和開發者看好快應用新生態[J].計算機與網絡,2018,44(8):11.