Just My Life & My Work

Archive for the ‘iOS’ Category

透過 Performance 看優化成果

人總是會不斷地成長,若沒有成長就會感到不開心,是真的吧?🤪

看到自己經營的App有大幅度進步,實在令人振奮!

上次寫了 Firebase Performance 如何使用,也經過了一個多月,可以來見證我優化某功能的成果囉~🥳

廣告
(繼續閱讀…)

[iOS] 使用Vision人臉偵測2 (Face Detection Using Vision)

此刻要記錄實作內容,才想起先前已寫過一篇,不過那篇是沒有原始碼,然而依舊可參考:[iOS] 使用Vision人臉偵測 (Face Detection Using Vision)。😎

這是2020年11月去陽明山二子坪的大合照
廣告
(繼續閱讀…)

[iOS] Flutter 開發 App 初體驗

沒事千萬不要用最新的技術開發要真的上線的軟體,拿來把玩還可以啦~

這次是高中同學求救,因他公司產品是用 Flutter 來開發 App,想必是想要追求又快又狠又準的新技術,但是沒有考量到一些潛在的問題,其實早一點來找我諮詢,就可以避免掉要找我「救火」的狀況囉~

廣告

首先來了解我使用的開發環境與技術規格:

  • MacOS Catalina 10.15.5
  • Flutter 2.0.1

我急忙在短時間內寫好一個功能齊全的 ShopViewController,接著想辦法整合進對方的 Flutter 專案。

我問目前在博弈業的前同事,有無將 Swift 整合進 Flutter 的經驗,結果他跟我說是寫原生 Swift,真是誤會大了。

(繼續閱讀…)

[iOS] WebView User Agent (WebView 用戶代理)

儘管是在寫 App,然而三不五時就會需要內嵌網頁,因為我們實在很懶(是這樣嗎?),不想要再自己重刻一個頁面~😜

廣告

除此之外,做 Web 端的同仁也想知道,這個網頁的執行是來自哪裡,他們通常會從 User Agent (用戶代理) 下手,此時就會請求我把一些資訊塞進 User Agent

這種做法其實相當簡單呢!現在 iOS 可藉由新的 WKWebView 來實現。

(繼續閱讀…)

[iOS] IAP 付款介面

最近在幫人「救火」,開發 IAP 功能,朋友公司高層好奇,IAP 付款介面能否用 Touch ID 或 Face ID,在此我研究了些眉角。😌

什麼是 IAP 呢?全名是 In App Purchase,中文叫應用內購買

這是捷運管家的付款示意圖。
廣告

其實我在2014年已開發過 IAP,時隔多年來到2021年,後台設定項目的介面也改頭換面,感覺上已經比過去好設定。

(繼續閱讀…)

[iOS] Firebase Performance

產品若已經穩定,就可有空閒時間來優化它!Google旗下的Firebase Performance,就成了我們嘗試的目標。

其實早在我進公司第一週,我在把玩公司App時,就發現載入卡片這個產品好慢,實際去追程式碼,發現下載資源檔進行了兩次一模一樣的API呼叫,當時就有跟老闆反應。現在終於可讓上萬人一起來累計數據,再拿給老闆看更有說服力,到時候著手優化此過程,我要來邀功囉~🤡

原本專案就已經有整合Firebase Crashlytics,於是就如此簡單就加入Firebase Performance,執行某行程回傳數據,約莫一天的等待後,數據真的就出現在Firebase後台,真是令人振奮!

廣告
(繼續閱讀…)

[iOS] 判斷兩影像是否相同-檔案大小

上週有嘗試過PHAssetmodificationDate和MD5的Image Hash,來判斷兩影像是否一樣,不過這兩個值不太可靠,因為會有其他因素讓兩個值改變⋯⋯

於是乎,就必須找其他方法替代!這次找到檔案大小,透過PHAssetResourcefileSize,是可以當作影像是否有被修改的指標。為什麼呢?因為影像一旦被處理過,就會再次存檔,此時檔案大小會不一樣~儘管此數值可能會一模一樣,不過機率實在太低,99.999%不會同數值。😎

(繼續閱讀…)

[iOS] 判斷兩影像是否一樣

前一個版本實作判斷相片是否被修改,是拿相片最後修改時間來比較,不過卻發生異常狀況,使得就算用戶沒有修改過相片,還是會跑到有修改過相片的流程,這讓我們家負責客服的同事哀嚎了一下⋯⋯大概讓我們損失好幾萬美元的營收。😳

透過PHAsset拿到相片資料中的modificationDate,也就是相片的最後修改時間,照理說應是沒有問題才是⋯⋯

RGB_gray

RGB各通道的灰階影像。

(繼續閱讀…)

Jenkins 與 Gitlab

記得在偉大的港商上班時,我們有三個iOS開發者,共同開發維護一個產品。此產品歷經1.5年開發,最後沒有上線,產品還直接被停掉。

當時我們每隔一週就要發布一個測試版本,後來主管指示此過程要全面自動化,於是我們帶頭的同事捲起袖子,把Jenkins 與 Gitlab串接起來,成為幾乎自動化的發佈過程!🤠

此圖是我統整所有過程,寫出來的四大部分和五大行為。未來可給大家參考用囉!

香港的同事負責送審,他會指定發佈到「獅子山」這個國家,我還以為他在開玩笑,查詢之後真有這個國家呢!😛

為什麼還沒開發完就要送審?因為我們要確保臨時要上架是沒有問題的!所以送審的頻率一個禮拜一次,而且都只上架到獅子山。

結論

在港商上班最大的收穫之一,是跟香港同事合作,並見識到同年紀的香港CEO和CTO如何處理部屬~😏

技術上的精進比較沒太多可以著墨,因為是產品開發元老的架構為基礎往上開發,離開公司後那些複雜的流程不怎麼好用啦⋯⋯

總之,我還是認為,一個人就能開發App,是最過癮且最有成就感的事啦!💪

標籤雲

%d 位部落客按了讚: