Swift 예제: iOS + WatchOS 연동 앱 LinkedCounter (주요 개발 과정 요약)

Swift 예제: iOS + WatchOS 연동 앱 LinkedCounter 전체 코드 https://github.com/ayaysir/LinkedCounter   개발 환경 Xcode 13.3.1, Swift 5 iOS App with Watch App 템플릿 Storyboard Interface (워치 앱에 부분적으로 SwiftUI 사용)   목적 워치용 앱 기본 개발 학습 아이폰 앱 워치 앱 간 데이터 연동 방법 학습 컴플리케이션(Complication) 기본 개발 더보기…

Swift + Firebase: 익명 계정을 영구 계정으로 전환 (이메일로 회원가입)

참고 Apple 플랫폼에서 익명으로 Firebase에 인증 익명 인증 (Authenticate with Firebase Anonymously)과 관련된 내용은 위 공식 매뉴얼을 참고하면 됩니다. 다만 매뉴얼 중 ‘익명 계정을 영구 계정으로 전환’에 대한 설명이 다소 헷갈리게 적혀 있어 이에 대해 보충합니다.   상황 기존 익명 로그인이 존재하지 않고, ‘좋아요’ 버튼을 누르려면 무조건 회원 가입이 되어 더보기…

Swift(스위프트): 뷰 컨트롤러와 내부의 컨테이너 뷰(Container View)간의 데이터 교환

뷰 컨트롤러와 내부의 컨테이너 뷰(Container View)간의 데이터 교환 뷰 컨테이너(View Container)란 어느 부모 뷰 컨트롤러 안에 자식 뷰 컨트롤러(이하 VC)를 표시할 수 있는 특수한 View를 뜻합니다. 예를 들어 아래 스크린샷은, RootViewController라는 부모 VC 안에 자식 VC를 포함하는 형태입니다. 부모 VC는 RootViewController라는 클래스와 연결되어 있고 자식 VC는 컨테이너 뷰 안에 담겨 더보기…

Swift(스위프트): 개발 언어(Development Language)를 영어에서 한국어로 변경

개발 언어(Development Language)를 영어에서 한국어로 변경 Xcode 프로젝트에서 개발 언어(Development Language)는 기본 현지화를 위한 언어로 사용됩니다. 영어가 기본 설정으로 되어 있습니다. 만약 앱의 스토리보드를 다른 언어로 유지하려면 (예를 들어 한국어로 개발하고 앱 스토어에 한국어 버전으로 출시하고자 하는 경우 등) 이 설정을 변경해야 합니다. 불행히도 Xcode에서 이 설정을 직접 변경할 수 더보기…

Swift(스위프트): 원격 푸시 알림(Push Notification)에서 파이어베이스 메시징(Firebase Messaging)으로 실제 앱에 메시지 보내기 (스토리보드)

  이 글의 내용을 진행하려면 이전에 작성한 푸시 알림 관련 글을 먼저 읽어야 합니다. Swift(스위프트): 원격 푸시 알림(Push Notification) 기초 및 푸시 알림의 모의 테스트 방법 上편 (스토리보드) Swift(스위프트): 원격 푸시 알림(Push Notification) 기초 및 푸시 알림의 모의 테스트 방법 下편 (스토리보드)   Firebase Messaging 서비스로 실제 푸시 알림(Push Notification) 더보기…

Swift(스위프트): mp3, wav 등 소리 파일 재생하기 (스토리보드)

Swift(스위프트): mp3 등 소리 파일 재생하기 (스토리보드) 앱에서 MP3, WAV 등 음악 파일 또는 소리 효과음 파일을 재생하려면 어떻게 해야 할까요? 방법은 아래와 같습니다.   1) 뷰 컨트롤러에 import AVFoundation를 추가합니다. import AVFoundation   2) 소리 파일을 드래그 앤 드롭으로 프로젝트 내에 추가합니다.   3) 뷰 컨트롤러에 AVAudioPlayer 타입의 멤버 더보기…

Swift(스위프트): 원격 푸시 알림(Push Notification) 기초 및 푸시 알림의 모의 테스트 방법 下편 (스토리보드)

  출처 push-notifications-tutorial-getting-started   (上편 바로가기)   실행 가능한 알림(Actionable Notifications) 작업 실행 가능한 알림(Actionable Notifications)을 사용하면 알림 자체에 사용자 정의 버튼을 추가할 수 있습니다. 이메일 알림이나 트윗에서 그 자리에서 “답장” 또는 “즐겨찾기”를 하는 것을 본 적이 있을 것입니다.   카테고리를 사용하여 알림을 등록할 때 앱에서 실행 가능한 알림을 정의할 더보기…

Swift(스위프트): 원격 푸시 알림(Push Notification) 기초 및 푸시 알림의 모의 테스트 방법 上편 (스토리보드)

  출처 push-notifications-tutorial-getting-started   개요 Push notification(푸시 노티피케이션) 흔히 푸시 알림, 푸시 메시지로 일컫는 기기 메시지의 형태인데 네트워크를 통해 정보를 전송받으면 그 정보를 바탕으로 앱에서 메시지를 그대로 표시하거나 또는 가공하여 표시합니다. 위 스크린샷은 로컬 노티피케이션의 예제로 제목과, 내용이 첨부되어 있습니다. 이하 편의상 Push Notification을 푸시 알림이라고 부르겠습니다.   푸시 알림 튜토리얼 더보기…

Swift(스위프트): Vapor를 사용하여 iOS에서 웹 서버 실행 (스토리보드)

출처 Running a Web Server on iOS with Vapor 원문에서 SwiftUI 부분을 Storyboard로 변경하였습니다.   Vapor를 사용하여 iOS에서 웹 서버 실행   Vapor를 사용하면 iOS 앱이 클라이언트이자 서버가 되어 데이터를 제어할 수 있습니다. (심지어 다른 장치에서도 가능합니다.) 이 튜토리얼에서는 동일한 프로세스에서 클라이언트-서버 통신을 시작하는 방법을 설명합니다. 이 포스트에서는 다음 방법을 더보기…

Swift(스위프트): ObservableObject 프로토콜과 @Published, @ObsevedObejct, @StateObject 프로퍼티 래퍼

ObservableObject란? 기본적으로 ObservableObject는 @Published 프로퍼티 래퍼가 붙은 값이 변경되기 전에, 변경된 값을 방출(emit)하는 objectWillChange 퍼블리셔를 사용할 수 있도록 하는 프로토콜입니다. 클래스에서만 사용 가능한 프로토콜입니다. class Contact: ObservableObject { @Published var name: String @Published var age: Int init(name: String, age: Int) { self.name = name self.age = age } func haveBirthday() 더보기…