분류 전체보기

User Notification앱을 사용하다보면 아래와 같은 알림을 많이 찾아볼 수 있다. 이것을 앱에서 간단하게 어떻게 구현할 수 있을까?  User Notifications | Apple Developer DocumentationPush user-facing notifications to the user’s device from a server, or generate them locally from your app.developer.apple.com Notification 권한 요청하기우선 Notification 을 사용하려면 권한 요청이 필요하다. NotificationCenter 라는 파일을 만들어주고, 권한을 요청할 것이다. NotificationCenter 클래스를 만들어주고, import U..
앱의 시작시점에 무언가를 해주기 위해서라면 아래의 init() 에 포함시켜 주면 된다. 하지만 앱이 종료되는 시점에 무언가를 해야 하거나 앱의 디테일한 상태 시점에 따라서 무언가를 해줘야 할 때는 어떻게 할까? import SwiftUI @main struct SampleApp: App { init() { print("app start") } var body: some Scene { WindowGroup { ContentView() } } } AppDelegate, SceneDelegate 갑자기 SwiftUI 에서 무슨 Delegate 냐 하는데... 알아두면 유용한 친구들이다... 후에 구조체나 클래스가 자신의 일부 책임을 다른 타입의 인스턴스에게 위임하는 Delegate 패턴에 대해서 알아보도록 하..
ScenePhase? 앱을 만들다보면 앱이 잠깐 백그라운드로 갔을때나 백그라운드에서 다시 돌아왔을때, 시점이 필요할때가 있다. 나같은 경우는 잠깐 앱을 background 상태로 두고 권한을 변경한다면? 이 것을 UI 에 바로 적용시킬 수 없을까? 하는 궁금증에서 찾아보았는데 방법이 있었다! 바로 ScenePhase 를 활용하면 된다. 공식문서에 정말 친절하게 사용설명이 되어있다. ScenePhase | Apple Developer Documentation An indication of a scene’s operational state. developer.apple.com ScenePhase 사용해보기 사용방법은 아주 간단하다. 아래와 같이 @Environment 로 변수를 선언해주고, scenePhas..
네트워크 연결 확인 뷰아래와 같이 네트워크 연결에 따라서 실시간으로 인터넷 연결, 인터넷 연결 안됨 창을 표시한다. NetworkMonitor 클래스 생성아래와 같이 SwiftUI 에 새로 도입된 @Observable 이 사용된다. init() 을 하게 되면, isConnected 라는 변수를 인터넷의 연결여부에 따라서 업데이트 해준다.import Foundationimport Network@Observableclass NetworkMonitor { private let networkMonitor = NWPathMonitor() private let workerQueue = DispatchQueue(label: "Monitor") var isConnected = false i..
Swift 를 사용하면서 본인도 모르게 self. 를 많이 사용했을 것이다. self 는 말그대로 나 자신! 이라는 뜻을 가지고 있다. 그렇다면 [weak self] 는 무엇일까? 실습을 통해 아주 간단하게 맛보기만 보려고 한다.약한참조간단하게 ARC 에 대해서 설명해 보자면, Swift에서는 ARC(Automatic Reference Counting, 자동 참조 카운팅)를 사용하여 객체의 메모리를 관리한다. 이 참조를 약한 참조(weak)로 만들면 참조 카운트가 증가하지 않는다. ARC 에 의해서 참조 카운팅이 0 이 되었을때 메모리에서 해제가 되는데 강한 참조가 걸려있으면 카운팅이 0 이 되기전까지 해제되지 않는다. 예시코드기본 구조아래같이 Navigate 버튼을 누르면 다음뷰로 가고 다음뷰는 He..
· → SwiftUI
swift 를 활용하면서 좀 아쉬운 부분이 달력 아니던가?! 달력을 구현할 수 있지만 아주 간단하고 깔끔하게 달력을 만드는 방법이 iOS 16.0 버전 이후로 UICalendarView 를 지원한다. 😀 내가 만드는 프로젝트에도 달력이 들어가기 때문에 간단하게 활용해보면 좋겠다고 생각하여 UICalendarView 를 사용해보기로 했다. UICalendarView | Apple Developer DocumentationA view that displays a calendar with date-specific decorations, and provides for user selection of a single date or multiple dates.developer.apple.com UICalendar..
Gitmoji커밋을 하다보면 커밋방식을 기록, 소통을 위해서 개발자들끼리 통일할 필요가 있다. 이때 커밋 메세지 방법 중에 gitmoji 를 사용하는 방법이 있다. 아래와 같은 메세지가 커밋 메세지가 되는 것이고, 이모지로 커밋의 종류를 표현하는 것이다.// 커밋 메세지 예시✨ 무슨무슨 기능 추가 이렇게 홈페이지도 있는데 홈페이지에 들어가면 어떤 이모티콘을 붙여야하는지 가이드도 있다! gitmoji:truck: Move or rename resources (e.g.: files, paths, routes).gitmoji.dev GitHub - carloscuesta/gitmoji: An emoji guide for your commit messages. 😜An emoji guide for your co..
지난 포스팅 지난 포스팅에 branch, merge 에 대해서 알아보았고, 이번에는 git 의 꽃(?)이라고 볼 수 있는 충돌(conflict) 에 대해 아주 간단하게 포스팅해보려고 한다. [Git] Git 시작하기 5 - branch, merge 지난 포스팅 지난 포스팅에서 push 와 pull 을 사용하여 원격 저장소와 연결했다. 이번에는 branch 와 그와 관련된 명령어들을 공부해볼 것이다. [Git] Git 시작하기 4 - push, pull 지난 포스팅 지난 포스 swift-library.tistory.com conflict 가 일어나는 이유 만약 A와 B가 작업을 하다가 같은 파일의 같은곳을 같이 건드렸다고 하자. 예를 들면 둘다 .gitignore 파일의 첫 번째 줄을 변경했다고 하자. 이..
Swift librarian
'분류 전체보기' 카테고리의 글 목록 (26 Page)