일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- base64 변환
- development language
- transformation.map
- Swift Package Manager
- UIPresentationController
- scrolling tab
- ViewBuilder
- ios
- UIViewControllerTransitioningDelegate
- 스크롤 탭
- url 관찰
- 기존 앱
- List
- Side Menu
- convert base64
- swift
- url 추적
- Android
- Tuist
- pod install
- DataBinding
- SwiftUI
- detect url
- swift #swift keychain #keychain 사용법
- 개발자 면접
- notifychanged
- 상단 탭바
- GeometryReader
- DevelopmentRegion
- oberve url
- Today
- Total
목록분류 전체보기 (170)
버그 잡이
tableView를 reload 하는데 스크롤 위치가 조금 아래로 밀려나는 현상이 있었습니다. 원인은 tableView의 cell을 automaticDimension으로 줬기 때문이었습니다. automaticDimension 이란? tableView를 사용할때 cell 마다 높이가 다르게 적용될 수 있습니다. 카카오톡 말풍선만 봐도 글 내용에 따라서 cell 마다 크기가 다릅니다. 그런 경우 아래와 같이 automaticDimension을 적용해주어 rowHeight가 유동적이라고 선언합니다. tableView.rowHeight = UITableView.automaticDimension 이 결과 기존의 RowHeight를 무시하고 Row 안의 내용에 따라 Row 높이가 유동적으로 결정되게 합니다. "Ro..
bind() 와 driver() 모두 UI 관련된 Observable 구독을 하기 위한 operator입니다. 둘 다 error 이벤트를 받지 않는다 는 특성이 있어 UI 바인딩에 적합 합니다. bind(to: ) 의 단점 result 라는 Observable이 있고 이를 bind()로 구독하는 세 개의 Observer가 있다고 가정해봅시다. observer1 observer2 observer3 ... 각각의 Observer가 추가될때마다 새로운 스트림이 실행됩니다. 즉, Observable을 구독하는 옵저버가 늘때마다 스트림도 같이 느는 것입니다. 하나의 스트림을 공유해서 같이 쓴다면 참 좋을텐데 불필요하게 낭비되는 리소스가 생기는 것 입니다. driver의 장점 driver는 스트림 공유를 가능하게 ..
www.avanderlee.com/swift/property-wrappers/ Getting started with Property Wrappers in Swift - SwiftLee Get started with Property Wrappers in Swift. Use the @propertyWrapper to remove boilerplate, improve readability, and clean up code. www.avanderlee.com 위 글을 보고 정리한 내용임을 밝힙니다. Property Wrapper란 무언인가? property wrapper는 property가 저장되고 계산되는 것을 정의하는 하나의 층으로 볼 수 있습니다. 이는 getter와 setter에 사용되는 반복적인 코드를..
주식, 코인, 부동산 모두 연일 신고가... 이성을 잃어가기 쉬운 장이다. 스스로를 참 이성적인 사람이라고 생각했는데 최근 불장을 겪으며 흥분되는 감정이 나의 이성을 삼키는 것이 느껴진다. (다들 처음에는 이성적이지만 큰 상승과 큰 하락을 겪으면서 원숭이가 되는 것 같다.) 이러한 시점에서 나의 포트폴리오를 다시 한번 돌아보자. 포트폴리오를 다시 보기 전에 다시 한번 이성에게 말한다. 큰 하락 두려움에 이도저도 못 한다. 손절을 하고 싶어진다. 하지만 큰 하락 뒤에 큰 상승이 올 수 있다. 큰 상승 더 벌고 싶다. 이 기회를 놓치면 기회가 다시 안 올 것 같다. 하지만 큰 상승 뒤에 큰 하락이 올 수 있다. 내가 투자에게 기대하는 것은? 1. 20년 이상의 투자 2. 연 평균 15% 이상의 수익 중요한 ..
PR을 올렸는데 위와 같이 Resolve Conflict 버튼이 비활성화 된 경우가 있습니다. 이는 conflict 내용이 복잡해서 github이 이를 보여줄 수 없는 상황입니다. 많은 양의 코드를 변경한 경우 위와 같은 현상이 나타날 수 있습니다. 해결 방법 PR의 대상이 되는 즉, merge 하고자 하는 branch를 해당 PR로 Merge 해서 conflict를 수정하는 방식으로 문제를 해결할 수 있습니다. 말이 좀 복잡한데 프로세스를 정리하면 다음과 같습니다. * 작업 브랜치 : fix-1134 * 병합하고자 하는 브랜치 : development 1. 현재 작업 브랜치(fix-1134) 체크아웃 2. development를 fix-1134에 merge (merge development into f..
나의 안일한 생각과 하드 코딩으로 인해서 치명적인 이슈를 발생시켰다. 노출되면 안 되는 View였는데, 노출이 되버렸다. 정확히는 새로운 릴리즈 버전이 아닌 이전 릴리즈에서 발생한 문제였다. 문제 상황 문제 상황을 하나씩 집어보면 다음과 같다. 1. 이전 버전에 띄울 view가 있었는데 이는 기획상 사용하지 않게 되었다. 이는 api를 통해서 통제된다. 2. 나는 위 api를 체크할때 하나의 type, 하나의 값만 올 것이라고 판단하고 배열의 첫번째 값만 받아서 처리하는 로직을 짰다. 3. 이번 버전에 새로운 view가 기존 view를 대신하여 사용되었다. 4. 새로운 view를 통제하는 api가 적용되자. 이전 버전에서는 과거 기획상 사용하지 않기로 했던 view가 노출되었다. (새로운 view도 같은..
https://www.avanderlee.com/xcode/svg-image-assets/ SVG Assets in Xcode for Single Scale Images - SwiftLee SVG Image Assets allow you to use Singe Scale icons and symbols. Stop wasting time by generating @1x, @2x, and @3x images by using SVG assets instead. www.avanderlee.com 위 글을 번역한 글입니다. 직역이 아닌 이해한 것을 바탕으로 작성했기 때문에 원문과는 차이가 있을 수 있습니다. XCode 12부터 SVG 파일 사용이 가능합니다 XCode12부터 SVG 이미지 파일을 지원합니다. XC..
UIView와 같은 경우 ViewController 하위에 포함시키고자 할때 객체를 생성해서 addSubView 해주면 됩니다. 그런데 ViewController를 ViewController 안에 추가하고 싶은 경우는 어떻게 할까요? 공식 문서를 보면 아래 4가지의 메서드가 필요하다고 합니다. addChild(_:) removeFromParent() willMove(toParent:) didMove(toParent:) 아래와 같이 사용합니다. parentVC.addChild(childVC) parentVC.view.addSubView(childVC) childVC.willMove(toParent: parent) childVC.didMove(toParent: parent) UIView를 포함시키는 것과 다..