Translate

顯示具有 Swift 標籤的文章。 顯示所有文章
顯示具有 Swift 標籤的文章。 顯示所有文章

2018年6月9日 星期六

Prototype Pattern (原型模式) in Swift


我把原文寫在 Medium 了。

連結放這邊

點我

這是我看了 Pro Design Patter in Swift 後的心得,所以裡面的文脈都是繼承自書裡面的內容。
這可以算是讀書心得。

2018年5月19日 星期六

WWDC 2018 網路預測大整理

每年的 WWDC 對開發者而言,都像是個強檔電影一樣,在那個日期前,有許多的猜測都會出籠。今年的 WWDC 會在 6 月 4 日開始,持續到 6 月 8 日,為期五天,地點會在 San Jose 的 McEnery 會議中心。不過,在倒數的前幾個禮拜,我們可以先來看看現在在網路上的預測有哪些。

我在 Medium 上寫了一篇文章,收錄了其他人寫的預測文

請點擊這裡!!!

2018年2月6日 星期二

歌曲知識王更新到 V2.2.0

「歌曲知識王」更新到 V2.2.0 囉

更新內容:
.UI bugs fix
.iPad 版本更新

目前 iPad 的 UI 還沒修改到最完美的境界,但現在開始,你已經可以從 iPad 上的 App Store 上直接下載囉。

↓下載連結
https://itunes.apple.com/tw/app/id1273605195






2017年10月28日 星期六

歌曲知識王更新到 V1.1.9 了

進入 App Store 下載

App Store 連結:
https://itunes.apple.com/tw/app/id1273605195


V1.1.9 更新內容:
針對 iPhoneX 做 UI 的優化
同時,結算頁還可以重聽一次題目

 這是遊戲的 Demo 影片,
             



現在有的題庫分別是 華語歌曲、台語歌曲、粵語歌曲、以及世界排名歌曲。

預計未來會增加各種特色曲目的題庫。

有興趣的人可以下載來看看唷。

中文版粉絲團:
https://www.facebook.com/%E6%AD%8C%E6%9B%B2%E7%9F%A5%E8%AD%98%E7%8E%8B-1778810945751055/

英文版粉絲團:
https://www.facebook.com/KingOfSongQuiz/

2017年9月23日 星期六

一個 typo ,讓整個 database 混亂了

分享一個開發時候沒注意到的小事,最後導致了 database 裡面資料混亂的事。

https://goo.gl/G3MSjg

 連結是「歌曲知識王」,一個自製的 iOS App 遊戲。

 當初在設定做使用者的資料結構時,在某一項 key 值中多打了一個 e。

可是另一頁的同樣資料,他 key 值卻沒有打錯。

2017年9月15日 星期五

iOS 遊戲 App - 猜歌之王 King of Song Quiz

這是一個猜歌的 App

進入 App Store 下載

App Store 連結:
https://itunes.apple.com/tw/app/id1273605195

螢幕截圖:

他是個猜歌遊戲

現在是 v1.1.6

有在看這個版的朋友,麻煩廣一下

玩法很簡單,選擇題庫後,倒數三秒開始猜歌

每一首歌都有30秒內的試聽曲

在愈短時間內猜出,得分愈高

現在有的題庫分別是 華語歌曲、台語歌曲、粵語歌曲、以及世界排名歌曲。

預計未來會增加各種特色曲目的題庫。

有興趣的人可以下載來看看唷。

中文版粉絲團:
https://www.facebook.com/%E6%AD%8C%E6%9B%B2%E7%9F%A5%E8%AD%98%E7%8E%8B-1778810945751055/

英文版粉絲團:
https://www.facebook.com/KingOfSongQuiz/





2017年4月12日 星期三

Swift & xcode 學習歷程 part5 - 各種線上資源

Swift & xcode 學習歷程 part5 - 各種線上資源
1> 如果沒有靈感的話,可以去  coacoacontrols.com 去找,他連圖案都有,而且有附上GitHub連結。如果看到喜歡的,就去 GitHub 上,直接參考別人的程式碼怎麼寫。

2> 另一個教學網站, raywnderlich.com/
這個也可以,他有各種教學,也有各種 UI/UX 排版,動畫,特效。

3> xcode 原生支援 GitHub, svn. 在Xcode一打開的選項裡面,就可以找版控的。

4> 有各種模板,最簡單的當然就是 single view。

4-a> Master-Detail application. 這種 app,就像 mail,點左邊,右邊出現內文或細項。

4-b> Page-Based app: 就像 iphone 的主畫面。有多頁

4-c> Tabbed app: 就像 fb 那一樣,最下面會有一排 「 tab」 他有各種不同的畫面

4-d> Message App: 針對 iMessage.

2017年4月6日 星期四

Swift & Xcode 學習歷程 - Part 4 做出計算機的 model

Swift & Xcode 學習歷程 - Part 4 做出計算機的 model

1> 新建一個新的 swift 檔案,這個檔案就是 model。因為 lec 1 的內容,是把 sqrt 寫在 controller 裡面,pi 也寫在 controller 裡面。如果依照 MVC 的原則,運算符號的功能應該要切開比較好。

2> 新建的swift檔,並不需要 UIKit,只要 import Foundation,因為這個檔是 UI in dependent。

3> 在這個運算 model 裡面,是不用 class 的,這裡用 struct。

4> struct 並不是 ref type。 但 class 是 ref type。另一重點, struct 不用 initialize,這個是自動處理的。

2017年4月5日 星期三

Swift & Xcode 學習歷程 - Part 3 MVC

Swift & Xcode 學習歷程 - Part 3 MVC

講師建議所有的 iOS 都要使用 MVC 架構,即所謂的 Model, View, Controller。之所以分這些陣營,就是希望 app 在內部傳遞各種訊號的時候,團隊的各開發者仍然可以清楚他們之間的溝通管道。

1> Controller 可以直接送訊息給 model,沒有任何限制。 Controller 送訊息給 view 也沒有任何限制。

2> Model 和 view 之間是不能互相送訊息的。這類的訊息傳遞是不行直接發生的。

3> View 如果要送訊息給 Controller,如果是一個 UIBotton,可以想成是有一個 target 在 controller 裡, view 的動作就是直接射到那個 target。 而 ScrollView 則是一種「同步」的概念,裡面的資料則是用 delegate 的方式,讓 view 的資訊和 controller 同步。

4> view 是不擁有任何資料的,他只能 show 資料,這些資料都不寫在 view 的 class 裡面。舉例來說,如果你的 iPod 裡面有一千首歌曲,你要做個 list,而存放一份資料在 library 裡面,又一份放在 view 的 class 裡面,你就會有兩份資料。這不儘儘是效率的問題,而是這樣的設計概念是不好的。

5> 而 view 拿取資料的方式,則是用 data source 的方式,回去要求 controller 給資料。他也不一定一次要拿1000首歌曲的資料,也可以一次只要求10 首歌曲,如果使用者要後面的歌曲,則是之後再request 一次歌曲資料。

6> model 是 UI independent  的,所以他並不直接傳遞訊息給 controller。他用的是「廣播」的方式,而 controller 則是接收到訊號後,才會知道 model 有被更動過。


7> 這三個陣營是壁累分明的,因為這一套溝通系統一混亂 ,裡面所有的class 的溝通會全部亂成一團,這會讓其他成員相當難維護 code。

2017年4月4日 星期二

Swift & Xcode 學習歷程 - Part 2 先做一個 single view app

Swift & Xcode 學習歷程 - Part 2 先做一個 single view app

在台大資訊系統訓練班開始之前,看到資策會有開一個 ios app 的介紹課程,心寫來潮就報名了。講課的老師是一個常常出 iOS書的老師,現在常常接家教。

以下是節錄上課的內容。

1>  app 的 icon,可以放兩張圖,大小要放到 60 pt。

2> 做一個 single view app,可以單純用 view 來拉。而圖層的概念可以和 powerpoint 的圖層是相同的邏輯。

3> 左方的檔案列表中,可以看到圖層上下關係,也可以在這邊調整圖層。

4> 這一堂課,只有3小時,所以我們唯一能完成的 app ,就是完全不寫 code 在裡面的 app。

5> 不寫code app 是真的做得到的,而據講師所說,他為了教學試範,還真的嘗試上架這樣的 app,而且還真的上架成功。

6> 一個頁面,就是一個 viewController 去控制,如果你想要多加下一個畫面,就是加一個 viewController. 

7> 在 viewController 裡面,有一個 init 的選項,這個選項,決定了當使用者點進你的 app,一開始到底秀了什麼東西給使用者。當你所有的 viewController都沒有 init,那使用者點進去 app,就會是一片黑暗。

8> 一個任何 code 都不用寫的 app,最簡單就是介紹 xx 的app,而要讓使用者按下後能切換頁面。一開始先用 imageViewer 把圖案塞進去,然後再放一個隱形的 Button 在圖案上面。然後再用神奇的拉線 Segue 把這一頁連接到下一頁,這樣,你就能不寫任何一行 code ,就做出 app。

9> 另一種內建的換頁方式,就叫做  Navigator bar。最基本的款示就是  iOS 的 Setting 設定。他的想法就是一頁進來後,會蓋在上面那一頁,然後按「返回」,上面那一頁就會拿掉,回到前一頁。


2017年4月2日 星期日

Swift & Xcode 學習歷程 - Part 1 初探 Xcode 與 Swift

Swift & Xcode 學習歷程 - Part 1 初探 Xcode 與 Swift

在 Stanford CS193 的課程裡面,Michel Deiman 會把整個 iOS 分成四塊,但他在課程中有到,因為課程的時間,是不可能上完所有的,甚致連上完兩塊都有問題,所以,他會把教學的時間教放在 Cocoa Touch 那一塊。

從底層到表層,分別表列如下。

Core OS: 這一部分很底層,所以並不會教。

Core Service: 這一部分也是很靠近底層,所以也不教。

Media: 大部分使用者的應用都在這,影像、照片、聲音的應用都在這一塊,但這堂課沒時間講這一層的應用。

Cocoa Touch: Multi couch, Map kit, Camera。這些應用是這一系列課程主要會說的東西。


而這堂課程會用到的

工具: Xcode8
語言: swift
framework: Foundation, UI kit
Design strategy: MVC 

而最最重要的,就是 Design strategy 一定一定要用 MVC。因為你不用 MVC 最後,只會讓你的 app mess up。



— 開始做計算機 —

每一次的第一堂課, Michel Deliman 都會快速的做出一個計算機的app給大家看。因為他製作的速度真的太快了,所以大家會看得很有意思。不過同時,他在講話的同時,手是不會慢下來的,所以建議各位有雙螢幕的話,還是另外開一個視窗,或是用另一個裝置去看影片吧。

這一點,我倒是蠻佩服現場的學生,因為當你在現場的時候,是不可能喊一聲「時間暫停」,然後老師就定格了,你的大腦、耳朵、手,都必須邊看邊學,才有可能跟上 Michel Deliman 的節奏。

Swift & Xcode 學習歷程 - Part 0 前言

Swift & Xcode 學習歷程 - Part 0

好久沒用 blog 了,接下來,會有一系列的文章,去紀錄自己學習 Swift 和Xcode 的歷程。而這一系列的文章,只是單純的紀錄自己的學習狀況,並不會有教學。如果是想切磋 Swift 的朋友,歡迎來信。

我自己使用的教材,是 Stanford 的 CS193,這一堂課的教授,使用的英文並不難,非常好理解。

而所謂的 part 並不是一天一天的紀錄,在一開始的時候,雖然想把每天學習的狀況都記下來,但後來發現,這樣的開發紀錄方式,並不適合用在「程式語言」上面。所以,我決定把學習的紀錄,用一個一個不同的階段,當我自己往前進了一些,然後完成了一個小的 project,我就會紀錄下來,自己會了什麼。

希望在半年後,或是一年後,我可以很有自信的說,我會了 Swift。

寫於 2017.04.02

Lin, Marvin