개발관련 8

guard문을 사용하는 이유

흔히 swift를 사용하면서 간단한 조건에 대해서는 if문을 주로 사용하고, 옵셔널 언래핑이나 함수 안에서는 guard문을 주로 사용했다. 계속 쓰면서 문득 정확히 어떤 상황에 각 조건문을 사용해야 하고, swift에서 guard문을 따로 만든 이유는 무엇일까? 내가 생각했을때 두 조건문의 가장 큰 차이는 조건에 따라 실행을 처리하는(~면 ~다) 실행에 목적을 둔 if문과 다르게 gurad문은 조건에 따라 실행을 종료하는(~면 종료해라) 목적으로 사용되는 점이 큰 차이점이라고 생각한다. guard문은 일반적으로는 옵셔널 언래핑 후 바인딩한 상수를 해당 스코프 내에서 제한없이 쓸수 있다는 점과, if문과 다르게 조건을 처리할때 괄호의 중첩이 발생하기 않기 때문에 코드의 가독성을 증가시키는 장점으로 많이 사..

Swift 2023.03.02

서치바 검색 아이콘을 오른쪽으로 변경하기

오랫만에 글을 쓰는데, 예전에 2주동안 진행했던 아이디어스 클론 프로젝트를 현재 리팩토링 진행중이다. 리팩토링 과정에서 사소하지만 굉장히 시간을 많이 잡아먹었던 것이 있는데 바로 서치바에 기본적으로 정해져 있는 돋보기 이미지를 왼쪽에서 오른쪽으로 이동하는 것이다. 별거 아니겟지 했지만 이거 찾는다고 하루정도 삽질을 한 끝에 역시 애플 공식문서를 잘 읽어보는 것이 중요하다는것을 느꼈다. searchbar의 searchtextfield는 결국 UITextField를 상속하고 있고, 공식문서를 찾아보면 leftview와 rightview 두가지가 존재한다. 커스텀을 하지 않고 디폴트값으로 사용할경우 leftview에 이미지가 들어가 있게 되는 것이다. 서치바 객체를 생성하는 부분에서 leftView의 타입을 ..

카테고리 없음 2022.09.20

iOS 앱 개인정보 처리방침

('https://iosmaster.tistory.com/'이하 'Chang Hyeok Kang')은(는) 「개인정보 보호법」 제30조에 따라 정보주체의 개인정보를 보호하고 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 하기 위하여 다음과 같이 개인정보 처리방침을 수립·공개합니다. ○ 이 개인정보처리방침은 2022년 8월 17부터 적용됩니다. 제1조(개인정보의 처리 목적) ('https://iosmaster.tistory.com/'이하 'Chang Hyeok Kang')은(는) 다음의 목적을 위하여 개인정보를 처리합니다. 처리하고 있는 개인정보는 다음의 목적 이외의 용도로는 이용되지 않으며 이용 목적이 변경되는 경우에는 「개인정..

카테고리 없음 2022.08.17

앱출시 프로젝트 - 1

시작 나는 현재 iOS 취준 스터디에 참여하고 있다. okky 커뮤니티에서 멘토링을 알아보던중, 운 좋게 기회를 얻게 되어 스터디를 3주차 진행하고 있다. 근데 멘토분이 갑작스런 사정으로 8월에 다른 지역으로 이사를 하게 되어서 남은 스터디기간 1달동안 의미있는 결과물을 도출하고자 각자 개인 프로젝트로 앱 출시를 해보자고 결정이 났다. 이곳저곳 많이 찾아보니, 단순한 앱 개발이어도 기획은 최대한 정교하게 하는게 좋다고한다. 평소에 뭘 할때 기획을 하지 않고 닥치는대로 하는 스타일인데, 이번에는 조금이라도 체계적으로 진행해봐야겠다. 이번 앱개발의 목표및 우선시 되는것 최대한 적은 화면과 적은 기능으로 출시해보기 -> 앱 출시 과정을 경험해보는것에 의의를 두려고 한다. 1인개발이다보니 커뮤니티 기능이나 수준..

기타 2022.07.19

ViewController의 화면 전환

대표적인 방법 4가지 ViewController의 view 바꿔치기 -메모리 overflow 위험이 있기 때문에 좋은 방법이 아니라고 한다. ViewController가 다른 ViewController를 호출(present) -내가 가장 많이 쓰는 방법. 먼저 두개의 ViewController를 세팅하고 나같은 경우에는 각 뷰컨트롤러에 버튼을 만들어 firstVC에서는 아래의 코드를, @IBAction func buttonTapped(_ sender: UIButton) { let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "SecondViewController") as? SecondViewCo..

iOS 2022.07.19

Optional

스위프트가 다른 언어와 다른 가장 큰 특징중 하나이다. 스위프트의 안정성을 나타낼수 있는 특징이다. 값이 있을수도, 값이 없을수도(nil) 있는 이 2가지 상황을 표현한다. 참고로 여기서 nil은 실제로 값이 없는것이 아니라, 값이 없는 상황을 나타내는 키워드이다. 옵셔널값을 추출하는 4가지 방법 var num: Int? var str: String? = "안녕하세요" 1.Forced Unwrapping 옵셔널 타입을 가장 쉽게 언래핑 할수 있지만, 별로 추천하지 않는 방법이다. 만약 nil을 forced Unwrapping하게 될 경우 심각한 오류를 발생시킬수 있기 때문이다. print(str!) print(num!) -> 에러. 값이 없는데 강제적으로 추출하였기 때문이다. 2.if문으로 nil이 아니..

Swift 2022.07.18

iOS - App life cycle에 대해

app life cycle에 대해 관련되어 정리된 글이 엄청 많다. 한국어로 정리된 자료는 거의 다 읽어보고, 그중에 중요하고 좋은 내용을 내 나름대로 깔끔하게 정리해보고자 한다. 이글의 내용은 제가 만든 내용이 아닌, 원래 있던 자료들을 편하게 보기위해 정리한 글임을 다시한번 명확하게 밝힙니다. Application Life Cycle : iOS에서의 앱 생명주기는 아래와 같은 순서로 볼 수 있습니다. 1. 사용자 앱 아이콘 터치 실행 2. main() 메서드 실행되고, 함수 내부에서 UIApplicationMain 메서드 호출 -> 이때 your code에서 AppDelegate 클래스에 작성된 application:didFinishLaunchingWithOptions: 메소드 호출. 이 함수에 원하..

iOS 2022.07.13

Swift - Print() 자세히 살펴보기

우리가 평소에, 코딩을 처음 시작하게 되면 거의 제일 먼저 사용하는 함수인 Print()가 swift에서는 어떻게 사용되는지 알아보고자 한다. 먼저 애플 개발자 문서를 살펴보자. 함수의 선언(Declaration)부분을 보면, items, separator, terminator 3가지의 매개변수를 사용하는 것을 알수 있다. 하지만 우리가 평소 사용할때는 print("평소에 이렇게 간단하게 사용") 이런식으로 간편하게 사용하게 된다. 나머지 2개의 매개변수는 기본값(Default)이 지정되어 있기 때문에, 사용할때 입력을 하지 않아도 위처럼 정상적으로 실행된다. 각각의 매개변수에 대해 알아보자. items : 우리가 평소에 print문을 사용해서 문자열을 출력하고자 할때 문자열을 입력하는 부분이다. ite..

Swift 2022.07.12