DADAHAE's Log
비싼 장난감 가지고 노는 중 (❁´▽`❁)*✲゚*
[TIL] 22-10-17: SwiftUI 시작하기
22-10-17 월요일
6주차

 

 

 

 

SwiftUI를 들어가기 전에... 먼저 해볼 일이 있다!

 

 

계산기를 기억하시나요?

  • 각 조별 데모
    • 우리 4조의 데모를 발표했다!!!! 꺄아악!!!
  • 개발 결과를 두고 시연과 피드백
    • 잘된 점
      1. ENFP 계산기 디자인👍
      2. IBAction 메서드를 하나로 줄인 점 (숫자버튼을 위한 IBAction 메서드 하나, 연산자버튼을 위한 IBAction 메서드 하나 총 2개만 사용하였다)
      3. 말하는 계산기 기능을 class로 따로 만든 점
      4. enum을 사용하여 Human Error 방지 (string 오탈자 방지)
      5. All Clear 기능 (연산 초기화)
      6. 현재 선택된 연산자를 알려주는 기능
      7. 첫 번째 숫자를 입력하지 않아도 저절로 0으로 대치되어 계산이 가능하다.
    • 아쉬운 점
      1. 마이너스 숫자를 넣을 수가 없다
      2. 다중 연산이 안된다
      3. 0으로 나눴을때 앱이 죽는다
      4. 소수점 구현은 아직 안됐다
      5. 첫 숫자로 0을 입력하고 뒤에 숫자를 추가 입력했을때 계산값은 잘 나오지만 라벨에 표기되는 값이 “012” 이런식으로 나옴
      6. 나눗셈을 했을때 값이 정수만 나온다 (10 나누기 3을 했을때 3.333 이런식으로 나왔으면 좋겠다)
    • 새롭게 배우고 알게된 점
      1. IBAction의 매개변수 ‘sender’가 어떻게 쓰이는지 감을 잡았다.
      2. Xcode의 Storyboard로 직관적으로 화면에서 보면서 코딩할 수 있어서 편하고 이해가 쉬웠어요.
      3. 열거형(enum)을 직접 써볼 수 있어서 좋았다. (사용법 습득)
      4. Xcode의 Assistant 기능
  • 시간이 더 있더라면 시도하고 싶던 작업은?
    1. = 버튼 안눌러도 연산자만 눌러도 계산이 되도록 하고 싶다.
    2. 계산 히스토리가 남도록 하고 싶다
    3. 가로모드 지원

 

 

 

오늘은 각 조별 발표를 진행해서 크게 배운 내용은 없었다! 여유있게 진행했다. 룰룰루🙉

 

 

 

 

 


 

 

 

🦢 SwiftUI

0️⃣ SwiftUI 개요

  • 2019년 WWDC에서 처음 발표
  • 현재 SwiftUI 4 버전이다.
    • 여담으로, Swift는 2014년에 처음 발표되었다. 나오자마자 바로 쓰인 건 아니였고, Swift 4 버전이 나왔을 때 안정되었다고 판단하고 실제 앱에 많이 적용했다고 한다.
    • 즉, SwiftUI도 4버전이기 때문에 현재는 많이 안정적이라고 볼 수 있다.
  • SwiftUI의 목표
    • 앱 개발을 더 빠르고 쉽게 (같은 작업도 UIKit로 하면 더 어려웠다)
    • 소프트웨어를 개발할 때 발생하는 버그를 줄이기

 

1️⃣ UIKit vs SwiftUI

UIKit의 단점

  • Interface Builder에서 단순 XIB에서 Storyboard로 확장되면서 재사용 문제 발생
    • Interface Builder와 코드를 수작업으로 연결해야 함
    • Interface Builder에서 뷰 뒤에 숨은 뷰는 겹쳐있어 설정하기 어려움
    • 애니메이션에 대응할 준비가 안됨(autolayout으로 하면 그 안에 박혀있는 것이기 때문에 어려움)
  • 결국 코드로 직접 화면 구성
    • Objective-C의 클래스 기반 화면 구성 코드는 단순하지 않음
    • AutoLayout은 배우기도 어렵고, IB 구성에 실수도 생기고, 코드로는 더 복잡하게 만듦
  • 시간과 오류가 늘어나고, 알아보기 힘들고, 생산성 떨어짐

물론 UIKit이 단점만 있는 건 아니다. UIKit도 처음 나왔을 때에는 혁신이었다. 그러나 이제는 나온지 워낙 오래된 기술이고, 불편한 점이 존재하기 때문이다…

 

SwiftUI의 장점

  • Live Preview
  • 선언적 구문(decorative syntax)
    • html 비슷하게 코딩한다.
  • 데이터 주도(data driven)
    • binding
  • 우수한 앱, 더 적은 코드
  • 디자인 도구
  • 모든 애플 플랫폼 지원
    • UIKit에서는 일일이 따로 짜줘야 했다.(ipad, mac, ios, watchOS, appleTV…)

 

2️⃣ SwiftUI 발표순간

WWDC19

https://www.youtube.com/watch?v=psL_5RIBqnY 

2시간 6분부터 SwiftUI 발표!
  • Swift로 19년 기준 45만개가 만들어졌다. 지금은 더 많을 것.
  • 그러나 이 앱들의 구조를 보면 objc 기반의 AppKit, UIKit을 호출해서 쓰고 있던 것이었다.
  • Swift만으로 앱을 만드려면 새로운 판을 짜야하지 않을까? → SwiftUI
    • UILabel 머 이런거 호출하느게 아니라 그냥 Swift로 다 새로 짜버린거다.
  • UIKit으로 짠 코드를 SwiftUI로 하면 아주아주 짧아진다.
  • 더 많은 기능들
    • 지역화
    • 다크모드
    • 접근성

 

 

 

 


 

 

 

 

이제 본격적인 SwiftUI가 시작된다... 와아~

 

 

  Comments,     Trackbacks