전체 카테고리 225

[Swift] Core Motion (feat. 흔들기 감지센서 개발)

안녕하세요 이번에는 아이폰 흔들기를 감지하는 기능을 구현해볼려고합니다! 흔들기를 감지하는건 기본적으로 UIResponder에 있는 메서드에서 쉽게 이벤트를 받아서 처리해볼 수 있어요 UIResponder니까 UIView, UIWindow, UIViewController... 어디에든 많이있죠 시점에따라서 began, ended가 있어서 원하는시점에 실행할수있고 취소했을때도 보이네요 이벤트가발생하면 UIEvent.EventSubtype이 전달되는데 폰을 흔들었을떄 motionShake이벤트를 받게되요 public override func motionEnded(_ motion: UIEvent.EventSubtype, with event: UIEvent?) { if motion == .motionShake {..

iyOmSd/Title: Swift 2023.04.19

[Swift] Pulse 네트워크 디버깅 라이브러리

주변에서 듣고 프로젝트에 도입해서 아주 만족감 높은 라이브러리를 소개해드릴려고해요 https://github.com/kean/Pulse GitHub - kean/Pulse: Network logger for Apple platforms Network logger for Apple platforms. Contribute to kean/Pulse development by creating an account on GitHub. github.com https://kean-docs.github.io/pulse/documentation/pulse/gettingstarted Documentation kean-docs.github.io https://kean.blog/pulse/pro Pulse Pro A power..

iyOmSd/Title: Swift 2023.03.29

[SwiftUI] 분리된 프레임워크(모듈) 리소스(Font, Color, Image)접근

개발하면서 경험했던 이슈를 공유겸 기록하려고합니다 Tuist를 사용해서 개발하면서 UI모듈을 나누게됬어요 UI가 분리되었으니 리소스에 해당하는 이미지, 컬러, 폰트같은 요소들이 UI모듈에 정의되고 다른곳에서 꺼내쓰는 방식으로 사용하죠 위의 그림기준으로 Feature에서 평소와같이 UI를 import해서 사용하게된다면 실행에 오류는없지만 원하는 리소스를 가져올 수 없는걸 확인할 수 있어요 이유는 프레임워크를 분리했기때문에 번들이 분리되어있기때문이에요 먼저 컬러와 이미지에 대해서 정리할게요 결론부터 말하자면 컬러와 이미지는 해결방법이 동일해요 Bundle을 정하고 가져오는 방식이에요 우선 일반적으로 UI모듈에 정의된 컬러에 접근하게된다면 아래와 같은 로그를 만날 수 있습니다. No color named 'n..

[Swift] Tuist 모듈화 응용편 - 모듈화적용후 사용하기

앞서 배운 기본적인 개념을 응용해서 필요한 모듈만 불러와서 사용할 수 있도록 간단하게 구현해볼예정이에요 그래프를 그렸을때 이쁘게 딱 나올수 있도록 App에서 Feature를 만들고 Feature에서 Core에있는 Logger를 사용해보도록 해보게씁니다! 시작은 디렉토리를 먼저 만들어주세요 그 디렉토리로 이동한 후 터미널로 프로젝트를생성 하면 준비는 끝납니다 tuist init --platform ios --template swiftui 프로젝트 설정을 시작해볼까요 tuist edit 프로젝트 설정관련 정의한 파일들은 ProjectDescriptioinHelper폴더에 담을거에요 다른 프로젝트 모듈에서 불러올때 import ProjectDescriptionHelpers 로 불러올 수 있어요 프로젝트를 만들..

iyOmSd/Title: Swift 2023.01.21

[SwiftUI] Widget LiveActivity (feat. Dynamic Island) 잠금화면 기능

LiveActivity가 무엇이냐..? 잠금화면에서 확인할 수 있는 실시간 액션같은 기능이에요 대표적인 예로 배달의 민족에서 사용하고있어요 배달 시키면 이런거 잠금화면에서 볼수있죠? 네 이런겁니다~! 이걸 오늘 해보려고 합니다! ActivityKit 을 사용해요 iOS16.1+ 부터 사용가능하구요! 위젯과 같이 만들어줘야하는 녀석이에요 프로젝트를 만들고 File > New > Target 에 widget을 선택하면 아래와같은 창이뜨는데 Include Live Activity 체크박스를 클릭해줘야합니다! 그러면 관련된 기본 템플릿이 쫙해서나올거에요 plist에가서 Supports Live Activities값을 YES로 권한 설정해줘야 사용가능합니다! 여기까지 셋팅을 끝냈으면 코딩만 남았네요 struct ..

2022 회고

22년이 끝나고 23년이 시작됬네요! 21년에 작성햇던 목표를 보며 22년을 잘보냈나 볼까요 부족한 부분을 찾고 채워나가고 싶어요 지금보니 너무 추상적인 목표네요 부족한 부분을 채워가기위한 노력으로 블로그를 꾸준히 작성하려 노력했어요 달마다 한번씩은 쓰면서 내가몰랐던 지식들, 최신 기술들에 관심을 놓지않기위해 학습하고 블로그를 작성했어요 2022년에는 취직을 하는게 제일 큰목표가 될것같네요 제일 큰 목표를 달성했네요! 개인적으로 전 직장보다 더 만족하는 곳으로 가게됬어요 취직을 하고나서 책을 많이 읽어보려고해요 경제분야와 개발분야책을 읽어서 살아갈때 중요한 경제도 좀 알아가고 개발적으로도 성장해서 멋진 커리어를 만들어가고 싶어요 22년에 책은 2권정도 읽었던것같네요! 개발분야책만 읽었지만 평소에 읽지않던..

끄적 끄적 2023.01.01

[SwiftUI] Intent Widget 동적 위젯 만들기

위젯은 만들때 두가지 형태로 만들수있어요 static형식과 intent형식이 있죠 2021.07.06 - [iyOmSd/Title: SwiftUI] - [SwiftUI] Widget 위젯만들기 이름에서도 느껴지듯 static은 그냥 보여주기만하는 정적인 위젯이에요 위젯 타임라인에 의해서 일정주기로 업데이트되거나 특정API로 위젯을 새로고침해서 보여주는 방식이죠 하지만 오늘 해볼것은 intent 형식이에요 intent형식은 위젯에 동적으로 값을 선택할 수 있고 사용자와 상호작용이 가능한 특성이 있어요 intent 체크박스를 클릭하면 intent형식의 위젯을 생성할 수 있어요 static과는 다르게 .intentdefinition파일이 생성되는걸 볼 수 있어요 위젯설정파일 같은곳인데 여기서 필요한 파라미터..

카테고리 없음 2023.01.01

[Swift] FCM푸시 연결부터 Postman 테스트 푸시까지

FCM을 적용하면서 겪었던 경험을 공유하려고해요 FCM = Firebase Cloud Messaging 의 약자로 firebase에서 제공해주는 푸시알림기능이에요 먼저 FCM 설정하는 방법을 빠르게 알아보도록할게요 Firebase 설정하기 firebase console에 접근합니다 https://console.firebase.google.com/?hl=ko 로그인 - Google 계정 이메일 또는 휴대전화 accounts.google.com 프로젝트가 없다면 만들기를 눌러서 프로젝트를 만들어줍니다 또롱 준비가 완료됬네요 iOS 앱을 추가해주세요 Xcode 프로젝트의 번들 ID를 정확하게 넣어주세요 plist를 다운받아줍니다 다음 설명대로 패키지에 sdk를 추가해주세요 아까다운받은 plist를 잘넣어주시고..

iyOmSd/Title: Swift 2022.12.01

[Swift] Xcode Cloud(CI/CD) + Tuist(프로젝트관리툴) + dSYMs 업로드까지 자동화 배포하기 (feat. 스크립트쉘)

이번글은 나름 Xcode Cloud 사용에 있어서 심화?편인 것같네요 Xcode Cloud를 설정하면서 겪었던 이슈를 해결한 내용을 써내려가려고해요! Tuist를 사용하는데 CI/CD를 적용하고싶어졌어요 Xcode Cloud환경에선 Tuist를 어떻게 실행시키지..? 에서 시작됬어요 Xcode Cloud 환경도 macOS 같을 거니까 어떠한 명령문을 실행할 수 있어요 터미널에서 입력하는 커맨드들을 이용해서 Tuist를 설치할거에요 설치하기앞서서 Xcode Cloud에서 지원해주는 스크립트 실행시점이 있어요 해당 레포에서 클론하고나서 실행시키는 Post-clone시점 - ci_post_clone.sh xcodebuild 하기 전인 Pre-Xcodebuild시점 - ci_pre_xcodebuild.sh xc..

iyOmSd/Title: Swift 2022.11.11

[Swift] Xcode Cloud CI/CD

CI / CD를 하기위해서 github action + fastlane 혹은 bitrise를 사용하곤 했었죠 CI를위한 코드를 작성해야하고 복잡했었어요 저도 예전에... github action, fastlane를 적용하려면 자료찾고 코드작성하고 이해하지못하면 작성하기 어려웠어요 구현만해놓으면 간편하긴하죠 action과 fastlane을 합친 Xcode Cloud라는 대체제가 있으니까 써보자구요 멤버십 구입한 개발자들은 23년까지 월 25시간 무료...! 아~주 간단하고 처음하더라도 금방 따라할수있어요 🤩 순서대로 진행해볼게요! 제일먼저 설정을 좀 해줘야해요 1. developer 사이트에서 앱에대한 identifier를 등록시켜줘야해요 2. 그다음 connect에서 앱을 생성해주면 준비 끝이에요 이 ..

iyOmSd/Title: Swift 2022.11.01