[iOS]Protocol
iOS_Swift.zip 2022. 2. 20. 00:23

Protocol 🤷🏻‍♂️ https://docs.swift.org/swift-book/LanguageGuide/Protocols.html Protocols — The Swift Programming Language (Swift 5.6) Protocols A protocol defines a blueprint of methods, properties, and other requirements that suit a particular task or piece of functionality. The protocol can then be adopted by a class, structure, or enumeration to provide an actual implementation of tho docs.swi..

[iOS]카카오 로그인(소셜)
iOS_Swift.zip 2022. 1. 25. 10:27

본 게시물은 쓴이의 경험을 토대로 한 것임으로, 100% 정답이라고 할 수 없습니다. 가볍게 참고만 해주시면 감사하겠습니다 😁 카카오 로그인 Set Up ▾ 요구사항 ⚠️ Xcode 11.0 이상 iOS 11.0 이상 iOS Deployment Target 11.0 이상 Swift 4.2 이상 위 요구사항이 충족이 된다는 가정으로 진행하겠습니다. 설치하기 ⬇️ 우선 쓴이는 Cocoapods를 이용해 iOS SDK를 설치하였습니다. # 전체 추가 pod 'KakaoSDK' # or # 필요한 모듈 추가 pod 'KakaoSDKCommon' # 필수 요소를 담은 공통 모듈 pod 'KakaoSDKAuth' # 사용자 인증 pod 'KakaoSDKUser' # 카카오 로그인, 사용자 관리 pod 'KakaoS..

[iOS]CollectionView Layout
iOS_Swift.zip 2022. 1. 11. 13:13

이슈 💣 기존 Collection View Cell이 데이터 개수에 맞춰 동적으로 높이 변경이 이뤄져야 했다. 쓴이의 구현은 Layout이 겹침으로 오류가 발생해 원활하게 적용이 되질 않았다. 쓴이의 구현 👨🏻‍💻 sizeForItemAt을 이용하여 Cell의 기본 높이 값을 부여하고, cellForItemAt에서 Cell의 데이터 개수에 맞게 Height 값을 Cell로 보내서 Cell의 높이를 바꿔주려 했다. 아래는 CollectionView의 extension 코드로 sizeForItemAt & cellForItemAt의 해당 내용 부분만 보여줍니다. ▾ // cellForItemAt func collectionView(_ collectionView: UICollectionView, cellForI..

[iOS]HIG(Human Interface Guide)
iOS_Swift.zip 2022. 1. 10. 11:40

HIG❗️ 정의 ▾ 문서에 따르면 "Get in-depth information and UI resources for designing great apps that integrate seamlessly with Apple platforms" 이는 "Apple 플랫폼과 완벽하게 통합되는 훌륭한 앱을 설계하기 위한 심층적인 정보 및 UI 리소스 확보" 라고 해석이 됩니다. 애플에서는 일관된 사용자 경험을 제공하기 위해 애플의 제품에서 구동될 어플을 제작할 때 지켜야할 가이드라인을 제공합니다. 핵심 가치 ▾ 명확함 (Clarity) 글자는 어떠한 크기로 설정하든 알아보기 쉬워야합니다. 아이콘은 의미가 정확히 전달되어야합니다. 무례하거나 적절하지 않은 꾸미기는 지양해야합니다. 예리한 기능에 대한 이해는 디자인에..

[iOS]옵저버 패턴(Observer Pattern)
iOS_Swift.zip 2022. 1. 5. 12:40

옵저버 패턴 ❓ 옵저버 패턴은 한 Object의 상태가 바뀌면 그 객체에 의존(구독) 하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로 1:N(1대다) 관계를 정의합니다. 예시로 유튜브에서 구독자에게 알림 메시지를 보내는 것처럼 관찰 중인 객체에서 발생하는 이벤트를 여러 다른 객체에 알리는 메커니즘입니다. ⚠️ 용어 설명 Subject → 구독자(Concrete Observer)가 이벤트를 받을 주요 주제(Subject) 해당 Subject의 특정 이벤트 변경 시 구독하고 있는 구독자들이 해당 이벤트를 수신합니다. Observer → 구독자들의 부모가 되는 인터페이스 (Java에서는 추상 클래스) Concrete Observer → Observer 인터페이스를 상속받고, Subject에..

[iOS]싱글톤 패턴(Singleton Pattern)
iOS_Swift.zip 2022. 1. 4. 16:22

싱글톤 패턴❓ 특정 용도로 객체를 하나만 생성하여 공용으로 사용하고 싶을 때 싱글톤(Singleton) 디자인 패턴을 활용합니다. 싱글톤(Singleton)으로 구현된 클래스는 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이며, 최초 생성 이후에 호출된 생성자는 최초의 생성가 생성한 객체를 리턴합니다. 객체는 하나만 생성하여, 생성된 객체를 어디서든 참조할 수 있도록 하는 패턴입니다. 예시 ▾ class UserInfo { var id: String? var password: String? var name: String? } // A 뷰 컨트롤러 let userInfo = UserInfo() userInfo.id = "Sodeul" // B 뷰 컨트롤러 let userInfo = UserI..

[iOS]FSCalendar 사용 후기 & 사용법
iOS_Swift.zip 2022. 1. 2. 14:33

FSCalendar 라이브러리 사용 후기 & 사용법 📑 시작에 앞서 FSCalendar Github 주소도 함께 공유합니다. 📎 ⚠️ 필자가 직접 사용했던 방법을 중점으로 작성했으니, 가볍게 참고해주시면 감사합니다. ☺️ https://github.com/WenchaoD/FSCalendar GitHub - WenchaoD/FSCalendar: A fully customizable iOS calendar library, compatible with Objective-C and Swift A fully customizable iOS calendar library, compatible with Objective-C and Swift - GitHub - WenchaoD/FSCalendar: A fully cus..

[Xcode]Info plist
iOS_Swift.zip 2021. 12. 25. 22:58

Info.plist ❓ 프로젝트 설정을 담당하는 파일 번들을 식별하고 구성하는 키 값 쌍이 포함된 리소스 실행 패키지에 관한 필수 설정 정보가 포함된 구조화된 텍스트 파일 일반적 유니코드 UTF-8로 인코딩 & 내용은 XML을 사용 구성 요소 📑 CF Type ❓ CF → Core Foundation ( C포인터 타입 ) Localization native development region (CFBundleDevelopmentRegion) ▾ 번들이 만들어진 주 지역을 설정함 기본적인 언어가 해당 나라 언어의 맞게 나옴 값을 Korea로 바꾸면 설정 등 언어가 한국어로 나온다❗️ Executable file (CFBundleExecutable) ▾ 실행 가능한 파일 보통 프로젝트 이름이 초기값으로 설정됨..

[Xcode]App Project
iOS_Swift.zip 2021. 12. 23. 12:26

• General 💻 → Xcode 개발 환경의 일반적인 공통 사항을 설정한다. 빌드 중에 이슈가 있을 때 멈추거나, 빌드하지 않더라도 실시간으로 이슈를 찾아주는 옵션 등이 있다. Identify 📓 Display Name ▾ 앱이 표시될 이름 Bundle Identifier ▾ 앱을 고유하게 식별하는 번들 ID 관리 번들 ID 기능 리소스로 기능을 할당하거나 프로파일 리소스를 사용하여 프로비저닝 프로파일을 생성하려면 번들 ID가 필요함 프로비저닝 프로파일 ❓ 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것을 말한다 version ▾ 버전을 뜻함 ex) 1.0.0 첫 번째의 1은 대규모 업데이트 시 증가 두 번째는 기능..