🏆 Quiz Time 🏆 攻略

Moonshine 
Sep 9, 2018 · 7 min read

假設你已經過前六篇的心法磨練
接下來
讓我們來逐步解析一下這個Quiz App的實際做法


Step1:新增文件

☞ 如果需要函式庫格式,就選擇Cocoa touch Class
☞ 如果只是要建立型別,可以選擇空白的swift file

在這個Quiz實作中我們需要各一種
放心地加進來專案吧~

宣告問題集的型別內容

也別忘記把剛剛新加的viewController歸位


Step2:版面規劃

開始設計storyboard的版面嚕~

這邊似乎各有流派
有的傾向直接用程式碼寫
有的是喜歡用視覺開發

學到目前為止
我習慣用紙筆先畫個草稿
有個視覺大概框架看一下整體感覺有沒有和諧
按鈕觸發後在哪裡呈現會有比較連貫
才會進到Xcode裡面實作
(實際在Xcode操作時很可能已經先小改一次版型跟素材了)

Storyboard目前功能已經很完整了
相信未來只會是越來越完整、越來越多元
但有些細節部分還是會寫在程式碼去微調
畢竟身為一位工程師
這才是大家見真章的地方吧~
雖然我認識的純血工程師還不多
大家習慣是寫在程式碼部分去規劃畫面風格
而有設計背景的前端工程師則似乎傾向在Storyboard完成
各有戲法高妙不同就是。

也可能是因為我天生容易分心的個性
有的時候
版面焦點太多反而感受很破碎
所以向來不喜歡太多跳動刺激的版面
版面也就相對簡單雅潔的多。


Step3:基本畫面

首先拉選outlet & action
再來準備問題集內容

viewDidLoad的地方增加畫面條件
有時候雖然一開始想寫但試過之後沒有增加畫面好感度
我就會暫時註解起來
像一個隱形斗篷,以後想用的時候把它取消註解就好
有時候也會寫多個功能來測試
也是會用一樣的註解方式留在程式碼裡
或許哪天就派上用場也不可知~(很大可能是囤積症患者)


Step4:來寫Action & 功能嚕~

拆解來看
其實功能很簡單
粗分為三大區塊:選項Segmented \ 答案 Answer Button \ 下一題問題Next Button


1.選項 Segmented

其實原本一開始的版本是沒有給選項的版本
就是單純一題一題秀問題⇒答案⇒問題⇒答案

我大概是做到5.0版才改為有選項
也為此才加入Segmented元件
面對需求萬變的職場生態跟老闆心情
相信辛苦工程師們改版次數應不下我數倍

不過聰明如你
一定猜到我想幹嘛了吧~

沒錯!
我想用Segmented的index特性來給我數字!

可別小看Apple原廠出品的基本元件
在我這種菜鳥眼中已是極品功能了
而且這數字可好用嚕~
因為我已鐵了心打算不久的未來
一定會貪心不足蛇吞象地加入計分功能
也可用這組數字來判斷答案的對錯。


2.答案 Answer Button

用基本的if else語法下去比對questions array的內容
☞第二步則加入比對正確則加分的語法
永遠都好好用的print功能隨時幫你把結果印出來


3.下一題問題 Next Button

☞一樣用if else語法
☞此處要特別注意題數問題
像我特定題數為8題,所以當第8題跑完
要記得設計不一樣的狀態讓user可以分別出來
同時我在此處寫入問答的計分結果
針對不同的分數級距,有不同的結果內容顯現
如果有機會拿來做簡單的機智問答互動或心測小遊戲
想必也是十分趣味性的


Step5:優化畫面跟音效

通常我都把動畫跟音效放在最後優化進app
畢竟跑不起來的東西
加動畫跟音效只是加心酸的
還是趕快找出紅字警示內容debug比較重要rrrrr

最後的最後
跑起來吧~~~


以前作業真的都是趕鴨子上架
雖然沒有硬性規定一定何時要交
隨著上課頻率,若自己能理解當週上課內容
都希望當週可以實作作品出來驗證理論
但如人品不好遇上卡關
可能就要拖到兩週才能產出作品

現在回頭去看看當時所謂千辛萬苦的實作
根本就是…….算了不忍說QQ
其實就是淺淺地感受一下介面基本功能
畫面跟程式碼之間的關聯性還有元件互動
而且有個大概的印象之後
就立刻又馬不停蹄地往下一章節奔去
畢竟要學的東西是這樣包山包海地多
還包括各式各樣沒見過的新出的視覺花招
甚至是Apple每隔幾個月就更新逼死人的新玩意兒跟語法
這行業根本就是整死自己的行業吧!

但當自己花時間沉浸在程式碼的純粹邏輯世界裡
一邊感受到純理性的推理演繹跟腦內角力
一邊又感受到程式碼的強大威力
霎時即心悅誠服在這些邏輯符號群裡

想來這些我們稱之為" 工程師 "的人們
是不是也是像我現在這樣地百感交集呢?

目前主要針對單一題型、一練再練地深入題型之後
才慢慢更深一層地了解語法的用法
未來的目標是希望能看到畫面就想到怎麼寫後面的程式碼
而且還要寫得簡單!寫得漂亮!

路還很長
就當馬拉松一樣來跑吧~

還是感謝有遇上好老師Peter!
在舉目無親、孤助無援又不知道怎麼開始這條學習長路的時候
有人能拉一把真的是無限感動的
更感謝他願意在我很菜的時候
能回答我種種怪問題
也願意看newbie錯誤百出、連字都拼錯的比火星文還可怕之程式碼
讓我能走過每隔三天就浮出放棄念頭的菜鳥養成期

也歡迎大家留言給我
跟我講哪裡還可以寫得更好

謝謝所有看過而且願意留言提供幫助的人
你們的溫暖也加強我前進的動力
希望有天能跟強者你們做同事~

Moon 沐

IOS / Swift / Xcode

Moonshine 

Written by

On the way to iOS Developer. moonshinelucky1@gmail.com

Moon 沐

Moon 沐

IOS / Swift / Xcode

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade