4/28/2017

吃貨挑選app

動機 : 

    總是在吃飯時間煩惱要吃什麼嗎 ?


    在吃飯時間使用此app,以隨機的方式產生出一個店家供挑選,來減少吃飯時的煩惱。


    可立即新增資料至資料庫,方便又快速


APP 介面 :

(進入初始畫面)


(輸入餐廳名稱,並按下確定儲存)
   

(資料已加入資料庫並列出)


(按下確定隨機挑選餐廳)











未來展望 : 
  1. 可加入Google Map定位座標
  2. 評分功能
  3. 在列表部分能增加刪除的功能,不需從資料庫刪除


參考資料 :



簡單計算機APP

      手機在現代人的生活當中已經是不可缺少的東西。對一些人來說,機不離身 ,身不離機,因此希望透過手機來滿足各式各樣的需求。這也表示我們可以將一些簡單的功能整合到手機上,例如:相機、計算機等......。
   
      在這門課當中,我想開發一個計算機APP,雖然這個題目難度不是很高,但是對於Xcode初學者來說,利用做這些簡易的功能來熟悉這個 IDE是我做這個題目的目的。對我而言,比較進階的問題包含兩個負數之間的運算以及小數點的問題。


APP原型圖

簡易播放器 Mini MusicPlayer


主題:簡易播放器 Mini MusicPlayer
功能說明
  • 以表格方式瀏覽音樂曲目
  • 每個音樂都能顯示詳細資訊(演出者、專輯、發行時間、曲目長度)
  • 標記所選的音樂,編入播放清單並播放
  • 利用搜尋列來搜索音樂
  • 可以進行修改詳細資料的動作

原型設計(POP App):


內容介紹:(目前進度)
  • 主頁面:包含開啟、關於與離開選項
  • 關於:含有App的使用說明與相關連結
  • 離開:結束App的動作
  •  開啟:回直接讀取檔案的位置並且提供選擇
  •  音樂:確認檔案位置後,會打開資料夾並且顯示音樂名稱、演出者、專輯與音樂長度
  • 在這裡,包含搜尋音樂、修改音樂資料與播放的功能
  • 搜索音樂:輸入關鍵字可列出相關音樂,並且做一個更新搜索結果的動作
  • 修改資料:提供修改音樂的詳細資訊,例如:音樂名稱、演出者與專輯
  •  播放:選擇音樂後可在視頻播放器裡進行播放
尚未完成的進度:
  • 增加演出者與專輯圖片
  • 將匯入方式更改為選擇資料夾,並自動產生符合的陣列大小(目前為直接匯入音樂)
  • 為視頻播放器增加播放、暫停、快轉與倒轉鍵,以及播放時顯示的專輯圖片
  • 下方增加動作清單,並新增“標記音樂”、”顯示標記的音樂項目“與”播放標記音樂“動作
未來構想:
  • 增加小型動畫(例如:小精靈)並且互動
  • 增加網路搜尋歌詞
  • 增加“另增標記清單”功能,且能為清單更改名稱




簡易地圖製作 ver 1 04/28

google地圖雖然方便 但是在小巷子或是大樓裡這類細微的地方沒辦法引導

所以我app的目的是 用簡單的直線以及地標的標記

讓使用者能快速知道路在哪裡或是向人說明

優點 : 方便 快速的讓人清楚路在哪 比如 : 我可能要知道龜山郵局在哪 他在巷弄裡 我現在可能已經在很接近的地方了 但是卻不了解確切位置 用以前在紙上畫地圖的方法 而這app則是作為紙筆使用 在問路的時候就能快速知道在哪 而且不怕忘記

不用google map 的理由 以及最大的差別 :
1:google map上有很多對於我要去到目的地來說 不必要的資訊 比如 我今天要去迴龍 他其實

只是一條路直直走 然後在貴族世家左轉 再一小段路就到了 而我app只要兩條線 一個字塊寫上

貴族世家就完成了

2:不需要網路就能實現



這是最基礎的功能,其實就只是個簡單的小畫家,但是這樣其實不夠,還要多點功能,不然只是小畫家的應用而已。

於是我想了一些延伸,如果這是只有自己能畫出的地圖,而且需要一些當地人才知道的東西,再加上網路的功能,那就可以做些只有當地人才知道的介紹。

比如,我很喜歡逛的一中街:

像這樣對著商品做著簡單的介紹,讓別人知道有什麼好吃的或是有什麼隱藏的菜單,就跟我很喜歡的這家多多茶坊一樣,這些飲料都是招牌上沒有的,你問老闆還會跟你招牌說多多綠或是珍珠奶茶之類的。

只是這樣的缺點就是你如果不是對當地非常的熟,這個APP的意義就只是離線的地圖而已,如果畫的人沒有藝術天分,真的讓人丈八金剛摸不著頭緒了。

甚至結合iBeacon來告訴使用者這家店有著什麼,或者是店家想要藉著這個來打廣告,比如我在7-11設置一個iBeacon,然後再將店家到我要宣傳的店的路繪製一個小小地圖告訴別人怎麼走,也能達到宣傳的目的。

最當初是看著CC棟的附近有什麼好吃的才想到這樣的功能,既然能畫在紙上,為什麼不試試看畫在手機上呢?那既然在手機上,就不用像用手寫一樣,有著字數或是紙張的限制,攜帶上的不方便或是傳播的不快速。

那,很多事情其實google資料,好吃的東西總會有部落客介紹,那跟這個有什麼差別呢?這個的特點就在個人化以及每個人都能分享,今天即便別人都說他很難吃,或是他真的在很難找很難找的小巷子裡,很想很想讓人知道這家店的特色,那用這個APP就對了,甚至可以告訴別人只有你自己才知道的吃法,像我吃肉燥飯很喜歡加甜辣醬,但是我在銘傳這邊就沒有看到有人這樣吃過,或是我喜歡去的店家明明很便宜又很大碗,但是大家還是喜歡去大臺北諸如此類的,把自己的怎麼吃告訴大家。

ios_語音聽故事書應用程式_iListening

傳統的男主外女主內時代已經逐漸衍生為

雙薪家庭的模式(爸媽都有工作在身,少了陪伴孩子的時光)

許多職業父母 由於都有各自工作生活而使小朋友

無人講故事給他們聽

為了滿足小朋友小時候能夠聽故事的願望

並且讓小朋友能夠藉由語音聆聽故事內容

啟發小朋友自動自發  「以聽代讀」學習

有多數家裡是給爺爺奶奶帶大的

會有隔代教養的問題」  , 

有可能有些老一輩長者(爺爺奶奶、外公外婆)

不識字的問題

小朋友可能在兒時就少了人可以講故事給他們聽

此外

在開車路上,小朋友可以藉由我們這款 App 聆聽故事打發時間

這款語音聆聽說書 應用程式

可以不用長時間用眼睛閱讀 降低眼睛負荷

克服在車上容易暈眩等問題(小時候切身經歷)



原型設計

Created with "Balsamiq Mockups 3"














先存故事語音檔到 類似 dropbox或其他雲端平台

在從應用程式中呼叫特定套件或程式
來調用存在雲端的指定目錄下故事語音檔案


故事語音檔案資料來源:
有伴網:
http://www.youban.com/mp3/



前期  心智圖



http://www.xmind.net/m/TS5f



使用到的iOS元件

´UITextField
´UIButton
´UILabel
´UIActivityIndicatorView --> Loading效果
´UIImageView
´UIView
´UIAlertController
´UIAlertAction
´UIPickerView  --->國家

´UISegmentedControl   --->性別 



目前功能:

1.實踐出註冊登入 (唯一Email驗證機制) 及 密碼密文輸入
2.實踐出跳頁切換 
(UIViewController 到 UIViewController)
(UIViewController 到 UITabBarController)
3.實踐出Firebase雲端空間更新帳戶資料
(DB 建立)
(DB 連結)


最終結果及目前介面
第一階段.
完成六個頁面的
兩個時期的跳換

第一時期 : 註冊/登入
第二十期 : TabBarController 部分



遭遇並克服之問題

´Firebase環境架設遇到長時間設定問題,無法順利架設好pod 及 安裝Firebase
參考link:
RPC failed; curl 56 SSLRead() return error -9806 MiB/s
´面跳轉(UIViewCOntroller UITabBarController)
´註冊/登入的Email唯一機制驗證

´Loading圖示無法放大




Firebase 問題排除過程
http://coolmandiary.blogspot.tw/2017/05/xcodecocoapods-cocoacacao.html






學到的技巧


´技巧1. Closure 語法蜜糖 / trailing closure syntax
Closure可以想做就是 「沒有名字的函數」
長相
: (參數) -> 回傳型態

是一種Closure特別寫法   又有人稱之為Swift Closure Syntax Suger
會尾隨在最後一個參數位置
常被拿來做功能
擴充      比方 第一個動畫結束後過多久再執行下一個指令功能



´技巧2. Timer 過多久再執行
//設定Timer過多少秒後
會根據
selector這個class下方中的goToSecondView函數
Timer.scheduledTimer(timeInterval: 5,
target: self,
selector: 
#selector(self.goToSecondView),
userInfo: nil,
repeats: false)


´技巧3.彈性跳頁寫法 (使用 StoryBoard ID)
func goToSecondView(){
//test1.
會出現黑畫面
//self.present(vc2,animated:true , completion:nil)

//test2.
//refer
link:https://stackoverflow.com/…/240…/swift-presentviewcontroller
let
vc = self.storyboard?.instantiateViewController(withIdentifier: "info2") as! SecondViewController
self.present(vc,animated:true , completion:nil)
}

´技巧4.Firebase註冊 Email唯一驗證機制
´技巧5. 密碼的密文輸入模式設定
´技巧6.元件隱藏之傳值暫存
先將
Label元件拉至介面 做字串傳接的暫存
isHidden屬性 設置為true



//ref link: https://www.appcoda.com/firebase-login-signup/





未來展望 : 
完成第二時期的介面故事選單 可添加父母 / 祖父母  錄音的附加功能 (老師的建議)












銘傳公車通

動機

  自己平日通勤需要進行多次公車轉乘,在轉乘途中時常會需要花許多時間等待。若能夠事先知道所有可以到達目的地的路線選擇中,哪一種組合能使得等待、罰站的時間最少,甚至是能夠經過特定地點,能夠提供我自己更多選擇考量。


介面設計圖
1. 此為進入畫面
(未來可以增加登入、註冊功能,儲存個人紀錄)


2. 主頁面:自訂查詢
(以Google地圖呈現當前位置,選項部分則是在輸入目的地後,列出途中餐廳、旅館、是否趕時間等等因素作為考量依據)


3. 結果顯示
(跑馬燈提示使用者先前做的選擇,底下則分別以地圖及表格顯示站點名稱、預估到達時間等資訊)


目前成果


  成功轉接公車即時資料到 iOS 程式中,並且將其中重要資訊呈現:在上圖中,紅色地標為從統領百貨(圖左)前往銘傳大學(圖右)所經過公車站牌,灰色地標則為回程公車站牌。而 137 路公車則是以綠色地標表示(由於撰寫此文章時,已經晚上 11 點,故沒有車班可顯示)。

  此地圖每五秒更新一次資料,點擊任一站牌將會呈現該站牌資訊:
  1. 某車牌號碼公車
  2. 去程/回程
  3. 將於幾分鐘後到達
  4. 到達時間
  (由於撰寫此文章時,已經晚上 11 點,故上圖僅顯示站牌名稱,以下為站牌部分的程式碼截圖)




尚未完成的部分
  • 程式介面
  • 使用者註冊功能
  • 選項:餐廳、旅館、景點、考量因素(時間、金錢、經過特定地點)


實作中遭遇的困難、一些心得
  • 程式介面:
    • 課堂用書偏向機械式地要求你跟著書中的步驟去做,較不易理解程式碼含義。若了解 Swift 語法再跟著做(比如建立可以滑動的表格),應該會比較有效率。
  • 公車動態資料嫁接:
    • 我自己在尋找可靠的公車動態資料時花了不少時間。
    • 對於「桃園開放資料-公車動態」,政府單位提供的資料欄位解釋與我實際取得到的資料並不完全吻合,解釋得很不清楚(比如:去程回程是以 1, 2 兩數值表示,但是提供的欄位說明沒有提到 1, 2 哪個是去程,哪個是回程)
    • 交通部」所提供的資料才是清楚、正確、完整的。
  • 邏輯部分以外,像是函式庫、介面的程式碼,最好就是知道怎麼用會有想要的效果,在製作上會比較省時,在製作上才會有效率。另外,在製作過程中很有可能會卡住,此時可以透過 stackoverflow 等網路社群找答案。






IOS之消費記錄

主旨

主要功能就是讓自己去記得自己花費多少,在未來上希望除了能有登記台幣之外,也能記錄外幣的消費,後期也希望能增加食衣住行育樂等等的消費分類,能讓自己注意到哪部分的消費較高,或許該調整好用來幫助自己節省一些錢。

設計目的

1.能讓使使用者了解自己的大概消費方向
2.利用該方向去調整支出部分,以利於達成節流的效果

設計原型




(Xcode+swift 進行iOS 開發的點單入手影片教學)

實際設計情況


1.切換畫面問題
2.不同畫面的文字輸入與儲存
3.版本的不同導致swift有些許的不同
4.遇到bug或問題時,能參考的資源有限


心得


1.網路資源不一定能用
2.英文真的很重要

參考資料



https://www.appcoda.com.tw/learnswift/
( iOS 10 App程式設計實力超進化實戰攻略(試閱))


iOS APP Development_手做材料平台

手做材料極多,又分散在不同店家,因此想製作一個能讓各家上傳材料的App,透過照片挑選想要的素材或工具。初步想法為上傳照片,能對照片用標籤分類且能搜尋標籤

4/14/2017

本部落格功能說明

本部落格設計為銘傳資工 iOS APP Development Class 修課同學的期末專案報告繳交部落格。 

文章發表請加註兩個標籤
第一,課程年度: "2017S"
第二,作者學號+姓名: "03369999 李尼歐"。
注意:學號與姓名中間請空一格!

2017S 修課同學

請於第十週上課前,
請先繳交期末專案的題目 (暫定,可隨時修改)
與方向說明 (50個字的簡易說明即可)。

請於第十一週上課前,
請先繳交期末專案的 APP 原型設計。