Gap撈Tech

HKEPC Ionic Reader

iOS | Android | Window | Web


簡介

HKEPC Ionic Reader (HKEPC IR) 是非官方、第三方的瀏覧器。本程式不會記錄任何登入名稱或密碼,作者亦不會為本程式做成的直接或間接損失負上任何責任,用家需自行承擔風險,敬請留意!

HKEPC IR 將會永久免費無廣告以及 Open Source, 希望有機會以集資 / 捐助 / Community Driven 模式運此 Project,有興趣嘅朋友隨時可以到 Trello / Github Contribute

HKEPC IR 係一個 Hybrid App (基本上任何電腦、電話基本上都可以用),基於大部份內容其實都係利用 In-App WebView 去處理,所以內容排版效果會比 Native EPC App 效果更好!

製作動機

阿 Gap 係地鐵得閒無野做都會上下 EPC 睇下啲新 Post 長知識,主力都係用 iPhone 上,但係 iOS 嘅 EPC Pocket 愈用愈多 Bug,係咁彈 App 又 Show 唔到圖。上個月(2016年 1 月中)更 Bug 到落埋架,所以決定的起心肝自己做一個出黎。

作為一個全職打工仔,要係工餘時間做個 App 真係一啲都唔簡單,基本上要放哂全部放工、放假嘅時間去做。 第一代 v0.1.0 Prototype 出世只係用咗 7 日時間去整,基本上自己純粹用黎睇真係夠哂,但係心諗其實可以放埋上架比其他人一齊用。

然後同自己講

一係唔做 一做就要做到最好!

決定立三大目標比自己:

  • (1) 用最少資源接觸最多用戶
  • (2) 成為滲透度最高嘅 HKEPC Mobile App
  • (3) UX (User Experience) 要比現有嘅優勝

阿 Gap ・作為一個 Developer 寫一個 Mobile App 出黎,最希望喺用家用完之後會津津樂道、甚至會推介比其他用家。所以阿 Gap 設計呢個 Mobile App 嘅時候,User Experience 會率先放係第一位。

要完成心目中 (1)、(2) 目標,阿 Gap 相信只有做 Hybrid App 先有可能達成,可能各位熟 Mobile 嘅用家聽到 Hybrid App ... 都會認為 Hybrid App 同 (3) 有啲背道而馳...

Why Hybrid?

阿 Gap 只係得一個人、一個腦、一對手,若要同時製造三份 Code 比三大平台(iOS、Window、Android) 上架需要消耗極多時間去製作,根本上無可能。

加上非官方 App 有隱藏危機 - 兼容性問題,用 Native 去 Parse HTML 會好危險,因為阿 Gap 永遠唔知 EPC 何年何月會轉 Layout,可能只要有少少 HTML 嘅變動,三大平台嘅 App 就立即用唔到,然後要做嘅改動又要同時改哂三大平台再重新上架。

所以選用 Hybrid App 嘅原因,因為三個字 - 長遠性。

由於 Hybrid App 能夠利用 WebView 去 Render HTML,所有由 HTML 提取出黎嘅內容,可以都直接顯示,提高「抗變力」之餘仲可以幾肯定唔會有排版走位嘅情況發生。值得一提嘅喺 WebView 內建其實有好多功能已經自動做咗,例如隔行、字型大小、顏色、排位、Image Caching、Dynamic Image size、Relative/Absolute position 等等,非常適合阿 Gap 個 use case。

不過 Hybrid App 曾經有一段黑暗史 - 效能太差、太易彈 App。

Hybrid 又慢又易彈 ?

兩年前(2014 年)呢個講法都絕對合理!當年 Facebook 亦都係卡喺 Performance 問題,最後都要重寫各大平台嘅 Facebook App。

但近年已經有明顯改善,全因為最近兩年嘅 OS 都加入強大嘅 Js Engine

iOS 8 加入 WKWebView (Nitro Js Engine)

Android 4.4 以後內置使用 Chromium (V8 Engine)

Window 10 Mobile 內置 Edge (Chakra Engine) 比 IE 11 快 2,3倍

以上嘅 Engine 可以提升運行數以倍計嘅 Javascript 嘅效能。喺呢兩年過渡期,好多舊嘅 Smart Phone 都應該開始退役,新機多數配搭新 OS 都會有以上嘅 Engine 支持,iOS 版本 < 8 或者 Android < 4.4 嘅用家相信少之有少。

Hybrid App 開發感想

阿 Gap 自己本身由 iOS 5 用到 iOS 9,其實曾經都好憎用 Hybrid App,因為大部份嘅 Hybrid App 又 Lag、又容易彈 App!

直至蘋果發佈 iOS 8 話有新 WKWebView 之後,效能有數以倍計上升,阿 Gap 開始對寫 Hybrid App 改觀,而家仲落手寫埋呢個 HKEPC IR 出黎!

經阿 Gap 測試,一部 iPhone 5 iOS 9 用 UIWebView (沒有 Nitro Js Engine) 運行 HKEPC IR,一開始已經食 60 MB,禁幾版之後,就會飄升到食 200 MB RAM,再用Infinity Scroll 睇 Post 多過 10 版仲必定會爆 RAM 而彈 App!

現時轉用 WKWebView (有 Nitro Js Engine) 運行 HKEPC IR,儘管阿 Gap 不斷地瘋狂地禁、轉頁、Scroll 超過 20 版,RAM 的使用量大約為 20 - 30 MB,未試過彈 App,而且明顯感覺到順暢好多!

(WKWebView)

為何永久免費 & Open Source ?

阿 Gap 相信兩個概念


Open Source Build Better Software


一個永久免費無廣告嘅 App 愈做愈好嘅時候,一定會有部份用家身體力衡支持。


更多感想

可能你會有一刻認為阿 Gap 本身係做開 Mobile App 先會搞到壇「咁嘅野」出黎,但現實中嘅阿 Gap 係一個不折不扣嘅 Backend Developer 即喺做 Server 多。

Mobile 嘅野 - 我識條鐵咩 @Feb 2016

重要連結

iOS

Android

Window

Web

Project 進度及 Road map

HKEPC IR Github Project



Author image
About Gap
Hong Kong
A Hongkong programmer who loves design & coding and believes open source software business can change the world.