作業-最愛藝文 APP

Chiafishh
海大 SwiftUI iOS / Flutter App 程式設計
5 min readJan 13, 2019

封面:

(1) App 操作的動畫影片

(2) GitHub 連結

https://github.com/chiafishh/Activities

(3) 特製的 App 畫面截圖

(4) 文字說明

此APP有兩個功能,分別是

推薦表演:看之後有什麼文化部推薦的藝文活動表演

撰寫心得:觀看藝文活動後撰寫心得做紀錄

一、點選“推薦表演”

會出現表演清單,點開特定表演後:

1.資訊頁面與“詳細介紹”欄位都會顯示scroll bar一下子,讓使用者知道可以往下滑。

2.如果可以網路索票,即可點開“我要索票”按鈕去索票;如果不可以,按鈕會文字會是“無法索票”,按鈕無法使用。

3.詳細介紹欄位右上方的按鈕(左圖):按下去後,手機會朗讀詳細內容,就不用自己辛苦的觀看大量文字,走路時也可以聽。

開始朗讀之後再按一次按鈕它就會閉嘴,要再朗讀就再點選一次即可。

離開該表演資訊頁面後,它也會閉嘴。

備註:
藝文活動的來源是:文化部網站上的推薦活動,json網址:https://cloud.culture.tw/frontsite/trans/SearchShowAction.do?method=doFindIssueTypeJ

二、點選“撰寫心得”

按右上角“+”即可撰寫心得,撰寫完畢 按右上角“Done”,回到畫面,會動畫冒出剛剛撰寫的新的心得。

把心得標題(活動名稱)往左滑即可刪除該心得文章。

另外

此APP有播放背景音樂。在老師建議之後,害羞的放上自己之前彈鋼琴的錄音,歌曲為 打上花火 https://www.youtube.com/watch?v=-tKVN2mAKRI 。

(5) 重點程式碼講解

1.表演的struct

這是要使用表演的json檔寫的struct。

節目的內容在“Act1”,節目的詳細資訊(時間地點等)在 “Act1”中的 “ShowInfo0”

其他也是老師上課有教程式就不特別放上來了。

2.要錢的表演顯示票價,免費的表演顯示免費

3.有極少數表演沒有詳細資訊(ShowInfo0),可能是json檔案有問題

如果沒有詳細資訊就顯示“無資訊”

4.索票按鈕

可以索票才能使用此按鈕:

點選此按鈕後導向該網頁:

5.朗讀詳細介紹的文字

離開頁面會閉嘴

6.進入畫面冒出scroll bar一下

7.打開此APP就會有背景音樂

要先 import AVFoundation

(6) 作業心得

一開始抓取json檔案一直失敗,參考彼得潘、同學的作品跟上網找原因都還是解決不了,還好問彼得潘後終於解決,才有辦法往下做,感謝彼得潘。

覺得寫這些功能很有趣,雖然在很多地方都卡關很久,但還是很有收穫,希望將來可以寫出有完整功能的APP。

(7) 遇到的問題和錯誤

原本一直沒辦法讓它閉嘴(else 中 stopSpeaking),後來知道是因為我把這兩行宣告

“var speechUtterance = AVSpeechUtterance()

let synthesizer = AVSpeechSynthesizer()”

放在function中,這樣每次synthesizer都獨立運行,等於是我叫他閉嘴(stopSpeaking)但是它聽不到。
後來把這兩行宣告移出來此speackPressed fuction(依然在class中),每一次運作synthesizer才都是對同一個synthesizer,它才會知道我要它閉嘴。

--

--