일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Structures and Classes
- Info.plist
- 아이폰
- 독서후기
- human interface guidelines
- Failed to register bundle identifier
- 책후기
- SWIFT
- mvvm
- View Life Cycle
- 야곰아카데미
- viewcontroller
- SWIFTUI
- contentInset
- NumberFormatter
- @available
- Navigation
- 부트캠프
- Modality
- 독후감
- IOS
- NotificationCenter
- roundingMode
- Codegen
- UIResponder
- 스위프트
- delegation
- xcode
- 스타트업주니어로살아남기
- Mock
- Today
- Total
목록Software Engineering/iOS (74)
호댕의 iOS 개발
단순히 규모가 작은 개인 앱을 만들 때에는 크게 AB테스트가 필요하지 않았다. 일단 테스트의 모수가 되는 사용자의 수도 많지 않았고, 다양한 아이디어를 수행해볼 만큼 앱이 고도화가 되지 않았기 때문이다. 하지만 회사에서 직접 업무를 하며, 성과를 비교하고 앱의 기능을 어떤 식으로 추가할 지 판단하기 위해 AB 테스트를 사용하는 경우가 생겼다. 물론 단순히 User ID를 홀짝으로 나눠서 AB테스트를 수행할 수도 있다. 그러나 이 경우 특정 UserID를 가진 사용자만 특정 실험에 노출되거나 할 수 있어 제대로 된 판단이 불가능할 수도 있다. 그래서 이렇게 분류하는 것이 그렇게 좋지 못한 AB 테스트 분류라는 것을 알게 됐다. (이 경우 실험에 경향성이 생긴다고 한다) 그래서 이번에 회사에선 Hackle이..
이전 푸쉬 알림을 진행하며 원링크의 푸쉬 알림에 유니버셜 링크를 전달받아 이를 통해 앱의 특정 컨텐츠를 여는 작업을 했었다. 푸쉬 알림을 받을 때의 처리는 직접 했지만 유니버셜 링크에 대한 처리는 직접 하진 못했었다. 그래서 UniversalLinks에 대해 공부해보고자 마음먹었고, WWDC 2019 What's New in Universal Links를 보며 Universal Links에 대해 정리해보고자 한다. (아래 글은 WWDC 2019 What's New in Universal Links를 보고 정리한 글입니다) + 2019년, 2020년 모두 What's New in Universal Links라는 이름의 WWDC 영상이 있는데, 2019년 영상이 좀 더 제너럴한 유니버셜 링크에 대한 설명이고..
사이드 프로젝트를 하면서 화면의 특정 이미지를 인스타그램 스토리에 공유할 수 있는 기능을 구현해야했다. 인스타 공유 기능을 왜 추가했을까? 현재 만들고 있는 사이드 프로젝트의 경우 `클라이밍`을 즐기는 사람들을 대상으로 모임을 생성하고 모임에 참석할 수 있도록 해주는 서비스이다. 그런데 우리 팀에서 클라이밍을 하는 사람들 모두 클라이밍 계정을 따로 가지고 있을 정도로 본인들이 푼 문제에 대해 기록을 남기고 싶어하는 니즈가 있다고 파악을 했다. 따라서 앱 내 모임을 참석했을 때 보상으로 주는 홀드 이미지를 인스타에 공유할 수 있도록 하는 기능을 붙이게 됐다. 홀드 이미지를 스토리에 공유할 수 있는 것도 나름의 기록을 남기는 것이기 때문이다. 그럼 어떻게 인스타 공유를 할 수 있을까? Meta for Dev..
회사에서 푸쉬 알림 관련 작업을 맡게 되었다. 이전부터 푸쉬 알림은 어떻게 하나 궁금했었는데 때마침 관련 작업을 맡게 되면서 새롭게 알게 된 내용을 정리해보고자 한다. 특히 푸쉬 알림은 사용자들이 꾸준하게 앱을 사용할 수 있도록 유도하는 중요한 툴인 만큼 중요한 기능이라 생각된다. (해당 글은 처음부터 푸쉬 알림을 등록하는 방법보다는 푸쉬 알림과 세부적인 커스텀?에 대해 다루고 있습니다. 푸쉬 알림을 처음부터 등록하는 것은 추후 정리해보겠습니다) iOS에서의 푸쉬 알림 일단 기본적으로 iOS에서 푸쉬 알림이 어떤 식으로 동작하는지를 살펴보자. 먼저 푸쉬 알림은 우리가 잠금 화면에서도 특정 앱의 이벤트를 알 수 있도록 전달되는 알림을 의미한다. 이런 식으로 푸쉬 알림이 오는 것은 iOS를 한 번이라도 사용..
Xcode를 14.0으로 올리고 iOS 16을 지원하게 되면서 전에는 보이지 않던 문제가 발생했다. 갑자기 개발자 모드가 필요하다는 것이다. (앱을 QA하기 위해 ipa 파일로 전달 후 Apple Configurator로 설치를 했더니 이렇게 나오게 됨) 개발자 모드란 그래서 개발자 모드에 대해 찾아봤더니 이번 WWDC 22에서 새롭게 나온 따끈따끈한 기능이었다. iOS 16 / watchOS 9에서 새롭게 나온 모드로 기본적으로 비활성화되어 있으며 이를 활성화하기 위해선 따로 개발자 모드를 활성화해줘야 한다. (한 번 활성화해놓으면 업데이트 및 재부팅을 하더라도 설정이 유지된다) 이게 나오게 된 이유는 개발자 기능이 표적 공격의 대상이 되며 일반 사용자들은 개발자 기능이 필요가 없기 때문에 사용자의 보..
일단 기존 4개의 꼭지점 모두 둥글게 일괄적으로 처리하려면 layer.cornerRadius를 주면 된다. 그리고 clipsToBounds를 true로 주면 모든 꼭지점을 둥글게 처리할 수 있다. 하지만 이렇게만 하면 특정 모서리만 둥글게 처리를 할 수 없다. 그럼 위 사진처럼 위 모서리만 둥글게 처리하려면 어떻게 해야할까? 이때 쓸 수 있는 것이 바로 layer.maskedCorners이다. 이는 CACornerMask의 배열로 되어 있으며 CACornerMask는 구조체로 타입 프로퍼티로 각각의 꼭지점이 선언되어 있다. 둥글게 하고 싶은 꼭지점을 layer.maskedCorners에 배열 형태로 할당해주면 된다. 따라서 만약 위 이미지처럼 위쪽만 둥글게 하고 싶은 경우 $0.layer.maskedCo..
리베이스를 해결하다가 갑자기 이런 에러가 나왔다... 갑자기 처음 보는 경고가 나와서 당황했었는데 역시 답은 에러 문구에 전부 나와있었다. Build Phase의 Compile Sources에서 중복된 build 파일을 스킵했다는 것이다. 그럼 이는 어디서 중복된 것을 지워줄 수 있을까?? 에러에서 나온대로 프로젝트의 Targets > Build Phase에 가면 이를 찾을 수 있다. Build Phase에서 내리다보면 Compile Sources라는 것이 있다. 여기서 경고에서 나온 파일 이름을 쳐보면.. 이렇게 중복된 파일이 있는 것을 찾을 수 있다. 하나만 지우고 빌드를 해봤지만 하나만 지워도 두 개다 지워지는 것 같다. 분명 Directory에는 파일이 존재하지만 Compile Sources에는 ..
iOS 15 이상에선 문제가 없었지만 iOS 14와 13에선 TableView를 통해 Cell을 띄울 때 TableView의 Cell보다 Separator들이 많이 생기는 문제가 있었다. (최근들어 OS 버전에 따라 달라지는 문제 때문에 골치가 아프다...) 이렇게 Cell이 아무것도 없을 때에도 Separator들은 알아서 생겨있다... 다만 iOS 15 이상에서 확인했을 때에는 전혀 문제가 없었다. 해결 방법은 간단하다. tableView(본인이 프로퍼티로 선언한 테이블 뷰).tableFooterView = UIView() 이 코드만 넣어주면 된다. 넣는 곳은 viewDidLoad에서 넣었다. (필요하다면 다른 곳에서 넣어도 무방하다) 이렇게 되면 Cell하단에는 전부 FooterView로 잡히면서 ..