본문 바로가기

swift/snapkit

snapkit을 한 3주일 공부한 느낌

1.storyboard 

장점:

(1).직관적이다.

(2).segue를 잘만 사용한다면 흐름을 파악하기 쉽다.(하지만 segue가 단점이 될수도 있다.)

(3).유지 보수 할때 한눈에 앱의 구조를 파악하기 쉽다.


단점:

(1).코드 유지 보수가 어렵다.(storyboard에 label하나만 수정해도 어떤게 수정되었는지 diff로는 알 방법이 없다.)

(2).느리다.(storyboard 빌드하는데 한 세월이 걸린다.또한 수정하는데도 xcode가 한세월을 기다리게 한다.)

(3).segue의 결정적 단점:같은 화면을 계속 불러오는 구조라면 segue가지고 흐름도를 파악할수 없다.

Controller 소스를 봐야만 어떻게 흘러가는지 알수가 있다.


2.snapkit(apple에서 제공되는 기본 constraint나 PureLayout,Cartography와 같은 dsl 언어)

장점:

(1).유지보수가 용이하다.storyboard의 이상한 xml 보다 코드로 ui를 관리하기 때문에 어떤 부분을 수정했는지 

바로 알수가 있다.

(2).빠르다.storyboard의 느린 개발속도를 신경쓰지 않아도 된다.

(3).코드만 가지고 처리하기 때문에 어떻게 화면이 이동되는지 보기 편하다.(단점이 될수도 있다.)

(4).segue를 사용하지 않기 때문에 직관적으로 데이타를 전달할수 있다.(prepare를 쓰지 않아도 된다.)


단점:

(1).배우는데 어려울수 있다.(storyboard로 화면을 그려가면서 어떻게 변하는지 충분히 연습하고 진행하면 괜찮다. )

(2).앱의 흐름을 알기위해서 소스를 다 찾아봐야된다.(한눈에 파악이 어렵다.)

(3).소스가 길어진다.(label하나를 만드는데도 많은양의 코드가 필요하다.)

(4).storyboard처럼 보면서 수정이 어렵다.



결론

snapkit이 배우는데 어렵고 코드양이 많아 지는 단점에도 불구하고 훨씬 좋다.


(1).storyboard는 수정해서 되돌리기가 거의 불가능할정도이므로 유지 보수의 측면에서는 snapkit을 사용하는게 좋다.

(2).속도 코드를 많이 작성해야되서 snapkit이 느려보일수도 있는데 화면에 UI 가 많아질수록 storyboard의 느려짐을 

감당하수 없을것이다. 

snapkit에서 화면이 많아 진다면 viewcontroller를 extension으로 빼서 작성하면 되므로 상관없다.



앞으로 production 코드에서는 dsl언어를 이용해서 개발을 해야겠다.



'swift > snapkit' 카테고리의 다른 글

snapkit(13)  (0) 2017.07.02
snapkit(12)  (0) 2017.07.02
snapkit(11)  (0) 2017.06.25
snapkit(10)  (0) 2017.06.25
snapkit(9)  (0) 2017.06.25