분류 전체보기 261

swift delegate - 스위프트 delegate 사용 방법 이해하기

delegate에 대한 글은 많아서 일단 제가 햇갈렸던 부분을 설명해 보겠습니다. 자꾸 위임자라 그래서 잘 와닿지 않았는데 일단 delegate는 특정 delegate 프로토콜을 만족하는 프로퍼티라 볼 수 있습니다. 그래서 주로 delegate를 사용하는 단계는 1. 구현하려는 delegate의 기능을 명세 해주는 protocol을 구현합니다. 2. protocol을 상속받는 class를 정해서 (이 클래스를 A라 합시다), protocol이 명세한 사항을 해당 class A에서 구현해 줍니다. 3. 이제 A를 이용할 B를 찾습니다. 무슨 말이냐면 A는 B의 특정 기능들을 대신해서 수행해줄 대리자 입니다. 4. A의 도움이 필요한 B 클래스에 위에서 만들고 구현해준 delegate 타입으로 프로퍼티를 생..

카테고리 없음 2021.06.07

MVP 패턴이란? - 처음 접하는 MVP 패턴 (순한맛)

내가 주로 사용하는 패턴은 mvc, mvvm인데 사실 이것도 제대로 이해하고 사용하는 편은 아니다. 그래도 새로운 개념을 배울때 목적을 알고 하면 이해하기 쉬워서 mvp의 목적에 대해 먼저 찾아보니 MVP란? model - view - presenter로 mvp가 나오게 된 이유는 view와 model을 완전히 분리해서 사용하기 위함이다. mvp는 model의 역할인 비즈니스 로직을 독립적으로 테스트할 수 있게된다. 뷰 뷰에 직접 접근해서 ui요소를 다룬다. 근데 추가로 뷰에서 발생하는 이벤트들에 대한 핸들링이 필요한데. presenter에 위임하는 것이 mvp패턴이다. 그래서 뷰(view, viewcontroller)가 presenter를 소유한다. 그리고 사용자 입력이나, 이벤트가 발생하면 prese..

카테고리 없음 2021.06.06

<iOS 디버깅> app store connect 배포 에러 ITMS-90713

ITMS-90713: Missing Info.plist value - A value for the Info.plist key 'CFBundleIconName' is missing in the bundle 'xxxx'. 보통 찾아보면, info.plist에서 icon name을 Assets 폴더의 AppIcon으로 설정 안해줘서라고만 나오는데... 내 경우는 그게 아니라. Assets를 다른 아이콘 메이커 사이트에서 그대로 가져와 붙여넣었는데 그 과정에서 타겟 맴버쉽에 선택이 안되어서 위의 에러가 떴다... 한 에러에는 다양한 이유가 있을 수 있구나...

ios개발 2021.05.11

swift에서 @objc란?

원래 swift는 오직 swift 코드에만 접근이 가능하도록 한다. 그런데 종종 우리는 objective-c 코드를 swift 파일내에서 사용해야 할 때가 있다. [www.hackingwithswift.com/example-code/language/what-is-the-objc-attribute]에 의하면 정확히는 런타임때 스위프트가 objc와 상호작용해야 할때라 한다. 우리가 아래 처럼 @objc를 붙이면 붙여진 swift 코드를 objective-c에서도 사용할 수 있다는 의미이다. class MyController: UIViewController { @objc func authenticateUser() { } }

ios개발 2021.05.01

<iOS개발> swift에서 sender란?

sender는 해당 메소드를 호출하는 caller를 말한다. 위의 버튼 클릭시 버튼 자체를 말한다. 처음에는 버튼에서 많이 보는데, 아래에서 sender가 보인다. @IBAction func mainButton(sender: UIButton) { println(sender.tag) } 다른 말로는 The object responsible for the action handler. [developer.apple.com/documentation/uikit/uiaction/3600315-sender] 액션 핸들러에 대한 책임이 있는 객체다.

ios개발 2021.05.01

<iOS 기초> 1강 - xcode란?

xcode란 ios앱을 만들기 위한 IDE이다. IDE는 Integrated Development Environment - 통합 개발 환경으로, 코드를 작성하고 앱을 빌드하는 기본 기능과, 깃을 이용한 버전 관리, 앱의 성능 관리등 다양한 도움을 준다. 일단 이후에 더 알아야되는 것들은 preference 설정, xcodeproj 설정, info.plist 파일, asset 폴더, signing등이 있다. 근데 이건 먼저 하면 재미없으니까 이후에 다룬다.

기타/iOS 기초 2021.04.22

<iOS> What is Cocoa? - 코코아란 무엇인가? 1편

ios 개발을 하다 보면 코코아라는 말을 많이 듣는다. 다음 링크를 정리해 보려 한다. 일단 1편을 정리하다 보니 양이 많아서 10편은 족히 나올거 같다.... 최대한 한국어 처럼 쓰려했다. 전문용어가 있긴해도 그대로 영어로 쓰면 영어로 읽느니만 못한거 같아서... 틀린부분좀 알려주시면 감사하겠습니다. What is Cocoa? 코코아란 OSX와 iOS 모두를 위한 어플리케이션 환경이다. 코코아는 아이폰, 아이패드 그리고 아이팟 터치의 멀티 터치를 지원하는 OS를 위해 사용된다. 코코아는 객체지향 소프트웨어 라이브러리, 런타임 시스템 그리고 통합 개발 환경으로 구성된다. 이 챕터에서 우리는 코코아의 정의, 목적의 묘사, 능력들 그리고 iOS OSX 두 플랫폼에서의 코코아의 구성요소들을 살펴보자. 여기서 ..

ios개발 2021.02.22

<swiftUI> 자간 - character spacing

swiftUI character Spacing으로 검색하면 kerning과 tracking이 나온다. kerning을 사용하면 자간을 조절할 수 있다. kerning은 합자 (ligature) -> 합쳐진 글자 여기서는 ff 합자에 대해서 아래와 같이 처리한다. 자간이 늘어나면 합자 간격도 늘어남, 줄어들면 합자 간격은 유지. tracking은 kerning이랑 비슷한데. The effect of tracking resembles that of the kerning(_:) modifier, but adds or removes trailing whitespace, rather than changing character offsets. Also, using any nonzero amount of tracki..

ios개발 2021.02.13