Just My Life & My Work

Archive for the ‘技術’ Category

SDK 和 NDK 差別

最近經手 Android App,面臨一些基本知識技術,必要從最基本的定義了解起⋯⋯😎

此篇來了解 SDK 和 NDK 差別,同場上映 JNI。

(繼續閱讀…)

Socket 原理與流程

平常 App 串 API 就是使用 Restful 的方式,現在想要在 App 取得即時資訊,一個較為可靠的做法是 Socket。應用例如我常用的通訊 App,Line、Messenger、Wechat、Telegram等。

首先來看 Socket 流程圖~

透過上面圖片可以了解,服務器端先初始化 Socket,然後與端口綁定 (bind),對端口進行監聽 (listen),調用接受 (accept) 阻塞,等待客戶端連接。

在這時如果有個客戶端初始化一個 Socket,然後連接服務器 (connect),如果連接成功,這時客戶端與服務器端的連接就建立了。

客戶端發送數據 (send) 請求,服務器端接收 (recv) 請求並處理請求,然後把回應數據發送 (send) 給客戶端,客戶端讀取 (recv) 數據,最後連接關閉 (close),一次完整互動結束。

(繼續閱讀…)

[圖解] Flutter 的流行趨勢及特色

觀察一件事情的流行趨勢,可以從比較與其相關的項目著手,而以 Flutter 的角色來看,React Native 會是相當重要的對手。我特地到 Google Trend 比較 Flutter 和 React Native 搜尋熱度的趨勢變化,時間從 Flutter 最初被釋出的時刻 2017 年開始。

可以見到以下趨勢圖變化,Flutter 在 2019 年開始逐漸超越 React Native,看來 Flutter 是後來居上,一直到了 2021 年~我非常期待之後的變化。🤩

2021 年上半年,我因緣際會要協助一個 Flutter 專案,橋接 iOS 原生語言的 In App Purchase 功能,才接觸 Flutter 相關知識內容。到了下半年,更有公司專案負責人,找我協助在 Flutter 專案上新增功能,於是我更有機會實際使用 Flutter 來開發 App。

(繼續閱讀…)

[圖解] 編譯 vs 直譯

公司有Web和App產品,每次帶新人都會提到這兩者,怎麼讓新人幾句話就能聽懂,這考驗我的功力!🤠

一直覺得自己說得不夠精確,兩者之間的差異為何?看來還是得複習一下,甚至用圖解來比較編譯和直譯

果真一張圖勝過千言萬語!

(繼續閱讀…)

Instagram API 審核

每個一段時間,串接的第三方套件就整個大改,特別是非常大的服務如Facebook、Instagram、Google等平台,會提醒你在半年或一年不等的時間內盡快更新,舊有的SDK或API即將棄用不支援,這時候你不得不接受這突如其來的「指令」,畢竟我們所需要的服務都被他們一手掌握,賭氣不用的話很快死翹翹XD~

(繼續閱讀…)

Facebook Pixel Event (臉書像素事件)

Facebook Pixel是什麼?簡單來說就好比行銷界一直在用的Google Analytics,只不過這次主角換Facebook做!透過臉書做行銷效果不會輸給谷歌,畢竟台灣大多數會上網的人,都會上臉書來跟親友互動,甚至連接到範疇廣泛的粉絲團或社團。

現在很多網站都會埋臉書像素,要怎麼知道呢?只要在Chrome上安裝外掛即可Facebook Pixel Helper,它會出現在瀏覽器的右上方,我就能知道臉書像素正在記錄我的操作行為:P~

(繼續閱讀…)

第一次換胎就上手

睽違半年(上次是6/7騎福隆礁溪),終於有空閒去騎公路車,居然出發前15分鐘,發現前輪破胎!!!

昨晚才把輪胎充飽氣,沒發覺輪胎有異狀,心想若牽去四號公園捷安特也要花半小時,於是忍痛在Line上取消行程,就很可惜沒跟上這一團呀~

(繼續閱讀…)

[圖解] 技術債 (Technical Debt)

最近陸續有新人來公司報到,我跟一位很年輕成功轉型工程師的同事(原本是教小學生課輔,網路看影片自學寫程式)聊週末去哪玩,他提到自己想要還技術債 (Technical Debt),我以為他要改前人留下來的專案,他說因為很多技術還沒有熟悉,所以想要更用功在鑽研技術上。

突然我想到小英總統2018年底變成辣台妹,因為人家說她「撿到槍」。原本的意思是貶義,拿到不屬於自己的東西(也就是贓物),就說那是撿來的。對於小英勇敢回應強勢的對岸,就變成褒義,表示拿到神級武器,可以從挨打的份逆轉成反擊!不過扯遠啦XD~

後來他表明不曉得技術債真實意義,我便簡單解釋,因為急著要完工,難免會以不周全的寫法完成程式功能,之後若要增修專案,就會面臨之前的「遺毒」。下圖可以明白技術債的陰影面積XD~

製圖的作者很神奇,使用我非常喜歡的動畫獵人拿酷戮的念能力可以來做解釋,胖娃隨著時間債會越滾越大,最後破產就會讓敵人無法使用念能力。若拿來比喻軟體工程,技術債若隨著時間累積,到一定的程度使人難以再做增修,此時專案就要宣告「打掉重練」!

要快又要好,實在不是很容易!除非專案只是一次性,若要長期維護的話,還是要有品質地實作呀~

想起先前分享的文章:設計師的心聲專案的三個要素

註:拿酷戮的念能力「天上不知唯我獨損」(推測是放出系的念獸)另外十分擅長於逃跑。「天上不知唯我獨損」是將念借給對方並以複利計算的高利貸,由胖娃娃「波克里林」計算,在借貸內攻防皆不會受到傷害,借貸額數超過對方念的最大值就會破產,「討債魔」出現強制對方進入絕的狀態30天。

參考:Scrum Estimation-Scrum Estimation Model獵人WiKi – 拿酷戮•拜因有效面對技術債專案中的隱形殺手:技術債

FOTA (Firmware Over-the-Air)

最近持續在跟韌體「戰鬥」,其中一個功能就是要透過App來讓藍芽硬體中的韌體更新,那麼要怎麼做呢?

FOTA (Firmware Over-the-Air).png

目前有兩種做法:

  1. 藍芽裝置連結電腦來更新韌體
  2. 透過網路將韌體傳輸至藍芽裝置

第一種做法對使用者來說很煩瑣,所以在此不討論!

第二種就對使用者非常友善,因為使用者只要從網路下載更新程式,再透過藍芽傳輸到硬體,就能完成更新韌體的目標!

(繼續閱讀…)

Swift 第4版本

Swift已經升級到第4版本,我還是沒認真在寫Swift 4,主要是因為它還不太穩定,這幾年必須多花時間去改寫語法到最新版本,於是在有限的開發時間下,我依然對相對穩定的Objective C情有獨鍾XD~

舉一個例子,當我要使用Open Source ChartsXcode會偵測是否相容,否則就無法編譯成功,如圖:

Swift 第4版本.png

好在只要選擇到Swift 4,就能成功編譯!也感謝超好用的圖表開源Charts作者,願意每次Swift升級就改寫語法,造福我們成千上萬的iOS開發者

怎麼在Objective C中使用Swift Open Source?可參考文章:在Objective C專案使用Swift第三方套件

標籤雲

%d 位部落客按了讚: