extern “C" 的作用為何?
有時候在寫 C/C++ 程式,引用了某些 Library,編譯會出現錯誤,後來查找原因
FFmpeg 編譯: undefined reference to ‘av_frame_alloc()’
原來該 Library 是以純 C 寫的,需要以 extern "C"來讓編譯器識別。
看來我真的對 C/C++ 不熟呢~😜
(繼續閱讀…)
有時候在寫 C/C++ 程式,引用了某些 Library,編譯會出現錯誤,後來查找原因
FFmpeg 編譯: undefined reference to ‘av_frame_alloc()’
原來該 Library 是以純 C 寫的,需要以 extern "C"來讓編譯器識別。
看來我真的對 C/C++ 不熟呢~😜
(繼續閱讀…)最近有個任務是寫回調函式 (Callback Function)。在寫 App 已經用過類似的機制,被包裝得相當容易使用。這次就來實現比較底層的作法。

在日常生活中,回調函式就像一個「代理人」。當你需要某人幫忙做一件事情,但你自己又不能做的時候,你就可以請一個「代理人」來幫你。
例如,你想去一個地方,但你不知道路。你可以請一個朋友來幫你帶路。在這個例子中,你的朋友就是你的「代理人」。
在程式設計中,回調函式也是一樣。當你需要某個函式在完成某些工作後通知你,但你自己又不能做的時候,你可以使用回調函式。
例如,你想下載一個文件。你可以使用一個函式來下載文件,並在下載完成後通知你。在這個例子中,下載文件的函式就是你的「代理人」。
以下是一些日常生活中的回調函式的例子:
在這些例子中,服務生、商家和銀行都扮演著「代理人」的角色。他們在完成某些工作後通知你。
(繼續閱讀…)Git 版本控制是軟體開發非常重要的工具,而 git 指令有非常多妙用,可根據自身需求來使用。其中 git merge 和 git rebase 差異會是我想要了解的地方。因為有同事和老闆(會寫程式)比較偏好 git rebase 來合併分支,讓我覺得有必要了解其原因。🤔

我個人喜好將複雜的技術簡單化,所以若能有圖解的方式來呈現,肯定會讓我學習的更輕鬆愉快。
每隔一段時間,我會想回顧我正在使用的技能,是否能有優化的空間。Git 指令是我平常開發時,一定會用到的版本控制工具。

網頁已有的功能,想要完整移植到 App,可以怎麼做呢?刻一個原生的,會是個較佳的選項,因為使用者體驗可以很棒!然而就是得花時間去實現。🤪
我們想到可以在 App 載入網頁檔案,省去從頭刻畫面的時間,再來實現 WebView 與 App 互動的部分。

善用運算符號,可以減少寫些程式碼。在使用之前,必須了解它是怎麼運作,之後就能得心應手囉~
我目前只會 IF ELSE 來使用問號運算符,趁這時候多學點語法糖,讓我可少寫幾行程式碼,也可達到些成就感。🙃
Flutter 是以 Dart 程式語言來運行,線上可以直接測試程式碼:https://dartpad.dartlang.org/
(繼續閱讀…)最近公司採用 Flutter 框架來開發 iOS Android App,所以有必要做全面性的學習。
看到這一張學習 Flutter 路線圖 (Flutter Roadmap),讓我十萬分興奮,因為我想要全部都學習!🤪
不過時間有限,想必得有策略式地逐步學習,進而掌握最關鍵且最實用的開發技術。

現在製作 App,很多時候需要嵌入 WebView,如此能快速開發與更新。既然 App 與 Web 互動頻繁,那麼就需要來了解如何讓 WKWebView 與 Native 互通資料。

多年前我也有寫過 Objective C與Javascript的溝通,然而那時還能使用 UIWebView,現在已經被棄用,所以我們就直接使用 WKWebView 吧!
(繼續閱讀…)夥伴們正如火如荼趕上線,我也趕緊利用開發閒置的時間,進行 Jenkins 建置 CI/CD 流程。
此流程對於大型團隊相當有助益,不過就算是一人團隊,若產品專案需要每隔一段時間釋出給他人測試,有持續部署機制就會節省許多時間!
早在 2018 年,我香港團隊就實施 Jenkins CI/CD 流程,我們 iOS 和 Android 團隊各有四個工程師,有此持續整合迭代流程,就可以很順暢地進行開發~😀
(繼續閱讀…)
HappyMan・迴響