LINE Developer Day 2019 現場筆記 (二) - 關於LIFF的改變與未來
我在現場看到LINE日籍講師使用 VS Code作為主要的開發工具,還頗讓人驚豔的
緣起
前陣子,LINE推進了LIFF這個框架來到 v2的版本,v1到v2是一個很大的改變,一般來說,我們改變主版號(from 1 to 2)意味著新釋出的版本將跟前一版有著不相容性,也就是一個重大的breaking changes,也確實,v2版本增加了很多亮眼的新功能,像是QR Code掃描、外部瀏覽器支援…等。
還不只如此,LINE 11/11發布了一個我認為很重大的消息:
Users can no longer add LIFF apps to Messaging API channels
看到這個消息的第一眼,我只有一堆問號…,WHY? 為何LIFF 2未來只能從LINE Login新增LIFF,為何將要取消過去LIFF綁在Bot(Messanging API)身上的方式???
我相信不只我有這個疑惑,很多熟悉LIFF的開發人員也是。我心裡始終帶著這些問號,來參加了今年的LINE Developer Day,當然,我希望能找到答案。
LIFF的改變
在Day 2關於LIFF的場次中,講師不免俗地把LIFF的歷史交代了一下:
其實從v1到v2也不過就是一年的時間,但重點當然不是歷史啊,重點是改變。到底有那些改變呢? 那得看當前的LIFF有些什麼:
上面這三張看似平淡無奇的投影片,其實是接下來講者埋的梗,我得說,後面看到差異的時候,是頗讓人興奮的。上面第一張投影片的Easy Development是理所當然,LIFF可以透過純HTML方式開發,且運行上是無需伺服器端的,但我們也知道,當前的LIFF只能運行在LINE的WebView環境,即便是開發方式和一般的HTML頁面相同,你還是會碰到像是開發階段難以debug之類的困擾。
是的,v1的LIFF是很難偵錯的,因為你必須在手機環境上(LINE的內部WebView)才能執行。我忍不住直接破梗好了,講者在最後ending的時候,上面第一張slide變成了:
with LIFF v2,你可以在手機的外部瀏覽器上運行,這也表示,你有機會可以在一般的瀏覽器上進行開發和除錯。對,你沒聽錯,過去非得在手機裡測試偵錯的時代即將過去了,當你用LIFF v2架構開發搭配SDK,基本上你的開發根本就像是一個純Web Application(只是這個App可以取得用戶的LINE身分,可以在手機上透過LINE與用戶互動)…
這甚麼道理呢? 請看…
因為LIFF 2本質上做了很大的一個改變,過去的liff,網址是 line://app/{liffId} 這樣的形式,但改版後的v2,可以寫成 https://liff.line.me/{liffId}/ 這樣的 web (https) scheme,這意味著你將有機會可以在一般的瀏覽器中運行和除錯,講者示範了用VS Code開發和單步執行偵錯的展示:
用VS Code來Run和Debug耶,我差點要站起來鼓掌了!!!
這件事情超級重要的啊,這有機會解決過去LIFF很難開發和除錯的問題,但這個技術的背後是什麼道理? 為何能夠讓原本不能在一般瀏覽器上運行的LIFF,可以同時在LINE內建WebView與一般的瀏覽器上都可以運作呢?
這是講師在上面那三張平淡且樸實無華的Slides中埋下的第二個梗:
v2的LIFF deeplink,可以自動handles不同的用戶環境。什麼意思? 這就是我個人認為(官方沒有明確這麼說)v2會開始與LINE Login綁定的一個很重大原因了。
請回頭想想第一版的LIFF,第一版的LIFF功能不多,充其量只是在手機中抓取當前用戶的身分(User ID),但因為必須卡在LINE的手機WebView裡面,所以liff在很多環境是無法使用的(例如PC Desktop/iPad…etc.),但從上面的v2改變中你可以發現,v2之後的LIFF,本質上真的變成了一個純Web Application,既然可以採用 https://liff.line.me/{liffId}/ 這樣的deeplink,這意味著透過v2開發的LIFF將可以有機會跨出LINE手機上的WebView。
但,跨出去之後怎抓取用戶身分,與用戶互動呢? 這一刻我懂了,它骨子裡其實就是倚賴LINE Login嘛,當與LINE Login整合之後,LIFF將有更高的可能性,更大的自由度。在手機裡它就像是一小程序,而跨出了手機,就是一個可以透過LINE Login抓取到用戶身分的Web Application,這樣的發展方向,非常讓人期待!
什麼是 Mini App?
說到了發展方向,就不能不提到Mini App, 在day 2的keynote中,我們有機會驚鴻一瞥:
它是什麼? 不知道你有沒有注意到,在你的LINE個人主頁下,有一個『服務』圖示,該圖示底下其實有著各式各樣的額外功能,LINE Music、LINE TAXI、LINE購物…等。
如果,有一天我們開發的LIFF可以透過這樣的方式呈現,和LINE更多的整合在一起,甚至可以從市集當中找到,豈不是頗讓人期待?是了,這就是即將出現的LINE Mini App。而對於開發人員來說,我們在意的是,Mini App到底如何開發?
根據我們在Booth現場直擊詢問LIFF開發團隊的的第一手資料顯示,Mini App基本上就是LIFF的變形,雖然目前僅開放給LINE的合作夥伴,但未來將有很大的發展可能性,我們既然人在現場,當然也不客氣地為LIFF開發人員發聲,建議LIFF也能提供類似App Store這樣市集,讓大家可以自由的上架自己的LIFF(或未來的Mini App),開發團隊也熱情的表示,將會傳達我們的聲音與需求:
NEW APIs
當然,如果LIFF改版沒有推出一些新的API,肯定無法滿足各界的期待的…
這些在路上的API相當多,不過由於部分涉及用戶權限的授予,某些API還需要一點時間才能陸續開放(我猜可能也是要搭配line developer後台的一些選項配置):
但這些APIs的出現將會很令人期待。
對了,人都已經到了會場,很多人關切LIFF的V2版本中,有一個掃描QR Code的API似乎在android手機上有些問題(android無法掃描非 https:// 開頭的QR Code內容,請參考這邊,你會發現iOS可以掃描電子發票,但此功能在android上卻無法實現),這部分我們當然也不客氣地問了,現場LIFF PM承諾,將會在年底前的改版解決,我們當場拍照存證留念(哈~):
總的來說,LIFF v2對開發人員釋出了不少利多,Deeplink、新的API是我最感興趣部分,當然,還有TypeScript的支援、以及在外部瀏覽器上的supports,這些都讓LIFF開始朝向一個更有想像空間的方向發展:
而LIFF v2.1的LINE Mini App,是否會帶來市場上更多的騷動呢? 這也將是一個頗讓人引頸期盼的feature:
以為這樣就結束了嗎?
講者在最後的最後,丟出了這張slide:
果不其然,SDK發展的差不多之後,UI/UX將會是下一個階段的重點,如同bootstrap一般,估計LINE也會推出自己的LIFF UI框架,讓LIFF UI有著更一致且美觀的呈現效果。
而緊接著在UI/UX之後呢? 大概這一張slide可以讓粉絲們對LIFF的遠景更充滿期待了…
結語
要推出一套好的軟體產品不是最難(其實我覺得已經很難 >_< ),但軟體服務或產品想獲得長遠的成功,關鍵在於,周遭的生態系是否健全。
是的,你已經天天在使用LINE了,但這還不夠,當有更多的廠商,圍繞起LINE開發出更多的生活應用與服務時,才會建構出堅不可摧的城牆。
而這關鍵,就是LIFF...由此你不難得知,LINE對LIFF和Mini App將會有著如何的期待,對於開發人員來說,藉由一個成熟的平台,在足夠多且普及的用戶環境中,更能夠放手一搏,有機會將自己的應用創造更大的價值。
這一切,使LIFF的未來更讓人期待…
留言
不知道是不是這樣導致我使用sendMessages函數會失敗