作業-最愛藝文 APP
封面:
(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,它才會知道我要它閉嘴。