- iTerm
- UIKit
- 스위프트
- Accessibility
- 디자인패턴
- 야곰아카데미
- CollectionView
- Apple
- Human Interface Guidelines
- DiffableDataSource
- UILabel
- 애플
- Keychain
- 앱개발
- orthogonalScrollingBehavior
- lineBreakMode
- IOS
- WWDC
- TOSS
- Combine+UIKit
- GOF
- Swift
- HIG
- lineBreakStrategy
- 애플사이다
- LanguageGuide
- Split View
- 전달인자 레이블
- github
- iPad
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Today
- Total
목록전체 글 (81)
애플사이다의 iOS 개발 일지
서비스에서 진행 중인 굵직한 이벤트가 있다면 앱을 실행하고 Home 화면에 진입했을 때, 애니메이션과 함께 Bottom Sheet (이하 바텀시트)를 띄워준다. 바텀시트를 노출하는 앱은 매우 흔하다. dim 영역이나 x 버튼을 탭하면 Sheet가 내려가도록 구현되어 있다. 29CM 무신사 ABLY 오늘의집 Shein 쿠팡 개인적으로 귀찮아서 습관적으로 무조건 닫기 버튼을 누르긴 하지만... ㅋㅋㅋ (솔직히 사용성 너무 안 좋다고 생각함) 그래서인지 아마존, Etsy, Temu 같은 글로벌 앱에서는 이러한 시트를 띄우지 않고 있었다. 아무튼 이번에는 이러한 바텀시트를 구현하는 과정에서 겪었던 버그를 파헤쳐보려 한다. 제목에서 벌써 스포하고 있듯이 ViewDidLoad 시점에 Bottom Sheet의 lay..
지난번에는 RxSwift와 Combine을 비교하고, 5가지 중요한 개념인 Publishers, Operators, Subscribers, Subscriptions, Cancellable을 간단히 알아봤다. 지난 포스팅 [Combine] 기본 원리 - Apple이 만든 RxSwift를 이해해 보자 (1/3)을 참고 계속해서 Combine 기본 원리를 알아보자. 이번에는 Publisher / Subscriber / Cancellable Protocol의 개념과 Subscription 메커니즘을 자세히 살펴봤다. 1. Publisher Protocol AnyPublisher를 이해하려면, Publisher Protocol을 알아야 한다. Publisher는 이벤트를 방출 (publish) 한다. 기존의 No..
최근 RxSwift를 Combine으로 전환하면서 Combine의 원리에 대해 자세히 알아봤다. Combine 공식문서와 Kodeco의 Combine 자료가 큰 도움이 되었다. 개인적으로 Combine+UIKit 조합은 좋지 않은지, 꼭 SwiftUI와 함께 써야 하는지 궁금했다. 결론적으로 Combine이 first-party라서 더 안전하고, 성능이 좋기 때문에 그리고 UIKit에서 사용할 수 있는 API가 많이 나왔기 때문에 (assign 등등) Combine+UIKit 조합도 괜찮다!! 라는 답을 얻었다. Combine은 비동기 처리를 쉽게 해주는 도구이므로 네트워크 layer, 새로 구현하는 화면 등 프로젝트 일부에만 사용해도 괜찮으니 여러 시도를 해보는 게 좋은 것 같다. Combine+UIK..
연말 크리스마스 시즌을 맞아 2023년 회고를 작성했다. 약 1년 4개월 동안 개발자로 근무해 본 시점에서 소감을 남겼고 (주관 가득 주의) 작년 회고에 작성했던 목표를 얼마나 실천했는지 확인하고, 새로운 연간 계획을 세워봤다. 목차는 아래와 같다. 1. IT회사에서 개발자로 일하기 2. 올해 목표였던 것 3. 내년 목표 +) 1. IT회사에서 개발자로 일하기 IT와는 사뭇 동떨어진 일터에서 근무하다가 개발자로 취업한 뒤 여러 방면에서 문화 충격을 받았다. 사무실에서 카페처럼 BGM을 틀어주는 것만으로도 충격이었다. 대부분 긍정적인 충격이었기 때문에 그 경험을 털어놓고 싶어서 입이 근질근질했다. 그런데 입사 초반에는 단점보다는 장점만 말하게 될 것 같아서 해가 바뀔 때까지 기다렸다. 말하자면 제품을 구매..
앱으로 쇼핑을 하다 보면 구매를 부추기는 장치가 여럿 마련되어 있는데 그중 하나가 Time Deal (특정 기간 동안 할인), Flash Sale (짧은 기간동안 한정 수량을 할인) 등의 이벤트이고 일반적으로 1초마다 시간을 업데이트하는 카운트 다운 타이머가 옆에 배치된다. 할인이 곧 끝나니 얼른 지르라는 은근한 압박을 주는데 이런 할인에 전혀 영향을 받지 않는 사용자도 있겠지만 UI/UX 관점에서 초 단위의 숫자가 계속 바뀌어서 시선이 집중되는 효과가 있다. 그래서 Home, PDP, 할인전 화면 등에서 주로 노출한다. Amazon SHEIN 쿠팡 오늘의집 이번 포스팅에서는 이러한 Count down 타이머를 구현해보고자 한다. 먼저 요구사항을 정리해보고, 단계별로 만들어 보자. TODO: 1. 남은 ..
최근 코엑스에서 1,300여 명이 참석한 국내 최대 규모의 애플 생태계 컨퍼런스 KWDC23가 개최됐다. Apple WWDC의 공식 후속행사 (WWDC Extra Event)로 진행된 최초의 국내 행사였다. 이번에 감사하게도 좋은 기회가 주어져서 Localization을 주제로 발표를 했는데, 발표를 하게 된 계기와 발표과정에서 배운 것들을 남겨봤다. 나중에 발표를 준비하시는 분들에게 참고가 되었으면 한다. 1. 발표 계기 5월의 어느 날 KWDC 준비위원회로부터 스피커 제안을 받았다. 입사 후 10개월 간 글로벌 앱을 개발하면서 배운 게 정말 많았지만, 쪼렙 1년차 개발자인데.. 내 미천한 지식으로 발표를 해도 될까? 고민이 됐다. 그런데 제안서를 살펴보니 개발자뿐만 아니라 디자이너, 기획자 등 App..
GoF 디자인 패턴 중 하나인 Prototype 패턴을 정리했다. - Ref : 도서 , Alexander Shvets 저 문제 상황 객체 A가 있고, 해당 객체의 복사본을 만들고 싶은 상황이다. 이때 새로운 객체 인스턴스를 생성하고, 원본 (객체 A)의 프로퍼티 값들을 새 객체에 모두 복사하는 방법이 있다. 문제점 : 객체의 프로퍼티 중 일부가 비공개라면 외부에서 접근할 수 없다. 또한 복사하려면 원본을 알아야 하므로 해당 객체에 대한 의존성이 생긴다. 패턴 설명 요약 : 의존성 없이 객체를 복사하는 생성 패턴이다. Prototype = 시제품, 시험용으로 만들어 본 샘플 제품 실제 산업의 프로토타입 : 대량 생산 이전에 테스트용으로 만드는 샘플 제품 프로그래밍의 프로토타입 : 세포 분열과 비슷함. ‘..
GoF 디자인 패턴 중 하나인 Command 패턴을 정리했다. - Ref : 도서 , Alexander Shvets 저 문제 상황 Text Editor 프로그램을 개발하는 중이며, 텍스트를 저장할 Save Button을 만들었다. Button을 상속받아 자식클래스로 Save Button을 구현한 뒤, save 기능을 추가했다. 그런데 Save Button 뿐만 아니라 Ctrl+C 단축키로도 복사를 하고 싶고, 텍스트와 서식을 동시에 복사할 Super Save Button을 추가하고 싶어졌다. 기존 방식으로 하면 버튼/단축키에 중복 코드가 생기고, 자식클래스 종류가 너무 많아질 수 있다는 문제점이 있다. 패턴 설명 Command의 사전적 정의는 “명령, 명령어”이다. Command 패턴에서는 실행할 작업을..