Stark Wong 的個人開發網站
 


 此頁面:更新於 2019 年 5 月 2 日 12 時 04 分 09 秒,頁面處理需時 0.0009 秒
 網站內容版權所有(C)Stark Wong。頁面(不包括檔案)可自由連結。網站系統版本 1.90-AngularJSBase (2015/9/27)
 
網站地圖

Notice: Undefined variable: row in /var/www/html/blog.inc.php on line 22
流動巴士版圖 NG iOS 版更新及新軟件開發失敗通告

這次更新的主題有兩個,第一是久違了的流動巴士版圖 NG iOS 版本終於迎來更新 (也很可能是最後一個更新)。本來這個更新是打算在四月當舊網頁托管商無法進行外送要求時發佈的,不過因為後來發現 iOS 的 CFNetworking 可自動處理網址轉向而取消了。直到現在由於 iOS13 發佈日期漸近,而我的 MacBook Air 無法安裝 MacOS 10.14 及 Xcode 12 (試過用 Mod 強制安裝但系統運行速度太慢而換回 10.13),所以趁蘋果未強制開發者使用 iOS 13 SDK 時先把程式更新會比較好。這次版本更新的內容包括:

  • 所有 UI 配置更新至支援 iPhone X
  • 套用 Firebase Remote Config (與 Android 相同),以支援基於伺服器設定的資料庫更新及程式版本更新通知
  • 其他第三方程式庫更新
  • 移除所有 WatchOS 相關的程式碼

在更新流動巴士版圖 NG iOS 版本後,下一個更新將會是舊版流動巴士版圖的功能更新至跟 NG 版接近。

-----

另一件事就是我本來打算發佈一個新的小工具,用來自動接收天文台天氣警告的推送 (因為我不太滿意天文台官方程式的背景耗電),可惜因為天文台公開 API 的各種問題,目前處於壽終正寢(撤回?)的狀態,如何處理尚未清楚。

首先說一下程式功能:

  • 當接收到天文台發出天氣警告時,會自動推送警告訊息予訂閱該類警告的用戶
  • 警告訊息的語言及類型訂閱完全以主題方式儲存於 FCM,我方伺服器完全不需要儲存任何資料 (包括 Push Token)
  • 當天文台取消警告時,會自動以取消訊息取代已推送的警告訊息
  • 當天文台的警告消息時,已推送而沒有手動抹去的訊息會自動消失

 

然後說一下開發時序:

  • 2019/6/13: 開始在 opendata.gov.hk 搜尋過去的天氣警告 xml 以取得各種資料變化
  • 2019/6/17: 完成伺服器端開發 (php7 + cron job) 並放在 AWS 上試行,然後開始 Android (Kotlin) 客戶端開發
  • 2019/6/21: Android 客戶端基本開發完成 (使用無伺服器式透過主題選擇性推送),開始內部測試
  • 2019/6/25: 發現推送訊息偶爾出現空白中文訊息,開始進行調查
  • 2019/7/4: 調查結論 - 天文台中文 xml 會出現空白檔案情況,暫時修改伺服器端以英文資料顯示
  • 2019/7/21: 發現天文台在六月底發佈了 JSON 版本的 API 且有參考文檔,即時決定轉用 JSON API
  • 2019/7/22: 再次以 JSON API 進行內部測試
  • 2019/7/27: 準備提交程式予 Play Store
  • 2019/7/28: 發現 JSON API 後並沒有推送取消通知,開始進行調查
  • 2019/7/31: 發現某些警告 (例如 WFIRE 火災危險警告) 的警告欄位名稱與參考文檔不符 (實際上應是 type 而不是 name),修改後繼續試行
  • 2019/8/8: 再次發現空白警告名稱,開始進行調查
  • 2019/8/11: 調查結論 - 天文台中文 JSON 會缺少應有警告資料 (*1)
  • 2019/8/12: 確定 JSON API 並不會顯示取消的警告 (與參考文檔第 8 頁 actionCode 所示不符) (*2)
  • 2019/8/13: 決定暫停開發

 

請問天文台可以專業一些麼? 簡直失望。

(*1) 於 2019/8/8 20:53:01 取得的資料

英文:
{"WHOT":{"name":"Very Hot Weather Warning","code":"WHOT","actionCode":"REISSUE","issueTime":"2019-08-07T12:40:00+08:00","updateTime":"2019-08-08T16:20:00+08:00"},"WTS":{"name":"Thunderstorm Warning","code":"WTS","actionCode":"ISSUE","issueTime":"2019-08-08T20:50:00+08:00","expireTime":"2019-08-08T22:00:00+08:00","updateTime":"2019-08-08T20:50:00+08:00"}}
中文:
{"WHOT":{"name":"酷熱天氣警告","code":"WHOT","actionCode":"REISSUE","issueTime":"2019-08-07T12:40:00+08:00","updateTime":"2019-08-08T16:20:00+08:00"}}

(*2) 於 2019/8/12 18:03:02 取得的資料

XML:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="style_uc.xsl" type="text/xsl"?>
    <rss version="2.0">
        <channel>
            <title>天氣警告一覽</title>
            <description>由香港天文台提供的天氣警告一覽</description>
            <link>http://www.weather.gov.hk/textonly/warning/warnc.htm</link>
            <language>zh-tw</language>
            <webMaster>[email protected]</webMaster>
            <copyright>本檔案的內容,包括但不限於所有文本、平面圖像、圖畫、圖片、照片以及數據或其他資料的匯編,均受版權保障。香港特別行政區政府是本檔案內所有版權作品的擁有人。</copyright>
            <pubDate>Mon, 12 Aug 2019 18:01:09 +0800</pubDate>
            <image>
                <title>香港天文台</title>
                <url>http://rss.weather.gov.hk/img/logo_dblue.gif</url>
                <width>333</width>
                <height>65</height>
            </image>
            <item>
                <title><![CDATA[取消酷熱天氣警告 (18:00 HKT 12/08/2019) ]]></title>
                <link>http://www.weather.gov.hk/textonly/warning/warnc.htm</link>
                <description><![CDATA[酷熱天氣警告在18時00分取消( 2019年8月12日 )。 <br/><br/>]]></description>
                <author>香港天文台</author>
                <pubDate>Mon, 12 Aug 2019 18:00:00 +0800</pubDate>
                <guid isPermaLink="false">http://rss.weather.gov.hk/rss/201908121800/取消酷熱天氣警告</guid>
            </item>
            <item>
                <title><![CDATA[發出雷暴警告 (15:50 HKT 12/08/2019) ]]></title>
                <link>http://www.weather.gov.hk/textonly/warning/warnc.htm</link>
                <description><![CDATA[雷暴警告在15時50分發出( 2019年8月12日 )。 <br/><br/>]]></description>
                <author>香港天文台</author>
                <pubDate>Mon, 12 Aug 2019 15:50:00 +0800</pubDate>
                <guid isPermaLink="false">http://rss.weather.gov.hk/rss/201908121550/發出雷暴警告</guid>
            </item>
        </channel>
    </rss>

JSON:
{"WTS":{"name":"Thunderstorm Warning","code":"WTS","actionCode":"EXTEND","issueTime":"2019-08-12T15:50:00+08:00","expireTime":"2019-08-12T19:00:00+08:00","updateTime":"2019-08-12T17:00:00+08:00"}}


撰寫於:2019/8/26 23:45:59 / 回應已關閉
正在讀取回響內容...
其他內容請回到主頁