- Apple
- 애플사이다
- iTerm
- 전달인자 레이블
- 스위프트
- github
- CollectionView
- TOSS
- UIKit
- WWDC
- IOS
- Accessibility
- 디자인패턴
- lineBreakStrategy
- Human Interface Guidelines
- GOF
- HIG
- orthogonalScrollingBehavior
- 야곰아카데미
- iPad
- Split View
- Keychain
- Swift
- DiffableDataSource
- LanguageGuide
- UILabel
- 앱개발
- 애플
- Combine+UIKit
- lineBreakMode
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
목록분류 전체보기 (81)
애플사이다의 iOS 개발 일지
주니어 개발자 면접을 보면서 이미지 처리에 대한 질문을 꽤 많이 받았다. 앱 출시 프로젝트 때는 서버에서 자체적으로 적당한 크기의 이미지를 저장하도록 수작업..했었기 때문에 대응이 어려웠다.. -> 현업에서도 이미지를 서버에서 일괄 관리하는 게 이상적이라고 한다. 즉, 서버가 특정 화면에 맞는 크기의 이미지를 미리 알아뒀다가 보내주는 방식이다. 클라이언트 단의 로직을 최소화할 수 있고, 서비스 운영 측면에서 보다 안정적이다. 현업에서는 대용량 이미지 처리, 특히 캐싱을 위해 Kingfisher 라이브러리를 쓴다고 한다. Kingfisher의 주요 기능은 URL을 넣으면 비동기로 이미지를 다운로드하고 캐싱 처리해주는 것이다. 이번 기회에 Kingfisher 소스코드를 뜯어보자. 공식문서로 Kingfishe..
앱이 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), 홈 화면, 데스크탑 배지 ..
개발자가 설정한 특정 상황이 발생하면 자동으로 실행할 동작을 미리 정해두는 기능이 있다. 예를 들어 특정 branch에 merge 또는 PR을 요청했을 때 테스트가 실행되도록 하는 것이다. Git Flow 기능과 함께 사용하면 더욱 유용하다. *Git Flow 설명은 지난 포스트 참고 - [Git] GitFlow로 브랜치 관리하기 이렇게 테스트 코드를 실행하거나, 새로운 버전을 release 하기 전에 TestFlight를 실행할 수 있는데 이러한 자동화 기능을 CI/CD라고 한다. CI/CD를 위한 툴은 Jenkins, fastlane, Buildkite 등 다양한데, 오늘은 GitHub Action을 알아보자. CI/CD란? CI : Continuous Integration (지속적 통합) CD :..
저번 포스팅 [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란 사용자 대신 작은 데이터 ..
SwiftLint란? SwiftLint는 라이브러리이다. 이걸 설치하면 Xcode에서 코딩 컨벤션 관련 오류를 알아서 잡아내는 맞춤법 검사기 기능을 한다. SwiftLint 설치 방법은? SwiftLint를 설치하는 방법은 크게 CocoaPods를 사용할 건지, 사용하지 않을 건지로 나뉜다. 개인적으로 나는 최근 CocoaPods보다 SPM (Swift Package Manager)을 더 활발하게 사용하고 있다. 별도로 pod install을 할 필요가 없고, 코드리뷰를 할 때 리뷰어도 추가 작업 없이 코드를 확인할 수 있다는 장점이 너무 크기 때문이다. *그래도 CocoaPods으로 설치하고 싶다면 Zeddios님 링크를 참고 두 방법 모두 설치과정은 SwiftLint 공식문서에 다 나와있으므로 이걸 ..
최근 2개월 동안 개발했던 앱을 출시하게 됐다. 기획부터 시작해서 디자인, 서버 개발, iOS 개발에 직접 관여하며 진행했던 프로젝트인 만큼 재밌었고 배운 게 많았다. 그 과정에서 단계별로 고려했던 점과 유용한 사이트를 공유하려고 한다. ✏️ 기획 프로젝트 실행 목적과 목표를 설정한다. 이때 목적은 취준용 앱 출시 경험일 수도, 평소 만들고 싶었던 서비스를 구현하는 것일 수도 있다. 팀원, 진행 기간, 출시 목표일정, 타깃 사용자 등을 설정한다. 개발자 지인이 있다면 기술 난이도에 대해 조언을 구한다. 앱 출시 이후 업데이트를 진행해도 되므로 일단 최소한의 기능을 담은 MVP를 고민한다. 과욕을 부리면 나중에 꼭 후회하게 된다. 최소한의 기능만 구현해도 예상보다 오래 걸린다. 디스코드 채널 개설, Not..