-
UIkit Vs SwiftUI카테고리 없음 2024. 1. 29. 17:07
두개의 차이점을 알아보려고한다. 두개의 차이점을 알아보기전 내가 고민했던 이유의 가장큰것은 취업이였다. 취업에 관련해서 고민을 했었고 이두개의 차이점을 블로그로 남겨두기를 마음을 먹었다.
1. 명령형 VS 선언형
UIKit 는 명령형이다 .
상태를 변경하기 위해서는 명령에 의해 바꿀 수 있다. 예를 들어, 버튼을 눌렀을시 backgroundColor가 바뀌도록 명령한다는 개념이고
SwiftUI 는 선언형이다.
명령에 의해서 변화하는것이아니라 사용하는곳에서 바뀔행동과 상태를 선언을 미리 해놓는다는 개념이다 .
이런 개념들을 통해서 명령을 하게 되는것보다 상태를 미리 선언을 해놓는게 유지보수에 대해서 확실히 유리하다는 장점이 보인다 . 확실히 새로운 개념을 사용한 언어답다.
2. 클래스 기반 VS 구조체,프로토콜 기반
다른 차이점 중 하나는 UIKit은 클래스 기반이다. UIKit는 UIView를 상속받고 있기 때문에 상속이 필요로하다 그러므로 상속이 가능한 Class 기반으로만 구축이 될 수 밖에 없다. 하지만 Swiftui는 struct와 protocol기반이다. 스유는 viewprotocol만 채택하기 때문에 상속이 필요하지않으므로 구조체 기반으로 구축이 되어있다.
3.이벤트 중심과 데이터 중심
마지막으로 다른점은 UIkit 은 이벤트 중심으로 하고 swiftui는 data 중심이다. 그게 무슨소리인가 하면 사실 1번의 경우와 같다 , 내생각으로는 1번의 차이점 덕분에 발생된 일이라고 생각한다. 이벤트 중심이라는것은 이벤트가 일어났을때 뷰를 그려준다라는 의미인것인거고 , 데이터 중심이라고 하는것은 데이터의 변화가 생겼을때 뷰를 그려준다라는 의미를 가지는것이다. 사실 이런이유로는 명령과 선언형에서 파생되어있는 느낌이 확든다 . (물론 내가 이해한 느낌일뿐 글씨 그대로 이해하길 바란다.)
4.그래서, 뭘써야하는데?
일단 나의 결론부터 말하자면 두개 모두 다룰줄 알아야한다고 생각을 한다. UIkit 은 swiftui 보다 옛날에 개발된 언어이기때문에 현재 트렌드와는 맞지않다 또한 Swiftui 처럼 편한 언어들 예를 들면 Flutter 같은 플랫폼이 훨씬 각광받는 세상이기는 하다 . 하지만 지금까지 세상을 바꿔왔던 모든 앱들이나 서비스들은 Uikit이나 object-c로 구현되어있다는것을 알아야한다. 그렇기 때문에 우리는 두개다 다루면서 공부를 해간다면 우리는 확실한 장점이 있는 개발자로 남을 수 있을것이라고 생각한다.