iOS

iOS/Combine

Combine (3) - Subject

안녕하세용가리 🐲 몇 주만의 글이지... 긁적.. 긴말 말고 휘뚜루마뚜루 바로 들어가보자고 ~ Subject 외부 호출자가 값을 게시할 수 있는 메서드를 표시하는 Publisher Subject | Apple Developer Documentation A publisher that exposes a method for outside callers to publish elements. developer.apple.com Publisher와 Subscriber의 특징을 모두 가지고 있다. stream에 send(_:) 메서드를 호출해서 값을 주입할 수 있는 Publisher이다. 그래서 기존에 Combine을 사용하지 않던 코드에 Combine 모델을 적용하고 싶을 때 사용하면 좋다고 한다 ~ 다시 정리해보..

iOS/Combine

Combine (2) - Publisher, Subscriber, Subscription

이번 글에서는 Publisher, Subscriber, Subscription의 개념과 간단한 사용 예시를 보면서 코드에서 사용되는 함수들을 정리할 것 !!! Publisher, Subscriber 말 그대로 게시자와 구독자로, Publisher를 구독하는 객체 Subscriber가 Publisher가 발행하는 데이터 스트림을 받아서 처리할 수 있는 것이다. Publisher Protocol 시간이 지남에 따라 값을 전달할 수 있는 타입을 명시하는 프로토콜 Apple Developer Documentation developer.apple.com class IntPublisher: Publisher { typealias Output = Int typealias Failure = Never func rece..

iOS/SwiftUI

[SwiftUI] UserDefaults와 @AppStorage

쓰는 상황 별도의 DB 없이 빠르고 간편하게 데이터를 사용하려 할 때 주로 사용 적은 양(512KB)의 데이터를 저장하는 데 적합한 형식 앱이 런칭될 때 함께 로드 사용자가 언제 마지막으로 접속했는지, 마지막으로 본 글이 무엇인지 등을 저장하기에 적합 UserDefaults Apple Developer Documentation developer.apple.com App을 실행하는 동안 지속적으로 key-value로 저장하는 사용자의 기본 Database에 대한 Interface (Swift) class UserDefaults : NSObject 📌 값 저장 및 변경 UserDefaults.standard.set(true, forKey: "isHuman") 📌 값 불러오기 // 저장하는 법과는 다르게 불러..

iOS/Combine

Combine (1) - 개요

WWDC2019에 등장한 Combine !!! Swift5.0부터 적용됨.! (async, await는 Swift5.5) 개념과 관련된 내용들은 공식문서를 번역하여 정리하였다 ㅎㅅㅎ https://developer.apple.com/documentation/combine 앞으로의 Combine 내용도 공식문서에 기초하여 기록할 예정 🧸 개념 💡 이벤트 처리 연산자들을 통해 비동기 이벤트들을 핸들링 할 수 있게 하는 것 Combine Framework는 시간에 따른 값 처리 Swift API를 제공한다. 여기서 값이란, 많은 종류의 비동기 이벤트들을 말한다. Combine은 시간에 따른 값을 제공할 수 있는 Publishers와 Publishers로부터 해당 값들을 받는 Subscribers로 정의된다. ..

iOS/SwiftUI

[SwiftUI] SwiftUI와 Firebase를 이용한 사용자 계정 관리 (회원가입)

오늘은 Firebase의 Authentication에서 사용자 계정을 등록하는 것부터 시작하여 로그인 및 로그아웃 기능을 구현하는 과정을 기록하고자 한다.!! 앱스쿨에서 MVP를 진행해보면서 계정 관리 기능 부분을 따로 기록해 두어야겠다고 생각함 : ) 이번 글은 회원가입 !! 😋 0. 결과물 1. Firebase와 iOS Project 연결하기 Firebase와 iOS 프로젝트를 연결하는 과정의 자세한 기록은 생략하였다.! Firebase 프로젝트 생성 후에 하라는대로 하면 되기 때🚪 📝 간략하게 정리하자면, Firebase에서 새 프로젝트를 추가하고 iOS 프로젝트의 Bundle ID로 연결해준 후에, GoogleService-Info.plist 파일을 프로젝트에 담아주고 sdk를 추가해준다. 그리고..

iOS/SwiftUI

[SwiftUI] SwiftUI의 Stack, Frame, GeometryReader

귀신같이 일주일만에 돌아온 블로그 ㅋㅋ 오늘은 SwiftUI에서 필수로 쓰이는 스택과 프레임, 그리고 GeometryReader라는 것을 정리해볼 것이다람쥐 !! 🐿️ 컨테이너의 자식 뷰 제한 컨테이너 뷰는 직접적인 하위 뷰를 10개로 제한한다. 만약 스택 컨테이너가 10개 이상의 자식 뷰를 담으면 다음과 같은 구문 오류가 표시된다. Argument passed to call that takes no argument 만약 스택에 포함된 직접적인 자식 뷰가 10개를 넘어야 한다면 뷰들은 여러 컨테이너로 나눠서 담겨야 할 것이다. 이때 사용할 수 있는 방법은 2가지다. 하위 뷰로 스택을 추가하기 Group 뷰 사용하기 아래 코드는 12개의 Text 뷰가 Group 컨테이너로 나눠져서 VStack에는 단 2개..

iOS/SwiftUI

[SwiftUI] SwiftUI로 커스텀 뷰 수정하기

또, 일주일 뒤에 돌아온... 블로그 오늘은 앞서 공부했던 커스텀 뷰 생성에 이어 해당 뷰를 수정하는 것을 정리해볼 것이다.!! 뷰 변경하기 SwiftUI와 함께 제공되는 모든 뷰는 커스터마이징이 필요 없을 정도로 완전히 정확하게 우리가 원하는 모양과 동작을 하는 것이 아니기 때문에 수정자(modifier)를 뷰에 적용하여 변경할 수 있다. 모든 SwiftUi 뷰에는 뷰의 모양과 동작을 변경하는 데 사용될 수 있는 수정자들이 있다. 이 수정자들은 뷰의 인스턴스에서 호출되는 메서드 형태를 취하며 원래의 뷰를 다른 뷰로 감싸는 방식으로 필요한 변경을 한다. 이 말인 즉슨, 동일한 뷰에 여러 변경을 하기 위해 수정자들이 연결될 수 있다는 의미다. 예를 들어, 다음의 코드는 Image 뷰가 허용하는 공간 안에 ..

iOS/SwiftUI

[SwiftUI] SwiftUI로 커스텀 뷰 생성하기

8일 뒤에 돌아온 블로그...🥴 오늘은 내장된 SwiftUI View의 기본 개념과 User Interface 레이아웃을 선언하고, View의 모양과 동작을 수정하는 데 사용되는 구문에 대해 알아보자 !-! (2개의 글로 나눠서 작성할 예정 ! - 뷰 생성, 뷰 수정) SwiftUI View 란 ? SwiftUI에서 뷰는 View 프로토콜을 따르는 구조체로 선언된다. View 프로토콜을 따르도록 하기 위해선 구조체는 body 프로퍼티를 가지고 있어야 하며, 이 body 프로퍼티 안에 뷰가 선언되어야 한다. SwiftUI에는 사용자 인터페이스를 구축할 때 사용될 수 있는 다양한 뷰(Text Label, Text Field, Menu, Toggle, Layout Manager View, etc.)가 내장되어..

릴 루
'iOS' 카테고리의 글 목록