MF99 coding 💻

keep learning; keep coding;

android app

ME-App:我的履歷 App

終於能來寫這篇了~ 最近在工作轉換期的空擋。之前自己一直很想寫一些東西,一來當作個人作品,二來也可以練習一些之前一直想玩,但是工作上沒用到的一些東西。 所以最近剛好有時間了,就來安排一下~ Play Store 已上架完成 play.google.com 要做一個 App,…

MVVM 經驗分享

關於 MVVM 的基本概念,可以回顧一下上一篇 這篇直接就我之前工作上的一個實際案例,分享一下我們當初使用 MVVM 建構這個產品的一些經驗

MVVM 概念篇

當一個應用開發的越來越大,越來越複雜的時候 除了開發團隊人員會越來越多之外,開發新功能,修正 Bug 的複雜度通常也是呈現指數成長 如何在產品持續營運/擴張的情況下,讓產品本身的代碼有著高度的可讀性,可維護性。 這時候第一步,通常就會搬出祖傳的 MVC…

App 內建 VPN/DNS service

Android 其實提供了 VPN 服務,讓 App 可以在需要時在用戶同意的情況下開啟 VPN 服務

SMS 簡訊自動攔截/解析

OTP 驗證越來越常見後,與其讓用戶收到訊息後還要去查看簡訊,然後把簡訊中的驗證碼記住或是複製,再回到你的 App 做輸入。 不如自動擷取簡訊,然後把驗證碼自動幫用戶帶入對應的欄位。

使用 Android Studio 中的 Build variants (productFlavors)

Android Studio 真的是越玩越好玩~ 之前開始研究了一些 build.gradle 裡面的基本功能,像是設定、修改 default config 等。 但是有時候常常在實務開發上,同時可能會需要 build 好幾個不同版本,最簡單的就是 debug / release 版本,或是有連接 Server 的應…

使用 Widevine DRM

隨著 Android 越來越普及, DRM 的需求也越來越大。 所以 Google 原生支援的 Widevine DRM 的使用率也越來越高。 這邊就稍微記錄一下如果要播放 Widevine 影片的話,要怎麼取得 Widevine DRM 的 access right 以及如何播放。

如何在 Log 中印出 Call stack

這邊提供一個最近學到的小技巧,有時候常常需要在 Trace code 的時候打印 Log 來追蹤變數的變化、或是 function 的 call flow。 但是有時候常常除了知道某個 function 被 call 的時候送進來的參數以外,還想要知道到底是 「誰」 Call 的。 像是這樣: D/Debu…

Android ANR 的 debug 方法

在做 Android Application 或是整合 system 的時候,常常會遇到的兩種問題就是 Crash 跟 ANR (Application-No-Response) Crash 通常很好解,只要透過 logcat 並尋找 AndroidRuntime 這個tag 就可以看到明確 crash 的 call stack,並找出發生 Exception 的…