本文是構(gòu)建 iOS 界面系列的第1部分,它解決了如何在沒有原生編程經(jīng)驗(yàn)的情況下實(shí)現(xiàn)iOS設(shè)計(jì)的方法和原因,這對(duì)Web設(shè)計(jì)人員和開發(fā)人員來說是完美的。
為Web設(shè)計(jì)教會(huì)了我們?cè)O(shè)計(jì)師編寫HTML / CSS的價(jià)值,以及它在提高整體工作質(zhì)量方面的作用。 在現(xiàn)代網(wǎng)頁設(shè)計(jì)過程中,涉及靜態(tài)模型和數(shù)百兆分片資產(chǎn)的瀑布工作流程早已不復(fù)存在。
不幸的是,對(duì)于移動(dòng)設(shè)計(jì)來說也是一樣。 大量的設(shè)計(jì)者發(fā)現(xiàn)Xcode令人望而生畏,他們更傾向于使用其他工具來設(shè)計(jì)原型,然后交給開發(fā)者來實(shí)現(xiàn)。 平臺(tái)制造商和開發(fā)商沒有把這個(gè)任務(wù)變得更容易。 文檔和工具都是以開發(fā)人員為中心的,而社區(qū)普遍認(rèn)為UI編程是開發(fā)人員工作的一部分。 現(xiàn)在是時(shí)候改變這一點(diǎn)。
Xcode? Swift? UIKit? Oh My!
當(dāng)我和設(shè)計(jì)師學(xué)習(xí)iOS的時(shí)候,我聽到的最常見的問題是“我從哪里開始?”。 考慮到這個(gè)過程涉及的概念相對(duì)較多,這是一個(gè)有效的問題。 無法得到這個(gè)問題的明確答案往往導(dǎo)致在開始之前放棄。 在學(xué)習(xí)方面,沒有比處理未知的未知物更令人沮喪的事情 - 我們不知道我們不知道的事情。 這個(gè)介紹旨在解決這個(gè)問題,然后再討論更具體的話題。
Frameworks
讓我們從基礎(chǔ)開始。 iOS操作系統(tǒng)是由蘋果公司建立的一個(gè)封閉的系統(tǒng),為每個(gè)iPhone,iPad和iPod Touch提供電源。 它從曾在Mac電腦上運(yùn)行十多年的祖父OS X大量借用。 反過來,手機(jī)操作系統(tǒng)嚴(yán)重影響了蘋果公司開發(fā)工具帶的最新成員watchOS(蘋果手表)和tvOS(蘋果電視)。
iOS最基本的構(gòu)建塊之一就是框架。 框架是一個(gè)獨(dú)立的API集合,旨在解決諸如控件,音頻,視頻,動(dòng)畫等特定問題。 框架可以駐留在其他框架中,導(dǎo)致一個(gè)層次結(jié)構(gòu),如果一個(gè)人不注意,可能很容易混淆。
iOS中的頂級(jí)框架稱為Cocoa Touch,與Cocoa for OS X相反.Cocoa Touch托管您將作為UI設(shè)計(jì)者處理的所有框架,包括Foundation,UIKit和Core Animation。

How will this affect my day-to-day work?
您需要將這些框架中的一些導(dǎo)入到您的文件中才能訪問某些API。 對(duì)于iOS,UIKit將是最常見的導(dǎo)入。
Languages
現(xiàn)在我們已經(jīng)確定了我們要使用的框架,我們需要一種方法來與他們溝通。 這就是編程語言的地方。多年來,開發(fā)人員已經(jīng)能夠使用諸如C,Objective-C甚至C ++等語言來調(diào)用內(nèi)置的API。
在2014年,蘋果公司將Swift作為一種現(xiàn)代化的官方編程語言,大部分框架都進(jìn)行了更新以利用它。
How will this affect my day-to-day work?
你需要熟悉Swift,并且對(duì)于面向?qū)ο蟮木幊倘绾喂ぷ饔幸恍┗镜牧私狻?這些聽起來可能聽起來令人望而生畏,但實(shí)際上并非如此。 不是如果你已經(jīng)處理了 CSS 和 JavaScript。 這是一個(gè)Swift文件的例子:
import UIKit
class MyButton: UIButton {
override func awakeFromNib() {
super.awakeFromNib()
backgroundColor = UIColor.yellowColor()
}
}
上面的代碼片段定義了一個(gè)新的按鈕子類,并使其默認(rèn)背景顏色為黃色。 這里介紹的概念包括類和繼承,超出了這篇介紹性文章的范圍,但仍然是充分利用框架API的基礎(chǔ)。
Software Tools
到目前為止,我們已經(jīng)有框架和語言與他們溝通。 我們現(xiàn)在需要的是將這些成分結(jié)合在一起來構(gòu)建我們的用戶界面。 輸入Xcode。
不論好壞,Xcode是唯一官方支持的用于構(gòu)建iOS應(yīng)用程序的編輯器。 它是功能豐富的,包括您需要開始的所有第一方框架。 這個(gè)名字實(shí)際上是誤導(dǎo)性的,因?yàn)槟慊ㄙM(fèi)大部分時(shí)間的部分甚至不需要編寫代碼:Interface Builder。

Interface Builder允許您以可視化的方式構(gòu)建界面,包括將不同的控件放入畫布中,并在某種程度上對(duì)其進(jìn)行造型,而無需編寫任何代碼。 不是所有的東西都像你最喜歡的圖形編輯器一樣工作,但是相似之處在那里。
我們?cè)谠O(shè)計(jì)界面時(shí)所做的很大一部分是布局。 為此,蘋果已經(jīng)構(gòu)建了自動(dòng)布局,一個(gè)基于約束的系統(tǒng),描述視圖之間的關(guān)系,而不是絕對(duì)的框架。
這將如何影響我的日常工作?
您將花費(fèi)大部分時(shí)間在圖形編輯器和Xcode之間。 此外,自動(dòng)布局將成為您可能觸及的一切的重要組成部分。
Recap
我們已經(jīng)了解了您需要熟悉的工具和技術(shù),以便更好地實(shí)施您的iOS設(shè)計(jì)。你可能仍然想知道你應(yīng)該如何處理這些問題 - 一個(gè)合理的問題,如果沒有答案,可能會(huì)阻礙學(xué)習(xí)過程,或者更糟的是阻止它。先讓我們看看壞消息:
- 熟悉上面介紹的所有概念和工具,才能充分發(fā)揮平臺(tái)的潛力。
- 除Swift之外,很難在學(xué)習(xí)過程中將這些技術(shù)相互分離。
現(xiàn)在好消息是:
- Basic Swift is a low-hanging fruit to go for.
- 了解框架的最好方法就是使用它們。
- 當(dāng)你有一個(gè)明確的目標(biāo)時(shí),學(xué)習(xí)順序就會(huì)減少。
- 你將要使用的框架是有據(jù)可查的。
- 所有考慮的事情,學(xué)習(xí)中最根本的事情之一就是理解為什么。唉,那里的大部分資源都是完全側(cè)重于如何做的餅干食譜。希望本系列能夠?yàn)槟鉀Q這個(gè)問題找到正確的道路。