Xcode: cmd + / 단축키를 눌렀을 때 코멘트(주석) 위치를 현재 들여쓰기에 맞추기 (CommentHere)

Xcode: cmd + / 단축키를 눌렀을 때 코멘트(주석) 위치를 현재 들여쓰기에 맞추기 보통 프로그래밍을 할 떄 쓰는 에디터 등에서 현재 라인의 코드를 주석처리하는 단축키는 command(윈도우의 경우 Ctrl) + / 를 누르면 해당 라인이 주석 처리가 됩니다. Xcode도 마찬가지인데, Xcode에서 해당 기능을 사용하면 아래와 같이 주석처리됩니다.   // 표시가 현재 들여쓰기에 더보기…

Swift: AVAudioSession.interruptionNotification 처리 (사운드 재생 중 전화벨, 알람 등이 울렸을 때 처리)

Swift: AVAudioSession.interruptionNotification 처리 (사운드 재생 중 전화벨, 알람 등이 울렸을 때 처리) 사운드 재생 중 전화벨, 알람 등이 울렸을 때 해야 될 작업은 어떻게 처리할까요? 뷰 컨트롤러에 아래 코드를 추가합니다. import UIKit import AVFAudio class MainTabBarController: UITabBarController { override func viewDidLoad() { super.viewDidLoad() // NotificationCenter 옵저버 등록 NotificationCenter.default.addObserver(self, selector: #selector(didInterrupted), 더보기…

iOS 앱 포트폴리오: 음악 스케일(음계) 학습 도우미 앱 UltimateScale 애플 앱스토어 출시 📱

UltimateScale UtimateScale은 음악 스케일(음계) 학습 도우미입니다. 앱스토어 링크 UltimateScale 한국 앱 스토어 링크 (모든 국가 출시)   깃허브 링크 https://github.com/ayaysir/MusicScale   특징 및 사용 기술 애플 앱스토어의 검수에 통과하였습니다. Core Graphics를 통한 뷰 드로잉 (피아노 건반) WebKitView를 통한 자바스크립트 라이브러리와 양방향 통신 (abcjs 악보 라이브러리) 음악 이론과 관련된 데이터 계산을 즉석에서 더보기…

Swift(스위프트): 앱 내부에서 팝업으로 앱 스토어 앱 정보 띄우기

Swift(스위프트): 앱 내부에서 팝업으로 앱 스토어 앱 띄우기 아래 움짤과 같이 자신이 만든 앱 내부에서(외부 브라우저나 앱스토어로 이동하지 않고) 다른 앱을 표시하고자 할 때 StoreKit을 사용합니다. 다른 앱을 홍보할 때 사용하면 좋습니다.   참고로 이번 예제는 시뮬레이터는 실행이 불가능하므로 실제 기기에서 테스트해야 합니다.   1: 위 작업을 실행하고자 하는 뷰 더보기…

Swift(스위프트): DateFormatter로 시간대 약어(Timezone abbreviation) 표시

Swift(스위프트): DateFormatter로 시간대 약어(Timezone abbreviation) 표시   TimeZone.current.identifier와 TimeZone.abbreviationDictionary를 사용하면 시간대 약어를 표시할 수 있습니다. func dateString(timestamp: Int) -> String { let date = Date(timeIntervalSince1970: TimeInterval(timestamp)) let formatter = DateFormatter() formatter.timeZone = .autoupdatingCurrent formatter.dateFormat = “yyyy-MM-dd HH:mm:ss” let timezoneAbbr = TimeZone.abbreviationDictionary.first { $1 == formatter.timeZone.identifier } // timezoneAbbr?.value는 Asia/Seoul, timezoneAbbr?.key는 더보기…

Swift(스위프트) + Firebase: 사용자 정의 struct(구조체)를 사용한 Firestore CRUD 기초

Swift(스위프트) + Firebase: 사용자 정의 struct(구조체)를 사용한 Firestore CRUD 기초   실시간 데이터베이스 vs Cloud Firstore 비교 Firebase에서는 두 가지 형태의 데이터베이스를 제공합니다 이 글에서는 Cloud Firestore에 대해 알아봅니다. 데이터베이스 선택: Cloud Firestore 또는 실시간 데이터베이스   Firestore에서 자료를 저장하는 일반적인 형태     컬렉션 – 문서들을 모아 저장하는 곳입니다. 더보기…

Swift(스위프트): Static cell 모드인 테이블 뷰(UITableView)에서 특정 섹션 감추기 + 특정 행의 크기만 조절

Swift(스위프트): Static cell 모드인 테이블 뷰(UITableView)에서 특정 섹션 감추기 Static Cell 모드란 아래와 같이 content mode가 Static Cells로 지정된 경우로 데이터 모델에 따라 셀의 개수등이 변동하는 일반적인 테이블 뷰와 달리 셀의 개수, 위치 등이 고정되어 있는 경우를 말합니다. 이 경우 코드 작성 대신 스토리보드에서 셀 개수, 섹션 개수를 설정하게 됩니다. 더보기…

Swift(스위프트): 테이블 뷰(UITableView)에서 setEditing이 true일때만 삭제 등 작업 가능하게 하기

출처 How do I disable the full swipe on a tableview cell in iOS11   Swift(스위프트): 테이블 뷰(UITableView)에서 setEditing이 true일때만 삭제 등 작업 가능하게 하기 제목이 대체 무슨 말인가 하면 아래 화면과 같이 Edit 버튼이 있어 에디트 모드가 따로 있는 예제 앱이 있습니다. 테이블 뷰의 에디트 모드가 모든 열(row)에 활성화되어 있는 더보기…

Swift(스위프트): 제네릭(Generics) – 제네릭 타입, 제네릭 함수, 연관 타입(Associated Type), where 조건절

출처 Generics – The Swift Programming Language    제네릭 (Generics) 데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있는 기술에 중점을 두어 재사용성을 높일 수 있는 프로그래밍 방식입니다. 예를 들어, Swift의 Array와 Dictionary 유형은 모두 제네릭 컬렉션입니다.   제네릭이 해결하는 문제 swap(교환) 함수를 구현하고자 합니다. swap은 더보기…

자바스크립트 + abcjs: 노트 프로그래밍 방식으로 하이라이트, 노트 선택(클릭) 방지하기

노트 프로그래밍 방식으로 선택 먼저 ABCJS.renderAbc의 옵션 파라미터에서 add_classes가 true여야 합니다. (아래 노트 클릭(선택) 방지하기 단락의 코드 참조) add_classes: true,   추가하였다면 아래 클래스 목록을 참고하여 abcjs-[클래스이름] 의 HTML DOM에 abcjs-highlight 클래스를 추가하면 됩니다. (태그 이름은 <g>)   예를 들어 악보에서 네 번째 노트의 클래스 이름은 abcjs-n3 입니다. 0부터 시작(zero-based)이므로 더보기…