본문 바로가기

Xcode50

[iOS] Swinject를 적용해보면서... - 의존성 주입 Dependency Injection, Inversion 한창 Android를 공부할 당시 DI 라이브러리로 Hilt와 Koin 중에 무엇을 쓸지 고민했던 기억이 납니다. 제 사견으로 iOS에서는 보편적으로 쓰이고 유명한 DI라이브러리는 잘 못들어본 것 같습니다. 안드로이드가 상대적으로 자료가 더 많아서 그럴수도 있겠지만요. 그동안 싱글톤으로 DI Provider를 만들어서 처리해왔는데 이참에 알아보려합니다. 나름대로 주변 개발자 or 팔로우한 개발자 or 검색을 통해 알바본 바로는 Swinject가 많이 보이더군요. https://github.com/Swinject/Swinject GitHub - Swinject/Swinject: Dependency injection framework for Swift with iOS/macOS/Linux Dependency.. 2023. 1. 15.
[iOS] Swift retain Cycle 순환참조, weak, strong, unowned 궁금증 : unowned self, weak self 안 붙이면...? 동적으로 메모리를 할당할 때 (객체) 힙영역에 생성되고 필요 없을 경우 소거됩니다. 언어별 메모리 관리 방식 JAVA 자바는 가비지컬렉터를 이용해서 자동적으로 이 메모리를 관리하게 됩니다. 편리하지만 수시로 돌아가다보니 퍼포먼스에 영향을 줄 수 있습니다. C, C++ 직접 메모리 할당, 해제해주어야 함 Swift ARC (자동 참조 관리) 자동참조계수를 통해 추적하고 메모리 관리. 필요없는 인스턴스 메모리를 자동적으로 해제. (Count가 0이 되면 해제됨.) 자동참조 계수에 대한 예제 view변수에 MyView 인스턴스를 초기화 하였습니다. 이때 view는 Strong reference, 강한 참조를 가지며 MyView 인스턴스의 .. 2023. 1. 12.
[Git] 2022년을 돌아보면서... 협업 시 주의해야할 점. 작년 여름까지만 해도 두명에서 세명정도의 작은 그룹에서만 git을 사용해왔습니다. git브랜치 전략 수립, Commit Convention 정하기, 작업이 끝난 브랜치는 상의 후 정리하기 등등 여러 시행착오 끝에 자연스럽게 루틴이 형성되어 있었습니다. 기업마다 다양한 방법이 있겠지만 어떤 방법이든 적응할 수 있다고 생각했죠. 22년 하반기부터 지금까지는 git을 활용하여 훨씬 많은사람들과 협업을 해볼 수 있었습니다. 4명부터 5명, 8명, 그리고 30명 가량의 사람들이 함께 참여하는 프로젝트까지... 프로토 타입 수준의 iOS앱부터 실제 앱스토어에 출시하는 앱까지 10개 정도의 프로젝트를 경험해보았던 것 같습니다. 훨씬 많은 사람들과의 협업을 하면서 다짐하였던 주의해야할 점들을 몇가지 적어보려합니다. 1.. 2023. 1. 8.
[iOS] arch x86_64 왜 쓰세요? CocoaPod 쓰다가 생긴 궁금증 - 에이젠 https://hongssup.tistory.com/34 신형 맥북 M1 칩 cocoapods 설치 _compatibility with M1 chip issue 큰맘먹고 맥북을 장만했는데, 신형 M1칩을 사용하면서 오류가 많은 것 같다. 아직 M1이랑 호환이 잘 안되나봐ㅠㅠㅠ 많은 사람들이 비슷한 문제를 겪고 있는 것을 확인. sudo gem install cocoapods 하면 hongssup.tistory.com M1 맥북에서 코코아팟으로 라이브러리 관리를 하다보면 자주 발생하는 문제가 있는데 위 블로그의 내용처럼 명령어 앞에 arch x86_64를 붙여서 해결하게 되죠. 그동안 기계적으로 사용하면서 신경쓰지 않았지만 갑자기 궁금해졌습니다. "arch -x86_64" 명령은 명령을 실행 중인 시스템의.. 2022. 12. 4.
[Error] 더미데이터가 보여지지 않는 현상 (UUID 중복) - 에이젠 저를 포함한 5명. SwiftUI 토이프로젝트를 만들어보고 있었습니다. 저는 아래와 같은 검색 화면을 구현하고 있었습니다. 단어 또는 단어 뜻을 탐색하여 or연산을 통해 검색결과가 나오게 됩니다. 위에 중복으로 두가지가 나온건 동일한 더미데이터를 두개 넣어놔서 그렇습니다. 팀원들이 각자 맡은 파트를 수정한 후 merge해주었고 다시 열어서 테스트를 해보는 중 문제가 발생합니다. 한번 검색을 하고 나서 다른 단어를 검색해도 가장 처음 검색한 단어에 대한 결과가 바뀌지 않았습니다. 같은 결과만 계속 나오는 겁니다. 텍스트를 모두 지우면 빈 화면이 나타나게 되어서 searchStr(텍스트 필드 String값)이 제대로 옵저빙 되고 있는 것은 맞는데 왜그럴까요... 다시 실행해서 다른 검색어를 입력하면 최초 검.. 2022. 12. 2.
[Error] 테스트 플라이트 업로드 중 발생한 Error : Invalid Pre-Release Train. The train version '1.0' is closed for new build submissions - 에이젠 최종 산출물을Zip 파일로 전달 후 다른 기기로도 테스트하실 수 있도록 테스트플라이트 업로드를 하던 중 발생한 에러입니다. 업로드 버튼 누르고 기분좋게 밥먹으러 갔다왔는데... 프로젝트 기간동안 50번 정도 똑같은 루틴으로 테스트플라이트 업로드를 하면서 한 번도 발생하지 않았는데 뭐지? 원인은 간단했습니다. 이미 1.0버전이 앱스토어에 올라갔기 때문에 지금 업로드하려고 한 버전도 1.0버전으로 중복되기 때문이었습니다. minor version을 한단계 올린 1.0.1 version으로 업로드하여 해결하였습니다. Build Number는 동일하게 해두어도 테스트플라이트에 업로드되면 자동으로 빌드 넘버가 올라갔었기에 1.0(1) -> 1.0(2)-> ... -> 1.0(49) -> 1.0.1(1) 신경쓰지 .. 2022. 11. 29.
[Error] Access to UITextField's _placeholderLabel ivar is prohibited. This is an application bug" ReactorKit Cleverbot 예제 참고를 위해 clone받고 실행해보니 빌드는 성공하는데 런타임 중 제목과 같은 에러가 뜨더군요. 바로 같은 사례를 찾을 수 있었고 요약하자면 UITextView+Placeholder 라이브러리에서 UITextField의 Placeholder의 컬러에 접근했던 코드에서 에러가 발생하는 상황입니다. 지금은 접근이 금지되었다는 것이죠. 이분이 사용하신 버전은 제가 지금 install한 버전과 같은 1.2 버전이었다고 합니다. 바로 업데이트 해줍니다. https://brody.tistory.com/79 [오류] Access to UITextField's _placeholderLabel ivar is prohibited. This is an application bug .. 2022. 11. 27.
728x90