본문 바로가기
반응형

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.
반응형