Google Play 安裝出現 -505 錯誤


當我將專案從 Eclipse 遷移至 Android Studio 並將 application 上線後,發現有小部分的使用者無法安裝。
使用者表示在 Google Play 安裝時會跳出錯誤訊息: 代碼 -505

遇到問題可以先思考兩件事:

  1. 該版更新有更改了什麼?其中又有哪部分可能影響到安裝?
  2. 這些使用者有什麼共通點

才發現是 AndroidManifests.xml 中的 applicationId 出了差錯,導致安裝失敗。
接下來將使用「寄包裹」來進行舉例說明:

使用 ngrok 產生對外網址,讓本地端也能夠分享給其他人


一般開發網頁時,開發者會先建置在自己的電腦上,並透過 localhost:3000 連上網頁或 API,做為測試或是自用小專案。
此時若想將產品讓外網的人也能看見或測試,我們可以使用 ngrok 產生出對外的網址,讓本地端的系統也能讓外部人員使用。
(大家也可以想像成 Google 文件的分享連結)

另外,ngrok 還有個優點是 極度輕量化
想用就用、隨插即用

Docker 環境變數使用筆記


環境變數(Environment variable)是開發時常見用來控制程式行為的方法之一。

近年隨著 Docker 被普遍運用在開發環境之中,如何方便地在 Docker 中使用環境變數就變成必學的課題之一。

本篇介紹幾種 Docker 與 Docker compose 中設定環境變數的方法。

React 教學 - 從零開始的 React 生活 Part 3


React 教學 - 從零開始的 React 生活 Part 2 中,我們學會利用 Webpack 編譯含有 JSX 的 React 專案,讓我們能夠利用 JSX 語法提高開發 React 的效率。

本篇會將 React 教學 - 從零開始的 React 生活 Part 1 中的範例改成 JSX 語法呈現,並且模組化部分組件(components) ,從而達到較高的可維護性。

最後再加上新的外掛 babel/plugin-proposal-class-properties ,讓我們能夠使用 Arrow function 更加簡化 React 程式碼。

使用 Python typing 模組對你的同事好一點


由於 Python 動態型別(執行階段可以任意改變變數的型別)的特性,所以很多時候開發者們都會透過變數的命名讓他人知道該變數的型別,例如:

dicts = [{"key": "value"}, {"key": "values"}]

複數型的 dicts 命名讓其他人在閱讀時能夠大致猜到它可能是個字典(dict)的列表(list)。

但是現代專案不可能經常是如此簡單的結構,有時光從命名仍難以了解是什麼型別的變數,例如:

def get_value(json)
     x = parse(json)
     return x

當我們看到上述函式中的 json 時,就可能會疑惑它是什麼? str? dict? 也由於這種不確定性,所以在除錯甚至協同開發時都需要實際執行才能夠知道該變數到底是什麼型態,在複雜的大型專案中甚至會成為一種痛苦。

這種情況,我們除了用心命名之外,還可以搭配使用 typing 模組來改善!

jq 指令超實用秘訣


談到透過命令列處理 JSON ,直覺就會想到 jq

近來學會利用 jq 指令處理 JSON 資料後透過樣板(template)輸出格式化字串,因此本篇將分享 2 個關於 jq 的實用秘訣:

  • | 運算子(operator)
  • 輸出 jq 結果到 standard output (stdout)
13456722