profile
iOS 개발자 공부하는 Roy
post-thumbnail

SWIFTUI @STATE

UIKit 을 사용했을 때는 어떠한 변수에 변화가 생기면 해당 변화를 직접 관찰하고 반영 해 주어야 했는데 SwiftUI 에서는 property wrapper 를 활용해 이러한 작업을 자동화 할 수 있도록 했다.변화가 생기면 해당 변수의 값을 읽거나 새로 쓸 수 있음을

2023년 3월 10일
·
0개의 댓글
·
post-thumbnail

SWIFTUI MAPKIT & 상세도 작성

impot mapkit을 한다 속성을 사용하여 @State둘 이상의 보기에서 수정할 수 있는 앱의 데이터에 대한 정보 소스를 설정합니다. SwiftUI는 기본 저장소를 관리하고 값에 의존하는 뷰를 자동으로 업데이트합니다.Text기본 보기를 Map영역에 바인딩하는 보기로

2023년 3월 5일
·
0개의 댓글
·
post-thumbnail

SwiftUI 이미지 생성

이름과 위치 보기가 모두 설정되었으면 다음 단계는 랜드마크에 대한 이미지를 추가하는 것입니다.이 파일에 더 많은 코드를 추가하는 대신 마스크, 테두리 및 그림자를 이미지에 적용하는 사용자 지정 보기를 만듭니다.Image(\_:)이니셜라이저 를 사용하여 텍스트 보기를 T

2023년 3월 5일
·
0개의 댓글
·
post-thumbnail

SwiftUI Text

SwiftUI 앱 라이프 사이클을 사용하는 앱은 App프로토콜을 준수하는 구조를 가지고 있습니다. 구조의 body속성은 하나 이상의 장면을 반환하며, 이는 차례로 표시할 콘텐츠를 제공합니다. 속성 은 @main앱의 진입점을 식별합니다.기본적으로 SwiftUI 보기 파일

2023년 3월 5일
·
0개의 댓글
·
post-thumbnail

키패스(keyPath) & 셀렉터(selector) & 메타 (Meta)

키경로(문자열 처럼 쉽게 만들수 있는 인스턴스)로 속성에 쉽게 접근AnyKeyPath : 어떤 속성인지 특정되지 않음(보통, 함수 파라미터형식으로만 사용)PartialKeyPath : 타입에 대한 키패스(예를 들어 배열 같은 것으로 묶을때 사용)KeyPath<Ro

2023년 3월 5일
·
0개의 댓글
·
post-thumbnail

Never타입

함수의 return의 의미 (일반적인 경우)(함수의 결과로 인한) 값을 리턴함수 내부로 전달했던 CPU실행의 제어권을 다시 돌려줌Nonreturning(논리터닝) 함수:제어권을 전달하지 않음(함수를 호출했던 코드로 다시 제어권을 전달하지 않음)명시적으로 제어권을 전달하

2023년 3월 5일
·
0개의 댓글
·
post-thumbnail

주요 프로토콜

주요 프로토콜 Equatable / Comparable / Hashable Equatable : ==, != 비교 연산자 관련 프로토콜 Comparable : , =) Hashable : hash값을 갖게되어 값이 해셔블(값이 유일성을 갖게됨)해짐 Equatabl

2023년 3월 5일
·
0개의 댓글
·
post-thumbnail

주요 프로토콜

Equatable : ==, != 비교 연산자 관련 프로토콜Comparable : < 연산자 관련 프로토콜 (>, <=, >=)Hashable : hash값을 갖게되어 값이 해셔블(값이 유일성을 갖게됨)해짐Equatable 프로토콜의 요구사항은static f

2023년 3월 5일
·
0개의 댓글
·
post-thumbnail

메모리 안전 Memory Safety

멀티쓰레드(Multi Thread)의 환경에서만 메모리 충돌이 일어나는건 아님구조체 등의 메서드에서 self(동일한 인스턴스)에 접근하는 경우 접근 충돌값 타입은 속성 하나가 아닌, 인스턴스 전체에 대한 읽고/쓰기로 접근 ⭐️

2023년 3월 5일
·
0개의 댓글
·
post-thumbnail

고급연산자(Advanced Operators)

스위프트의 숫자 리터럴을 표기하는 방법2진법/8진법/16진법의 수도 직접 써 넣을 수 있음큰숫자는 읽기 쉽게하기위해 언더바를 붙이는 것도 가능(단순히 언더바를 읽지않음)플랫폼 사양에 따르는 타입 : Int, UInt (최근 대부분 64비트)8-bit : Int8, UI

2023년 3월 5일
·
0개의 댓글
·
post-thumbnail

문자열과 문자 String & Character

유니코드(Unicode)는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준스위프트는 유니코드의 체계를 사용스위프트의 문자열(String)?쌍따옴표 안에 문자(Character)들을 연결모든 문자열은 개별 인코딩된 유니코드 문자들(e

2023년 3월 5일
·
0개의 댓글
·
post-thumbnail

접근제어 Access Control

애플이 자신들이 원하는 코드를 감출 수 있음코드의 영역을 분리시켜서 , 효율적 관리 가능컴파일 시간이 줄어듬( 컴파일러가 , 해당 변수가 어느 범위에서만 쓰이는지를 인지 가능)코드의 세부 구현 내용을 숨기는 것이 가능하도록 만드는 개념(객체지향 - 은닉화가 가능해짐)(

2023년 3월 5일
·
0개의 댓글
·
post-thumbnail

Result type

에러가 발생하는 경우, 에러를 따로 외부로 던지는 것이 아니라리턴 타입 자체를 Result Type(2가지를 다 담을 수 있는)으로 구현해서함수 실행의 성공과 실패의 정보를 함께 담아서 리턴case success(연관값)case failure(연관값)에러는 동일하게 정

2023년 3월 5일
·
0개의 댓글
·
post-thumbnail

제네릭(Generics)

제네릭이 없다면, 함수(클래스, 구조체, 열거형 등)타입마다 모든 경우를 다 정의해야 하기 때문에개발자의 할일이 늘어난다. (유지보수/재사용성 관점에서 어려움)제네릭 문법형식에 관계없이, 한번의 구현으로 모든 타입을 처리하여, 타입에 유연한 함수 작성가능 (유지보수/재

2023년 3월 5일
·
0개의 댓글
·
post-thumbnail

에러 처리

컴파일 타임 에러 —> 스위프트 문법과 관련된 에러(컴파일러가 미리 알고 수정해야한다고 알려줌)런타임 에러 —> 프로그램이 실행되는 동안 발생타임 에러 —> 크래시(앱이 강제로 종료)발생가능한 에러를 미리 처리해 두면, 강제종료되지 않음 (개발자가 처리해야만

2023년 3월 5일
·
0개의 댓글
·
post-thumbnail

메모리 관리

예전 언어들은 모든 메모리를 수동 관리했음실제로 개발자가 모든 메모리 해제 코드까지 삽입해야함 (실수할 가능성 높음)retain() 할당 ---> release() 해제 (RC  +1)           (RC  -1) 개발자는 실제 로직 구현 포함, 메모리 관리에

2023년 3월 5일
·
0개의 댓글
·
post-thumbnail

옵셔널 타입의 응용

옵셔널타입에 대해 접근연산자를 사용하는 방법옵셔널타입에 대해, "접근연산자"를 사용할때, ?(물음표)를 붙여서, 앞의 타입이 값이 nil을 가질 수도 있음을 표시 옵셔널체이닝의 결과는 항상 옵셔널이다.옵셔널체이닝에 값 중에서 하나라도 nil을 리턴한다면, 이어지는

2023년 3월 5일
·
0개의 댓글
·
post-thumbnail

고차함수

고차원의 함수함수를 파라미터로 사용하거나, 함수실행의 결과를 함수로 리턴하는 함수일반적으로 함수형 언어를 지향하는 언어들에 기본적으로 구현되어 있음map 함수filter 함수reduce 함수forEach, compactMap, flatMapSequence, Collec

2023년 3월 5일
·
0개의 댓글
·
post-thumbnail

클로져(closure)

이름이 없는(익명) 함수클로져와 함수는 기능은 동일 한테 형태만 다르다고 생각 하면됨함수를 1급 객체로 취급함수를 변수에 할당할 수 있다.함수를 파라미터로 전달이 가능하다.(함수에서) 함수를 반환할 수 있다. (리턴 가능)파라미터의 타입의 생략도 대부분 가능하다.(클로

2023년 3월 5일
·
0개의 댓글
·
post-thumbnail

Fastlane 자동배포

ruby 기반 클라이언트 자동 빌드 오픈소스 라이브러리info.plist에서 버전과 빌드 올리는 작업타겟이 여러 개인 경우, 모든 타겟이 버전과 빌드가 동일한지 체크빌드3인 이상의 개발자가 동시에 개발하는 경우, 1년에 한 번 씩 certificate, provisio

2023년 3월 5일
·
0개의 댓글
·