Xcode에서 Navigator & Inspector를 숨기거나 보이게 하는 방법, 동시에 토글하는 방법

Xcode에서 Navigator & Inspector를 숨기거나 보이게 하는 방법, 동시에 토글하는 방법 소개 Xcode를 사용하다 보면 좁은 모니터 환경에서 Navigator (왼쪽 패널)와 Inspector (오른쪽 패널)를 상황에 따라 동시에 숨기거나 나타내고 싶을 때가 많습니다. 하지만 기본 단축키만으로는 이 둘을 동시에 제어할 수 있는 방법은 제공되지 않습니다.   이 글에서는 각각의 단축키와, 이를 해결하기 더보기…

Git/GitHub: .gitignore 적용 안될때 / 어멘드(amend)하는 방법 / 오픈소스 라이브러리에 PR(풀 리퀘스트)하는 방법

.gitignore 적용 안될때  .gitignore가 제대로 적용되지 않는 경우, 주로 이미 Git에 추적되고 있는 파일이거나 .gitignore 파일이 잘못 설정된 경우입니다. 이를 해결하기 위한 단계별 점검 및 해결 방법은 아래와 같습니다.   이미 추적되고 있는 파일인지 확인 .gitignore는 Git이 추적하지 않는 파일에만 적용됩니다. 이미 추적 중인 파일은 .gitignore에 추가해도 무시되지 않습니다.   더보기…

Xcode: CocoaPods 프로젝트에서 Build Phase의 Run Script를 이용해 패치 넘버 증가

관련 글 Run Script Swift Package Manager(SPM)와 CocoaPods를 동시에 대응하는 라이브러리 만들기 (1)   버전 넘버 구성 예) Semantic Versioning 라는 방법에 따르면 1.0.0 이라는 버전이 있을 때 앞에서부터 순서대로 메이저 버전 마이너 버전 패치 버전 라고 합니다. Semantic Versioning(SemVer)은 소프트웨어 버전을 체계적으로 관리하기 위한 규칙으로, 버전 번호를 주버전.부버전.패치버전 형식으로 구성합니다. 이 더보기…

macOS 앱 포트폴리오: 플레인 텍스트를 작성/관리할 수 있는 포스트잇 앱 (애플 앱스토어 출시 💻)

StickyPlainPad StickyPlainPad는 플레인 텍스트(서식 없는 텍스트)를 포스트잇처럼 맥 여기저기에 붙였다 뗐다 사용할 수 있는 메모 앱입니다. View this post on Instagram A post shared by BGSMM (@bgsmm.dev) 앱스토어 링크 StickyPlainPad 한국 앱 스토어 링크 (모든 국가 출시, 유료)   깃허브 링크 https://github.com/ayaysir/macOS-StickyPlainPad   특징 및 사용 기술 애플 앱스토어의 검수에 통과하였습니다. 더보기…

Swift UIKit: 최상위 Top View Controller (현재 화면의 VC) 찾기 / 예제: SwiftUI에서 빠른 Alert 띄우기

1. UIApplication의 KeyWindow 대체 import UIKit extension UIApplication { var keyWindow: UIWindow? { connectedScenes .compactMap { $0 as? UIWindowScene } .flatMap { $0.windows } .first { $0.isKeyWindow } } } ‘keyWindow’ was deprecated in iOS 13.0: Should not be used for applications that support multiple scenes as it returns a 더보기…

SwiftUI: WKWebView의 UIRepresentableView에서 웹 페이지의 Alert, Confirm, Prompt 표시

관련 글 SwiftUI: 웹 뷰(WKWebView) 추가하기 및 자바스크립트 실행 (Representable 사용)   소개 UIDelegate에서 구현해야되는 자바스크립트 경고창 (Alert, Confirm, Prompt) 표시는 어떻게 해야 할까요? Coordinator 클래스를 만들고 WKUIDelegate를 준수(conform) 부모 뷰 (WebViewRP)를 참조하는 변수를 정의하고 이 변수를 통해 코디네이터와 통신 코디네이터 클래스 안에 자바스크립트 경고창 표시와 관련된 함수를 오버라이딩 및 더보기…

Swift iOS 앱 프로젝트: 버튼을 누르면 iOS에 내장된 사전(dictionary) 열기

소개 iOS에서 UIKit을 사용하여 내장된 사전을 여는 방법은 UIReferenceLibraryViewController를 활용하는 것입니다. 이 클래스는 지정된 단어에 대한 사전 정의를 표시하는 뷰 컨트롤러를 제공합니다. UIKit 구현 방법 아래는 특정 단어에 대해 iOS 내장 사전을 여는 예제입니다. 1. 기본 구현 import UIKit func openDictionary(for word: String, from viewController: UIViewController) { if UIReferenceLibraryViewController.dictionaryHasDefinition(forTerm: word) 더보기…

새로운 음악 학습 앱 출시: Music Interval Quiz Master로 골치아픈 음정 정복!

Music Interval Quiz Master 여기를 눌러 설치 (아이폰, 아이패드, 맥 등 애플 기기 대응) 이 앱은 음악 이론 맨 첫부분에서 배우는 음정(interval)이 어려워 골치인 모든 애플 기기 유저들을 위해 제작되었습니다. 오선 악보와 소리로 끊임없이 출제되는 퀴즈를 Interval Master만의 특징인 직관적이며 편리한 음정 키보드를 이용해 입력하고 채점하세요. 출제 범위 및 방식을 더보기…

SwiftUI: iOS 프로젝트의 Stepper가 My Mac(Designed for iPhone)에서 실행할 때 크래시 발생하는 문제 해결 과정

이 포스트는 ChatGPT가 작성하였습니다. 소개 최근, iOS 앱을 macOS에서 실행할 때 Stepper UI 요소가 충돌하는 문제를 겪었습니다. 이 문제는 주로 Apple Silicon Mac에서 발생하며, 특히 iOS 앱을 “Mac (Designed for iPhone)” 타겟으로 실행할 때 발생합니다. Stepper는 iOS에서 잘 작동하지만, macOS에서는 크래시가 발생하는 현상이 있었습니다. 이 문제는 SwiftUI의 호환성 문제로 보였고, 더보기…

Swift 예제: 복잡한 로컬 알림(Local Notification) 구현 (1) – 어학 앱 열기 알림

참고 Swift(스위프트): 로컬 알림(Local Notification)을 스케줄에 맞춰 반복 발신하기 (및 한계점) Swift: [ChatGPT가 말하는] 로컬 알림(로컬 노티피케이션) 기능의 한계점과 극복 방안 Swift(스위프트): 백그라운드 작업 (Background Tasks) 시나리오 앱 설명 하루에 한 번 공부 자료가 업데이트 되는 어학 앱이 있습니다. 월요일 ~ 금요일에만 업데이트가 되고, 주말에는 업데이트가 되지 않습니다.   목표 더보기…