- UIKit
- UILabel
- orthogonalScrollingBehavior
- Apple
- 야곰아카데미
- HIG
- iTerm
- DiffableDataSource
- lineBreakStrategy
- github
- IOS
- Split View
- iPad
- 디자인패턴
- TOSS
- Human Interface Guidelines
- 애플사이다
- 애플
- GOF
- lineBreakMode
- LanguageGuide
- WWDC
- Swift
- Combine+UIKit
- Accessibility
- 전달인자 레이블
- Keychain
- 스위프트
- 앱개발
- CollectionView
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 개발 일지

toss의 디자인 컨퍼런스 SIMPLICITY23에 이어 개발자 컨퍼런스 SLASH23가 진행됐다. SLASH23은 토스 개발자들의 기술적 고민과 성취를 공유하는 자리이며, 총 24개 세션으로 구성되어 있다. 그중 클라이언트 개발자가 눈여겨 봐야 할 세션은 3가지가 있다. 1. Rally로 3분 만에 애니메이션 완성하기 2. 레고처럼 조립하는 토스 앱 3. 누구나 쓸 수 있는 접근성 높은 토스 만들기 하나씩 간단히 정리해 봤다. 나중에 언젠가... 시간이 나면 다른 세션도 정리해보고 싶다. 🙄 1. Rally로 3분 만에 애니메이션 완성하기 저번에 포스팅했던 SIMPLICITY23 리뷰에서 첫 번째로 다뤘던 인터렉션, 꼭 넣어야 해요? 세션과 연결되는 내용이다. 사실 대부분의 내용을 SIMPLICITY2..

toss SIMPLICITY23의 세션을 온라인으로 구경하고 재밌었던 4개 세션을 가져와 봤다. SIMPLICITY23은 토스의 2023년 디자인 컨퍼런스이다. 토스가 UX 기획에 가장 중요하게 생각하는 원칙인 단순함 (Simplicity)을 따서 네이밍했다고 한다. 크게 5개 카테고리, 총 23개 세션으로 구성되어 있다. 개발자가 디자인 컨퍼런스에 왜 참여해야 할까? 디자인팀의 경험과 노하우를 공유하는 자리인데, 개발자가 참여할 필요가 있을까? 개인적으로 개발자는 디자이너와 긴밀하게 협업하는 위치이므로 디자이너가 마주하는 어려움과 고민을 이해하는 것이 중요하다고 생각한다. 그리고 주로 프로덕트 디자이너에 대한 이야기지만 개발자에게도 도움되는 내용도 많다. 장애물을 만났을 때 어떤 마인드셋을 가졌는지, ..

대부분의 개발자는 매일 영어로 된 공식문서와 블로그 글을 읽기 때문에 업무 중에도 영어에 노출이 많이 되는 편이다. 하지만 대부분 영어를 잘하나? 그건 아닐 것이다. 영어 공식문서를 책으로 따지자면 몇 십 권을 봤겠지만, 아직도 속독이 어려워 매번 번역기에 돌리고 싶은 충동이 든다. 이번 포스팅은 '말해보카'라는 앱을 통해 2개월 동안 꾸준히 영어공부를 한 경험을 소개하려고 한다. 나는 영어공부를 왜 하는가? - 언젠가 이민 가려고 개발자가 되기로 결심한 이유 중 하나는 개발이 이민에 유리한 직군이기 때문이었다. 20대 때 길지 않지만 호주, 인도, 태국에서 총 1년 6개월 정도 일해본 경험이 있는데, 평균적인 한국인만큼만 일해도 조직에서 주목받고 승진할 수 있겠다는 생각을 했다. 그래서 기회가 주어질 ..

최근 9개월간 국내 제품을 해외 45개국에 판매하는 글로벌 프로젝트에 참여해 왔다. 2023년 2월에 MVP 버전의 앱을 출시했고, 그 이후 앱을 고도화하는 작업을 진행하고 있다. 최근 가장 전념하고 있는 건 판매자와 구매자 간의 채팅 기능을 개발하는 것이다. Socket 통신, Polling, Stomp 등 처음 접하게 된 네트워크 개념도 있었고, 글로벌 서비스라서 고민해 볼 수 있는 TimeZone, Locale, DateFormat 처리, 채팅 목록과 채팅 상세 화면의 복잡한 UI 구현, Up Scrolling 등 쉽지 않지만 흥미진진한 문제들을 맞닥뜨리며, 단기간에 경험치를 쑥쑥 올리고 있다. 이렇게 채팅 기능을 구현하면서 학습한 아래의 5개 주제를 시리즈 형식으로 포스팅해보려 한다. 1. Str..

버튼을 구현하는 건 굉장히 쉽다. 하지만 모든 작업을 다 한 것 같은데도 버튼이 Tap Gesture를 인식하지 못할 때가 있어서 답답했던 경험이 있다. 너무 간단한 기능이라서 오히려 적절한 검색 키워드를 찾거나 문제 원인을 파악하기가 더 어려웠다. 삽질하면서 찾아낸 원인 5가지를 정리해 봤다. 1. Storyboard Connection이 잘못된 경우 해결하기 가장 간단한 오류이다. Storyboard의 버튼과 @IBAction 메서드의 연결이 잘못된 경우이다. 여러 개의 버튼 또는 action 메서드를 복붙해서 만들었거나, 단순히 드래그를 잘못해서 발생한다. 아래처럼 Touch Up Inside 이벤트에 연결된 메서드가 1개 여야 정상동작한다. 코드로 UI를 그리는 작업에 익숙해졌는데, 반년만에 다시..

문제 상황 현재 로그인한 사용자의 id, nickname, email 등의 User Data는 어떻게 관리하는 게 좋을까? 앱을 사용하는 동안 로그인 상태가 수시로 변경될 수 있으므로 여러 화면에서 접근할 수 있어야 한다. 예를 들어 앱을 최초실행 했을 때 로그인화면에서 sign in 할 수 있고, 로그아웃 화면에서 sign out 할 수 있고, 다시 비로그인 상태에서 좋아요 버튼을 눌렀을 때 modal로 띄워지는 로그인 화면에서 sign in 할 수도 있다. 이때 여러 화면에서 어떠한 시점에 접근하더라도 로그인 상태는 동일해야 한다. 따라서 공유 리소스 형태로 관리하고 싶다. 위 상황에서 Singleton 패턴이 해결책이 될 수 있다. 패턴 설명 클래스의 인스턴스를 1개만 만들고, 이 인스턴스에 대해 ..

ModernRIBs README 하단을 보면 Xcode Template을 설치하라고 나온다. 설치 방법을 간단히 알아보자. (script라길래 Build Phases의 Run script 말하는 줄 알았는데 아니었음..) 참고로 Template을 추가하면 new file을 생성할 때 아래처럼 선택이 가능하다. ModernRIBs Template 설치 방법 1. 프로젝트 파일을 준비한다. 2. CocoaPod 또는 SPM으로 ModernRIBs 프레임워크를 설치한다. 3. https://github.com/DevYeom/ModernRIBs 코드를 다운받는다. 4. 해당 폴더로 이동한 뒤 터미널에 아래를 입력한다. $ cd tooling // Template 파일이 tooling에 위치해있음 $ sh ins..

문제 상황 여러 개의 프로퍼티, 중첩 타입 등을 지정해야 하므로 초기화 과정이 복잡한 객체가 존재한다. 이때 모든 가능한 매개변수를 포함하는 거대한 생성자를 만들게 되는데, 가독성이 떨어지고, 사용하지 않는 매개변수가 존재하므로 비효율적이라는 문제가 있다. 패턴 설명 복잡한 객체를 단계별로 생성하는 패턴이다. 객체를 생성하는 과정에서 해당 객체에 접근 불가하도록 막는다. Builder를 통해 객체를 초기화하고, 외부에서 프로퍼티값을 메서드 주입받아 객체를 완성한다. Director를 선택적으로 활용할 수 있다. Build 관련 메서드들의 실행 순서를 정의하는 역할을 담당한다. 객체를 종류별로 구분하여 생성 과정을 분기처리하고자 할 때 활용하면 좋다. 장점 복잡한 객체를 단계적으로 생성하거나, 생성 단계를..