剛開始要學習 Xamarin.Forms 開發時,一定會想說實作一個簡單的互動程式看看,查了語法敲了一串 <Button WidthRequest="100" HeightRequest="100" Text="I'm Button" />
放上去之後,哇!怎麼 Button 那麼大?
我相信多數人會遭遇跟我一樣問題「怎麼讓 Button 依照我想要的位置去擺放?」
剛開始要學習 Xamarin.Forms 開發時,一定會想說實作一個簡單的互動程式看看,查了語法敲了一串 <Button WidthRequest="100" HeightRequest="100" Text="I'm Button" />
放上去之後,哇!怎麼 Button 那麼大?
我相信多數人會遭遇跟我一樣問題「怎麼讓 Button 依照我想要的位置去擺放?」
Button 要 Enable 或 Disable 除了直接操控 Button 本身的 IsEnabled 屬性之外,也可以藉由綁定的方式綁定一個變數,當變數值異動的時候 Button 的啟用狀態也跟著改變,有用 MVVM 模式在開發 Xamarin App 的朋友相信應該也會習慣先考慮用綁定的方式來操控 UI,但如果 Button 同時有為 IsEnabled 及 Command 提供綁定值,會有一些問題出現。
這個是原生的 Android 的預設設定,只要我們用的 Theme 是 Material 或 API Level 21+ 的預設 Theme,Button 上的 Text 預設就是大寫,但也不是不能改,可以調整一個地方來改變預設值。
Xamarin.Forms 已經有一個內建的 DI Library 叫 DependencyService
,它提供了簡單註冊及解析的方法,如果我們的使用情境並不複雜,DependencyService 就已經能夠滿足我們絕大部分的需求,有需要的時候再考慮去引用像 Unity 或 Autofac 這種能夠提供更彈性的註冊及解析方法的 Library,底下我就用取得 Android 及 iOS 設備平台識別碼的範例來簡單說明 DependencyService 如何使用。
Xamarin.Forms 有很多種 Layouts,其中我先對 RelativeLayout 來進行了解,原因在於 RelativeLayout 標榜的是讓我們可以依照不用的螢幕大小來佈局 UI 控制項,這一點抓住了我的眼睛,我們來看看它要怎麼使用。
上一篇 Xamarin.Forms(Android)接收來自 Firebase Cloud Messaging 的推播通知,當然也要來個 iOS 版本,但是在這個過程當中走了相當多的坎坷路,才知道原來 iOS 模擬器不能模擬東西還不少,為了開發 iOS App 除了買 Mac 用來建置之外,還得買 iPhone 來測試模擬器不能測試的東西,還要為我們的開發者帳號繳至少一年 $99 鎂的費用,著實花了不少錢,說這些都是淚水啊。
剛開始嘗試要用 Xamarin 開發 Android App 的時候,當我打開 Android SDK Manager 要去安裝所需要的相關 Android SDK 套件時...
第一次看到它是在約莫兩年前,觸發了我的選擇恐懼症,於是開始搜尋 Xamarin 的相關教學文章,大都說哪些要勾,沒怎麼對裡面的每個選項多做說明,兩年後想說這樣不求甚解不太行,花了點時間把 Android SDK Manager 裡面的選項查清楚,給有跟我一樣問題的朋友做個參考。
Firebase 目前在 Google 的旗下,是一個支援 iOS、Android、Web 應用程式的後端平台,此篇文章是要利用 Firebase 中的 Cloud Messaging(簡稱 FCM)服務,在 Xamarin.Forms Android 的專案中接收來自 FCM 的推播通知。
某個週末公司某個裝在 Windows Server 上的 Redis 服務掛點,從 Server Log 看到下面這段錯誤:
# Write error saving DB on disk: Invalid argument
# rdbSave failed in qfork: Invalid argument
# fork operation complete
# Background saving error
是在 Redis 做 Snapshot 的時候沒有成功,進而影響到服務的運作,Snapshot 會失敗大概會有幾個原因:
現在我們就來看看是哪一個原因?
程式的生命週期往往比我們想像中的長,通常年紀愈大的程式包袱愈重,後面接手的人肩負的壓力也愈重,如果我們知道有一個字串叫 http://www.xxx.com ,現在因為政策的關係必須改成 https://www.xxx.com ,偏偏 http://www.xxx.com 被到處寫死在資料庫及程式原始碼裡面,除了把寫死的那些找出來改之外,我們還可以怎麼做?