iT邦幫忙

2021 iThome 鐵人賽

DAY 3
0
Mobile Development

如何開發適合電子書閱讀器使用的瀏覽器 Android APP系列 第 3

電子書閱讀器上的瀏覽器 [Day03] 站在巨人的肩膀上,找到對的起跑點

  • 分享至 

  • xImage
  •  

如何做選擇

選擇一個好的開源專案來當作起點,可以省下很多重新發明輪子的時間,把精力專注在想要改善和提供的功能上。Github 上面有許多選擇:大型的如 Firefox 的原始碼,Brave browser 的原始碼;小的話,甚至可以找到在一個 Activity 中塞一個單純 WebView 的 Sample project。

我想要找的,自然不會是大型的專案;一來,時間有限,光是研究原始碼可能就要花上許多時間;二來,即使是要做個小功能,可能也會因為程式碼太過複雜,而需要花太多工夫在層層架構中來回。在挑選的時候,會先以小型的專案為主,只要稍微看一下程式碼就可以有比較高的掌握度;但是又希望它主要的功能是完整的,像是多分頁瀏覽,Cookie 的控制,書籤的儲存等基本功能,這些如果都已經實作了的話,我才可以直接專注在電子書閱讀器所需要的功能和畫面呈現上。

FOSS Browser

很幸運地,我很快就找到我想要的起點了。在 Github 網站上用 android 和 browser 當作關鍵字去搜尋的話,第一個出現有就是符合我要求的瀏覽器 — FOSS Browser

https://ithelp.ithome.com.tw/upload/images/20210901/20140260Q38gOwnKrF.png

scorte-dich 開發的 browser 是個小而美的瀏覽器,從 2016 年年底推出以來,一直有持續在更新。編譯完後的執行檔大小約在 3.5 ~ 4.5 MB,程式架構不會太複雜,核心功能主要都在一個 BrowserActivity.java ;與 WebView 相關的實作則大部分在 NinjaWebView.java 中。不論是要新增功能或是修改原有的功能,都可以很快上手。所以我選定以它做為我的起點,開始我的瀏覽器開發之路。下面是它的一些畫面長相:

https://ithelp.ithome.com.tw/upload/images/20210901/20140260JAxrOe7mzi.png

第一件事是先在 Github fork 它。由於我之後的實作都會以電子書閱讀器專用的功能為主,所以不大會再將修改的內容發回原本的 repository 去。因此,在 fork 完後,我有先依照下面的方式將 fork 的 dependency 去除。這麼一來,日後如果有人想要對我的 repository 發 pull request 時會比較好管理。

如何移除 fork dependency

連到 https://support.github.com/request
點選 Attach, detach or reroute forks
點選 Detach a fork
這時虛擬助手會出現,要你輸入你的 owner/repository-name 或是 repo 的完整 url
輸入後,再點選畫面上的 Send request 就可以啦。

完成以上準備工作後,下一篇真的要開工啦,我們會先來談談如何支援網頁內容翻頁的功能。


上一篇
電子書閱讀器上的瀏覽器 [Day02] 開發原則
下一篇
電子書閱讀器上的瀏覽器 [Day04] 以翻頁的方式瀏覽網頁
系列文
如何開發適合電子書閱讀器使用的瀏覽器 Android APP30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言