본문 바로가기
반응형

Swift21

[iOS] 아이메시지 스티커팩 버전 스트링이 안 바뀌는 이슈 해결방법! + 업데이트 시작하며 얼마전에 아이메시지 스티커팩 만드는 방법에 대해 포스팅을 아래와 같이 올렸습니다. https://kimdee.tistory.com/entry/iOS-iMessage-%EC%8A%A4%ED%8B%B0%EC%BB%A4%ED%8C%A9-%EB%A7%8C%EB%93%A4%EA%B8%B0 [iOS] iMessage 스티커팩 만들기 (+ 손쉽게 만들 수 있는 피그마 템플릿 무료제공!) 시작하며 저는 예전에 고양이 사진으로 아이메시지 스티커를 만들었는데요. 주변에서 가장 많이 물어보시는 게, 아무래도 iOS 앱개발보다는 이런 아이메시지 스티커를 어떻게 만드는지를 가장 kimdee.tistory.com 그런데 막상 아이메시지 스티커 1.0 버전을 제출하고 나서, 테스트 플라이트로 사용해보니 스티커 크기가 좀 .. 2024. 4. 3.
[Swift][코딩테스트] 백준 알고리즘 풀 때 필요한 코드 스니펫 모음 시작하며 요즘 코딩 테스트를 공부하면서 백준, 프로그래머스를 자주 이용하고 있는데요. 프로그래머스의 경우 func solution(_:) 형태로 되어있지만, 백준의 경우 입, 출력을 모두 입력해주어야 합니다. 두 플랫폼을 왔다갔다하다보니 헷갈려서, 정리해봅니다. 입력을 가져오는 방법 readLine() readLine()은 String? 형태로 반환합니다. 1. 하나의 문자열 String 문제의 인풋 조건이 항상 하나의 문자열이라면 !를 이용하여 옵셔널이 아니라 String으로 받아오게 합니다. 코딩테스트에서 굳이 옵셔널 핸들링을 할 필요는 없습니다. let string = readLine()! // String 2. 하나의 숫자 Int let integer = Int(readLine()!)! // In.. 2024. 2. 12.
[SwiftUI] Focus 에 관하여 1 - WWDC 2023 영상 정리 시작하며 SwiftUI 를 졸업프로젝트에 적용해보고 나서, 좀 더 깊이있게, 기본기를 탄탄히 공부해야겠다는 결심만 한 지 어언 5개월이 지났고, 개인사와 회사일에 휩쓸리며 살다가 이제야 정신차리고 SwiftUI를 다시 공부하고자 WWDC 2023 영상 중에 SwiftUI 에 대한 내용을 정리해보고자 한다. 이번에 SwiftUI팀에서 앱의 Focus(이하 포커스, 초점이라는 좋은 한국어가 있지만 API 이름 자체가 포커스이기 때문에) 경험을 만들어줄 수 있는 강력한 툴을 가지고 돌아왔다. 포커스 드리븐 경험이라는게 어떤건지, 커스텀 뷰의 포커스 인터랙션과 키보드 인풋에 대해 알아보고자 한다. 이 글은 아래 WWDC2023 영상을 참고하여 정리하였습니다. https://developer.apple.com/v.. 2023. 9. 9.
2편 - iOS 앱을 2개 출시하고 나서 돌아본 10개월간의 iOS 개발 공부 방법(2022) - 새싹 부트캠프, 개인앱 출시, 연합동아리 UMC, 사이드프로젝트, 코딩테스트, 부트캠프 소개 처음 공부 시작, 독학 방법, 인강 및 책, 문서 추천 등을 다룬 첫번째 편은 아래 링크입니다. iOS 앱을 2개 출시하고 나서 돌아본 10개월간의 iOS 개발 공부 방법(2022) - 1.독학, 개인프로젝트, 책 0. 제 소개 저는 일러스트레이터와 디자이너로 일을 하다가 2022년, 올해 2월부터 iOS 공부를 시작해서 현재는 연극과 뮤지컬 후기를 쓰는 ‘연뮤로그’와 주둔군과 한국군인을 위한 약어 및 용어 kimdee.tistory.com 6. 부트캠프 참여 7월부터 12월까지 새싹 iOS 메모리스 2기 얼마전에 수료식을 마쳤습니다. 수료식을 다녀오고 얼마나 벅찼는지 몰라요. 혼자 공부하면서 가장 힘들었던 건, 뭘 모르는지조차 모른다는 점이었습니다. 새싹 과정에서는 iOS 개발자로서의 로드맵을 하나하나.. 2023. 7. 31.
1편 - iOS 앱을 2개 출시하고 나서 돌아본 10개월간의 iOS 개발 공부 방법(2022) - 독학, 개인프로젝트, 책 추천 0. 제 소개 저는 일러스트레이터와 디자이너로 일을 하다가 2022년, 올해 2월부터 iOS 공부를 시작해서 현재는 연극과 뮤지컬 후기를 쓰는 ‘연뮤로그’와 주둔군과 한국군인을 위한 약어 및 용어 검색사전 ‘한미연합사전’, 이렇게 2개의 앱을 출시하였습니다. 아직 열심히 공부해가는 입장이지만 주변의 학우들과 지인들이 앱 출시까지 어떻게 iOS 공부를 했는지를 많이 궁금해해서 이렇게 글을 쓰게 되었습니다. 이 글은, 미디엄과 doy.oopy.io 에 2022년 12월 발행한 글로, 티스토리에 옮겨 작성하였습니다. 개발공부 타임라인 저는 올해 2월까지는 풀타임 디자이너로 근무를 하고, 3월부터 6월까지는 학교수업 (12학점)과 병행하고, 이후에는 휴학하고 iOS 개발 공부에 전념했습니다. 1. iOS 개발을.. 2023. 7. 31.
RelativeTimeFormatter로 상대시간 표기하기 지금 하고 있는 사이드 프로젝트에서 시간 정보를 받아올 때 ISO8601 형태로 받아오는데, 이를 현재 날짜, 시간과 비교하여 상대시간으로 표기해야 했다. 보여주는 형태는 아래 형태대로 보여주고자 했다. 지금, 5분 전, 3시간 전, 2일 전 Foundation 프레임워크에서 RelativeDateTimeFormatter 를 이용하여 상대시간으로 바꿔줄 수 있어서 이를 이용해 메서드를 선언하였다. 서버에서 문자열로 받아오기 때문에 문자열을 Date 포맷으로 변환하는 메서드를 String 에 extension 으로 선언해주고, 이렇게 바꾼 날짜를 Date extension 에서 상대시간으로 바꾸는 메서드를 정의하였다. 날짜 문자열을 Date 형태로 변환하기 // 문자열 -> 날짜 extension Stri.. 2023. 3. 7.
Moya 간단 사용법 - Request sample부터 실제 뷰컨트롤러에서 사용까지 저는 최근 2월에 수료한 연합동아리 UMC 3기에서 협업 프로젝트 와우메이트에서 iOS 파트 리드를 맡았습니다. 제가 담당한 프로젝트에서는 네트워크 통신을 Moya 를 이용해서 네트워크 통신 정보를 추상화하고 있는데요. UMC 3기의 학기중 수업에서는 Alamofire 만 주로 다뤘기 때문에, 간단한 사용법을 정리해둔 것을 공유해봅니다. Moya로 더 편하게 관리할 수 있을거라고 생각해서 작업을 해두었는데 처음 해보신다면 많이 헷갈릴 것 같아요. 한 번 보고 해보시면 수월하지 않을까 싶어 정리해봅니다. 1. Codable 구조체를 선언하기 서버 측에서 전달받은 API 명세에 보면 JSON 예시가 있습니다. 게시글을 등록하는 API를 예로 들어봅시다. { "postTitle":"1번째 게시글", "cate.. 2023. 2. 23.
defer가 호출되는 순서 / defer가 호출되지 않는 경우 defer 구문은, defer 구문이 있는 곳에서, 프로그램 컨트롤을 스코프 바깥으로 옮기기 바로 직전에 실행하려는 코드에 사용한다. defer { // statements } defer 문 안에 있는 내용은 프로그램 제어가 어떻게 이동되는지와는 관계 없이 실행된다. 예를 들어 수동적으로 자원관리가 들어갈 때, 에러가 발생되더라도 액션을 수행해야 할 때 사용한다. Defer가 실행되는 순서 여러개의 defer문이 있을 때 같은 스코프 내에 여러개의 defer 문이 있으면, 실행되는 순서는 보이는 순서의 역순. 마지막 defer 문을 첫번째로 실행한다는 의미는, 마지막 defer 문 안의 내용은 다른 defer 문에 의해서 정리되는 리소스를 참조할 수 있다는 뜻. func 디퍼함수() { defer { p.. 2023. 2. 15.
[WWDC 2022] Embrace Swift Generics 💡 용어 정리 concrete type 구체타입 opaque type 불투명타입 underlying type 기반타입 existential type 실존타입 type erasure 타입 이레이서 boilerplate code 보일러플레이트 코드 Swift 5.7에서의 제네릭 제네릭은 Swift에서 추상 코드를 작성하는 기본적인 툴. 코드가 발전함에 따라 복잡성을 관리하는데 매우 중요. where T: Idea 제네릭은 특정 타입의 세부사항을 추상화하는데 사용 중복되는 구현이 있는 오버로드 코드를 작성하고 있다면 일반화해야할 때 구체 타입으로 시작해서 필요할 때 일반화 하기 다형성 Polymorphism 다형성은 다른 구체 타입에서 하나의 코드가 다르게 동작하도록 코드를 추상화하는 것 image by co.. 2023. 2. 14.
[Swift][번역] 스위프트의 자료구조와 알고리즘 - 섹션 2. 기초 자료구조 - 챕터7. 연결리스트 도전과제 [Swift][번역] 스위프트의 자료구조와 알고리즘 - 섹션 2. 기초 자료구조 - 챕터7. 연결리스트 도전과제 Raywenderlich.com 에서 나온 Data Structures & Algorithms in Swift 책의 데모 공개본을 번역하였습니다. 즐겁게 봐주세요. https://www.raywenderlich.com/books/data-structures-algorithms-in-swift 섹션 2. 기초 자료구조 Elementary Data Structure 챕터 7. 연결 리스트 도전과제 Linked Lists Challenges 이번 챕터에서 연결리스트로 자주 사용되는 다섯가지 문제들을 다뤄볼 겁니다. 이 문제들은 다른 도전과제에 비해서는 상대적으로 쉽고, 자료 구조에 대한 여러분의 지.. 2022. 7. 11.
[Swift][번역] 스위프트의 자료구조와 알고리즘 - 섹션 2. 기초 자료구조 - 챕터6-2. 연결리스트 [Swift][번역] 스위프트의 자료구조와 알고리즘 - 섹션 2. 기초 자료구조 - 챕터6-2. 연결리스트 (스위프트 콜렉션 프로토콜, 밸류 시맨틱, COW(카피-온-라이트)) Raywenderlich.com 에서 나온 Data Structures & Algorithms in Swift 책의 데모 공개본을 번역하였습니다. 즐겁게 봐주세요. https://www.raywenderlich.com/books/data-structures-algorithms-in-swift 섹션 2. 기초 자료구조 Elementary Data Structure 챕터 6. 연결 리스트 Linked Lists 스위프트 콜렉션 프로토콜 Swift collection protocols 스위프트 표준 라이브러리에 있는 프로토콜들은 특정 .. 2022. 5. 30.
[Swift][번역] 스위프트의 자료구조와 알고리즘 - 섹션 2. 기초 자료구조 - 챕터6-1. 연결리스트 (정의, 삽입, 삭제) [Swift][번역] 스위프트의 자료구조와 알고리즘 - 섹션 2. 기초 자료구조 - 챕터6-1. 연결리스트 Raywenderlich.com 에서 나온 Data Structures & Algorithms in Swift 책의 데모 공개본을 번역하였습니다. 즐겁게 봐주세요. https://www.raywenderlich.com/books/data-structures-algorithms-in-swift 섹션 2. 기초 자료구조 Elementary Data Structure 챕터 6. 연결 리스트 Linked Lists 연결리스트는 값들이 선형적이고 일방향적인 시퀀스로 배치된 콜렉션입니다. 연결리스트는 스위프트 배열과 같은 연속저장 옵션에 비해 이론적인 우위를 가지고 있습니다. 리스트의 앞부분에서 삽입 삭제는 .. 2022. 5. 30.
[Swift][번역] 스위프트의 자료구조와 알고리즘 - 섹션 2. 기초 자료구조 - 챕터4~5. 스택, 스택 도전과제 [Swift][번역] 스위프트의 자료구조와 알고리즘 - 섹션 2. 기초 자료구조 - 챕터4~5. 스택, 스택 도전과제 Raywenderlich.com 에서 나온 Data Structures & Algorithms in Swift 책의 데모 공개본을 번역하였습니다. 즐겁게 봐주세요. https://www.raywenderlich.com/books/data-structures-algorithms-in-swift 섹션 2. 기초 자료구조 Elementary Data Structure 챕터 4. 스택 Stacks 스택은 어느 곳에도 있습니다. 스택이 있는 일반적인 예시를 들어보겠습니다. 팬케익 책들 종이 지폐 스택 stack 자료구조는 개념적으로 객체의 물리적 스택과 동일합니다. 어떤 항목을 스택에 넣으면 스택.. 2022. 5. 23.
[Swift][번역] 스위프트의 자료구조와 알고리즘 - 섹션 1. 소개 - 챕터3. 스위프트 표준 라이브러리 Swift Standard Library Raywenderlich.com 에서 나온 Data Structures & Algorithms in Swift 책의 데모 공개본을 번역하였습니다. 즐겁게 봐주세요. https://www.raywenderlich.com/books/data-structures-algorithms-in-swift 섹션 1. 소개 Introduction 챕터3. 스위프트 표준 라이브러리 Swift Standard Library 스위프트 표준 라이브러리는 스위프트 언어의 핵심 구성요소를 포함하는 프레임워크입니다. 이 안에는 스위프트 앱을 구축하는데 도움이 되는 다양한 툴과 타입이 있습니다. 사용자 정의 자료구조(your own custom data structure)를 구축하기 전에, 스위프트 표준 라이브러리가 이미 제공하는 기.. 2022. 5. 14.
[Swift][번역] 스위프트의 자료구조와 알고리즘 - 섹션 1. 소개 - 챕터1. 왜 자료구조와 알고리즘을 배워야할까요? 챕터2. 복잡도 Raywenderlich.com 에서 나온 Data Structures & Algorithms in Swift 책의 데모 공개본을 번역하였습니다. 즐겁게 봐주세요. https://www.raywenderlich.com/books/data-structures-algorithms-in-swift 섹션 1. 소개 Introduction 챕터1. 왜 자료구조와 알고리즘을 배워야할까요? 자료구조 연구는 효율성의 하나입니다. 특정 목표를 달성하기 위해 정해진 양을 저장하는 가장 좋은 방법은 무엇일가요? 프로그래머는 배열과 딕셔너리, 세트와 같이 콜렉션 타입을 정기적으로 사용합니다. 이것들은 데이터 콜렉션을 보유하는 자료구조로 각 구조에는 고유한 성능 특성이 있습니다. 예를 들어, 배열과 세트에 차이점을 고려해보세요.. 2022. 5. 13.
[Swift][번역] 스위프트의 자료구조와 알고리즘 - 섹션 0. 시작하기 전에 요즘 알고리즘 공부를 하면서 Raywenderlich.com 에서 나온 Data Structures & Algorithms in Swift이 책을 보고 있습니다. https://www.raywenderlich.com/books/data-structures-algorithms-in-swift 저는 정리하다보면 자꾸 번역하게 되는데, 노션에 정리해둔 걸 보고 티스토리에도 올리면 좋겠다 싶어서 공유해봅니다. 이 책은 정확히는 출판물 형태의 책은 아니고, 웹페이지 형태로 되어있는데요. Raywenderlich 에서 프로 구독으로 월 39.99달러를 낸다면 책의 모든 내용을 볼 수 있습니다. 구독에 대해서는 아래 링크에서 자세히 확인하실 수 있습니다. Subscription | raywenderlich.com S.. 2022. 5. 13.
[Swift] 사용자 컬러셋 추가하고 UI Color 확장하여 코드로 접근하게 만들기 앱 스타일에 따라 전반적으로 반복되어 사용하는 컬러를 Assets에 추가하면, 인터페이스 빌더에 색상이 추가되어 인터페이스를 구성할 시에 간편하게 색을 추가하고 관리할 수 있습니다. 게시글에서는 색상을 Assets 에 추가하고, 인터페이스 빌더로 사용해보며, UIColor를 extension 확장하여 코드 영역으로도 접근할 수 있도록 하는 방법을 다룹니다. Assets/ 에 추가하기 Xcode 좌측에 있는 Project Navigater에서 Assets.xcassets 에 들어간 후 폴더 Colors 를 만들어줍니다. 해당 폴더 안에 마우스 오른쪽 버튼을 눌러 [New Color Set]을 눌러줍니다. 원하는 컬러의 이름을 지정하면 아래와 같이 컬러칩이 뜹니다. 해당 컬러셋의 Attribute Inspe.. 2022. 4. 4.
[Swift]다양한 디바이스에 맞춰 셀 사이즈를 조정하고자 할 때 + 사이즈가 안 바뀌었을 때 해결방법 (CollectionViewDelegateFlowLayout 프로토콜) [Swift]다양한 디바이스에 맞춰 셀 사이즈를 조정하고자 할 때 + 사이즈가 안 바뀌었을 때 해결방법 (CollectionViewDelegateFlowLayout 프로토콜) 제가 화면 짤 때마다 헷갈리는 부분이라 정리해봅니다. 콜렉션 뷰의 셀 사이즈를 디바이스에 따라서 조정하고 싶을 때 예를 들어 제가 원하는 화면이 아래와 같다고 가정합시다. 저는 콜렉션 뷰에서 두개의 셀이 한 줄에 위치하고, 각 셀 사이의 여백은 20이며, 셀의 비율은 1:1.4정도의 크기를 원하고, inset이 화면 좌우에 없길 원합니다. 저는 제가 아이폰 13 미니를 쓰든, 맥스를 쓰든 보이는 모양새가 아래와 동일하고 싶습니다. 이렇게 일관된 화면을 보여주기 위해서 저는 해당 화면을 담당하는 UIViewController에 UIC.. 2022. 3. 17.
[Swift] 흐름제어구문 작년도에 노션으로 정리했던 글을 티스토리로 옮겼습니다. 📚꼼꼼한 재은씨의 스위프트: 문법편 과 Swift 문서를 보면서 따로 정리하여 공부한 내용이에요. 이번에 Notion2Tistory 를 사용해봤는데, 코드블럭은 띄어쓰기가 사라지고 이미지가 다 깨져서 html 코드를 보면서 수정해야 되더라구요. 만약 노션에서 마크다운만 다루시는 경우(e.g.Table of Contents, Heading, etc) 바로 티스토리로 글을 올리기 좋아요. 추천드립니다. 목차 0. 시작하며 1. 반복문 (Loop) for~in while repeat~while 2. 조건문 if guard #available switch 3. 제어전달문 break continue 구문 레이블과 break, continue 참고 0. 시작.. 2022. 1. 18.
[Swift] 간편하게 정규표현식을 사용하여 매칭하는 방법 (NSRegularExpression 사용X) 📌 이 포스팅은 NSRegularExpression 없이 정규식을 사용하는 방법에 대해 포스팅하였습니다. NSRegularExpression에 대한 내용은 아래 링크들을 확인해주세요. - NSRegularExpression 공식문서 https://developer.apple.com/documentation/foundation/nsregularexpression Apple Developer Documentation developer.apple.com - 스위프트에서 정규식 사용하는 방법( NSRegularExpression을 사용한 예) https://www.hackingwithswift.com/articles/108/how-to-use-regular-expressions-in-swift How to us.. 2022. 1. 13.
반응형