일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- segue
- ScrollView
- 화면전환
- IOS
- 고차함수
- PushNotification
- Git
- array
- 회고
- Refresh
- viewlifecycle
- mvvm
- self
- Observer
- protocol
- http
- SWIFT
- SWIFTUI
- error
- struct
- class
- singleton
- escaping
- NotificationCenter
- 글또
- list
- apns
- calendar
- uikit
- Switch
- Today
- Total
목록IOS/SwiftUI (20)
seong_hye, the developer
코딩은 개인으로 진행되기도 하지만 많은 사람들이 같이 진행되는 것이다 보니 스타일이 필요하게 됨 📘 Swift Style Swift 언어를 가독성 좋고 일관성 있게 작성하기 위한 규칙과 권장 방식물론 법이 아닌 스타일이기에 변할 수 있다는 점 참고 🔍 Swift Style 핵심 요약주제스타일 원칙네이밍명확하고 간결하게, camelCase 사용들여쓰기스페이스 4칸 (보통 XCode 기본은 4)줄바꿈중괄호 {}는 다음 줄에 작성함수 설계읽었을 때 자연어처럼 읽히도록옵셔널 처리안전하게, 명확하게모듈 분리타입, 기능 단위로 적절히 나눔🔹 Naming메소드 및 변수는 소문자로 시작하지만, 모듈단위의 클래스명과 상수는 대문자로 함 (= camelCase) 명확하고 간결하게 줄임말을 최소화하여 작성함let ..
📘배열 나누기 SwiftUI에서 배열 데이터가 너무 많아 리플래시를 활용해 데이터를 나누고 추가로 받아오는 방식을 정리해보려 함 🔹배열 나누는 코드@State private var fullData = Arry(1...1000) // 전체 데이터@State private var visibleData : [Int] = [] // 화면에 보일 데이터@State private var batchSize = 20func divideArray() { let nextEnd = min(visibleData.count + batchSize, fullData.count) let nextItems = fullData[visibleData.count ..- 전체 데이터 사이즈를 통해 20개씩 받아올 수 있도록 코드..
📘 DarkModeSwift에서는 iOS 13이상에서는 기본적으로 시스템 다크모드에 따라 UI가 자동으로 반응함시스템 색상을 사용하면 라이트/다크 모드에 따라 색상이 변경됨시스템 색상라이트 모드다크 모드.systemBackground흰색검정.label검정흰색.secondaryLabel회색연회색.systemGray중간 회색중간 회색 (어두움) ➡️시스템 색상 적용 방법Text("자동 색상 대응") .background(Color(.background)) .foregroundColor(Color(.primary)) 🔹 ColorSchemeSwiftUI에서 현재의 색상 모드 ( = 다크모드 / 라이트모드)를 나타내는 열거형(enum)다크 모드 대응 UI를 만들 떄 핵심적으로 사용되는 환경 값 ✅ Co..

📘 Toast사용자가 앱을 조작할 때 화면 하단에 잠깐 표시되는 알림 메시지 🔹 기본 Toast 생성 방법➡️ toast struct toast 메시지를 보여줄 기본 틀struct Toast: Equatable { var message: String //보여줄 메시지 var duration: Double = 1.5 // 보여질 시간 var width: Double = 300 // toast 가로 크기} ➡️ toastViewtoast를 화면에 어떻게 보여줄 지 보여주는 뷰struct ToastView: View { var message: String var width = CGFlat(200) var onCancelTapped: (() -> Void) var b..
📘 SwiftUI - View Life CycleSwiftUI의 View는 선언형(Declarative) 방식이기 때문에 UIKit과는 전혀 다른 생명주기를 가지고 있음SwiftUI는 상태(State)나 환경(Environment)의 변화에 따라 뷰를 다시 생성하고 그리기 때문에UIKit처럼 언제 뷰가 생성되고 사라지는가보다는 상태 변화에 따라 어떤 동작을 해야 하는가에 초점이 맞춰져 있음 🔹SwiftUI View Lifecycle 핵심 개념개념설명상태 기반@State, @Binding, @ObservedObject 등이 바뀌면 뷰가 재계산(re-render)됨구조체 뷰SwiftUI의 View는 구조체라서 상태 변경 시마다 새로운 뷰가 생성되는 것처럼 보임시스템 주도뷰 생성 / 파괴 시점을 직접 제어..
UIKit에서는 프로젝트가 만들어지면 AppDelegate와 SceneDelegate가 생성되듯이https://programming-seonghye.tistory.com/57 UIKit) AppDelegate & SceneDelegate 알아보기UIKit을 사용하기 위해 프로젝트를 만들게 되면만들어져있는 기능들에 대해 알아보려 한다📘 AppDelegateiOS 앱의 생명 주기(lifeCycle)와 시스템 이벤트를 관리하는 핵심 클래스앱이 실행될 때부터 종programming-seonghye.tistory.com SwiftUI에서 생성되는 App에 대해 알아보자📘App ProtocoliOS 14부터 도입된 앱 생명주기를 선언적으로 정의하는 새로운 진입점(entry point)@main과 함께 사용되어 ..

📘 SwiftUI - 화면 맨 위로 올라오기어플을 사용하다보면 스크롤 하다가 버튼을 눌러 화면의 맨 위로 올라오도록 하는 경우를 볼 수 있다해당 경우를 어떻게 구현했는지 정리해보려 한다. 🔹 기본 개념- ScrollViewReader: 뷰에 스크롤 위치 조작 기능을 부여할 수 있음 - .id( id 값 ) : 스크롤 목표 위치에 식별자를 붙임- .scrollTo( id 값 ) : 해당 위치로 스크롤 이동이 가능함🔹List에 버튼을 통해 위로 올리기struct ContentView: View { @State private var showButton = false let items = Array(1...100) var body: some View { ScrollviewR..

📘 Swift) Picker & DatePicker사용자의 선택을 입력받는 기본적인 선택 UI 컴포넌트 🔹Picker (일반 선택 목록 - 드롭다운, 휠 등)사용자가 리스트 중 하나를 선택할 수 있도록 함import struct ContentView: View { @State private var selectedMedia = "드라마" let medias = ["드라마", "영화", "애니메이션", "TV쇼"] var body: some View { Picker("미디어 선택", selection: $seletedMedia) { // 반복문을 사용하는 경우 ForEach(medias, id: \.self) { media in T..