본문 바로가기

분류 전체보기

(286)
[iOS] xcode pbxproj 충돌. pbxproj merge confilt를 자동으로 할 경우 문제와 해결 방법 파해치기!!! | # 자동 병합?! 안녕하세요. 이번 포스트에선 xcode 프로젝트에서 실행버튼이 막혔을 때, 그리고 pbxproj 자동 병합의 장 단점에 대해 소개하려고 합니다. xcode 실행 버튼이 안열리는 이유 위 사진은 협업하다보면 자주 일어날 수 있습니다. 아니면 서로 다른 브랜치에서 혼자 만들었던 파일을 막 수정하거나 삭제한 후에 서로 다른 브랜치를 합칠 경우에도 발생될 수 있습니다. 이 경우는 pbxproj 파일 내부 코드에서 깃 충돌이 났을 때, 병합 충돌을 표시해주기 위해 추가적으로 삽입되는 코드들 때문에 실행이 안되는 것입니다. 이 충돌을 해결하기 위해선 위와 같은 경로로 들어가서 project.pbxproj 파일의 코드를 수정하면 됩니다. ( 깃허브에서 제시한 충돌 내용을 제거하면 됩니다. ) 이렇게 충돌이 난 이유 ..
[iOS] 컬랙션 뷰 Flow -> Compositional layout으로 리펙터링하기 #1 안녕하세요. 이번 포스트에서 컬랙션 뷰 flow layout으로 구현했던 기존 여행 앱 피드 화면을 compositional layout으로 리빌딩한 경험을 공유하려고 합니다: ] 리빌딩을 하게된 이유 왼쪽 동영상은 기존에 구현했던 화면입니다. 그리고 디자이너분이 새롭게 오른쪽 동영상처럼 더 이쁜 디자인을 만들어 주셨습니다. 피드 홈에서는 사용자의 여행 후기를 보여주는 포스트 cell로 이루어진 컬랙션 뷰로 위 화면이 구성되어있는데 기존 구현은 컬랙션 뷰의 flow layout을 이용했습니다. TableView vs CollectionView 선택 과정.. 피드의 cell 구성입니다. 컬랙션 뷰를 선택한 이유는 cell의 높이가 서로 다르기 때문입니다. (초기에는 thumbnail 영역 뷰 높이 또한 이..
[iOS] super 클래스에서 발생되는 delegate! sub class의 delegate로 한번에 처리하기 | Base view #1 안녕하세요. 벌써 수확의 계절이 왔네요. (전 이제부터 시작인데,,🌻 ㅎㅎ) 요즘은 앱 개발을 할 때 어떻게 공통적인 코드들을 줄일 수 있고 쉽게 활용할 수 있을지를 고민하며 개발을 합니다. 오늘은 view 타입의 Base(super) class에서 선언한 delegate와, base class를 상속받은 sub class에서 어떻게 sub class에서 추가적으로 발생하는 또 다른 delegate를 super class의 delegate와 같이 sub class의 한 개의 프로퍼티에서 수행할 수 있는지 해결 과정을 글로 작성하려고 합니다: ] 공통 뷰와 BaseDelegate를 구현하게 된 상황 지금 개발중인 "여행을 가다" 앱에서는 위와 같은 컴포넌트들이 있습니다. 제가 생각했을 때 이 사진에서 공통..
[Github/협업] Github Project로 해야할 개발 todo list를 편하게 관리하기!!! #1 안녕하세요. 이번 포스트는 Github 카테고리에 있는 Project 탭을 통해 프로젝트에서 개발 tasks의 to do list를 정하고 풀리퀘 할 때, 이슈를 기반으로 todo list를 연동해 작업들의 수행 상태를 다루는 방법을 공유하려고 합니다: ) 저는 기존에 협업 시 개발해야 할 요구사항 todo list를 팀원과 같이 노션에 정리 해왔습니다. 그리고 지금 작업중인 개발 진행 상황을 notion의 간트 차트를 통해 서로의 개발 작업 상황을 팀원과 공유했었습니다. 이 경우 좋은 점은 서로가 하고 있는 업무를 공유할 수 있다는 점입니다. Github project와 issue로 개발 todo list를 관리하기 +_+그것은 바로 Github Project와 issue를 통해 위와 같은 개발 진행 ..
[백준/Swift] 16917: 양념 반 후라이드 반 | PS일지 문제 간단한 문제 요약 치킨은 양념 치킨, 후라이드 치킨, 반반 치킨 세 종류를 판매한다. 각각 A원, B원, C원이다. 파티를 위해 양념취킨 최소 X마리, 후라이드 치킨 최소 Y마리 구매해야한다. 반반 치킨 두마리를 구입하면 양념치킨 하나, 후라이드 치킨 하나를 만들 수 있다. 치킨을 구매하는 금액의 최소값을 구하자. 고려해야 할 사항 최소한으로 양념 X마리, 후라이드 Y마리를 구매해야 한다. X, Y를 구매할 수 있는 최소 가격을 찾어야한다. 문제 풀이, 했갈렸던 점 대박.. 접근 방법은 크게 두가지 였습니다. 첫째는 후라이드 X마리 + 양념 Y마리 구매하는 경우 두번째는 최소 X, Y중 작은 값 만큼 반반 * 2로 구매한 가격 + 남은 치킨 * 해당 치킨 가격 만큼 구매한 가격 이 두가지 중 비교를..
[Swift] enum에서 사용되는 CaseIterable, RawRepresentable protocol 깊게 탐구하기!! 안녕하세요. 오늘은 enum에서 enum type의 모든 case를 Collect해서 배열로 반환할 수 있는 protocol인 CaseIterable을 소개하려고 합니다. 그리고 RawRepresentable도 소개하려고 합니다. Enum 타입으로 case에 rawValue, associated value 뿐 아니라 더 다양하게 활용할 수 있는 protocol이 제공되는 Swift가 정말 좋다고 느껴집니다: ) CaseIterable Protocol CaseIterable은 protocol입니다. Protocol 장점은 상속이 되지 않는 값 타입 자료형인 Enum에 여러 개의 protocol을 채택할 수 있습니다. allCases의 타입은 Self.AllCases입니다. 이는 Collection을 준수하..
[부트캠프] 소프티어 부트캠프 2기 iOS 수료 후기 : ] 안녕하세요. 저는 2023년 07월 ~ 08월 2달간 소프티어 부트캠프 iOS 활동을 수료했습니다. 이전 포스트에서 1차 코딩테스트, 2차 소프트웨어 지식 테스트 후기와 1주차 활동하면서 느낀 경험을 작성했는데요. 이번 포스트는 부트캠프를 수료하면서 활동했던 경험을 공유하려고 합니다. 지원 동기 학교 다니면서 iOS 공부를 같이 병행했습니다. 꾸준히 iOS 개발과 공부는 하고 있는데 앞으로 어떻게, 무엇을 주제로 iOS 공부를 해 나가야 더 좋은 개발자로 성장하고 인정받을 수 있을지 제일 큰 고민이었습니다. 그 외에도 iOS 개발하면서 해결하지 못한 궁금증들은 쌓여만 갔습니다. 소프티어 활동은 서울 한양대학교에서 대면으로 했었는데요. 저는 대전에 거주하지만, 이번 부트캠프에서 위의 내용에 대한 해결방안을..
[iOS architecture] Swift에서 MVVM과 MVC 아키텍처 차이점 자세히 파해치기! | ViewModel, Model의 역할 구분하기!!!! 안녕하세요. 이번 포스트는 MVVM 아키텍처를 사용할 때 Combine framework로 input/output을 정의하기 전에 MVVM과 MVC의 차이점을 파해쳐보면 좋을 것 같아 글을 따로 작성하게 되었습니다. 소프티어 부트캠프 활동을 하며 새로 알게된 내용이 많아 정리도 할 겸 글을 작성하게 되었습니다. 중요. 가장 중요하다고 생각이 드는 MVC와 MVVM의 차이가 무엇인지 생각하기 MVC와 MVVM의 차이점이 무엇일까요? 지금 당장 차이점을 모른다면 ViewModel을 선언해서 사용 할 이유도 없고 input/output binding으로 흐름을 제어하는 이유가 없습니다. 굳이 MVVM을 사용하는 이유도 없습니다. 제 글을 통해 조금이라도 도움이 되셨으면 좋겠지만 제가 표현을 잘 못해서 글이 조..