2022. 10. 24. 20:34, 외부활동/멋사 앱스쿨 1기
22-10-17 월요일
6주차
SwiftUI를 들어가기 전에... 먼저 해볼 일이 있다!
계산기를 기억하시나요?
- 각 조별 데모
- 우리 4조의 데모를 발표했다!!!! 꺄아악!!!
- 개발 결과를 두고 시연과 피드백
- 잘된 점
- ENFP 계산기 디자인👍
- IBAction 메서드를 하나로 줄인 점 (숫자버튼을 위한 IBAction 메서드 하나, 연산자버튼을 위한 IBAction 메서드 하나 총 2개만 사용하였다)
- 말하는 계산기 기능을 class로 따로 만든 점
- enum을 사용하여 Human Error 방지 (string 오탈자 방지)
- All Clear 기능 (연산 초기화)
- 현재 선택된 연산자를 알려주는 기능
- 첫 번째 숫자를 입력하지 않아도 저절로 0으로 대치되어 계산이 가능하다.
- 아쉬운 점
- 마이너스 숫자를 넣을 수가 없다
- 다중 연산이 안된다
- 0으로 나눴을때 앱이 죽는다
- 소수점 구현은 아직 안됐다
- 첫 숫자로 0을 입력하고 뒤에 숫자를 추가 입력했을때 계산값은 잘 나오지만 라벨에 표기되는 값이 “012” 이런식으로 나옴
- 나눗셈을 했을때 값이 정수만 나온다 (10 나누기 3을 했을때 3.333 이런식으로 나왔으면 좋겠다)
- 새롭게 배우고 알게된 점
- IBAction의 매개변수 ‘sender’가 어떻게 쓰이는지 감을 잡았다.
- Xcode의 Storyboard로 직관적으로 화면에서 보면서 코딩할 수 있어서 편하고 이해가 쉬웠어요.
- 열거형(enum)을 직접 써볼 수 있어서 좋았다. (사용법 습득)
Xcode의 Assistant 기능
- 잘된 점
- 시간이 더 있더라면 시도하고 싶던 작업은?
- = 버튼 안눌러도 연산자만 눌러도 계산이 되도록 하고 싶다.
- 계산 히스토리가 남도록 하고 싶다
- 가로모드 지원
오늘은 각 조별 발표를 진행해서 크게 배운 내용은 없었다! 여유있게 진행했다. 룰룰루🙉
🦢 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
- Swift로 19년 기준 45만개가 만들어졌다. 지금은 더 많을 것.
- 그러나 이 앱들의 구조를 보면 objc 기반의 AppKit, UIKit을 호출해서 쓰고 있던 것이었다.
- Swift만으로 앱을 만드려면 새로운 판을 짜야하지 않을까? → SwiftUI
- UILabel 머 이런거 호출하느게 아니라 그냥 Swift로 다 새로 짜버린거다.
- UIKit으로 짠 코드를 SwiftUI로 하면 아주아주 짧아진다.
- 더 많은 기능들
- 지역화
- 다크모드
- 접근성
이제 본격적인 SwiftUI가 시작된다... 와아~
'외부활동 > 멋사 앱스쿨 1기' 카테고리의 다른 글
[TIL] 22-10-19: SwiftUI 기초(Stack, Frame, State) (0) | 2022.10.24 |
---|---|
[TIL] 22-10-18: SwiftUI 기초(개요, Xcode, CustomView) (0) | 2022.10.24 |
[TIL] 22-10-14: Xcode 실습(UIKit으로 계산기 만들기), CSS (0) | 2022.10.22 |
[TIL] 22-10-13: Xcode 실습(Obj-C, Swift) (0) | 2022.10.22 |
[TIL] 22-10-12: Objective-C (Protocol, ARC, binding) (0) | 2022.10.16 |
Comments, Trackbacks