안녕하세요.
휴학중인 대학생이고, 최근 공부/취미삼아서 iOS 앱 개발을 시작하기로 결정했습니다.
최종 목표는, 실제로 쓸모가 있고 UI가 아름다운 앱을 만들어 배포 단계까지 진행하는 것입니다.
배경 지식을 나열해보자면 python, html, css, javascript, java 이구요.
(python 제외하면 걸음마 수준이고, django를 이용해서 개발한 웹사이트 현재 운영 중입니다.)
swift는 애플에서 발간한 튜토리얼 Swift Tour 부분만 간단히 읽어봤습니다. 뭔가 파이썬과 자바를 짬뽕해놓은 느낌이라 다행히 배우기는 어렵지 않았습니다.
지금은 애플 공식 튜토리얼 + 유튜브 강의 보면서 조금씩 따라하고 있는데, 새로운 기술과 프레임워크가 계속 나오고 있다보니까 이중에 뭘 공부해야(Swift 공부는 당연히 병행한다는 전제하에) 가장 효율적으로 목표를 달성할 수 있을지가 고민됩니다.
예를 들어 작년에 공개된 SwiftUI를 보면 꽤 편리해보이지만, 나온지 얼마 안되어서 확장성과 호환성이 부족하고 레퍼런스도 별로 없더군요. 그렇다고 Storyboard를 공부하자니, 스토리보드가 현업에서는 별로 쓰이지 않는다는 글도 많이 보이구요. Flutter라는 것도 있던데, Dart라는 불편한 언어를 또 배워야한다네요.
웹 개발의 경우에는 Django 하나만으로도 실무 수준의 웹사이트를 쉽고 빠르게 만들 수 있었는데, iOS 개발에서는 이런 게 없을까요?
배우기 쉽고, 기능도 강력하고, 확장성 및 호환성이 좋고, 레퍼런스도 많은 프레임워크가 있다면 그게 무엇인가요? 그런 게 있다면 그거 하나만 각 잡고 파려고 합니다.
조언 부탁드립니다.
감사합니다.
그래서 현재까지는 Storyboard로 작업하거나 XIB, 아니면 Storyboard를 사용하지 않고 UI를 구성하기도 합니다. Storyboard는 직관적이지만 Git 같은 버전 관리를 하면 충돌이 자주 생긴다는 단점이 있죠. 코드로 뷰를 짤때 SnapKit과 같은 라이브러리를 사용하면 훨씬 간결하게 AutoLayout을 구성할 수 있다고 합니다.
저도 배우는 입장이지만 Swift에는 왕도가 없다고 느낍니다. 여러 프레임워크와 라이브러리를 익혀야 잘 만든 앱이 나오죠. RxSwift같은 비동기 라이브러리나, MVVM, ReactorKit 같은 디자인 패턴도 익혀야 하더군요.
책을 몇권 추천드리자면, 최근에 개정된 "Do it! 스위프트로 아이폰 앱 만들기 4판" 책이 좋았습니다. 문법을 몰라도 Xcode 사용법을 알려줘서 내용이 쉽더군요. 또 "꼼꼼한 재은 씨의 Swift" 시리즈도 좋습니다. 기초부터 차근차근 알아가기에 적합한 책입니다.
책을 좋아하지 않으신다면 "야곰"님의 유튜브에 있는 Swift 문법 강좌, 그리고 "부스트코스 iOS 프로그래밍 강좌"도 한번 살펴보세요.
스토리보드가 왜 현업에서 안쓰인다고 하는지 모르겠네요. 잘 쓰이고 있습니다. 어차피 스토리보드는 xib 를 연결해줄뿐이라 스토리보드를 쓴다는건 xib를 잘 알고 코드로 해야 할 일부를 스토리보드의 도움을 받는 정도라.. (스토리보드 하나에 여러 vc 를 배치해서 쓰는건 말리고 싶고, vc 하나에 스토리보드 하나, 그리고 연결은 storyboard reference 를 이용하는걸 추천)
왕도는 없지만 ios를 공부한다면 저라면 1년간은 swiftui 는 멀리하고 combine 정도는 배우는건 추천, uikit을 중심으로 간단한 앱을 만들어보는걸 추천합니다.
mvvm같은 아키텍처도 처음이라면 기본인 mvc를 그냥 쓰는걸 추천하고요. 왜 mvvm이 나왔는지 mvc로 어느 정도 앱을 완성하고 mvp / mvvm 같은걸로 리팩토링 하면서 그 장점을 익히는걸 추천합니다. rx나 combine 같은것도 첨엔 안쓰는걸 추천하고요. 그거 없이도 다들 앱 만들어왔어서... 그 장점을 익히려면 첨에 안쓰는것도 좋습니다.
(swift ui의 프리뷰 기능은 기존 uikit과 연결해서 uikit으로 작성해서 swiftui 로 프리뷰만 하는 정도라면 추천)
일단 UIKit으로 앱 하나 만들어보면서 조금씩 라이브러리를 확장해나가면서 공부해봐야겠습니다. 조언 정말 감사드립니다!
일단 스토리보드에 뷰컨트롤러 몰아넣는건 conflict 문제도 있고 점점 느려지는 문제도 있어 저도 그닥 추천 안드리고요
개별 xib로 쪼개서 처리하는게 훨씬 나았습니다.
xib로 auto layout 잡는것도 다른사람 소스 볼 때 필요하니 알아두셔야하고 코드로 레이이웃 잡는 방법도 같이 알아두셔야 합니다.
swift가 문법도 모던하고 4.0 이후로는 많이 안정화가 되서 개발하기에 생산성도 높고 괜찮습니다. 1.0은 진짜 ㅆㄹㄱ였죠..;;
iOS쪽 개발이 처음이시면 flutter 같은 것들보다는 swift를 먼저 깊이 파보시는걸 추천합니다.
어짜피 나중에 네이티브쪽 코드를 안만들 수는 없습니다.
/Vollago
https://cocoacasts.com/organizing-storyboards-with-storyboard-references
https://code.tutsplus.com/tutorials/ios-9-staying-organized-with-storyboard-references--cms-24226