作者luke8197 (數學家相術學家)
看板MacDev
標題[請益] 用純程式碼建立App的問題
時間Mon Dec 5 14:57:25 2016
各位前輩大家好,最近在寫程式的時候遇到一個問題
就是單一個View要呈現的東西太多,當時想到的是用純碼的方式去建立整個頁面
後面因為一些navigation的問題,也決定繼續用純碼的方式來建立後續頁面
寫了一陣子以後突然覺得好像在這塊上好像沒有摸得很熟
所以想說來請教一下各位前輩
用純的程式碼在寫UI的時候,已經感覺到的優點
・不會有一些什麼屬性忘記設定,全部都可以在Code裡面找到問題
・在版本控管的時候可以方便的的知道這個UI大概有哪些地方被修改
感覺到但是還沒有體會到的問題
・在設定Layout的時候可能沒那麼簡單
目前因為還沒有做得很深,如果要修改之前的UI都還來得及
所以趁現在想先來請問一下,如果用純程式碼在寫Code除了以上的問題
還會不會遇到什麼比較麻煩或是比較難以克服的問題呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.22.203.228
※ 文章網址: https://webptt.com/m.aspx?n=bbs/MacDev/M.1480921048.A.D0C.html
1F:推 darktt: 我覺得就只是無法馬上看到結果比較麻煩而已,小改就要連 12/05 15:02
2F:→ darktt: 續來回build幾次才能解決 12/05 15:02
因為目前還沒遇到太深入的問題,想說在深入以前先看看會遇到怎樣的問題
目前感覺是去計算版面配置可能會比較複雜一點
※ 編輯: luke8197 (211.22.203.228), 12/05/2016 15:17:23
3F:推 Blueshiva: 如果是調整小地方,可以用Tweaks這個pod會方便很多 12/05 15:17
5F:推 kyushu: 跟darktt所說一樣,建議最好都用code寫,xib, stoaryboar 12/05 16:31
6F:→ kyushu: d最好少用甚至別用 12/05 16:31
7F:→ zonble: 其實現在用純 code 寫還比較快 12/05 16:45
8F:→ zonble: 直接在 playground 裡頭 live coding 12/05 16:45
9F:→ zonble: playgound 寫完再放回專案裡頭 12/05 16:46
今天在設計一個對話視窗的小細節就是用zonble大講的方法,寫好以後再放進去。
不過目前觀察到一個現象就是會有很多幾乎是重複的程式碼
不知道各位前輩怎麼管理這部分的程式碼?
在Github上有看過有人是用extension的方式,把各個部分切開
例如說TableViewController的Delegate方法就移到那邊去
大概像這樣
class deviceColletionTableViewController : UITableViewController{
...
}
extension deviceCollectionTableViewController{
//Table view data source
}
想請教一下各位前輩都是怎麼去管理的呢?
※ 編輯: luke8197 (59.127.213.53), 12/05/2016 23:34:09
10F:推 wawalian: 請問全用code刻UI的話要如何做MVC呢? 12/06 01:25
11F:→ tkdmaf: 全用code或不用都是「view」的層級吧!不影響 MVC 啊。 12/06 01:54
12F:推 darktt: 重複程式碼的話我會用Closure來包重複的地方,像是連續建 12/06 06:13
13F:→ darktt: 立多個相同的UILabel等等, 12/06 06:13
14F:→ darktt: 另外我自己是在使用另外一個方法來區分每一個建立View的 12/06 06:15
16F:→ darktt: Method中標示出幾個區塊,而且裡面的變數是可以重複使用的 12/06 06:18
17F:→ darktt: 像是常用的color或frame等等 12/06 06:18
原來如此,這樣就可以把重複的部分提出來
也不會有DRY的問題
感謝前輩提供的思路,我在思考一下其他對策
18F:→ wawalian: @tkdmaf 意思是會分兩個檔案去做v跟c嗎?我以為是全寫 12/06 08:56
19F:→ wawalian: 在一起...@@ 12/06 08:56
tkdmaf的意思應該是
MVC的概念應該不是只是程式碼寫在一起或分開
而是在功能上的切割?
即使我完全都用Storyboard來做畫面,也不應該把功能混在一起
之前看白鬍子的教學,有幾堂在做計算機的,這個概念有做比較實際的解說
※ 編輯: luke8197 (211.22.203.228), 12/06/2016 09:30:59
20F:→ wawalian: 我知道mvc是依照功能區分陣營,只是個人習慣將mvc分在 12/06 10:26
21F:→ wawalian: 不同檔案,在多人共同開發時較不會遇到衝突 12/06 10:26
22F:推 Ghosso: 你也可以view寫在不同檔案阿 用code刻ui跟mvc關係不大 12/06 13:14
24F:→ jazzter: 參考這個plugin 全code UI 滿好用 ,不用一build 12/06 13:26
25F:→ nat99up: 想請問各位大大storyboard可以不用摸很熟沒關係嗎 12/06 15:33
感覺storyboard的優點是在視覺化
對於還沒參與過的專案可以比較好上手,大概知道每個view是在做什麼的
不過缺點是很多屬性都要找到設定的地方,如果忘記設定就會比較麻煩。各有各的優缺點
公司會有什麼要求也不一定,所以還是瞭解一下會比較好。
※ 編輯: luke8197 (59.127.213.53), 12/06/2016 22:02:44
26F:推 ppppman: 都會最好 視情況用不同方式 12/06 23:51
27F:推 jimmygio: 我以前也是純code,現在則是能用storyboard就盡量用stor 12/09 21:01
28F:→ jimmygio: yboard 12/09 21:01
29F:→ jimmygio: 感覺只是習慣不同而已 12/09 21:02
30F:推 annie1729: 推樓上,Storyboard 用習慣還挺好用的 12/10 21:12
31F:推 Esvent: 以前也是全code 現在則是能用ib就用ib 12/12 12:30
32F:→ Esvent: 可以省掉很多冗長的ui設定code 還不錯 12/12 12:30