거의 알고리즘 일기장
choice-helper (ios 문외한의 swiftui 찍먹후기) 본문
필자는 웹개발자이고 swiftui 초면이다. (예전에 ios개발 잠깐 하긴 했었다.)
최근 apple의 swiftui에 대해서 호기심이 들어서 간단하게 앱을 만들고 배포해봤다!
(필자는 예전에 Ios 찍먹해본 수준이라 초심자의 후기라고 생각하면 좋을거 같다.)
앱구성
만든앱은 간단한 앱이다!
Choice Helper - Decision-Making Made Easy
Description:
Are you indecisive or overwhelmed by too many options? Choice Helper is here to make your life simpler! Our app takes the stress out of decision-making by randomly selecting an option for you from a customized list. Whether it's choosing a place to eat, deciding on a movie, or picking the next book to read, Choice Helper has got you covered.
Key Features:
Create Custom Choice Lists: Easily create and manage multiple lists of options for different scenarios or topics.
Random Selection: Tap the "Go" button and let the app work its magic, choosing a random option from your list of candidates. No more second-guessing yourself or wasting time deliberating!
Edit: Modify your lists anytime by adding, deleting.
이 앱의 소개문으로 쓴 글인데,
간단히 이야기하자면 여러 옵션들을 입력하고 버튼을 누르면, 앱이 랜덤으로 옵션중에 하나를 결과로 return해주는 앱이다.
https://apps.apple.com/kr/app/choice-helper/id6446860829?l=en
후기
장점
1. swiftui의 combine은 정말 좋다!
react의 state처럼 state가 변하면 ui가 그 state에 맞춰 랜더링된다.
이 기능을 쓰려면 예전에는 rxswift를 이용해서 observable을 만들고 이를 ui에 binding까지 해주어야했는데.. 이게 내장기능으로 들어오니 좀 편하다고 느꼈다.
2. ui를 그리는 코드들이 멋지다
기존 uikit는 기조가 명령형 프로그래밍이었기 때문에, 선언적으로 표현할수 있는방식은 있었지만, 조금 아쉬웠을것이다.
swiftui는 완전한 선언형 프로그래밍이기 때문에, 이에 목말랐던 사람들에게는 좋을수 있다.
코드도 한결 깔끔해보인다.
3. swiftui의 기본 스타일, animation등이 정말 좋다.
swiftui에서 스타일 수정을 아예하지 않더라도 Form, section 등의 스타일이 개인적으로는 완벽하다고 느꼈다.
그리고 navigating되는 transition animation도 참.. 멋나다
4.preview!
preview가 있다. 겁나 편하다..
단점
1. 기존 uikit를 써왔던 사람은 러닝커브가 있을수 있다.
필자는 기존에 제약조건을 이용해서 뷰를 그리는데에 익숙해서 그런지 뭔가.. 좀 뭔가 내가 생각한 그림이 swiftui에서는 어떻게 해야할지 잘 감이 안왔다.
하지만, 이건 오래쓰다보면 익숙해지지 않을까 싶다.
2. 몇몇 버그가 있었다.
swiftui textfield에서 한국어 자소가 다 갈리는 버그가 있었다. 이는 uikit를 이용해 해결했다.
아무래도 아직 몇몇 기능은 uikit를 완전히 이식한거같지는 않았다.
이제는 간단한 앱정도는 swiftui만으로도 충분히 만들수 있을정도로 발전한거 같다.!!
'IOS' 카테고리의 다른 글
앱 심사에 통과되었는데, 바로 개발자가 판매를 중단함 상태로 변경될때 (0) | 2023.08.17 |
---|---|
pod install Installing glog (0.3.5) error (0) | 2022.02.05 |
snapkit 라이브러리 사용법 (with ios) (0) | 2021.10.02 |
LineHeight 에 대한 생각 (with ios) (0) | 2021.09.21 |
pdf image 적용 (with ios) (0) | 2021.09.19 |