//cs-a.ecimg.tw/items/DJAA2VA900GNE29/000001_1694405976.jpg;
商品編號:DJAA2V-A900GNE29

Android 開源專案「真」實戰啟航:瀏覽器 App EinkBro 開發者帶你逐步從 UI 設計、UX 提升到多功能實現秘技全解析(iThome鐵人賽系列書)(軟精裝)

驚喜優惠
$569
$720
  • P幣

    全盈+PAY單筆消費滿1200回饋80P幣(每帳號限乙次,限量5000名)

  • 登記送

    【7-11】單筆滿$350純取貨/取貨付款訂單登記送韓風拌拌炸雞兌換券乙張(限量)

  • 登記送

    【第四波】書店/閱讀器/寵物指定品單筆滿$1,500登記送100P幣(使用效期30/限量)

付款方式
出貨
  • PChome 倉庫出貨,24小時到貨
配送
宅配滿$490免運,超取滿$350免運
  • 宅配到府(本島/低溫)
    滿$699免運
  • 宅配到府(本島/常溫)
    滿$490免運
  • 超商取貨(常溫)
    滿$350免運
  • 超商取貨(低溫)
    滿$699免運
  • i郵箱(常溫)
    滿$290免運
商品詳情
作者:
ISBN:
9786263335998
出版社:
出版日期:
2023/09/26
  • 內文簡介

  • <內容簡介>

    完整解說EinkBro兩年多來的開發過程
    使你的Android開發功力再上一層樓

    本書內容改編自第 14 屆 iThome 鐵人賽 Mobile Development 組佳作系列文章《從開發瀏覽器 APP 學習 Android 實戰技巧,並搭上 Jetpack Compose 的列車》與第 13 屆 iThome 鐵人賽Mobile Development 組佳作系列文章《如何開發適合電子書閱讀器使用的瀏覽器 Android APP》。

    一本書包含了兩屆 iThome 鐵人賽得獎作品的精華,前後連貫,讓讀者能更深入地了解 EinkBro App 的演進過程。雖然 EinkBro 是作者業餘開發的作品,但是從 2023 年起,它開始被內建於台灣主流的電子書品牌的閱讀器中,這無疑是一種莫大的肯定。

    不同於以往的 Android 教學書籍,本書以實際 App 專案的開發先後順序介紹各種不同主題和功能的實作,讓讀者能夠隨著專案的演進,感受到它一步步改善的過程,並從中學習到各種開發的技巧。

    書中大部分內容的主題是圍繞在電子書閱讀器帶來的限制和特性上,在講解功能開發的緣由和發想時,還會解釋其背後的思考邏輯;讓讀者不但能夠學習到實作的細節,還可以讓促使未來在開發功能時的思惟能更加全面。

    【目標讀者】
    →已經熟悉基本的 Android 開發方式,想要再進一步學習更多的實作技巧。
    →想要更了解 WebView 開發細節的開發者。
    →好奇開源專案是怎麼樣不斷演進和發布的讀者。
    →同樣是電子書閱讀器的愛好者,想了解 EinkBro 開發背後的秘辛的使用者。


    ★目錄:

    Chapter 0 WebView 開發入門
    0.1 架構
    Chapter 1 總論
    1.1 EinkBro App 簡介
    1.2 EinkBro 功能演進
    1.3 各章節簡介及閱讀方式
    Chapter 2 選擇起跑點與訂定開發原則
    2.1 如何選擇好的起跑點
    2.2 訂定自己的開發原則
    Chapter 3 使用者介面初步改善
    3.1 提高圖案對比度
    3.2 調整對話框
    Chapter 4 改造瀏覽網頁的方式——靜態翻頁
    4.1 以翻頁的方式瀏覽網頁
    4.2 利用音量鍵翻頁
    4.3 點擊畫面翻頁
    Chapter 5 調整網頁字型
    5.1 字型大小
    5.2 字體粗細
    5.3 更換雲端字型
    Chapter 6 支援閱讀模式
    6.1 何謂閱讀模式
    6.2 初次嘗試
    6.3 改試另一種效果比較好的實作
    Chapter 7 直排閱讀
    7.1 牛刀小試
    7.2 閱讀模式 + 直排
    Chapter 8 儲存網頁為 epub 檔案
    8.1 引入函式庫
    8.2 取得網頁內容
    8.3 電子書名及章節名稱
    8.4 如何實作儲存圖片
    Chapter 9 翻譯功能
    9.1 核心實作
    9.2 取得網頁全文
    9.3 整合 Google Translate 網頁
    9.4 網頁內容分頁
    9.5 雙視窗可拖拉調整大小元件
    9.6 翻譯結果與主畫面同步捲動
    Chapter 10 深色主題模式
    10.1 顏色設定調整
    10.2 夜間模式設定
    10.3 WebView 的夜間模式支援
    Chapter 11 支援多 Activity
    Chapter 12 上架 App 到 F-Droid 平台
    12.1 什麼是 F-Droid
    12.2 發佈 EinkBro 到 F-Droid 的理由
    12.3 如何進行
    Chapter 13 導入 Koin
    13.1 什麼是 Koin
    13.2 為什麼要導入 Koin
    13.3 導入方法
    Chapter 14 同時顯示雙網頁
    14.1 需求來源
    14.2 開發方式
    Chapter 15 自訂字型
    15.1 從系統中選擇字型檔案
    15.2 注入 CSS Font 資訊到 WebView 中
    15.3 攔截 WebRequest 以傳回字型資訊
    Chapter 16 支援 epub 檔案的閱讀
    16.1 分析網路上實作閱讀 epub 檔案的範例
    16.2 重構參考來的程式碼
    Chapter 17 整合 Github Actions
    17.1 利用 Github Actions 編譯 release 版本
    17.2 更方便的下載 Github Action 編譯好的 binary
    Chapter 18 導入 Jetpack Compose
    18.1 導入 Jetpack Compose 的一些想法
    18.2 Compose 快速切換設定的對話框
    18.3 Compose 功能選單
    18.4 Compose 設定畫面的第一層
    18.5 Compose 自製的AutoCompleteTextView
    18.6 改寫工具列前
    18.7 改寫工具列
    18.8 改寫工具列後
    18.9 改寫 PreferenceUI
    Chapter 19 遠端編譯程式碼
    19.1 何謂 mainframer
    19.2 mainframer 的概念
    19.3 舊的 Intel Mac 設定
    19.4 遠端機器(M1 Mac mini) 的設定
    19.5 執行方式
    Chapter 20 多指觸控手勢功能
    20.1 多點觸控手勢偵測
    20.2 縮放畫面時防止誤觸
    Chapter 21 淘汰onActivityResult
    21.1 註冊 ActivityResult
    21.2 呼叫步驟 1 中已經建立好的 ActivityResultLauncher
    Chapter 22 防止追蹤碼
    22.1 找到所需資料
    22.2 呼叫時機
    22.3 Firefox 的實作
    22.4 Brave 的實作
    Chapter 23 SharedPreferences 的再包裝
    23.1 善用 Delegate
    23.2 改善 Toggle 的功能
    Chapter 24 改善文字選取的功能選單
    24.1 自製功能清單
    24.2 改善選取不準確的情況
    Chapter 25 整合 ChatGPT
    25.1 使用外部函式庫進行初步整合
    25.2 支援 stream 的回覆型式


    <作者簡介>

    高茂原 (Daniel Kao)
    從事 Mobile App 開發已有多年的經驗。對於利用科技打造符合自己需求的工具有濃厚的興趣,也很樂意將這些成果與其他有同樣需求的使用者共享。曾經開發過有百萬下載量的 AutoScreenOnOff App,也上架過一款專門用來練習書法的書法加 App,受到亞洲許多使用者的喜愛。EinkBro App 則是近期比較投入開發的作品。隨著功能愈來愈豐富,過程中一篇篇用來記錄開發心得的文章,也催生了這本書。開發之餘,平常喜歡學習外國語言。在 Github 帳號上也實作了許多為學習外語而開發的程式。對於外語學習和程式開發同樣有興趣的讀者,歡迎跟我多多交流。

    iThome鐵人賽獲獎
    2021 Mobile Development 組佳作:
    如何開發適合電子書閱讀器使用的瀏覽器 Android APP

    2022 Mobile Development 組佳作:
    從開發瀏覽器 APP 學習 Android 實戰技巧,並搭上 Jetpack Compose 的列車
購物須知
寄送時間
全台灣24h到貨,遲到提供100元現金積點。全年無休,週末假日照常出貨。例外說明
送貨方式
透過宅配送達。除網頁另有特別標示外,均為常溫配送。
消費者訂購之商品若經配送兩次無法送達,再經本公司以電話與Email均無法聯繫逾三天者,本公司將取消該筆訂單,並且全額退款。
送貨範圍
限台灣本島與離島地區註,部分離島地區包括連江馬祖、綠島、蘭嶼、琉球鄉…等貨件,將送至到岸船公司碼頭,需請收貨人自行至碼頭取貨。注意!收件地址請勿為郵政信箱。
註:離島地區不配送安裝商品、手機門號商品、超大材商品及四機商品。
售後服務
缺掉頁更換新品
執照證號&登錄字號
本公司食品業者登錄字號A-116606102-00000-0
關於退貨
  • PChome24h購物的消費者,都可以依照消費者保護法的規定,享有商品貨到次日起七天猶豫期的權益。(請留意猶豫期非試用期!!)您所退回的商品必須回復原狀(復原至商品到貨時的原始狀態並且保持完整包裝,包括商品本體、配件、贈品、保證書、原廠包裝及所有附隨文件或資料的完整性)。商品一經拆封/啟用保固,將使商品價值減損,您理解本公司將依法收取回復原狀必要之費用(若無法復原,費用將以商品價值損失計算),請先確認商品正確、外觀可接受再行使用,以免影響您的權利,祝您購物順心。
  • 如果您所購買商品是下列特殊商品,請留意下述退貨注意事項:
    1. 易於腐敗之商品、保存期限較短之商品、客製化商品、報紙、期刊、雜誌,依據消費者保護法之規定,於收受商品後將無法享有七天猶豫期之權益且不得辦理退貨。
    2. 影音商品、電腦軟體或個人衛生用品等一經拆封即無法回復原狀的商品,在您還不確定是否要辦理退貨以前,請勿拆封,一經拆封則依消費者保護法之規定,無法享有七天猶豫期之權益且不得辦理退貨。
    3. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,一經您事先同意後始提供者,依消費者保護法之規定,您將無法享有七天猶豫期之權益且不得辦理退貨。
    4. 組合商品於辦理退貨時,應將組合銷售商品一同退貨,若有遺失、毀損或缺件,PChome將可能要求您依照損毀程度負擔回復原狀必要之費用。
  • 若您需辦理退貨,請利用顧客中心「查訂單」或「退訂/退款查詢」的「退訂/退貨」功能填寫申請,我們將於接獲申請之次日起1個工作天內檢視您的退貨要求,檢視完畢後將以E-mail回覆通知您,並將委託本公司指定之宅配公司,在5個工作天內透過電話與您連絡前往取回退貨商品。請您保持電話暢通,並備妥原商品及所有包裝及附件,以便於交付予本公司指定之宅配公司取回(宅配公司僅負責收件,退貨商品仍由特約廠商進行驗收),宅配公司取件後會提供簽收單據給您,請注意留存。
  • 退回商品時,請以本公司或特約廠商寄送商品給您時所使用的外包裝(紙箱或包裝袋),原封包裝後交付給前來取件的宅配公司;如果本公司或特約廠商寄送商品給您時所使用的外包裝(紙箱或包裝袋)已經遺失,請您在商品原廠外盒之外,再以其他適當的包裝盒進行包裝,切勿任由宅配單直接粘貼在商品原廠外盒上或書寫文字。
  • 若因您要求退貨或換貨、或因本公司無法接受您全部或部分之訂單、或因契約解除或失其效力,而需為您辦理退款事宜時,您同意本公司得代您處理發票或折讓單等相關法令所要求之單據,以利本公司為您辦理退款。
  • 本公司收到您所提出的申請後,若經確認無誤,將依消費者保護法之相關規定,返還您已支付之對價(含信用卡交易),退款日當天會再發送E-mail通知函給您。