일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리펙토링
- Protocol
- Human interface guide
- collectionview
- Observable
- UITextView
- HIG
- 클린 코드
- 리펙터링
- uiscrollview
- RxCocoa
- swiftUI
- rxswift
- map
- UICollectionView
- 리팩토링
- SWIFT
- 애니메이션
- combine
- MVVM
- 스위프트
- uitableview
- tableView
- clean architecture
- Refactoring
- Xcode
- ios
- swift documentation
- Clean Code
- ribs
- Today
- Total
목록cache (8)
김종권의 iOS 앱 개발 알아가기
Rugby란? Rugby 프레임워크 - 캐싱 툴 Pods Targets에 존재하는 불필요한 Indexing 최적화 (캐싱) Cocoapods에 rebuild 시간을 줄여주는 효과 Rugby 원리 모든 pods에 관한 dependeny들을 캐싱하고, 그 dependency가 있는 Pods 프로젝트로 부터 targets들을 삭제 pods이 변경될때만 rebuild되게끔 설정 불필요한 source를 삭제하여 project 사이즈 감소 직접 Rugby 실행 결과 프로젝트 사이즈 93% 감소 인덱싱 파일 개수 99% 감소 Targets 개수 93% 감소 Rugby 사용 사전 준비 mint 패키지 관리 도구 설치 및 Mintfile 생성 Mintfile에 Rugby 설치를 위해 아래 코드 기입 wotjd/rugby..
1. WKWebView 개념 (UIWebView, AJAX, XHR, 캐시, 쿠키) 2. WKWebView 사용 방법 (쿠키, WKScriptMessageHandler, WKNavigationDelegate, WKUIDelegate) WKWebView가 나온 배경 iOS 8 아래 버전에서는 UIWebView를 사용했지만 deprecated되었고 WKWebView를 사용하게끔 애플에서 정의 UIWebView는 iOS 2부터 도입, WKWebView는 iOS 8부터 도입 WKWebView가 개발된 이유는 HTML의 컨텐츠를 표출하기 위해서 탄생 WKWebView와 UIWebView의 차이점 UIWebView WKWebView 프레임워크 의존성 UIKit프레임워크의 일부 WebKit이라는 프레임워크의 일부 웹..
1. CollectionView (컬렉션 뷰) - UICollectionViewFlowLayout 2. CollectionView (컬렉션 뷰) - UICollectionViewFlowLayout을 이용한 CarouselView (수평 스크롤 뷰) 3. CollectionView (컬렉션 뷰) - custom layout (grid, pinterest 레이아웃 구현) 4. CollectionView (컬렉션 뷰) -실전 사용 방법 (FlowLayout, CustomLayout, binary search, cache) FlowLayout vs CustomLayout Grid 형태처럼 단순한 것은 FlowLayout 사용 Pinterest앱과 같이 복잡한 Grid 형태인 경우 CustomLayout 사용 F..
* URLSession 개념 참고 * NSCache 개념 참고 TableView에서 refresh시 데이터 요청 dataSource는 [AnyObject]형태 title과 같은 것은 dataSource안에 포함 되어 있지만 이미지같은 경우는 dataSource중 url link를 통해 이미지 획득 url link를 통해 이미지를 획득할때 시간이 오래걸리므로 cellForRowAt에서 cache와 async방법으로 접근 class ViewController: UIViewController { lazy var refreshControl: UIRefreshControl = { let control = UIRefreshControl() control.addTarget(self, action: #selector(..
일반적인 Cache 방법 memory cache(메모리에 존재하는지 체크) 없다면 > disk cache(디스크에 존재하는지 체크) 있으면 Memory에 저장 후 캐싱, 없다면 > 서버통신 memory cache 방법 중 하나는 NSCache 사용 disk cache는 보통 FileManager객체를 사용하여 데이터를 파일 형태로 디스크에 저장하거나 UserDefaults, CoreData 사용 NSCache란? key-value쌍을 임시로 저장하는데 사용되는 변경 가능한 Collection NSCache는 자체적으로 시스템 메모리를 너무 많이 사용하지 않도록 자동으로 제거되는 정책을 소유 다른 응용 프로그램에서 메모리가 필요한 경우 이러한 정책은 캐시에서 일부 항목을 제거하여 메모리 사용 공간을 최소화..
WebView 쿠키 설정 방법 원리: 웹뷰 객체를 생성할 때 WKWebView(frame:configuration:), configuration에 데이터 정보(쿠키정보 넣고 그 쿠키정보가 이전에 존재하면 캐시되는 원리) 종속성 import WebKit 쿠키는 WKWebViewConfiguration()에 저장되며, WebView를 초기화 할 때 객체로 넘겨주면 cache완료 WKWebViewConfiguration 객체에 cookie(HTTPCookie객체)를 저장하는 extension 추가 - DispatchGroup 개념: Dispatch Group 활용 - 코드 실행 순서 정의부분 참고 - completion을 사용하는 이유는 async하게 접근 종료 후 completion이 실행되는 것을 보장하기..
가장 안전한 방법은 "shift + cmd + k"로 캐시를 삭제하는 방법이 있지만, 이것으로 안된다면 "DerivedData/" 하위의 파일들을 삭제 (이 폴더는 빌드시 생성되는 파일들이므로 안전) rm -rf ~/Library/Developer/Xcode/DerivedData/* 이것만으로도 불필요한 캐시가 남아 있다면, 다음과 같이 순차적으로 나머지 파일도 삭제 killall Xcode xcrun -k xcodebuild -alltargets clean rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache" rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang.$(whoami)/Modu..
1. git add 원리 1) git add 2) 내부 정보 index - 파일의 이름, id objects - 파일의 내용 ※ cp할 경우 같은 object를 가리킴 내용이 같으면 같은 object를 가리킴 cp f1.txt f3.txt 2. objects 파일명의 원리 - hash * 원리 hello의 해쉬값인 aaf4c..., 여기서 두 글자(aa)를 떼서 objects디렉토리 밑에 "aa" 디렉토리 생성 3번째 문자열 부터(f4c6~) 나머지 문자열 이름의 파일을 만들어서 hello의 내용을 저장 * git add하면 내부적으로 일어나는 현상 해당 파일의 내용 확인 -> 내용 압축 -> SHA1해쉬 통과 -> 위의 원리를 통해 디렉토리, 파일 생성 후 내용 기입 3. commit의 원리 - com..