微信小程序在技術(shù)圈里也爆炸了不少天了啊研,但是縱觀公眾號(hào)的各類文檔奢浑,似乎高質(zhì)量的文章不多見,往往都是官方開發(fā)文檔的搬運(yùn)工,缺乏系統(tǒng)性的剖析帖矫废,讓我很是失望安衙俊(大牛似乎都在知乎答題和寫天書)损谦。當(dāng)然朦乏,我寫這篇文章不是《解密微信小程序》或者《微信小程序完全手冊(cè)》之類標(biāo)題的技術(shù)帖,就是隨便聊聊這個(gè)技術(shù)圈的新寵(順便證明下我也是技術(shù)圈一份子)粒竖。
作為一位名不副實(shí)的程序員颅崩,見到此類消息的本能反應(yīng)也和廣大碼農(nóng)一樣是莫名有點(diǎn)興奮的,但苦于沒有內(nèi)測(cè)資格蕊苗,只能望洋興嘆沿后。轉(zhuǎn)機(jī)來的太快,第二天就有人在Github上放出了開發(fā)工具的破解版和官方Demo程序朽砰,而我僅僅是點(diǎn)開了網(wǎng)頁尖滚,隨后便去喝茶啃瓜、一覺到天明(名不副實(shí)的程序員就是這樣的)瞧柔。然而一覺醒來發(fā)現(xiàn)又轉(zhuǎn)機(jī)了漆弄,官方公開了設(shè)計(jì)指南、開發(fā)文檔和開發(fā)者工具造锅。比起摸索開發(fā)者工具和Demo程序撼唾,我更喜歡「官方解密文檔」(名不副實(shí)again),于是我也毫不猶豫的在第一時(shí)間入了這坑哥蔚。
從設(shè)計(jì)指南到開發(fā)文再到工具倒谷,都讓我感受到了一股蘋果的作風(fēng)蛛蒙,可見微信對(duì)這個(gè)新功能的重視。微信這回是布了個(gè)大局渤愁,瞬間從App(程序)晉升為OS(操作系統(tǒng))牵祟,這個(gè)一上線即擁有7億用戶的“操作系統(tǒng)”想想也是惹開發(fā)者醉啊,因此火爆也是必然的抖格。從內(nèi)測(cè)第一天起技術(shù)圈就掀起了有關(guān)技術(shù)的各種討論诺苹,比如「HTML5又火了」、「JavaScript程序員要吃香了」他挎、「前端開發(fā)者要漲薪了」……然而總是有少數(shù)神龍見首不見尾的大牛在評(píng)論區(qū)里忍不住顯擺道出天機(jī)筝尾,我也是一不小心抓住了點(diǎn)大牛的尾巴看到了「Native」和「RN」等奇怪的字母才稍微找到了點(diǎn)方向捡需,摸清了點(diǎn)門道办桨。下面就來進(jìn)入正題說一說這個(gè)微信「小程序」。
關(guān)于設(shè)計(jì)指南
講到設(shè)計(jì)指南就不得不看看業(yè)界標(biāo)桿:谷歌和蘋果站辉。無論是《Material Design》還是《iOS Human Interface Guidelines》呢撞,對(duì)自身的界面風(fēng)格和細(xì)節(jié)定義都是極其詳細(xì)。一流企業(yè)定規(guī)格饰剥,這樣的設(shè)計(jì)指南絕地稱得上一流之作殊霞,也確實(shí)給設(shè)計(jì)師和開發(fā)者起到了指南的作用。微信小程序的這份「指南」雖說沒有達(dá)到谷歌和蘋果的高度汰蓉,但也根據(jù)微信本身的產(chǎn)品理念绷蹲、界面風(fēng)格和交互方式給出了明確的設(shè)計(jì)思路,給設(shè)計(jì)師和開發(fā)者指明了方向顾孽。
由于這份指南內(nèi)容比較簡(jiǎn)要祝钢,我也分分鐘就看完了。鑒于之前已經(jīng)看過《iOS Human Interface Guidlines》若厚,除了這次用的是中文省了我很多時(shí)間外拦英,關(guān)于交互設(shè)計(jì)方面倒是沒啥新意,這份文檔更趨向于是給程序員看的测秸,設(shè)計(jì)師看了也許會(huì)很不屑疤估。我認(rèn)為這份文檔最具價(jià)值的信息大概就是闡明了「小程序」可以之于微信的界面中而擁有高于微信的設(shè)計(jì)。意思就是有些元素固定這樣了霎冯,微信不讓你動(dòng)所以你動(dòng)不了铃拇,但是又給了你修改配色之類的具體界面參數(shù)的能力,用于統(tǒng)一「小程序」自身的風(fēng)格沈撞。
然而我并不是設(shè)計(jì)圈的人慷荔,只能從程序員的角度一表拙見。這份設(shè)計(jì)指南更大意義上是讓微信這個(gè)生態(tài)更加完善了关串,也讓很多脫離設(shè)計(jì)的程序員能夠避免「一看就是程序員做的界面」這種尷尬拧廊,當(dāng)然這份指南也很有可能作為微信平臺(tái)審核上架應(yīng)用的依據(jù)监徘。
關(guān)于技術(shù)棧
Web前端的技術(shù)棧大家都知道是HTML + CSS + JavaScript,所以很多開發(fā)者認(rèn)為微信這次的「小程序」就是Web開發(fā)吧碾,因此也存在「HTML5這回要更火了」這類的聲音凰盔,但即使我沒有學(xué)過「HTML5」也知道這跟「HTML5」沒多大關(guān)系。開發(fā)文檔中明確闡明了「小程序」的視圖層采用的是描述語言 WXML 倦春,也就是微信自定義的一套視圖描述語言户敬,這套描述語言可能是和HTML很類似,但這種類似也可以說是微信故意為之睁本,就是向前端開發(fā)者提供一套類似前端開發(fā)的技術(shù)棧尿庐。那為何不直接用前端技術(shù)呢,也就是喜聞樂見的「HTML5應(yīng)用」呢呢堰,簡(jiǎn)單的講無非兩點(diǎn):
- 性能不夠抄瑟,影響體驗(yàn)。
- 不利于微信生態(tài)建設(shè)枉疼。
前端開發(fā) | 微信小程序 |
---|---|
HTML | WXML |
CSS | WXSS |
JavaScript | JavaScript |
「小程序」的邏輯層代碼是采用JavaScript語言皮假,這就有傳言稱「JavaScript程序員要吃香」,「JavaScript程序員要漲薪」等等骂维。無可厚非JavaScript程序員極有可能成為第一波享受到「小程序」紅利的開發(fā)者惹资。但不幸的是,這套技術(shù)棧不支持像jQuery這類的三方庫航闺,所以很多JavaScript程序員寫起代碼來要不順手嘍褪测,考驗(yàn)JavaScript語言功底的時(shí)候到了。其實(shí)JavaScript的學(xué)習(xí)成本并不高潦刃,我也花了兩天就看完了主要的語法知識(shí)點(diǎn)侮措,上手是很容易,但是編程的核心并非語言或語法福铅,編程思想更為重要萝毛,所以很多編程老司機(jī)要想跨界練練「小程序」的話,我認(rèn)為也是很容易的滑黔。這么看JavaScript程序員好像也沒啥優(yōu)勢(shì)嘛笆包。
WXSS(Weixin Style Sheet),基本就是改了下CSS的名字罷了略荡,唯一的差別可能就只有文檔中所述的:
- 尺寸單位(定義了rpx)
- 樣式導(dǎo)入
尺寸確實(shí)是個(gè)需要解決的問題庵佣,畢竟微信是個(gè)跨平臺(tái)的「系統(tǒng)」。
總之汛兜,這套技術(shù)棧門檻不高巴粪,我也粗糙地玩了下,簡(jiǎn)單程序還是很容易開發(fā)的。而對(duì)于「小程序」后臺(tái)而言肛根,和之前的原生應(yīng)用并沒有差辫塌,該怎樣開發(fā)還是怎樣開發(fā)。
關(guān)于API
微信提供了網(wǎng)絡(luò)/媒體/數(shù)據(jù)/位置/設(shè)備/界面/開放接口……等一系列的接口派哲。
相比于iOS或者Android的原生API臼氨,沒法比……但基本能力都提供了,絕大多數(shù)的問題都能解決芭届,有局限性但不妨礙個(gè)性储矩。
對(duì)于接口我想說的并不多,接下來就看開發(fā)者的創(chuàng)造力了褂乍。
關(guān)于工具
四個(gè)字:不夠好用持隧。
總結(jié)
新鮮的事物總是能激起人們的好奇心,我也是好奇心使然才有了這篇文章逃片。相信很快所有人就能看到「小程序」出現(xiàn)在我們的微信中了屡拨。其實(shí)我很期待很多應(yīng)用能上架「小程序」平臺(tái),尤其是那些偶爾使用的低頻軟件题诵,這些軟件刪了呢要用的時(shí)候麻煩洁仗,不刪呢絕大多數(shù)時(shí)候也就是占個(gè)硬盤空間层皱⌒远В「小程序」給出了那些低頻應(yīng)用的解決方案,釋放硬盤空間指日可待叫胖。除此之外草冈,我也希望能夠看到這個(gè)新平臺(tái)能誕生一些這個(gè)平臺(tái)獨(dú)有的「小程序」,而不僅僅是原生應(yīng)用的搬運(yùn)工瓮增。
I could either watch it happen or be a part of it.--Elon Musk
這話是最近忙著火星移民計(jì)劃的伊隆·馬斯克講的怎棱,與君共勉。