Programming
-
CI/CD - 입문하기 쉬운 Bitrise 사용해보기Programming/iOS 2022. 3. 3. 13:51
안녕하세요 BeePeach입니다. CI/CD는 개발을 하다 보면 꼭 듣게 되는 용어입니다. 앱을 배포해보지 않으면 딱히 필요성을 느끼지 못하고 막상 시작하자니 귀찮아서 다음에 하지 뭐... 라고 생각할 수 있는데요. Bitrise를 이용하면 클릭 몇 번으로 간단하게 CI/CD를 쉽게 경험해 볼 수 있습니다. 먼저 Bitrise를 이용해서 경험을 해보고 이후에 많이 사용하는 서비스인 Jenkins과 fastlane을 이용해보시면 좋은 거 같습니다! CI는 Continuous Integration, CD는 Continuous Delivery의 약자입니다. 굳이 해석하자면 지속적 통합, 지속적 배포입니다만.. 해석을 보고 이해하기는 쉽지 않습니다. CI/CD를 아주 간단하게 설명하자면 CI는 새로운 코드가 추..
-
Swift - UserDefaults에 customType 저장하기Programming/Swift 2022. 3. 1. 22:32
안녕하세요 BeePeach입니다 :) UserDefaults를 사용하다보면 String, Int, Bool, Data 타입 이외의 타입을 저장하고 싶을 때가 있습니다. Custom Type이나 Array, Tuple등을 저장하고 싶은데 저장하려고 하면 에러가 발생하는데요. 오늘은 UserDefault에 원하는 데이터를 저장하는 방법에 대해서 공부해보도록 하겠습니다. UserDefaluts 저장하기 화면 구성은 이렇게 되어있습니다. 맨 위의 저장버튼을 누르면 UserDefault에 Person구조체를 저장해보도록 하겠습니다. 이렇게 실행해보면 에러가 발생합니다. Non-property-list object를 UserDefaults에 저장하려고 한다고 나오네요. 그럼 이 문제를 어떻게 해결할 수 있을까요??..
-
Xcode - Memory Leak 확인하는 방법Programming/갈 곳 잃은 친구들 2022. 2. 17. 15:47
안녕하세요 BeePeach입니다 :) 오늘은 앱에서 memory leak이 발생하고 있는지 아닌지 확인하는 방법에 대해서 공부해보려고 합니다. Memory Leak이 발생하는 대표적인 이유는 strong reference cycle 때문에 발생하게 됩니다. Cycle을 해결하는 방법은 적절하게 프로퍼티를 weak 또는 unowned로 설정하거나 클로저를 사용할 때 capture list를 이용해서 cycle이 발생하지 않도록 해주는 것입니다. 그런데 해결 방법은 알고 있지만 어디서 memory leak이 발생하는지 모른다면 해결할 수 없겠죠?? 그래서 memory leak이 발생하고 있는지, 발생한다면 어느 부분에서 발생하는지 확인하는 방법을 알아야합니다. Memory Leak 확인하기 1. cmd + ..
-
iOS - Cell안에 delegate를 두 객체에 연결하는 방법?Programming/iOS 2022. 2. 16. 21:43
안녕하세요 BeePeach입니다 :) 쌩쑈로부터 시작한 이번 포스팅... 제목도 뭐라고 해야 할지 애매하네요. Cell안에 delegate 구현이 필요한 객체가 있을 때 delegate를 연결하는 방법? delegate를 두 곳에 사용하는 방법?? 일단 시작해보겠습니다. 화면 구성부터 보겠습니다. CollectionView가 있고 cell안에 textField와 textLabel이 있습니다. 그리고 VC의 view에 textField가 하나 더 있습니다. 원하는 구현은 cell안에 textField가 있고 delegate를 통해서 return을 입력하면 화면 중앙의 textField로 firstResponder를 넘겨주고 싶습니다. 그리고 여기에 더해서 입력한 글자를 바로 아래 textLabel에 실시간..
-
iOS - UIScrollView 사용하기Programming/iOS 2022. 1. 31. 12:45
안녕하세요 BeePeach입니다 :) 오늘은 ScrollView를 사용하는 방법에 대해서 알아보려고 합니다. content에 따라서 스크롤 또는 확대/축소가 가능한 View를 만들고 싶을 때 사용합니다. 물론 tableView나 collectionView로 구현할 수 있지만 cell을 생성하지 않고 간단하게 스크롤 화면을 만들고 싶을 때 주로 사용합니다. 간단하게 확대 기능을 사용하고 싶다면 주로 Gesture Recognizer를 이용하면 됩니다. 알고 보면 사실 UITableView나 UICollectionView도 UIScrollView를 서브 클래싱하고 있는 것을 확인할 수 있습니다. 그럼 ScrollView를 어떻게 사용하는지 같이 공부해보도록 하겠습니다. 이 포스팅은 Autolayout을 어느..
-
iOS - Storyboard Merge ConflictProgramming/iOS 2022. 1. 30. 16:40
안녕하세요 BeePeach입니다. 오늘은 Storyboard를 이용해서 팀 프로젝트를 진행할 때 merge conflict가 발생하는 상황에 대해서 알아보고 해결 방법과 방지하는 방법에 대해서 공부해보려고 합니다. 이 포스팅은 아래 블로그를 번역하고 개인적인 설명을 조금 덧붙인 글입니다. Handling Storyboard Merge Conflicts Storyboards are a very useful tool for developing user interfaces in iOS, macOS, tvOS, and watchOS. In addition to providing a way to visually lay out an interface with Auto Layout, they provide a way..
-
Swift - reduce(_:_:)와 reduce(into:_:)Programming/Swift 2022. 1. 29. 15:39
안녕하세요 BeePeach입니다 :> 오늘 공부해볼 내용은 reduce 메서드입니다. reduce 메서드는 Container의 요소를 결합하는 작업을 수행할 때 사용합니다. 그럼 reduce 메서드를 사용하는 방법과 reduce(_:_:)와 reduce(into:_:)는 어떤 차이를 가지는지 같이 공부해보도록 하겠습니다. reduce(_:_:) 선언 부분을 보면 Generic function인것을 확인할 수 있습니다. 타입 파라미터로 Result가 선언되어 있네요. 타입을 확인하기 어렵게 되어있는데 찬찬히 하나씩 본다면 어렵지 않습니다. 첫 번째 파라미터는 initialResult 즉, 초기값이 전달됩니다. 뜬금없이 초기값이 뭔데??라고 할 수 있는데 예제를 보시게 되면 바로 이해하실 수 있습니다. 두 ..
-
Terminal - Homebrew 설치 중 illegal user name ERRORProgramming/Errors 2022. 1. 26. 13:35
원래 Homebrew가 설치되어있었고 이번에 git 새로운 버전을 다운로드하려고 했는데... Intel 버전 homebrew라서 다운이 안된다는 에러가 발생했다... 그래서 homebrew를 삭제후 다시 다운 받기로 결정! Homebrew를 삭제하고 다시 설치 했는데.. illegal user name에러가 발생! 예전에 등록돼 있던 UserName으로 설정이 되려고 했다... 그래서 왜 이름이 잘못 들어가나 찾아보니 .zshrc 파일에서 예전에 114 Line을 추가한 적이 있었는데... 여기서 USER가 변환돼서 설치경로 USERNAME에 저게 들어간 거 같다. 그래서 삭제!! 하고 재실행 후 다시 다운로드해보니 해결 설치가 완료되면 아래 두 명령어를 실행해달라고 뜨는데 마저 실행해주면 설치가 완료된..