최근 너무 웹 개발만 한거 같아 Refresh 겸, 또 평소 iOS 앱을 만들고 싶었기에 취미로 iOS 앱을 만들어 보기로 했습니다.
간단히 공부해 보니 iOS는 Objective-C + UIKit 에서 Swift + SwiftUI로 넘어가고 있는 상태였습니다.
취업을 위해서라면 다 공부해야 하겠지만, 취미로 하는거니 당연히 Swift + SwiftUI 조합을 사용했고, iOS 버전도 가장 최신인 iOS 15를 기준으로 하고, 나머지 솔루션도 애플에서 기본 제공하거나 가장 편한 걸 사용했습니다. (Persistence에 CoreData + CloudKit, CI/CD에 XCode Cloud 등)
Apple 제품을 쓰면서 느꼈던 장단점이 개발에서도 나타난다
개발이 아니라 Apple 제품의 장단점이 뭘까요? 사람마다 느끼는 건 다르겠지만 저는 핵심이 "Apple이 다 관리하려 한다"라고 생각합니다. Apple은 하드웨어도 직접 만들고, 소프트웨어도 직접 만들고, 악세사리도 직접 만들고, OS도 직접 만들고 관리합니다.
그래서 일관성 있고, 높은 퀄리티의 제품을 제공하지만 가끔 이게 왜 안 되는지 어이없을 정도로 간단한 기능이 안 되기도 하고, 아무리 세계 1위의 기업이라지만 그 많은 제품들을 다 잘 관리할 수는 없기에 퀄리티가 낮기도 합니다.
개발에서도 정확히 똑같은걸 느꼈습니다.
SwiftUI를 사용하면서 UI 작업이 이렇게 편리하고 직관적일 수 있구나 감탄했고, App Store 리뷰에서 버그가 있다는 이유로 심사를 통과 못 하는 과정을 겪으면서 이래서 앱스토어의 앱들이 상대적으로 퀄리티가 좋았구나 납득했습니다.
하지만 XCode를 쓰면서 이렇게 개발이 답답할 수 있구나 처음 알았습니다. 웹 개발에서는 다양한 IDE를 선택할 수 있고, 여러 경쟁이 있기에 뛰어난 IDE가 많지만 XCode는 그렇지 않았습니다. 당연히 되야 할 거 같은 기능이 안 되고, 느리고 답답했습니다. 단축키 지원도 부실한데 3rd Party에서 이것저것 할 수 있게 허용도 안 하니 정말 폐쇠적이구나 세삼 체감했습니다.
이게 외않되?
SwiftUI가 아직 역사가 짧아서 그런지, 되야 할 거 같은 기능이 안 되서 UIKit에서 Delegate를 써서 import 해야 하는 경우가 생각보다 많았습니다.
XCode에서도 단축키나 Hot Reload 같은 당연히 있어야 될 기능이 이제 막 출시되거나 없는 경우가 생각보다 많았습니다.
이게 이렇게 쉽게 돼?
웹 개발에서는 배포가 상당히 큰 일입니다. 서버를 구성해야 하고, 트래픽에 따라 대응도 해야 하고, 심지어 글로벌로 출시한다면? 상상도 하기 싫어요. 하지만 iOS 앱은 AppStore에 올리면 버튼 하나로 전 세계 모든 국가에 출시할 수 있습니다.
웹 서버 비용도 안 들어요. 유저의 iCloud 계정의 용량으로 들어갑니다.
CI/CD도 비슷합니다. 원래는 Github Actions든 GoCD든 설정 파일을 직접 작성하고, 어떤걸 빌드할지, Secret은 어떻게 할지, 비용을 어떻게 할지 등 고려할 게 많은데 XCode Cloud를 쓰면 추가적인 설정 없이 바로 적용 가능합니다.
앱 출시!
취미로 한다지만 힘들게 만든 앱 출시는 해 보고 싶어서 앱스토어 유료로 등록했습니다. 간단하게 구독을 관리할 수 있는 앱인데, 관심이 있으시면 여기서 다운로드 받으실 수 있습니다. (수익은 진짜 별로 안 나와요...ㅋㅋ)
'👨💻 프로그래밍 > 🍎 iOS 개발' 카테고리의 다른 글
🍎 iOS에서 서버를 거치지 않고 알림 보내기 (UserNotifications) (0) | 2024.08.02 |
---|---|
🍎 XCTest로 Swift에서 Unit Test 하기 (0) | 2024.07.28 |
🍎 SwiftUI에서 숫자 입력하면 실시간으로 구분자(,) 붙이기 (0) | 2024.07.21 |
🍎 WidgetKit 이용해서 애플 위젯 개발하기 (0) | 2024.06.22 |
🍎 Swift Data를 써서 iCloud 연동 기능 만들기 (1) | 2023.12.24 |