시작하기전 – iOS 앱 개발 강좌
“스마트폰이 대중화가 될 것이다.”, “아니다.”, “벌써 점유울이 10%를 넘었다.”, “스티브 잡스가 새 상품을 냈다.”등 2011년도의 핫이슈는 온통 스마트폰 관련 뉴스였습니다. 저는 앱 개발 사업과 대학원에서 공부를 할 때 였습니다. 그 때 iOS 개발에 필요한 언어는 Objective-C 라는 언어를 사용했었고, 당연한 이야기 이지만 아이폰과 맥O.S만 지원(tvOS, watchOS는 제품이 없었음) 하였으며 안드로이폰이 막 출시되는 시점이 었습니다. 당시에는 아이폰 점유율이 채 10% 밖에 되지 않아 영문이나 일본어 버전으로 “1박2일 부산투어”, “디지털 아띠”, “와이즈 이코노미” 등 대략 10가지의 앱을 개발하였습니다.
그 후로 3년 쯤 뒤 함수형 프로그래밍이 새로운 트랜드로 부각되면서 iOS앱 개발에 새로운 언어인 Swift(스위프트)가 나오면서 새로운 전환의 시기가 왔습니다. 당시는 제가 캐나다로 이주했던 시기라 여기 밴쿠버에 있는 한국 개발자 몇 명을 모아 같이 공부하기 시작했습니다. 대부분이 아웃소싱으로 앱 개발을 하였으며 밴쿠버 현지에서 지금까지도 운영되고 있는 앱들도 있습니다.
이제 새로운 블로그를 만들면서 그 동안의 앱 개발 경험을 공유하고자 iOS 앱 개발에 필요한 Swift 문법과 애플에서 제공하는 iOS Frameworks의 SwiftUI와 UIKit를 이용하여 앱 개발 강의를 초급부터 중급까지 이어가고자 합니다. 유튜브나 무료강좌 사이트도 많이 나와 있지만 제 글을 보시고 따라 하시면 시간도 절약되며 한번은 로직에 대해 곰곰히 생각해 볼 수 있는 여유가 생길 것이라는 생각이 듭니다.
준비해야 할 것들
Macbook Pro(필수)
https://appple.com/kr/shop 사이트에서 보시면 맥북 프로 14인치, 16인치 모델이 230만원대 부터 590만원대 까지 다양하게 나와 있습니다. 만약 “난 돈이 없어” 라고 생각하시는 분은 맥북 Mini도 고려해 보시는 것도 좋으며 맥북 에어 모델은 스팩상 무리가 좀 있는 거로 알고 있습니다. 참고로 XCODE 나 시뮬레이터를 실행하게 되면 맥북의 시스템 자원들 많이 차지하고, 추후 맥 O.S가 업데이트 될 때 더 이상 지원하지 않는 모델이 저가 모델 부터 시작하기 때문에 되도록이면 중급 이상의 모델을 권장합니다.
아이폰(선택사항)
“어 앱 개발 코딩하고 나서 어떻게 태스트 할려고 아이폰이 선택사항이라고 하지?” 물론 아이폰이 있으면 좋고 결국에는 앱 출시를 할 때는 필요합니다. 지금은 필요없다는 말이지 계속 필요없다는 말은 아닙니다. 저는 참고로 아이폰 10 모델을 가지고 있는데 아직까지 앱 개발 할 때 불편함이 없더군요. 나중에 앱 개발이 완료되면 가급적으로 올드 모델에서 태스트 해 보는 것도 좋은 방법 입니다.
XCODE(필수)
Xcode는 2023년 12월 현재 15.1 버전입니다. iOS, MacOS용 코드를 컴파일 할려면 Xcode가 설치되어 있어야 하며, App Store에서 무료로 다운로드 받을 수 있습니다. 개발 과정에서 시뮬레이터가 포함되어 있고, Apple LLVM/Clang을 주 컴파일러로 삼고 LLDB를 주 디버거로 이용합니다.(참고사항 입니다.) 개인적으로 Xcode가 업데이트 될 때 마다 약간의 버그가 발생 했지만 지금은 안정된 상태입니다.
Developer program(필수)
Apple ID가 없으신 분들은 https://developer.apple.com 사이트에 들어가게 되면 오른쪽 상단 메뉴에 account 메뉴를 볼 수 있습니다. account 메뉴에서 create yours now를 선택하여 계정을 생성합니다.개인정보를 입력하고 개인 계정을 생성하면 됩니다.
위의 문구는 제가 Apple Developer Program membership을 년 USD 99$에 납부하지 않아 발생하는 문구 입니다. 저 같은 경우는 다른 5~6개의 회사에 개발자 계정으로 이미 등록이 되어 있습니다. 그래서 개인 개발자 계정을 등록 할 필요가 없던거죠. 제가 알기로는 무료 계정으로 최대 3~5개 앱을 폰에 심을 수 있습니다. 그러니 앱이 개발완료 되기 전 유료로 맴버쉽 등록을 사용하시면 될 것 같습니다.
Swift, SwiftUI, UIKit 이란?
iOS 앱 개발을 이제 막 시작하려는 시점에서 Swift, SwiftUI, UIKit에 대한 정의를 구글링에서 찾아보면 특징에 대해서만 서술되어 있지 정확히 각각의 계체가 어떠한 역활을 하는지를 알 수가 없습니다. 그래서 정의를 초보자의 시점에서 적어 봅니다.
Swift
iOS 앱을 개발하기 위한 프로그래밍 언어입니다. 그전에 들어 보신적이 있는 Java, C 등과 같은 개념입니다. 실질적으로 Android 개발언어인 Kotlin 과 문법상 비슷하며 새로운 개념인 함수형 언어라는 점이 특징입니다.
SwiftUI
Swift가 프로그래밍 언어이면 SwiftUI는 말그대로 UI(User Interface) 즉 화면에 보여지는 부분과 사용자의 액션(버튼을 클릭, 프로그램이 시작 될 때 등…)이 포함되어 있는 Frameworks 입니다. 비교적 최근에 나온 SwiftUI는 iOS개발 초창기 부터 나온 UIKit와 같은 역활을 합니다. 신규 프로젝트 시에는 SwiftUI로 시작하는 회사들이 대부분입니다.
UIKit
UIKit을 사용하는 방식에는 Storyboard를 사용하는 방식과 사용하지 않는 방식이 있습니다. Storyboard는 화면을 구성할 때 interfacebuilder를 사용하여 편하게 컴퍼런트를 구성할 수도 있습니다. UIKit는 MVC(Model – View – Controller)의 기본개념이었으나 현재는 MVP, MVVM 등의 모델이 나와 있습니다. 만일 앱이 개발된지가 4년 이상이 되었다고 하면 UIKit으로 개발되었으며 이에 따라 유지보수도 UIKit로 해야 합니다.
글을 마무리하며
iOS앱을 개발할려면 150~300만원 정도의 맥을 구매해야 합니다. 큰 부담이 되는 것은 사실입니다. 하지만 일단 iOS개발자의 길로 들어오시면 충분히 노력을 성과가 나타 날 것 입니다. 제발 꾸준히 공부하실 진심으로 기원합니다.
Watch my channel
I love how this blog celebrates diversity and inclusivity It’s a reminder that we are all unique and should embrace our differences
Hurrah, that’s what I was exploring for, what a information! existing here at this blog, thanks admin of this site.
Here is my webpage; John E. Snyder
Thank you for sharing your personal experience and wisdom with us Your words are so encouraging and uplifting
As a fellow blogger, I can appreciate the time and effort that goes into creating well-crafted posts You are doing an amazing job
This blog is a great resource for anyone looking to live a more mindful and intentional life Thank you for providing valuable advice and tips
Your blog has become a source of guidance and support for me Your words have helped me through some of my toughest moments
Your blog has been a constant source of support and encouragement for me I am grateful for your words of wisdom and positivity
I just wanted to take a moment to express my gratitude for the great content you consistently produce. It’s informative, interesting, and always keeps me coming back for more!