Mobile/iOS

    [Xcode 15] Xcode 15에서 추가한 시뮬레이터가 보이지 않는 현상

    Environments - M1 Mac pro 14 - MacOS ver: 14.1.1 (Sonoma) - Xcode Version 15.0.1 문제 상황 MacOS 및 Xcode 업데이트 이후, 기존에 추가해 두었던 시뮬레이터들이 싹 날아가서 다시 새로 추가하였다. iPhone 14 시뮬레이터를 추가했는데도 Xcode에서 빌드할 때 보이지 않는 문제. 해결 시뮬레이터 목록 하단의, Manage Run Destinations에 들어간다. 추가한 시뮬레이터가 좌측에서 보일 텐데, 그 시뮬레이터 창에서 Show run destination을 Automatic에서 Always로 변경해주면 해결.

    [iOS, Swift] NotificationCenter 간단 요약

    개요 객체는 addObserver() 를 통해 notification center에 notification을 수신할 수 있도록 등록한다. 등록하면 객체는 observer가 되는데, 이때 어떤 notification을 수신할 지 명시해주어야 하며, 따라서 여러 가지의 notification을 수신하려면 addObserver() 를 여러 번 호출해야 한다. 앱에는 기본적으로 default notification center가 존재하며(싱글톤), 특정 notification을 관리(발행, 수신)하기 위해 새로운 notification center를 생성할 수도 있다. notification center를 통해, 앱의 한 쪽에서 다른 쪽으로 데이터를 전달할 수 있고, 객체들 간의 상호작용을 구현할 수 있다. N..

    [Swift] URLSession 간단 요약

    URLSession이란? An object that coordinates a group of related, network data transfer tasks. API 통신을 하기 위한 클래스. 데이터를 업로드 / 다운로드하는 데에 사용 앱이 실행중이지 않을 때, 백그라운드에서도 통신이 가능. 하나의 URLSession에서 여러 개의 URLSessionTask 인스턴스를 만들 수 있으며, URLSessionTask 각각은 데이터를 fetch하거나, 업로드하거나, 파일을 다운로드하는 역할을 할 수 있다. URLSession의 Request와 Response URLSession은 다른 HTTP 통신과 마찬가지로 Request와 Response를 기본 구조로 가진다. Request URL 객체를 통해 직접 통..

    [Swift(iOS, WatchOS), CreateML, CoreML] iOS & WatchOS 앱에 ML 적용해보기 (1) - 모델 생성 및 학습하기 (Activity Classification)

    iOS & WatchOS 앱에 ML 적용해보기 시리즈 iOS & WatchOS 앱에 ML 적용해보기 (1) - 모델 생성 및 학습하기 (Activity Classification) 본론으로 들어가기 전에.. 이 시리즈는 SwiftUI를 이용한 iOS 앱과, 그에 연동되는 Apple Watch 앱을 이용하고, Apple Watch에서의 CoreMotion 프레임워크를 이용해 가속도 센서의 값들을 불러와 데이터셋으로 만든 이후, Create ML을 이용해 모델을 생성하여 상기한 데이터셋을 기반으로 학습시킵니다. 이후 학습시킨 모델을 CoreML 프레임워크로 불러와, 애플 워치의 가속도 센서 값을 이용해 실시간으로 유저가 허리를 굽히고 팔을 내렸는지(쓰레기를 줍는 행동을 하..

    [Firebase, SwiftUI] Sign in with Apple(애플 로그인)과 Firebase Auth로 구현한 애플 로그인, 회원 탈퇴 구현하기

    이 글을 포스팅하게 된 배경 Apple Developer Academy의 Mini Challenge 2에서 만든 앱, 첫 심사가 무사히 통과되어 앱스토어에 올라가긴 하였으나.. 업데이트를 하려 다시 심사를 넣으니 통과하지 못했다. 이유는 계정 삭제(회원 탈퇴) 기능을 넣어야 한다는 것. 회원 탈퇴 기능을 넣지 않고, 로그인 기능만 구현하고 앱스토어에 심사를 넣었다면 모두가 언제나 겪을 일. 그 중 애플 로그인 기능에 대한 회원 탈퇴는 쉽지는 않아 보였다. 첫 로그인 이후 이메일 값을 뱉지도 않고.. 대충 생각해 봐도 탈퇴시키려면, 애플 계정 자체에서 'Apple로 로그인(Apple ID를 사용하는 앱)' 항목에서 삭제 처리를 하고, Firebase Auth에서 계정 정보를 삭제하고, FireStore에 ..

    [Xcode / Cocoapods] M1 Mac 환경에서 pod init 에러 - (RuntimeError - [Xcodeproj] Unknown object version.)

    Error Message RuntimeError - [Xcodeproj] Unknown object version. git에서 레포를 clone 후에, podfile 관련 모두 삭제하고 pod init 했는데 실행 오류 났다. 구글링해서 cocoapods 재설치로 해결되었다는 내용이 있어 재설치해보니 해결. homebrew로 cocoapods를 설치해서 생긴 오류인가? 라고 스을쩍 의심해본다. 아님 말고. 1. cocoapods uninstall homebrew로 cocoapods를 설치해주었기에, 다시 homebrew로 삭제해주었다. $ brew uninstall cocoapods 2. cocoapods re-install Ruby의 Library package 관리 도구인 gem을 이용해 다시 설치해..

    [Xcode / Cocoapods] M1 Mac 환경에서 pod install 에러 (iterm2 사용) - You may have encountered a bug in the Ruby interpreter or extension libraries.

    Error Message You may have encountered a bug in the Ruby interpreter or extension libraries. Bug reports are welcome. For details: https://www.ruby-lang.org/bugreport.html [IMPORTANT] Don't forget to include the Crash Report log file under DiagnosticReports directory in bug reports. 구글링해서 이것저것 다 해봤더니 아무튼 성공. 1. sudo arch -x86_64 gem install ffi 그대로 입력. $ sudo arch -x86_64 gem install ffi 2. ..

    [SwiftUI] 글자가 밑으로 잘리는 현상 해결, 글자의 위치(높이) 조절하기 : baselineOffset

    글자 잘리는 현상.. 개발하다 보니 은근히 자주 보였다. 이게 그냥 기본 폰트를 쓰면 거의 경험할 일이 없는데, 실제 앱을 만들며 다른 폰트를 쓰다 보니 자주 경험하게 되는 것 같다. 해결하면서 생각해보니 폰트마다 baseline 아래로 내려가는 양, 그러니까 descent값이 다른 문제로 인해 발생하는 것 같다. 결국 baseline이니 descent니 하는 것들은 또 깊게 파고들자니 css쪽 영역인 것 같은데, 뭐 간단하게만 사진으로 보자면 원래 내가 생각하던 baseline은 위 사진에 있는 descender(descent)였던 것이다. 그러니까 이제 영어 소문자 g, j, y 이런 애들 쓰다 보면 폰트마다 descent값이 다르니까 밑으로 짤리는 거지.. 각설하고, 결국 이 문제에 대한 해결책이 ..