Category Archives: 開發記錄

[iOS][緊急] 旅行計算機 V1.1 在 iPad 上的崩潰問題

旅行計算機 iOS 版本在日前迎來了 V1.1 的更新,針對此次更新會再另外撰寫一篇文章好好分享一下有哪些重點更新項目。

這一篇主要是要跟眾多遇到崩潰問題的 iPad 使用者說明一下目前的處理狀況以及可以怎麼閃掉這個問題。

根據後台的崩潰資料分析,這個崩潰的主因是在 iPad 為橫向設置時啟動 App 導致。因為這次更新有改動支援 Dark Mode 的部分,用了一個比較少碰到的事件來處理 Dark Mode 切換時的顏色變動,在那一段程式碼裡面,如果剛好是 iPad + 橫向的時候就會遇到這個問題。

目前預計這一週會送出一個 V1.1.1 版本給 Apple Review,直接解掉這問題,更新之後就不會再讓 App Crash (崩潰)了。

如果來得及,會順便把取消 TAX & TIP 循環顯示的選項做上去,之前有看到評論的回饋說要給一個選項可以控制是否要那樣顯示,所以這部分也會一併考量做上去。如果來不及,V1.1.1 就是專門上這個 iPad 問題的解決版,V1.1.2 再放那個選項進去。

在這邊跟 iPad 的使用者說聲抱歉,如果還有遇到 Crash 的狀況,請在直排的狀態下開啟 App 即可避免這個問題。開啟之後 App 有鎖住直排顯示,所以只要可以開得起來,就可以無阻礙的一路使用下去。

若有任何其他問題或者建議也歡迎來信: ericlin@tomosware.com

願平安與諸君同在!

匯率換算良伴,旅行計算機下載:https://itunes.apple.com/us/app/travelcalc/id981048257

用 adb 快速抓 Android App 畫面

從事 Android App 開發的獨立開發者,常常會需要使用螢幕截圖來進行說明或者一些其他的用途,特別是撰寫介紹文章以及 App 說明文的時候,有沒有圖片的支援,對於終端使用者的方便度來說是差很大的,俗謂「一圖解千言」不是沒有道理。例如日前寫的「如何使用旅行計算機 app」就使用了不少圖片來說明,一張張慢慢截圖的話大概要花整整一天。

三張截圖才能組成一張說明圖
類似這樣一張說明圖,需要三張畫面截圖

關鍵來了,實際操作過的話,就會知道要把圖片從手機上或者模擬器上面截下來然後送到自己的電腦上,是一件有點麻煩的事情。要先在手機或者模擬器上操作螢幕截圖,然後到相簿裡面把截圖透過 Mail 或者其他方式轉給自己的帳號,再到電腦上從那些 Mail 或者 Line 帳號將圖給存下來,進一步拿來運用。通常這樣做完一輪,就是拿到一張圖,面對一篇文章裡面說明動作動輒十來個的圖片需求,一篇文章寫完大概就已經累掛,沒啥力氣繼續寫 Code。

插個話,因為我的開發環境是在 Macbook Pro 上,所以環境都是以 macOS 為主,如果到 Windows 上,就需要把 Shell Script 改寫為 Bat 檔,或者啟用 Windows 10 的 Linux Subsystem 機制,才能夠 run。Linux 的話,應該就沒有這個困擾。adb 的指令參數應該都一樣,如果有不一樣的,再查一下版本差異改一下對應的指令就可以。需要的話可以參考一下 adb command

針對截圖問題,有沒有方便好用的方法可以快速處理呢?

有的,今天就分享一個簡單的 Shell Script ,可以快速的對目前螢幕上的圖進行擷取,然後一氣呵成完成把圖送到自己電腦桌面上的動作,免去上面那些繁瑣的步驟。

先來看 Shell Script: ( Bash 說明可以參考一下鳥哥的介紹 )

#!/bin/bash

filename=$1

TARGET="/sdcard/$filename"

adb shell screencap -p $TARGET
adb pull $TARGET
adb shell rm $TARGET

# 最後一步,把檔案 mv 到 Desktop 去
mv $filename ~/Desktop/

接著來說明一下。

一開始先收參數,也就是想要存檔的檔名。第一個參數就會被列為是最終要存起來的檔名。然後那個 TARGET=… 的那一行,是等一下截圖過程當中會需要用到的目錄路徑,這個路徑是在模擬器上或者真實手機上都可以使用的,下命令截圖完畢的圖檔,就會先放到這邊。

接著連續三行呼叫 adb 做事。

adb shell screencap ,就是最重要的,把圖截下來,目前畫面上是什麼圖,就原封不動把它抓下來,可以在做完需要的示範之後,停在那邊,然後下命令擷取。

adb pull ,則是把手機或者是模擬器上的檔案從裡面「拖」出來到電腦上,具體來說就是剛剛的截圖命令把圖片存起來到內部的 /sdcard 目錄下,pull 則是把這個檔案從裡面再拿出來到電腦上。

adb shell rm ,這一行就是把截完圖的檔案砍掉,因為已經拖到電腦上了,所以就可以直接砍掉,免得 /sdcard 底下越來越多檔案,吃掉空間。

最後一步,為了方便作業,直接把剛剛弄出來的圖片檔案,搬到 Desktop 去,這樣就可以直接在桌面看到剛剛截出來的圖片,進而進行編輯或者上傳出去完成文章編寫。

每次需要截圖,就是呼叫這個 Shell Script ,後面加上想要的檔名,就可以在桌面看見那個檔案出現,內容則是目前手機或者是模擬器的畫面,有沒有很方便?

生命,就該浪費在美好的事物上!快速截圖,可以幫您省下時間,多陪陪家人、多寫點程式,都比在那邊跟繁瑣的步驟搏鬥來得有趣多了。

分享這個快速截圖的小撇步,希望能幫大家節省更多時間。

Happy Coding !

[Android]匯率計算機 1.3.7 當機問題請再更新一次即可

10/9 上版的「匯率計算機」1.3.7 版本,在發布之後,有使用者反映會出現當機問題,特徵是在開啟 App 之後就閃退,沒有其他的症狀。

經過初步調查與確認,這問題是由於這一版採用了某一套解析 Json 物件函式庫最新版本所導致,這個版本的函式庫會在 Android API Level 26 以下的手機上出現類似的狀況,原因是找不到所需要的檔案,因此導致載入失敗。

已知這問題會在 API 26,也就是 Android 8.0 以前的版本出現,Android 8.0 以後的版本不會受影響。

目前採取的對策是直接把函式庫的版本改回原本穩定的版本(果然最新不一定最好),然後版本名稱不變(1.3.7),版號往前推動一格上一次版。

因此有遇到此狀況的人,可以等「匯率計算機」再次出現可以更新的時候,按下更新一次,就可以使用原本穩定版本的函式庫所建立的新版。

造成大家的困擾再次深深感到抱歉,之後類似的情況會更嚴謹一些,盡可能不要選用最新版本的函式庫,避免一些不必要的問題。

若是還有遇到其他問題,可以透過 Email: ericlin@tomosware.com 跟我反應。

感謝大家。

[Android] 台灣匯率計算機 V1.0.6 上線

在幾過一陣子的調整與修改之後,新版本今天終於推上去 Google Play。

新的版本號碼是 V1.0.6,前一個版本是 V1.0.5,因為改動的部分不是很大,所以版本號碼就小小推進一格。ICON 也根據新版的 Android ICON 規範重新設計過一次,主要是拿掉透明圖層,然後讓圖案可以滿版。這樣 Google Play Store 在顯示的時候也會比較順。

這一次主要的改動如下:

版本 1.0.6:

  1. 全面更新網路通訊協定為 https,提升安全層級
  2. 修正 TIP 按鈕的行為,改為跟 Tax 按鈕一樣,重複按下去會循環顯示數值
  3. 改變貨幣別的圈圈顏色,在一般畫面的時候可以更明顯的辨別與選擇
  4. 上下交換/Tax/Tip/Off 的按鈕都加上按下去會變動背景色的效果,更容易識別有無按到
  5. 更新一次 App 的 ICON 符合新版 Android 規範
  6. 因應日本十月開始消費稅變為 10%,預設的稅率改為 10%
  7. 其他小問題修正

其中的 https 升級我個人覺得還滿重要的,雖然只是一個小動作,但是可以保護所有的資料來往免於被窺探,對於重視隱私的人來說比較有安全感,至少我就是。

另外一個比較不同的改動是讓 TIP (小費) 的按鈕行為對齊 TAX 的做法,也就是數值會根據當前狀態循環顯示。第一次按下去的時候,會顯示加上小費的總數值,按鈕數字變為紅色;第二次按下去,數值會顯示為增加的小費,按鈕數字變為黃色;第三次按下去,就會回到原來的數值,同時按鈕數字恢復為正常的白色。

這個是為了在真正使用時可以更加方便,有時候想要單獨查看增加了多少錢,而不是總數,可是又希望可以保留住原來的數值,這時候這個功能就可以派上用場,只要重複持續按下去,就可以看到想要看的數字,最終還是會回到原本的數字。

然後因應日本十月一日把消費稅上調到 10% (沒事調什麼稅率嘛,這樣去日本消費又要變貴),所以直接把預設的稅率調整為 10% 了,這樣第一次安裝的朋友就可以直接看到稅率是 10%,不用再自己調整。我想目前台灣出國去玩的目的地應該日本還是佔大宗,所以就做了這個小小的調整。

原本中間四種匯率型態轉換的圈圈,也被我把顏色調整為比較醒目的狀態了。原本顯示是黑色的圈圈,這樣在選擇的時候不清楚,調整完之後(有變大與調顏色),變得比較醒目一些,在需要的時候也可以快速按到自己想要的匯率別,買進賣出的調整會更快速。

新版本上了,期望可以給大家更好的使用體驗,有任何需要改進的地方,可以直接留言或者寫 Email 來喔: ericlin@tomosware.com,能回答的一定竭誠為您解答。

預祝有要出國的大家旅途愉快啊!

[Android]如何改變 radio button 的顏色

今天修改 Code 遇到這個小狀況,順手做個紀錄,免得之後忘記。

Android 裡面的 Radio Button 在很多場合都會用到,特別是需要互斥選項挑一個的時候。原本如果採用 Default 的 Style 設計,應該會跟著系統的設定一起走,狀況就出在,我希望文字顏色跟 Radio Button 的顏色可以分開來設定,這樣就會有比較明顯的效果,稍微試了下,沒有試到滿意的結果。

於是就發揮了 StackOverflow 工程師的精神,找了一下解法,原來解法很簡單。

提供答案的連結在此:change-circle-color-of-radio-button

關鍵在於,要替 radio button 加上 android:buttonTint 的屬性,指定自己想要的顏色,這樣他在 Layout 的時候,就會依據指定的顏色顯示上去。

<RadioButton android:buttonTint="@color/radio_color" />

效果就是想要的,Radio Button 依據指定的顏色顯示:

就是這麼簡單。

感謝強大的 StackOverflow 再一次拯救了世界。

網站全面更新支援 https 瀏覽

經過一陣子的努力與往返測試之後,終於可以讓整個網站以 https 運作了。之後如果發現沒有綠色鎖頭,請把網址改為 https 開頭,然後再重新載入一次即可。

還是要感謝 LetsEncrypt 提供的 Certificates 運作機制,不然光是每年要付出去的認證取得費用大概就不得了了,遑論要讓這個站可以支援 SSL,那樣的話就不曉得要等到何年何月才可以看到綠色鎖頭飄揚在網址列。

目前所有的內容都有在 SSL 的保護之下了,所以原則上你所看到的每一頁應該都會是有綠色鎖頭保護中,如果發現那個鎖頭破掉了,還請不吝寫信跟小弟我說一下,或者留言也可以。這種情況有可能是因為之前上傳的圖片網址還沒有改為 https 的狀態,修正即可把綠色鎖頭回復過來。

感恩 LetsEncrypt,讚嘆 LetsEncrypt

如果有遇到 https 設定困難的,可以留言或者寄信給我,能幫得上忙的我就盡量幫忙,畢竟當中有一些小地方沒突破就是沒辦法。我的 server 是用 nginx,作業系統是 Linux Ubuntu 18.04。