Swift Practice # 144 SwiftUI 分母王出遊結帳小工具上架核准

Dogpa Chen
Apr 6, 2022

--

前一篇自己走過一篇Google Admob的功能,初次體會插入廣告的方式,相信廣告功能的世界還是很大很多可以學習的地方。

而這篇要來分享自己上架的一個小工具,也算是第一次透過SwiftUI完成上架的小作品,順便練習所謂的MVVM架構將邏輯寫在ViewModel內。

作品App Store連結:

開發緣由:

一直以來每次出遊的時候都會遇到一個小問題,就是當一群人出去玩的時候,總是會有些人因為一些原因事先墊付費用,可能是油錢、機票錢、住宿費等等的費用。加上墊付的金額與先幫忙出錢的人可能都不盡相同。

以下是我們可能常見的情況:

情境A:

一行六個人的台南糖國之旅

小華先出了住宿費6888元

大明先代墊了高鐵費用8400元

小惠出了旅程所有的餐費9543元

小石出了租機車的費用1400

情境A在不計算結果的情況下我們可以大致得知大明跟小惠應該是出了超過總金額平均數的錢,應該是要收回出的錢與總金額平均數的差異。小石應該是要補繳總金額平均數的差異,剩餘兩個還沒出到費用的人就是要付總金額平均數的旅費。

情境B:

一行五個人的日本賞櫻之旅

小智先出了機票錢58000元

小霞先出了住宿費以及旅程的餐費57000元

情境B可以看到有三個人要支付總金額平均數的錢,小智跟小霞應該是要收回各自先出金額與總金額平均數的差異。

通常解決上面金額計算流程為

1 就是各自提交各自出錢的金額

2 計算先出錢的人所提交的金額進行加總取得總金額

3 總金額除總人數取得平均數,若有人尚未出錢需要支付的金額就是總金額

4 總金額減去每個人有先出錢的人先出錢的金額,來看多退少補

通常在計算金額時我們可能需要花上一些時間來計算這些金額與每個人實際結果,剛好自己以前也很常遇到這樣的狀況。所以試著想透過一個App來快速計算這個稍微複雜情況的結果,於是乎就完成了這一個小App。

App命名來由:

剛好幾天前跟朋友在討論一些畫面的排版,思考著App名稱要叫什麼的時候,就隨口說出了一句「分母王啊誰出最多就是分母王」,這個奇妙名稱就完成了。而且還要求說要給先出最多錢的人分母王這個稱號,以致加了一個皇冠來使用。

使用版本:

因透過SwiftUI來開發,加上TextField的功能需要在iOS15上來使用,所以iOS 15以下的朋友們就先說聲抱歉了XD。

功能介紹:

紅框:

1 設定總共幾個人參加

2 設定有幾個人先出了錢

藍框:

1 先出錢的人可以輸入姓名(綠色TextField)

2 先出錢的人輸入先出錢的金額(藍色TextField)

3 顯示先出錢的人出的錢與總平均的差異多退少補

橘框:

1 全部出錢的總金額(藍框內每個先出的錢加總)

2 其餘沒出錢的人的要分擔的總平均,若出錢人數與參加人數一樣則不顯示。

綠框:

輸入完成後會出現(請看下圖)分享結果,會提供字串讓使用者複製文字轉貼到社群平台或通訊軟體,其他人就能知道結果,不管是有出錢的還是沒出錢的。

上圖的Gif可以看到分享結果的狀態,計算結果已經知道能夠更快速地分享出去才能更快速地結束算錢的過程。

之前陸陸續續思考這個作品的一些功能與邏輯並透過連假期間把這個作品完成。

--

--

Dogpa Chen
Dogpa Chen

Written by Dogpa Chen

Smile Coding / iOS轉職路ING

No responses yet