→ ppppman: 更新等於冒險? 不懂就別亂說吧 x的更新基本上畫面調整 02/18 00:17
→ ppppman: 問題 跟app系統架構也沒關係 02/18 00:17
噓 darkMood: 改個版面就是「大幅度調整原始碼架構」? 這開發程式的 02/18 00:22
→ darkMood: 人應該全部都要抓去打屁股吧,哈..............02/18 00:22
推 IMPOSSIBLEr: 基本上要支援iX的版面就是把Source code用Xcode 9 c02/18 04:39
→ IMPOSSIBLEr: ompile一次就可以上架說支援iX了02/18 04:39
→ jatj: 也沒重新編譯這麼簡單 比例都變了02/18 06:12
推 Jaydavid: 還好吧 已更新支援的也不會不穩定啊02/18 10:36
推 mahmoodma: 該回去學校重讀書了? 02/18 10:40
推 hellomo: 期待那些app下架02/18 11:44
推 kids1243: autolayout有寫好的話,的確就是重新編譯這麼簡單 02/18 13:06
推 rockmanx52: 但問題是大多工作室根本沒那麼多時間人力跟你把02/18 14:18
→ rockmanx52: autolayout搞好.... 02/18 14:18
噓 imshamus: 動到架構???02/18 16:03
實際上而言,真的可能「大幅度調整原始碼架構」。
這邊只論以Xcode開發的原生程式,其他尤其是用Unity開發的遊戲不在討論中。
首先,iOS推行AutoLayout很久了,
所謂AutoLayout就是把蘋果原生元件用A元件對齊B元件之類的約束綁住,
來適用個尺寸的iPhone(4.5、4.7、5.5、iPAD)
完全尊照AutoLayout開發的APP真的就是重新Compile一次就能支援iPhoneX版面..不一定。
就算你完全遵照AutoLayout也不可能不用修改任何程式碼。
你有一個元件(文字匡、圖片或其他東西)要貼齊導航欄底下,
在X出來前用AutoLayout的寫法1是綁住初始y軸在離頂端64(電池欄20+導航欄44)的位置
在X出來之後,對不起,這個高要加上瀏海,所以完全貼齊頂端的初始y軸在88 ->跑版。
用AutoLayout的寫法2綁在Top Layout Guide 的轉換到X才沒問題。
但這兩者寫法原先來說其實沒有誰對誰錯,因為看起來確實都是對的(在X前)
那我們用X之後開發的APP做AutoLayout呢?iOS11多了一個叫Safe Area的框架,
只要對齊SafeArea底端,就等於對齊以前的Top Layout Guide ,
會達到上述效果...你太天真了。
在iOS11上確實是這樣沒錯,但在iOS10的部份因為過去沒有Safe Area框架,會直接跑版。
不過說規說,只要照AutoLayout基本上只是小修改對吧?
然而,很少APP真的只用蘋果原生的元件就能做完,
有一些客製化、比較炫的元件不是用拉出來的自然也無從設定AutoLayout,
而是寫程式碼讓他生在一個固定位置、然後又要考慮不同尺寸問題...
在加上就算是AutoLayout,常常為了達到合理的布局要設到10條以上的條件,超麻煩,
於是業界有了比較省工的作法...
用4.7寸當作基底開發,在4.5寸、5.5寸、iPAD上通通等比放大縮小就好啦!
這算是小撇步具體作法我就不說了,總之所有原生元件你一行條件都不用綁,
「擺」好就可以收工,同時對非原生元件你也只要用程式碼對4.7寸的位子,很簡單吧?
甚至到iPhoneX也沒問題呢,除了他的等比放大一定不會適應瀏海以外...GG
要用這種形式開發的專案適應iPhoneX版面,
等於所有元件無論原生或非原生要重新排一次位子,甚至為此多寫N行程式碼,
對我來說,在調整版面上花的時間其實有時候不輸寫程式功能呢。
而且隨之而來的可能有大量的跑版BUG需要修正,說大幅調整應該不算錯吧?
收益高使用率高的APP不說,業餘的小作品冷門的APP實在沒理由這樣重作一次。
大概4這樣。
小弟只是半路出家從業兩年的菜鳥,
如果有大神級的開發者覺得我有說錯的地方請不吝指正。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.9.65.200
※ 文章網址: https://www.ptt.cc/bbs/iOS/M.1522581982.A.15C.html
※ 編輯: ZMTL (39.9.65.200), 04/01/2018 19:27:16
※ 編輯: ZMTL (39.9.65.200), 04/01/2018 19:28:54
推 Freedombom: 推專業 有沒有文組版本QQ 04/01 19:33
→ ZMTL: 本來想要圖文並茂的,後來想想還是加班繼續趕專案實在 04/01 19:34
→ ZMTL: 還好蘋果大概也知道,不敢要在四月之前上架的專案馬上跟進 04/01 19:35
→ ZMTL: 不然工程師一定會被操死... 其實我講的都已經是以Autolayout 04/01 19:36
→ ZMTL: 為主的工了,有些早期專案根本所有元件位置都純code寫的,遇 04/01 19:36
→ ZMTL: 到X一定會慘到不能再慘。 04/01 19:36
推 jakkx: 感謝解說… 04/01 19:39
→ ZMTL: 其實iOS每次改版多少都要修程式碼啦,Apple很喜歡動畫面架構 04/01 19:42
→ ZMTL: 然後同時要支援越多版本有時後要先判斷版本然後寫兩種code 04/01 19:42
→ ZMTL: 也算是習以為常了,只是這樣的bug對工程師真的非戰之罪 04/01 19:43
推 KobePTT: 今年還會再出兩個新尺寸,到時又要辛苦了(茶 04/01 20:21
推 pttx6714: 今年應該都是比照iPhone X比例,會比較好處理一些吧 04/01 21:18
推 imshamus: 專業的解說,厲害 04/01 21:38