전체 글
-
[SwiftUI] Custom modifier👻 iOS 2021. 1. 13. 22:42
오늘 SwiftUI 얘기를 많이하게 되네요. 신기하고 재밌는게 많이 있어서 그런거 같아요. 그런데 아직 실무에서 쓸 수 있을지 가늠이 잘 안가는데 틈틈이 써볼 계획입니다. modifier 를 임의로 만들어 쓸 수 있는데 앱 내에서 지정된 스타일이 있다면 매번 중복으로 사용하기 보다 custom 으로 만들어두고 호출해 쓰면 더 좋아 보이네요. ViewModifier 를 상속받은 TitleLabel 을 만들어 줍니다. struct TitleLabel: ViewModifier { func body(content: Content) -> some View { content .padding() .background(Color.red) .foregroundColor(Color.white) .font(.title) }..
-
[SwiftUI] SwiftUI의 Life cycle👻 iOS 2021. 1. 13. 22:18
SwiftUI를 자주 쓸 계획은 아닌데 하다보니 궁금해서 좀 더 써보고 있습니다. 그런데 막상 시작부터 좀 막히는데 단순히 '컴포넌트의 생명주기는 어디서 구현하지?' 부터 막혔어요 SwiftUI의 modifier 개념은 가이드의 설명으로 봤지만 어떤 modifier 가 있는지는 아직 다 못본 상태거든요. 그런데 이게 chaining 으로 할 수 있는게 생각보다 더 많은것 같아요. 지금 얘기하고자 하는 것들도 이 범위에 포함됩니다. 1. onAppear apple document : developer.apple.com/documentation/swiftui/text/onappear(perform:) viewDidAppear 를 대체하는 기능이에요. 어렵지 않네요 2. onDisappear apple doc..
-
[SwiftUI] AppDelegate 를 대신해 모듈을 초기화 하는 방법👻 iOS 2021. 1. 13. 17:02
SwiftUI가 있다는 것만 알았지 써보는건 처음입니다;; 대충 써보고 React 같은 느낌이기도 했는데 React와 UIKit 에 익숙한 저는 편하면서도 불편한 묘한 느낌이네요 ㅋㅋ AppDelegate 에 앱 실행 시 최초 1회 실행을 보장해야 하는 경우, 예를들어 Firebase 초기화 라던가.. 아무튼 그런 1회성 호출이 UIKit 에서는 AppDelegate에서 아래와 같았어요. func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { ... FirebaseApp.configure() ... } 그런데..
-
[iOS] CocoaPods 설치오류 해결하기👻 iOS 2021. 1. 6. 23:35
노트북을 바꾸었습니다. 환경설정을 또 다시 해야하네요 ㅠㅠㅠ cocoapods 설치를 하려고 아래 명령을 호출합니다. > sudo gem install cocoapods Building native extensions. This could take a while... ERROR: Error installing cocoapods: ERROR: Failed to build gem native extension. current directory: /Library/Ruby/Gems/2.6.0/gems/ffi-1.14.2/ext/ffi_c /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I /System/Library/Frameworks/..
-
[iOS] Child RIBs를 추가해보자👻 iOS 2020. 12. 29. 23:37
2020/12/29 - [👻 iOS] - [iOS] CocoaPods 으로 RIBs 프로젝트 셋팅하기 [iOS] CocoaPods 으로 RIBs 프로젝트 셋팅하기 이전에 시도한 Carthage 로 RIBs 셋팅하는건 잠시 중단하고... CocoaPods 으로 RIBs 셋팅을 해보려 합니다. #2가 있을지 모르겠네요 -_- 하아 너무 힘들었다 2020/12/28 - [👻 iOS] - [iOS] Carthage 로 RIBs 프로.. maart.tistory.com 이전에 셋팅과정을 참고해 주세요 1. 자식 RIBs 템플릿 추가 LoggedOut 그룹을 만들어서 RIBs 템플릿을 이용해 필요한 파일들을 만들어 줍니다. 뷰가 필요한 RIB 이니까 'Owns corresponding view' 옵션을 체크해서 생..
-
[iOS] CocoaPods 으로 RIBs 프로젝트 셋팅하기👻 iOS 2020. 12. 29. 15:30
이전에 시도한 Carthage 로 RIBs 셋팅하는건 잠시 중단하고... CocoaPods 으로 RIBs 셋팅을 해보려 합니다. #2가 있을지 모르겠네요 -_- 하아 너무 힘들었다 2020/12/28 - [👻 iOS] - [iOS] Carthage 로 RIBs 프로젝트 셋팅하기 #1 [iOS] Carthage 로 RIBs 프로젝트 셋팅하기 #1 RIBs 를 이용해서 구조를 잡기로 했고, 모듈의 버전관리는 Carthage 로 해보기로(?) 했어요. 그래서 Quick Start 를 보며 무작정 뛰어들어 봅니다. github.com/Carthage/Carthage#quick-start Carthage/Carthage A.. maart.tistory.com 대충 기본 프로젝트 하나 만들어 주고. 그 다음 pod..
-
[iOS] Carthage 로 RIBs 프로젝트 셋팅하기 #1👻 iOS 2020. 12. 28. 21:30
(주의!) 이 글은 실패 사례입니다. 성공사례는 maart.tistory.com/82 를 참고해주세요 :) RIBs 를 이용해서 구조를 잡기로 했고, 모듈의 버전관리는 Carthage 로 해보기로(?) 했어요. 그래서 Quick Start 를 보며 무작정 뛰어들어 봅니다. github.com/Carthage/Carthage#quick-start 1. Carthage 설치 > brew install carthage . . . 🍺 /usr/local/Cellar/carthage/0.36.0: 8 files, 7.6MB v0.36.0 이 설치 되었네요 버전은 무지막지 한테 아직 1.0이 아니군요? 2. Cartfile 생성 RIBs 가이드에서 아래와 같이 쓰라고 했으니 그대로 넣어 봅니다 github "ube..
-
[iOS] CocoaPods vs Carthage vs Swift Package Manager👻 iOS 2020. 12. 28. 13:56
계속되는 선택의 기로네요;; 얼마 안되는 iOS 개발 경험이지만 웹 프론트 개발에서는 익숙한 NPM과 아주 유사한 CocoaPods을 사용해 봤어요. Swift 2.x버전대에 플젝 규모가 아주 크지도 않았음에도 빌드타임이 상당히 오래 걸렸던 기억이 있고 지금도 버전관리를 CocoaPods으로 쓰는지 찾아보니 Carthage, Swift Package Manager(=SPM) 가 더 있네요 간단한 비교로, - CocoaPods : 모듈의 버전관리가 간편하지만 규모가 커질수록 빌드속도가 함께 증가. (클린빌드 하면 화장실 다녀와야 함) - Carthage : 관리가 불편하지만 빌드 성능의 향상을 얻을 수 있음. - SPM : Xcode에서 제공하는 패키지 매니저. 지원하는 저장소가 생각보다 많지 않음. Co..
-
iOS Architecture👻 iOS 2020. 12. 28. 11:31
새로 iOS 프로젝트를 하려고 준비한다면 누구나 '어떤 아키텍처를 써야 하나?'같은 고민을 할 것 같아요. 이번에 저도 새로운 프로젝트를 시작하면서 다방면으로 고민하고 있습니다. 5년 전에 MVVM을 시도해서 massive MVC를 탈피해 보려고 했지만 결론은 비슷한 지경에 이르렀던건.. 구조화의 실수인지 MV*의 한계인지 모르겠어요. 그래서 이번엔 뭔가 다른게 없을까 하고 조금 찾아보니 RIBs라는 게 있네요 https://github.com/uber/RIBs uber/RIBs Uber's cross-platform mobile architecture framework. - uber/RIBs github.com - Router : RIBs를 떼었다 붙였다 해주는 역활. - Interactor : 비즈니..