[SwiftUI] 아키텍처 고민
·
SwiftUI/정리
아키텍처 Toucher 개발을 리펙토링 하면서 제일 먼저 한 고민은 "어떤 아키텍처를 해야하는 것인가,,?" 이었습니다. 일단 저희한테 맞는 아키텍처를 찾으려면 어떠한 아키텍처가 SwiftUI 에서 사용이 되는지 알아봤어야 했기에 간단하게 서치를 해봤습니다. MVC Model-View-Controller 주로 UIkit에서 이용을 합니다. SwiftUI에서는 아래와 같은 이유로 사용을 지양하고 있습니다. SwiftUI는 선언적인 구문을 사용하여 UI를 정의합니다. 원하는 결과를 선언하고 프레임워크가 알아서 상태 및 레이아웃을 관리합니다. SwiftUI는 바인딩(Binding) 및 상태 속성(State Property)과 같은 반응형 프로그래밍 개념을 도입하여 UI 요소를 데이터에 쉽게 바인딩할 수 있습니..
[회고록] Toucher 후기 1편 (Apple Developer Academy)
·
기타/후기
안녕하세요 불망입니다,,! 12월달에 아카데미를 수료하고 휴식하다가 2024년이 되어서야 그 동안 개발하느라 회의하느라 노느라 미뤄 놓았던 회고를 합니다..! MC2란 Mini Challenge 2로 두번째 프로젝트라고 생각하시면 될 것 같습니다. 소개해드릴 앱은 앱 스토어에 배포를 하였습니다. 아래 링크에서 확인하실 수 있습니다. https://apps.apple.com/kr/app/toucher/id6474778455 나의 역할 두번째 프로젝트를 소개하기 앞서 저에 역할에 대해서 알려드리겠습니다. 이번에 저는 다양한 경험을 해보고 싶었습니다. 저는 프로젝트를 진행하면서 쌓은 경험은 저에게 큰 도움을 주고 앞으로 어떤 문제가 발생할 때 다양한 경험이 그것을 해결해 줄 수 있다고 생각하는 사람입니다. 그..
[SwiftUI] 코드 중복 실행 문제
·
SwiftUI/개발
이슈 iWaver 프로그램을 개발하는데 이슈가 있었습니다. 저희 프로그램에 있는 기능 중에 유저가 선택한 파일 경로를 보여주는 기능이 있습니다. 아래 GIF를 보시면 선택된 폴더로 저장위치가 바뀌는 것을 볼 수 있습니다. 여기서 이슈가 발생했습니다..! 아래 GIF를 보시면 코드가 한 번만 실행이 되어도 되는 코드인데 계속 여러번 반복 되어서 실행이 되었어요 😲 이 문제의 원인은 바로 View안에 함수가 들어가 있기 때문입니다! View안에 함수가 들어가게 된다면 아래 같은 문제가 발생하게 됩니다. 해당 함수가 호출될 때마다 View가 변경되었다고 판단하여 다시 렌더링을 수행하게 됩니다. 이것이 필요한 동작이 아니라면 불필요한 리렌더링으로 성능에 영향을 줄 수 있습니다. 저희 같은 경우 아래 코드가 Vi..
[Swift] 이미지 저장 기능
·
SwiftUI/개발
프로젝트를 진행하면서 고민해야 할 부분이 생겼습니다. 저희 프로그램은 Pdf→ Image → Numbers 로 변환을 해주는 프로그램입니다. 이때 여러 PDF 파일에서 Numbers로 변환할 Image들만 맥북에 저장을 하고 저장한 Image들을 Numbers 파일에 삽입 후 Image를 삭제합니다. 어떻게 개발을 해야할지 고민을 해봤습니다. 이미지 저장 Flow (개발) PDF에서 선택된 이미지만 유저가 지정한 경로에 iWaverTemp폴더(🗂️)에 저장이 됩니다. 이 폴더는 Numbers 파일 생성이 완료되면 자동으로 삭제됩니다. 예시) 유저가 3개의 Numbers 파일을 생성한 경우 🗂️ iWaverTemp ├──🗂️ 유저가 정한 numbers1 파일 이름 │ ├── Image0 ~ Image30 ..
[Swift] 폴더 이름 중복 검사
·
SwiftUI/개발
서론 Apple Developer Academy에서 마지막 프로젝트를 진행하면서 만든 기능에 대해서 적었습니다. 유저가 지정해둔 경로에 유저가 정해둔 파일 이름이 있다면 다른 이름으로 저장을 해줘야 하는 기능을 만들어야 했습니다. 첫 번째로 해줘야 할 작업은 유저가 지정해둔 경로에 어떤 이름들이 있는지 알아야 했습니다. 저희 프로그램은 PDF → Image → Numbers로 변환해주는 프로그램인데 PDF에서 이미지로 변환해준 것들을 새로운 폴더에 지정해서 저장해주고 Numbers로 변환 후 삭제 하였습니다. 그렇다면 제가 어떻게 중복검사를 했는지 설명하겠습니다. 유저가 지정한 경로에 파일 및 폴더 이름 확인 첫번째로, 해야할 일은 유저가 지정한 경로에 어떠한 이름들이 있는지 확인해야 했습니다. sear..
[Swift, Git] Bundle Id 변경하지 않고 협업하기
·
Git
Bundle Id 변경하지 않기 안녕하세요 불망입니다~! 애플 디벨로퍼 아카데미에서 여러 개발자분들과 협업하면서 Bundle id 계속 교체 했었는데요. Github에 다른 개발자 분께서 Merge하셨을 때 번들아이디를 계속 제거로 수정해줘야 하는 일이 너무 번거로웠습니다. 그래서 마지막 프로젝트에서는 번들아이디를 교체하지 않고 협업하려고 설정하였습니다. 저희 팀원께서 알려주셔서 저도 문제 없이 사용할 수 있었습니다. 감사합니다 👍 순서대로 따라하시면 문제없이 작동합니다~! 1번 Target - Build Settings - Packaging 에서 Product Bundel Identifier 를 더블클릭하여 $(PRODUCT_BUNDLE_IDENTIFIER)를 입력해줍니다 2번 Target - Buil..