“哇,我是不是可以輕輕松松就寫出一個(gè)APP???”,這也許是許多開發(fā)者的第一感受,你的想法沒錯(cuò),這也是微信想要達(dá)到的效果。但是作為開發(fā)者,我個(gè)人認(rèn)為用戶體驗(yàn)并沒有這么重要,“一個(gè)流暢的APP用起來比不斷刷新的網(wǎng)頁爽多了”不能作為我們投入到微信小程序開發(fā)中的理由。我認(rèn)為開發(fā)者能到達(dá)的目的(速度、成本、回報(bào)、流量、收入等)比所謂的用戶體驗(yàn)重要得多。
所以,我的建議是:“不要過高(盲目)地期待用戶體驗(yàn)?zāi)芙o你帶來的好處,應(yīng)該多評(píng)估你所受到的限制,以及你能得到的回報(bào)”。下面說說我對(duì)小程序的看法(提醒,這是2016年9月寫的,以后可能會(huì)顯得不合適或不正確)。
小程序不是基于瀏覽器的,而是基于微信程序的,要開發(fā)小程序必須學(xué)習(xí)使用WXML與WXSS,代替HTML與CSS;
WXML與WXSS沒有完善的文檔,如果遇到技術(shù)問題就會(huì)卡殼,可能會(huì)導(dǎo)致幾天沒有進(jìn)展;文檔中暗示了WXML、WXSS與HTML、CSS差不多,但是卻沒有明確說哪些HTML標(biāo)簽可用,哪些CSS屬性可用,或者哪些不可用,這一切需要開發(fā)人員自己一遍一遍的嘗試。對(duì)于設(shè)計(jì)師來說也是個(gè)困惑,萬一根據(jù)Web開發(fā)經(jīng)驗(yàn)設(shè)計(jì)出來的效果前端人員實(shí)現(xiàn)不了怎么辦?
預(yù)感小程序不支持常用CSS庫,小到一個(gè)button、一個(gè)icon都要自己處理,每一個(gè)像素都要親自調(diào)整,又要重新造輪子了。對(duì)于設(shè)計(jì)師與前端來說,都是痛苦的體驗(yàn);
小程序基于“數(shù)據(jù)綁定”的思路綁定了Model與View,看似自動(dòng)化了數(shù)據(jù)的顯示,但也同時(shí)也失去了對(duì)DOM的自由操作。小程序的JS不支持window對(duì)象,不支持jQyery等常用庫,這就意味著你不能重復(fù)使用以前積累的前端代碼;在思路上我們要保持“Less is more”,但在面對(duì)選擇上我認(rèn)為“能總比不能好”。小程序在保持簡單的同時(shí)也讓我們失去了許多選擇;
CSS與JS的選擇器沒有那么靈活,僅支持簡單的選擇器功能,對(duì)于有經(jīng)驗(yàn)的開發(fā)者將會(huì)感到不便;
開發(fā)小程序,可以輕松調(diào)用以下微信的API(并且不用考慮機(jī)型問題):上傳、下載文件,拍照、選擇、上傳圖片,錄音、播放音頻文件,播放視頻文件(僅支持騰訊視頻),本地?cái)?shù)據(jù)緩存,獲得地理位置與調(diào)用微信內(nèi)置地圖,監(jiān)聽重力感應(yīng)與羅盤數(shù)據(jù),Canvas繪圖,微信賬號(hào)登錄,微信支付等(其他未列出的就是比較常見的了)。但是除了重力感應(yīng)、羅盤、Canvas繪圖以外,其他API在微信公眾號(hào)的的JS SDK中也有,也許以后小程序會(huì)推出更多“APP才有的API”;
與公眾號(hào)相比,許多功能小程序目前還沒有,例如:搖一搖、掃一掃、主動(dòng)向用戶發(fā)消息、分享到朋友圈(以及其他分項(xiàng)功能)、卡券等(寫到這里的時(shí)候發(fā)現(xiàn)小程序已經(jīng)可以給用戶發(fā)模板消息,但限制較強(qiáng));
目前不知道是否可以通過URL直接訪問小程序,看樣子好像暫時(shí)不可以,這就意味著你不能在“閱讀原文”中引導(dǎo)用戶訪問某一篇文章的內(nèi)容;
目前不知道是否可以在小程序中“按住二維碼掃描”,文檔里面沒有提及,除非看見別人可以這樣搞,否則就不要以為能通過在小程序內(nèi)放一個(gè)二維碼增加公眾號(hào)的粉絲(但是網(wǎng)頁可以);
目前我不知道是否可以在小程序中使用a>鏈接跳轉(zhuǎn)到普通網(wǎng)頁去,如果可以那么用戶體驗(yàn)就會(huì)打折扣,如果不可以那又怎么和其他網(wǎng)站合作呢?(我認(rèn)為如果不支持瀏覽器必然會(huì)大打折扣,所以因該是支持的);
小程序發(fā)起請(qǐng)求必須使用HTTPS協(xié)議,也就是說如果你要和其他第三方網(wǎng)站合作,調(diào)用他們的API,那么他們必須提供HTTPS協(xié)議,目前這會(huì)導(dǎo)致你無法與許多第三方網(wǎng)站合作;
小程序的推送功能目前遠(yuǎn)不如公眾號(hào),也不能從公眾號(hào)底部直接進(jìn)入小程序,還不如寫一個(gè)HTML網(wǎng)站,引導(dǎo)用戶(按?。叽a關(guān)注公眾號(hào),再從公眾號(hào)菜單進(jìn)入程序來得直接與實(shí)在;
有人說小程序可以用微信賬號(hào)登錄與微信支付,而訂閱號(hào)不可以,其實(shí)訂閱號(hào)也可以。注冊(cè)一個(gè)訂閱號(hào),點(diǎn)擊訂閱號(hào)的菜單跳轉(zhuǎn)到網(wǎng)頁去,但是網(wǎng)頁使用服務(wù)號(hào)的JS SDK開發(fā)就行了,一樣可以登錄、支付,錢入賬到服務(wù)號(hào)中,此方法甚至不需要用戶點(diǎn)擊“同意”就可以得到用戶的頭像和用戶名(可以關(guān)注我們的公眾號(hào)“安順US”體驗(yàn)一下,我已這樣做已經(jīng)快兩年了,目前暫無限制);
目前必須在微信IDE中調(diào)試,在微信APP中運(yùn)行,如果這兩個(gè)地方有Bug(或者更常見的是你懷疑他有Bug)的話怎么辦?你沒有文檔可查,網(wǎng)上也搜索不到解決方案,你發(fā)郵件問微信的開發(fā)人員他們也不會(huì)給你回郵件(除非你是他們的合作伙伴)。
小程序的維護(hù)需要有小程序開發(fā)經(jīng)驗(yàn)的人,傳統(tǒng)Web開發(fā)人員需要花時(shí)間學(xué)習(xí)(更多的是練習(xí))才能適應(yīng)小程序的開發(fā)與維護(hù),所以在招人上可能會(huì)更困難;
最后,我相信微信小程序會(huì)蓬勃發(fā)展,會(huì)有大量的開發(fā)者加入,會(huì)有完善的文檔。我認(rèn)為小程序?qū)?huì)大幅降低開發(fā)成本與分發(fā)成本,這遠(yuǎn)比提高用戶體驗(yàn)更能拉攏開發(fā)者,未來會(huì)不會(huì)出現(xiàn)一個(gè)小程序開發(fā)大軍現(xiàn)在還說不準(zhǔn),但是我看好小程序。我認(rèn)為不要急于開發(fā)小程序,不如再觀察觀察。
?