天天看點

有了微信小程式,誰還學ReactNative?

最近2天,網際網路圈和技術圈的熱點話題非微信“小程式”莫屬。有些文章從産品角度探讨哪些類型的服務适合做成應用号,也有直接釋出内應用号的開發教程的。做為騰訊雲的技術布道師,我想換個不一樣的角度,從我熟悉和關注的移動開發技術棧的演進角度,講講移動開發技術下來可能會發生的變化,以及對于移動應用開發者可能帶來的三點重大影響。

HTML5在國内的流行與微資訊息相關,一個小小的創業團隊用業餘時間開發的“圍住神經貓”這樣一個輕遊戲輕松就獲得了上億次通路,做為一款現象級的産品直接拉動了國内企業與市場對于H5開發者的需求。核心的優勢在于開發過程的足夠輕量,但同時這樣輕的技術語言本身也不是完美無缺,“圍住神經貓” 這款遊戲本身沒有建立自己的使用者體系,帶來的實際問題就是上億次的使用者通路并未沉澱在這個創業團隊手上,成為他們真正的使用者資産。

React-Native做為Facebook開源的移動開發語言,基本的理念是能不能JavaScript類的文法做移動端的開發,開發者隻要去寫一次代碼,就能同時在ios和Andriod兩類手機作業系統上運作,減少移動APP開發的工作量。

我們可以看到應用号應該是通過API的方式将部分系統級的權限和微信獨有的社交和支付接口開放給了應用号,同時實作了React-native設計的初衷,一次開發,兩端運作。應用号所提供緩存、檔案操作和websocket等接口,讓騰訊雲上的移動開發者有機會把自己的“小程式”做的比H5遊戲更重一些,這也意味着開發者可以更好地在微信應用号的平台上沉澱屬于自己的使用者資産。

有了微信小程式,誰還學ReactNative?

圖1 移動開發技術棧的演進

微信應用号的開發語言是HTML标簽語言的子集,而且語言設計上有着React-Native的影子,有這兩種語言基礎的開發者學習應用号開發會更容易

今天,我在國内主流搜尋引擎搜尋“應用号開發“結果 2,660,000個,搜尋”ReactNtive“ 結果 2,140,000個。結果也可以看出,已經流行了1-2年的react-native技術在熱度上比不上新出的應用号開發。我的預期是會有不少學React Native的人開始轉向應用号開發學習,沒有内測資格的會先學習微信服務号開發。

有了微信小程式,誰還學ReactNative?

圖2 Html5-應用号開發語言-ReactNative三種語言接口、功能對比

注:以上應用号資訊來自于騰訊科技報道

微信應用号所開放的手機LBS、檔案處理、重力感應等“系統級接口” 加上微信自身的社交、支付接口,将會為移動開發者極大賦能,開發者可以更輕量級地開發出更多新的玩法

通過上表開發語言的對比看出,HTML5語言裡面雖然設計了一定的地理定位、系統資訊擷取等涉及手機用戶端的底層能力,但實際上由于手機作業系統的權限設計限制,這些接口的通路都是需要系統授權的。

下圖是我分别在Safari浏覽器和微信内置浏覽器中運作HTML5的 擷取地理位置方法的結果:

1) Safari浏覽器中getCurrentPosition的系統授權請求被屏蔽了,沒有提示,也無法傳回結果。

2) 微信中能夠彈出getCurrentPosition的系統授權請求,在點選“同意”後,可以回報出手機對應的經度緯度。

有了微信小程式,誰還學ReactNative?

圖3【LBS位置讀取】Safari浏覽器 vs 微信内置浏覽器

小程式(應用号)可以讓你的應用火,而雲計算可以讓你在火了之後不會當機

下圖是我個人預計大部分應用号的前背景技術架構,應用号的前端的開發語言基本上應該是應用号擴充的HTML标簽語言+CSS+JavaScript,背景服務的開發其實不論是用Python或者是Node.js應該都是可以的。

但是對于預計通路量較大,需要實作HA高可用的應用号而言,就需要考慮使用CLB負載均衡,CDN内加速,雲緩存等服務來保證應用的通路體驗;如果涉及電商秒殺場景還可以考慮使用騰訊雲的CMQ消息隊列;對于安全性要求較強的金融與遊戲類應用,則需要考慮接入大禹服務來抗DDOS攻擊、接入天禦防刷服務來抵禦惡意使用者。

有了微信小程式,誰還學ReactNative?

圖4 預期的應用号技術架構

微信小程式(應用号)的出現,伴随着更開放的手機“系統級”接口和微信社交+支付接口,讓創業者有機會和H5時代一樣,打造出下一批現象級的網際網路應用。但雲計算能夠給這些受歡迎的應用号,提供高可用、高擴充與安全性。

一句話總結,“小程式可以讓你火,雲計算可以讓你在火了之後,不會當機”。

附:我們這邊寫的一個小程式demo,1小時就可以快速搭建。

相關推薦