본문 바로가기

전체 글

(36)
Swift Async - Await, Combine 원만한 합의 부탁드리겠습니다.(3 - 完) 이전의 글 발행 이후 세번째이자 마지막 글인 이 글을 쓰는 데에까지 시간이 오래 걸린 이유가 있다. 간단하고 쉬운 aysnc-await 쓰면되지 왜 굳이 어렵게 Combine을 쓰느냐에 대한 대답 자체는 간단했으나, 그에 대한 부가설명을 위해서 공부해야할 것이 정말 많았고, 공부한 것을 적용하며 이번에 출시한 SeoulSalam을 개발하고, 내 몸으로 느낀 것들에 대해서 쓰고 싶었기 때문이다. 그러면 지금부터 왜 Combine을 쓰는지, 그리고 그 이유들에 대한 부가설명을 시작하도록 하겠다. 1. Why Combine? 전에 알아봤던 대로 swift의 modern concurrency(async-await)는 정말 쉽고 간단하다. 그렇지만 Combine은 단순히 비동기 처리만을 위한 프레임 워크가 아니였..
WWDC2023 Swift Student Challenge에서 accepted 했으나 수상실패한 경험 회고 원래 목표가 accepted 였으니 내 목표는 달성했다. 하지만 막상 수상하지 못하니 아쉽긴 하다. 아무튼 내가 제출한 플레이 그라운드 앱을 소개하자면, Ho'oponopono 라는 명상 앱이고 같은 이름의 하와이의 명상법을 소개하는 앱이다. iPad앱의 HIG를 정리해놓은 글을 읽어보신 분이 있다면 위 이미지를 본 적이 있을것이다. 이는 내가 제출한 앱의 첫 화면이다. 앱은 부트캠프에 있을때 혼자서 재미삼아 많이 공부했던 swiftUI animation과 AVFoundation 이 두 가지만을 이용한 아주 간단한 앱이다. 사실 처음에 더 많은 기능들을 넣었었는데, 나의 패착이 하나 있었다. 처음 내가 챌린지의 요구사항들을 보았을 때, 나에게 든 생각은 음성인식이었다. iPad앱의 HIG를 정리해놓은 글..
TCA(The Composable Architecture) 아키텍쳐란? 해당 블로그 글은 구버전에서 작성된 소개글입니다. TCA 1.0 버전은 이 링크를 통해 학습하실 수 있습니다. 제가 직접 집필하였으며, 무료입니다. 이번에 출시한 앱 SeoulSalam에 적용된 아키텍쳐 프레임워크 TCA에 대해 공부한 내용을 공유해보도록 하겠습니다. https://www.pointfree.co/ Point-Free: A video series on functional programming and the Swift programming language. Point-Free is a video series exploring functional programming and Swift. www.pointfree.co TCA를 개발한 사람들의 공식 사이트이자, 이번에 공부하고 코드를 짤 때 제일..
fastlane을 통한 CI/CD 자동화 1. CI / CD? CI 는 Continuous Integration의 약자로 말 그대로 코드의 변경 사항들이 테스트 혹은 빌드 되어 레포에 지속적으로 통합되는 것을 의미한다. CD 는 Continuous Delivery로 CI가 끝난 시점에서 구축된 어플리케이션을 지속적으로 제공하는 것을 의미한다. CI/CD 파이프라인은 Code - Build - Test - Release - Deploy 로 구성이 되는데, 이 글에선 Test Release Deploy의 과정을 담아보도록 하겠다. 드림코딩에서 위 내용을 조금 더 세세하게 정리해놨으니 체크하면 좋을 것 같다. 2. Fastlane 이를 관리하는 여러가지 툴이 있는데, 이번에 출시하기로 하는 앱은 fastlane을 써보기로 했다. fastlane은 프..
태블릿 app을 만들땐 무엇을 고려해야할까? 태블릿 app과 워치 app에서 좋은 사용자 경험을 위해선 무엇을 고려해야할까? 이를 위해서 애플의 Human Interface Guideline에서 제시하는 디자인 가이드라인을 참고해 보았다. 우선 태블릿에 대해 먼저 얘기해보자. 사실 태블릿의 HIG는 앱스쿨에서 iOS, iPadOS, tvOS 연동이 되는 30명 규모의 쇼핑몰 프로젝트의 PM 겸 개발자를 맡아서 한 경험과 2023 Swift Student Challenge에 참여하면서 많이 공부하고 적용해 본 경험이 있다. 태블릿 app을 개발할 때는 사용자가 대화형으로 컨텐츠를 탐색하고 조작할 수 있도록 최대한 간편하게 구성해야 한다고 한다. 근데 대화형이 뭘까? 대화형이라는 말은 사실 애플에서 공식으로 아이패드 관련의 가이드라인에서 쉽게 찾아볼 ..
아랍어로 앱을 만들 땐 무엇을 고려해야할까? 이번에 제작하는 앱은 한국에 거주하고, 한국에 여행을 온 무슬림들을 위한 앱이다. 그렇기에 디폴트 언어를 영어로 하고 아랍어로 locale을 진행을 하려고 생각했다. 오른쪽으로부터 가로쓰기인 우횡서의 서자방향을 가진 아랍어는 사실 간판, 메뉴판, 신문 뿐만 아니라 웹사이트 마저도 우횡서로 우리가 흔히 접하는 웹사이트와 반대로 되어있다. 사실 Xcode 내에서도 아랍어 localizable을 적용하면 위와같이 우횡서 화면으로 전환을 시켜준다.(대박) 하지만 그럼에도 UI의 구조는 변하지 않기 때문에 이에 대응할 수 있게 구현을 해야하는데, 조사를 해본 결과 가장 대중적이고 많이 사용 되는 방법이 있다. 모든 cell과 요소들을 중앙에 배치하고, 영어 혹은 타 언어에서 아랍어로 바뀐 경우의 충분한 공간을 두..
Xcode 패키지 무한로딩 오류 맥북 앱스토어에는 아주 전설의 앱이 하나 있죠...iOS 개발자라면 누구나 다 아는 그 앱. 전설의 별점 2점. 밉상 그 자체 엑스코드. 오늘 모든 프로젝트들이 패키지를 안 불러오는 총파업에 들어가 하루종일 속에 천불이 났다.. 그리고 그 원인은 두 가지였다. 1. 그냥 SPM 문제 그래도 1번 문제는 다행인거다.. File -> Packages -> Reset Package Caches 하면 금방 불러와주니까.... 2. iCloud 진짜 얘는 이번문제 해결되면 바로 해지할거다. 진짜 답답하고 사람 미쳐돌게 만드는 서비스ㅡㅡ. 지금 실리콘 맥을 구매한지도 벌써 3년차가 되어가는거 같던데, 내가 유료로 결제해둔 iCloud 저장공간에 얘가 내가 해달라고 한적도 없는데 sync해놓고 파일들을 필요할때만 불..
아랍어 Localization 추가 시 발생하는 아주 의외의 문제 현재 만들고 있는 앱이 한국에 사는 무슬림들을 위한 앱이기 때문에 아랍어 Localizable file을 추가했다. Localization은 전에 적용해 본 적이 있는 터라 문제없이 잘 했지만..... 아랍어로 변경시 특정 뷰에서 앱이 죽어버리는 아주 큰일이 발생해버린 것이다...!!! 무슬림들의 기도시간을 api로 받아와 나타내는 페이지이다. 앱의 언어 설정이 영어일 경우엔 위와 같이 문제가 없이 나타나는데, 아랍어로 할 경우엔 저 페이지에서 앱이 죽어버리고 만다...' Localizable 파일을 완벽하게 작성한게 아니라서 그런가 했다(근데 형식만 맞추면 앱이 죽을 일은 사실 없다는 것을 알고 있었다) 확인해보니 역시 아니였고... 이후 예측이 되는 문제점은 두가지였다. 1. 아랍어를 고려해서 왼쪽에..