Jeremy Huang

Welcome to my blog

【Flutter】iOS混搭Flutter
Flutter

【Flutter】iOS混搭Flutter

打從 Swift 出來之前(等等,明明是個 Android 工程師,怎麼跑來弄 Swift 呢?),就有許多的跨平台方案被提了出來,PhoneGap、Xamarin,等等的(完全暴露年紀),原先對這些方案都抱持著嗤之以鼻的態度,畢竟效能低落、開發成本也沒有比較低,對於雙平台還需各別處理一些東西,能省下的工其實也沒多少。直到最近碰上了 Flutter... 雖然說 Flutter 也不能解決所有跨平台的問題,但至少對於畫出雙平台一致的畫面,產生一樣的使用者經驗還是可以的,並且擁有豐富的套件庫,很多效果基本上不用自己硬寫,找一下套件修改一下就可以直接使用了。 這篇主要講的是如何把寫好的 Flutter 專案整合進 iOS 專案裡面,讓兩者可以交互使用,所以會先假設大家的環境都已配置完成,並有一個以可以執行的 Flutter 專案。那麼,就開始吧! #方案選擇根據 Flutter 官網,要將 Flutter 整合進 iOS 專案裡面有三種選擇

【JavaScript】實作前端錄音功能
JavaScript

【JavaScript】實作前端錄音功能

這次客戶有個需求需要做即時語音辨識,這個現在其實要做到很容易,像是 Google 、 Azure 都有提供相關的服務,而且整包 SDK 寫好給你,只要呼叫函式就可以使用了。但這次客戶要配合的語音辨識服務,僅提供 API 使用,沒有整包 SDK 可以用,而且僅支援 pcm-16,16kHz 格式的音訊,所以得自己從麥克風接音訊進來、轉檔、發送後端並取回資料。今天這篇就來講講要怎麼在前端透過 WebRTC 來取得麥克風音訊及處理的過程。 #取得麥克風音訊首先我們得先確定使用者用的瀏覽器有沒有支援 WebRTC ,若有才可以繼續進行後續動作,否則可能就得請使用者換個瀏覽器了。 if (navigator.mediaDevices) { console.log('getUserMedia supported.'); } else { console.log('getUserMedia not supported on your browser!'); }檢測瀏覽器是否支援

【.Net Core】將應用部署至Docker上
.Net Core

【.Net Core】將應用部署至Docker上

.Net Core的橫空出世,讓.Net擺脫以往只能在Windows系統上執行的情況,如今不論是Windows、Linux甚至是Mac上都可以執行,但當實際開發完成要進行部署後,才發現又是一個麻煩的開始,好加在他也支援部署到Docker上執行。 本文實作環境如下: Visual Studio Mac Version.Net Core 3.1Docker on Synology NAS#建立 Dockerfile在 Visual Studio 內對專案目錄點擊右鍵,選擇新增,會看到新增 Docker 支援。點選之後,IDE 會自動產出 Dockerfile 出來。 FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base WORKDIR /app EXPOSE 80

【Android】 MVVM實作 - 使用ViewModel, LiveData, DataBinding
Android

【Android】 MVVM實作 - 使用ViewModel, LiveData, DataBinding

今天要利用Youbike場站資訊的OpenData來練習MVVM的架構,主要功能就是每30秒去抓一次資料然後顯示出來。這邊會拆分成幾個步驟來做,首先會先把資料的部分處理好,也就是Call API的部分;再來會實作LiveData及DataBinding的功能,那就來看看該怎麼做吧! 資料來源這次使用的是由台北市政府提供的「YouBike臺北市公共自行車即時資訊」 API名稱:YouBike臺北市公共自行車即時資訊 API網址:https://tcgbusfs.blob.core.windows.net/blobyoubike/YouBikeTP.json 引入套件由於會使用到KAPT(Kotlin的Annotation Processing),DataBinding,anko,recyclerView及lambda的寫法,所以需要對Gradle檔案做些修改。 KAPTapply plugin: 'kotlin-kapt' android { kapt { generateStubs = true } } dependencies { implementation 'androidx.activity:activity-ktx:1.1.0' }build.gradleDataBindingandroid { dataBinding { enabled true } } dependencies

【Android】 MVC, MVP, MVVM 到底是什麼 -  Android開發為例 ?
Android

【Android】 MVC, MVP, MVVM 到底是什麼 - Android開發為例 ?

從開始寫程式以來,雖然會自己把 Activity, Database 之類的用不同的資料夾來區分,也沒在管什麼MVC, MVP更不用講今天要提到的MVVM。但隨著Android Jetpack的推出,提供一些好用的方法來實現MVVM架構,這邊就來釐清一下到底什麼是MVC, MVP, MVVM。 設計架構MVC (Model / View / Controller)MVC架構中,把程式分成了三個層級: M:Model - 負責處理與資料相關的事情,包括取得資料、儲存資料等等。V:View - 如字面上所示,就是與介面相關的東西。C:Controller - 介於View及Model之間的橋樑,接收來自View的事件,去操控Model的資料。Android 中的 MVC在Android的世界中可以將Layout的XML視為View,data class視為Model,而Activity或Fragment則是Controller。 這樣的架構看似很完美,但其實執行起來有他的困難點,首先View上元件的操控通常會寫在Activity或Fragment當中,導致Activity或Fragment需同時負責View及Controller的事情,當介面越複雜、要處理的邏輯越多時,Activity或Fragment的程式碼就會變得又臭又長。 MVP (Model / View / Presenter)