1.IOS領域課程
一.Human Interface
直翻就是人機介面,雖然已經就是偏向UI/UX的設計,但既然是學習APPLE封閉的生態系,就要遵守APPLE的APP風格設計規範,不然做出來連上架都無法。
我自己是電商客服轉職過來,電商平台APP的操作反饋從來沒少過,在資訊時代出生的我們,稍微熟悉一下各家些微不同的操作方式都不是問題,但有些不見得是老年人,也會抱怨操作不直覺(最好會讀心,然後全自動Zzz),其實每個人對於按鈕位置應該在哪以及按下去有哪些反饋的預設立場都還是不同, 因為每個人常用的APP不同,就會以之前操作經驗去預設,所以APPLE將生態系內的 APP訂定同一個規範,也能讓 APPLE 產品使用者體驗中都能“直覺上的順暢”
二.Lottie
Lottie是個第三方插件,可以讓我們輕鬆將動畫檔案插入程式碼控制播放與顯示。
-
Lotie上也有已經設計好的動畫,下載後,存入Xcode
-
簡單程式碼即可操作動畫
三.DispatchQueue
多執行緒被告知是對工程師來講最難過的坎其中一項,看完整週教學簡報跟影片,在細部上的差異真的很難去釐清。看了幾篇文章, 先節錄部分講解清楚的部分,再附上自己的想法先記錄下來:
Process 之下其他 Thread 之間是怎麼安排”執行任務的順序”?
Concurrency:
-
CPU 會在 Thread 或 Process 之間切來切去。
-
因此,Concurrency 表示任務進入 Thread 內的順序等於開始執行的順序,但不一定等於任務的結束順序。也就是說, Concurrency 代表的是同時“處理”多個任務。要注意喔!是同時“處理”多個任務,不是同時“執行”多個任務,同時執行多個任務的是 Parallelism。
Serial:
-
而 Serial 相反,Thread Blocking 的時候,CPU 會繼續在那邊等待,直到任務返回結果。因此,在 Serial 的情況下,任務進入 Thread 內的順序等於開始執行的順序,也等於任務的結束順序。
Asynchronous 和 Synchronous 探討的是 Process 上的 Thread 執行各個任務的開始執行時間點。
Synchronous:
-
任務的類型是:在執行中,沒得到結果前不會返回結果。
-
Process 上的 Tread 內會有多個任務,在執行各任務的過程中,如果需要等待 A 任務完成並返回結果,才能繼續執行 B 任務,則叫做 Synchronous。
Asynchronous:
-
任務的類型是:一旦被執行,就立即返回結果,接著在任務內的工作完成後,會再通知 Thread。
-
如果不需要等待 A 任務完成並返回結果,就繼續下去執行 B 任務,則叫做 Asynchronous。也就是說 A 任務先開始執行,接著換 B 任務開始執行,但是 A 任務和 B 任務哪個先完成是不一定的。
在我的理解:
處理與執行不同,處理就像工程發包,已發包工程(已處理)但沒工人做工(沒執行)
-
所以Concurrency會依照順序讓所有任務同時去處理(發包)但會先執行第一個(讓工人開始做工),如果此工程沒材料在等的時候,讓同一批工人去下一個任務(下一個已發包工程)
-
都是同一個Thread(同一批工人做工)
-
-
而Serial就是處理一個任務並執行此任務,任務結束才去下一個任務,任務執行要等,就會一直等…
-
都是同一個Thread
-
當Concurrency配Async
-
同時處理任務(全部發包),每個任務都執行
-
多個Thread(很多批工人)
-
當Concurrency配Sync
-
同時處理任務(全部發包),但只依順序執行任務,完成才去下一個
-
都是同一個Thread
-
跟單獨只有Concurrency幾乎一樣
-
當Serial搭配上Async時
-
只依順序處理任務,也只依順序執行任務,但因為Async會馬上返回結果,所以任務會被依順序馬上被發包,且全部馬上返回結果(如可以),如需執行的(需要工人做工:需要計算)會依照順序執行
-
都是同一個Thread
當Serial搭配上Sync時
-
只依順序處理任務,也只依順序執行任務,且要等執行完才會有返回結果
-
都是同一個Thread
-
跟單獨只有Serial幾乎一樣
四.期末專題提案
和過往APP產品分析不一樣的是,我們要自己想出一個目前尚未滿足的需求,設計解決方式,作為期末專題的作品。
以下是我自己的提案,詳細請看 HackMD
-
目標客群:
-
經常使用咖啡廳為工作或讀書環境
-
視覺系
-
氣氛至上
-
喜歡嚐新,有多嘗試不同風格店家的習慣
-
-
解決什麼樣的需求:市面相關網站,地圖搜尋,APP都是以文字地圖、圖表、列表顯示為基礎,查詢店家環境風格照片的步驟麻煩
-
解決的方式:以圖片視覺為主的呈現方式(例如:instagram,pinterest)