業(yè)務(wù)需求模擬
公司需要開(kāi)發(fā)一款學(xué)習(xí)類(lèi)的app,針對(duì)不同的用戶(hù)層級(jí)開(kāi)放兩個(gè)用戶(hù)端:學(xué)生端、老師端。
項(xiàng)目分析
方法一(普通版):
新建倆個(gè)項(xiàng)目,一個(gè)是學(xué)生app,老師app
在開(kāi)發(fā)的過(guò)程中,你會(huì)發(fā)現(xiàn)這倆個(gè)app有很多公共的模塊,比如登錄模塊,用戶(hù)中心模塊.........
當(dāng)你在學(xué)生端寫(xiě)完登錄模塊的時(shí)候,然后手動(dòng)拷貝登錄模塊的代碼到老師端,接著進(jìn)行開(kāi)發(fā)
-----來(lái)自菜鳥(niǎo)的闡述
方法二(改進(jìn)版)
新建倆個(gè)項(xiàng)目,一個(gè)是學(xué)生app,老師app
把公共的模塊組件化,在學(xué)生app,老師app分別我pod引用,省略了手動(dòng)拷貝的操作。當(dāng)公共組件更新的時(shí)候,分別在兩個(gè)app項(xiàng)目端進(jìn)行更新。
-----來(lái)自不那么菜的菜鳥(niǎo)的闡述
方法三(進(jìn)階版)
新建一個(gè)工作組workspace,在這個(gè)工作組上面新增學(xué)生project和老師project,兩個(gè)工程公用一個(gè)工作組。同時(shí)工作組pod公共組件,倆project公用一套公共模塊,這樣可以及時(shí)更新。
-----來(lái)自具有逼格的老鳥(niǎo)的闡述
項(xiàng)目啟動(dòng)
方法一就不多做介紹了,
方法二中提及的公共組件的封裝,歡迎去看我上一篇文章提到的公共組件封裝的文章,以下是連接:
公共組件的封裝
如果你已經(jīng)看完了方法二中提及的文章,下面開(kāi)始進(jìn)行方法三的具體操作了。
1.創(chuàng)建工作組workspace
本地創(chuàng)建一個(gè)“MyProject”的文件夾
接著打開(kāi)Xcode,F(xiàn)ile->New->Workspace

創(chuàng)建在“MyProject”的文件目錄下,保存。

打開(kāi)MyWorkspace工作組

打開(kāi)之后你會(huì)發(fā)現(xiàn)是一個(gè)空的工作臺(tái)

再接著讓我們來(lái)創(chuàng)建兩個(gè)用戶(hù)端吧。
File->New->Project


保存在myworkspace工作組下

此時(shí)你會(huì)發(fā)現(xiàn)工作臺(tái)下面有一個(gè)“StudentProject”的項(xiàng)目了

現(xiàn)在我們來(lái)看下項(xiàng)目結(jié)構(gòu)

再接著創(chuàng)建“TeacherProject”
步驟如上,保存路徑的時(shí)候 注意

創(chuàng)建之后 我們?cè)賮?lái)看看工作臺(tái)

大功告成
一個(gè)工作臺(tái)下面包含了兩個(gè)工程。

將自制公共組件和第三方SDK導(dǎo)入項(xiàng)目中,倆工程都能調(diào)用公共組件模塊和第三方SDK
首先打開(kāi)終端,cd到“MyProject”目錄下,創(chuàng)建Podfile文件

接著輸入
source 'https://github.com/jiangxiaobin1011/JSpecs.git' //自制組件庫(kù)索引
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
workspace 'MyWorkspace.xcworkspace' //工作臺(tái)路徑
project 'StudentProject/StudentProject.xcodeproj' //主工程路徑
def commonPods
pod 'AFNetworking', '~> 3.1.0' //共有第三方庫(kù)申明
end
target 'StudentProject' do
project 'StudentProject/StudentProject.xcodeproj'
pod 'Masonry', '~> 1.0.2'
commonPods
pod 'JCategoryKit' //自制組件庫(kù)引用
end
target 'TeacherProject' do
project 'TeacherProject/TeacherProject.xcodeproj'
commonPods
end
ps:拷貝的時(shí)候記得刪掉“//+提示內(nèi)容” ,不然pod識(shí)別不了
好了 接下來(lái)打開(kāi)myworkspace

想要引用pod里的文件,記得在工程 buildsetting的user headr里面添加“$(PODS_ROOT)”

進(jìn)階:
盡量讓兩個(gè)工程不要互相依賴(lài),互相解耦,這樣的話(huà) 其中任何一個(gè)項(xiàng)目都能作為一個(gè)獨(dú)立的項(xiàng)目隔離出來(lái)。也就是所謂的工程組件化。
關(guān)于工程組件化的思想 推薦大家去看這篇文章