일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 앱개발
- GCD
- async
- Kingfisher
- 스트럭트
- 기초문법
- ios
- collectionview
- 세종대학교
- RxSwift
- SwiftUI
- 반응형
- WeatherKit
- 구름톤 유니브
- struct
- 동시성
- 토이프로젝트
- MVVM
- 네트워크
- 이론
- CS
- 프로토콜
- swift
- Optional
- 학과별커뮤니티
- 대표
- 옵셔널
- uikit
- mvc
- 실습
- Today
- Total
목록ios (85)
스윞한 개발자
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/scnHX/btsDQ0A6ALS/wYvZWyKMhmKTzmkSFHUvPK/img.png)
준비물 컴퓨터(Mac os) 아이폰(휴대폰으로 빌드) 와이파이 or 연결선 애플 개발자 계정 >> 앱 등록시(배포), 매년 12만 9천원 듀얼 모니터 (옵션) 기본개념 클라이언트 손안의 작은 컴퓨터 메모리(컴퓨터 구조 및 운영체제) >> Thread 주된 작업 화면 그리기 화면 간 이동 데이터 전달 서버에 데이터 요청 서버 응답에 따른 예외처리 응답 결과 화면에 보여주기 (목록) 알람, 위젯, 버튼 등의 작업 미디어 재생, 다운로드 로컬 DB Xcode 시작 처음 시작할때는 Swift로 언어를 시작합니다. (Storyboard) 기존의 코드들이 Objective-C로 이루어져 있을수도 있어 공부가 필요합니다. 취업을 위해서는 UIkit과 향후 변화하게 될 SwiftUI에 대해서도 공부 필요합니다! UIk..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/mT5Ny/btsDLuiOFWM/BBBkCKtPjKa6G0axIdC2gK/img.png)
class func VS static func 에 대해 알아보겠습니다! 스위프트에서 class func 와 static func 는 둘다 클래스 레벨에서 정의되는 메서드입니다. *두 가지의 주요 차이점은 상속과 관련이 있습니다.* - class func class func 는 클래스 계층 구조에서 메서드가 상속되고 재정의 될 수 있음을 나타냅니다. 서브클래스에서 class func 로 정의된 메러드를 오버라이드하여 새로운 구현을 제공할 수 있습니다. class A { class func someClassFunc() { print("Class A's class func") } } class B: A { override class func someClassFunc() { print("Class B's cla..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/chzR13/btsDNHowI8I/Vnwp2827akHa0E3vkJip21/img.png)
차근차근 하나씩 알아보겠습니다! - private(set) 스위프트에서 private(set)은 변수나 속성을 정의할 때 사용하는 액세스 제어자 중 하나입니다. 액세스 제어자는 해당 변수나 속성이 어디서 접근 가능한지를 제어하는 역할을 합니다. private(set)은 두가지 목적을 가지고 있습니다. private(set)으로 선언한 변수는 해당 변수를 선언한 같은 파일 내에서는 읽기와 쓰기가 모두 가능합니다. 즉, 변수에 접근해서 값을 변경하는 것이 가능합니다. **하지만** 다른 파일이나 모듈에서는 해당 변수에 접근해서 값을 변경할 수 없습니다. 즉, 변수의 쓰기 권한은 private이지만, 읽기 권한은 'private(set)'으로 확장된 것입니다. class Example { private(set..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/6mgK8/btsDKO2J2fe/NiZHeaXHDbuDpfAEjSIVek/img.png)
lazy : 이번에는 lazy에 대해 포스팅 해보겠습니다! 스위프트에서 'lazy' 키워드는 속성을 "지연 계산"하는 데 사용됩니다. 해당 속성에 처음으로 접근하는 시점까지 초기화가 지연되어 계산되지 않습니다. 필요한 시점에만 값을 계산하고, 불필요한 자원 낭비를 줄일 수 있습니다. lazy 키워드 특징 1. 초기화 지연 : 'lazy' 키워드로 선언된 속성은 인스턴스 생성 시점이 아니라 속성에 처음으로 접근하는 시점에 초기화됩니다. 2. 계산 속성으로 동작 : 실제로 계산 속성으로 동작합니다. 속성에 접근할 때마다 계산이 실행됩니다. 3. 한 번만 계산 : 처음 한 번만 계산되며, 이후 접근 시에는 이전에 계산된 값이 재사용됩니다. lazy var propertyName: PropertyType = {..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/czrhaG/btsDQgjBE12/KTWLZg4UFTvXgtBjxKZmL1/img.png)
이번 포스팅은 고차함수에 대해 알아볼게요! 고차함수,, 뭔가 좀 어렵다는 느낌이 들지만 !! 차근차근 또 배워가며 기록해볼게요 고차함수 - Higher Order Functions "고차함수는 함수를 인자로 받거나 함수를 반환하는 함수를 말합니다." 스위프트에서는 여러가지 고차함수가 제공되고 있으며, 일반적인 고차함수로는 map, filter, reduce가 있습니다. 컬렉션에 대해 작업을 수행하고 새로운 컬렉션을 반환합니다. 1. map : 컬렉션의 각 요소에 대해 특정 연산을 수행하고, 그 결과를 새로운 컬렉션으로 반환합니다. 2. filter : 컬렉션의 요소 중 특정 조건을 만족하는 요소들로 새로운 컬렉션을 생성하여 반환합니다. 3. reduce : 컬렉션의 요소를 결합하여 단일 값으로 줄여 반환..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/baWnyA/btsDNtcCe0Q/jainBjsfo4WbLhs7Bsye4K/img.png)
스위프트에서는 typealias를 사용하여 타입에 대한 별칭을 만들 수 있습니다. typealias는 기존 타입에 대해 더 읽기 쉬운 이름을 지정하는 데 사용됩니다. typealias NewName = ExistingType NewName은 ExistingType에 대한 새로운 이름으로 사용됩니다. typealias UserID = String typealias Age = Int func printUserInfo(userID: UserID, age: Age) { print("User ID: \(userID), Age: \(age)") } let id: UserID = "user123" let userAge: Age = 30 printUserInfo(userID: id, age: userAge) // 출력..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/x4wvH/btsDRoVOK3U/l8M7HnPEn9Z41z8BYevHd1/img.png)
이번 포스팅은 프로토콜에 대해 자세히 알아보겠습니다! 프로토콜이란 ? * 설계하고 설계대로 만드는 방법 프로토콜은 Swift에서 인터페이스를 정의하는 방법입니다. (약속) 명명 규칙 > 일반적으로(##able, ##delegate, ##ing 등) 프로토콜은 특정 역할을 수행하기 위해 필요한 메서드, 프로퍼티, 이니셜라이저 등의 요구사항을 정의합니다. 클래스, 구조체, 열거형은 프로토콜을 채택하여 프로토콜에 정의된 요구사항을 구현할 수 있습니다. - 특징 1. 요구사항 정의 : 프로토콜은 특정 역할을 수행하기 위해 필요한 메서드, 프로퍼티, 이니셜라이저 등의 요구사항을 정의합니다. 프로토콜은 선언만 하고 구현하지 않습니다. // 프로토콜 정의 protocol Vehicle { var numberOfWhe..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bHdqT0/btsDQ59OrFO/NTmai1Ak6MhkSwro4P9cM1/img.png)
구조체 Struct에 대해 좀 더 자세히 알아보겠습니다! mutating이란? 'mutating'은 Swift에서 구조체('struct') 내부에서 메서드가 자신을 수정할 수 있는지를 나타내는 특별한 키워드입니다. 기본적으로 구조체(Struct)와 열거형(enum)은 값 타입이므로 해당 인스턴스의 프로퍼티를 변경하려면 메서드가 'mutating'으로 표시되어야 합니다. 'mutating' 키워드를 사용하면 구조체 내부에서 프로퍼티의 값을 변경하거나, 다른 메서드를 호출하여 자신을 수정할 수 있습니다. 구조체가 값 타입이지만 메서드 내부에서 상태를 변경하거나 특정 작업을 수행할 수 있도록 허용해줍니다. struct Point { var x: Int var y: Int mutating func moveBy(..