- Swift
- IOS
- 야곰아카데미
- UIKit
- 스위프트
- github
- LanguageGuide
- Accessibility
- Split View
- 디자인패턴
- GOF
- 앱개발
- 애플
- Apple
- UILabel
- Human Interface Guidelines
- Keychain
- HIG
- iTerm
- 애플사이다
- CollectionView
- WWDC
- TOSS
- lineBreakMode
- iPad
- orthogonalScrollingBehavior
- 전달인자 레이블
- DiffableDataSource
- lineBreakStrategy
- Combine+UIKit
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Today
- Total
목록iOS (37)
애플사이다의 iOS 개발 일지
UserDefaults 관련 코드를 보다가 UserDetaults.standard.string(forKey:) 메서드를 봤는데, object(forKey:) 메서드와의 차이점이 궁금해서 검색해봤다. UserDefaults, 기본적인 key-value pair와의 차이점에 대한 기본적인 설명은 생략했다. UserDefaults 관련 메서드는 이렇게 다양한데, 저장값을 string, bool, integer, double 등 타입별로 구분하면 번거로우니까 한 방에 퉁쳐서 저장할 수 있는 object를 쓰는 게 낫지 않을까? 하는 생각을 했다. -> 결론적으로 아니었음 공식문서 우선 공식문서를 살펴봤다. 대표적인 메서드인 object(forKey:) / bool(forKey:) / string(forKey:)..
앱이 Background 상태에 있더라도 사용자에게 알림을 띄우는 기능인 Push Notification에 대해 알아보자. *Notification의 디자인은 HIG 문서 요약본 포스트를 참고 이번 포스팅에서는 공식문서를 훑어보고, 다음 포스팅에서 Notification 관련 4가지 주체에 대해 정리하면서, 예제 코드를 작성해볼 계획이다. Push Notification이란? 특정 앱에서 사용자에게 알림을 띄우는 것을 말하는데, 아래 화면처럼 잠금 화면, 알림 센터, 배너, 사운드, 배지 등의 형태가 있다. 여기서 배지 (Badge)란 아래처럼 앱 우상단에 빨간 점으로 표시되는 형태이다. 참고 - What is a badge? APNs란? APNs는 Apple Push Notification servic..
APNs (Apple Push Notification service)를 스터디하다가 오랜만에 HIG 문서를 읽게 됐다. 참고 - Notifications HIG 문서 요약 Notification은 사용자에게 적당한 시간에 (timely), 중요한 정보를, 한눈에 (at a glance) 전달한다. 사용자에게 notification을 보내기 전에 반드시 사용자의 동의 (consent)를 얻어야 한다. 사용자가 동의한 이후, 대부분의 사용자는 설정 앱을 통해 notification 스타일과 notification의 중요도에 따른 알림 시간을 정한다. Anatomy 플랫폼에 따라 notification의 다양한 스타일을 활용할 수 있다. 배너 : 잠금 화면 (lock screen), 홈 화면, 데스크탑 배지 ..
저번 포스팅 [Keychain] 공식문서 읽는 방법 - 공식문서만으로 키체인을 이해해보자 에서 Keychain 이론을 다뤘다. 이제 간단한 예제를 통해 Keychain을 사용해보자. *이 예제에서는 비밀번호를 저장하지만, 실제로는 사용자 인증 등 토큰을 저장하는 형태로 흔히 사용한다. 1. Keychain에 비밀번호 추가 (등록)하기 먼저 Keychain에 저장할 데이터 타입을 정의하자. 이번 예제에서는 password만 저장하지만, 다른 프로퍼티를 추가/저장하는 것도 가능하다. struct Credentials { // var username: String // 이번에는 필요 없음 var password: String } Keychain 관련 Error 타입도 정의하자. enum KeychainErro..
공식문서를 읽다 보면 링크를 타고 다른 문서를 읽게 되고, 또 그 안에 링크를 타고 다른 글을 읽어야 하고... 가 반복되기 때문에 지칠 때가 있다. 이번 포스트에서는 공식문서들을 효율적으로 떠돌아다니는 방법을 소개하고자 한다. 다른 키워드에 비해 Keychain에 대한 공식문서 양이 (그나마) 방대하지 않아서 (← 수박 조언 감사해요) 오직 공식문서만으로 Keychain을 이해해보는 시도를 했다. 아래의 떠돌이 과정 (빨간색 글씨 참고)을 통해 공식문서의 중요도를 판단하는 데 도움이 되었으면 한다. 1. 최상단의 문서 - Keychain Services Keychain에 대한 설명이 시작되는 문서는 Keychain Services이다. 요약 : Keychain service란 사용자 대신 작은 데이터 ..
최근 2개월 동안 개발했던 앱을 출시하게 됐다. 기획부터 시작해서 디자인, 서버 개발, iOS 개발에 직접 관여하며 진행했던 프로젝트인 만큼 재밌었고 배운 게 많았다. 그 과정에서 단계별로 고려했던 점과 유용한 사이트를 공유하려고 한다. ✏️ 기획 프로젝트 실행 목적과 목표를 설정한다. 이때 목적은 취준용 앱 출시 경험일 수도, 평소 만들고 싶었던 서비스를 구현하는 것일 수도 있다. 팀원, 진행 기간, 출시 목표일정, 타깃 사용자 등을 설정한다. 개발자 지인이 있다면 기술 난이도에 대해 조언을 구한다. 앱 출시 이후 업데이트를 진행해도 되므로 일단 최소한의 기능을 담은 MVP를 고민한다. 과욕을 부리면 나중에 꼭 후회하게 된다. 최소한의 기능만 구현해도 예상보다 오래 걸린다. 디스코드 채널 개설, Not..
CHCR은 Compression-Resistance 및 Content-Hugging를 뜻한다. 화면에 여러 가지 View를 나타내는 경우, 이 CHCR 값을 조정하게 되는데 (특히 StackView 내부에 여러 가지 View를 ArrangedSubviews로 올리는 경우) 관련 개념을 알아보다가 공식문서에서 몇몇 오류를 발견해서 정리해봤다. 🍎 Intrinsic Size란? 원래는 View의 위치 및 크기 (Origin 및 Size)를 모두 지정해줘야 하는데, 📐 일부 View는 View 내부의 컨텐츠에 따라 자체적으로 Size를 가지도록 되어있다. 이걸 Intrinsic Size (내재적인 크기, 자체적인 크기)라고 부른다. 예를 들어 Button의 Intrinsic Size는 뭘까? “Button..
저번 포스팅 [CollectionView] Diffable DataSource 이해하기 (3/3) - 상품 배너/목록/상세 화면을 구현한 예제코드에서 이미 다뤘지만, 글이 너무 길어져서 이 부분만 따로 포스팅하려고 한다. 아래 화면처럼 배너 하단에 PageControl을 구현해보자. 배너를 왼쪽 오른쪽으로 Scroll 하면, PageControl이 바뀌는 것을 볼 수 있다. 이번 예제코드에서는 CompositionalLayout, orthogonalScrollingBehavior, PageControl, RxSwift를 활용했다. 첫째, 배너를 Horizontal Scroll할 때 화면에 보이는 "현재 페이지 index"를 PageControl에 전달하는 작업, 그리고 둘째, PageControl의 위치..