분류 전체보기
-
lazy varSwift 2021. 3. 17. 10:25
안녕하세요. 그린입니다! 이번 포스팅에서는 lazy var에 대해 알아보겠습니다😃 lazy var??? : lazy는 직역하여 생각해볼때 '게으른'이라는 뜻이있다. 처음 접할때 왜 게으른일까? 뭘 늦게 해주는걸까? 라는 의문이 들었습니다. lazy var의 역할 : lazy var는 우선 메모리와 관련이 있습니다. 메모리를 보다 효율적으로 관리하기 위해 공식문서에서는 처음 사용되기 전까지는 메모리를 잡아먹는 연산이 이뤄지지 않는다고합니다. 이걸 좀 더 생각해보면 해당 변수가 필요하여 사용되기 전에는 메모리를 차지하지 않고 해당 변수를 사용하려할때 로드되어 메모리를 차지 하는것입니다. 처음 의문을 가진 부분에 답이 되었습니다. "게으른 저장? 처럼 필요할때 한다~" 이런 게으른 느낌이 들었습니다. lazy..
-
View Drawing CycleiOS 2021. 3. 15. 16:42
안녕하세요. 그린입니다! 이번 포스팅에서는 iOS에서의 뷰 드로잉 사이클에 대해 알아보겠습니다. Drawing Cycle? : 뷰가 로드 되거나 변경이 있을때 화면에 시각적으로 표현되어 그려지는 일종의 사이클 1) 뷰 로드 시 시스템이 UIView에게 draw 메서드를 통해 드로잉을 요청 2) 뷰의 스냅샷을 캡쳐하여 UIView에게 전달 3) 뷰의 컨텐츠 변경 시 관련 메서드 (SetNeedsDisplay, SetNeedsLayout 등등..) 호출하여 시스템에 업데이트 요청 4) Next Drawing Cycle에서 업데이트 요청 받은 뷰를 업데이트 -> 뷰의 스냅샷을 캡쳐하고 뿌려주는 프로세스를 반복하는 과정! View 컨텐츠 변경 관련한 업데이트 트리거 종류 1) View를 부분적으로 가린 타 Vi..
-
Swift Package Manager 설치 및 사용법Library 2021. 3. 3. 11:01
안녕하세요. 그린입니다! 이번 포스팅에서는 코코아팟이 아닌 애플에서 제공하는 외부 라이브러리를 위한 Swift Package Manager 줄여서 SPM에 대해 설치 및 사용법을 알아보겠습니다. 1. 프로젝트 타켓 접근 -. Frameworks, Libraries, and Embedded Content에서 + 버튼 클릭 2. Add Package Dependency 클릭 3. 원하는 외부 라이브러리 주소 입력 -. 저는 Dropbox 라이브러리를 가져와보겠습니다. 4. Version / Branch / Commit 옵션 선택 후 Next 5. 설치가 되면 아래 적용 라이브러리 체크 후 Finish 클릭 -. 이렇게 프로젝트 경로 및 타켓 부분에 생성이 된걸 확인하실 수 있습니다. 6. 프로젝트 파일에서 ..
-
CocoaPods 설치 및 사용Library 2021. 3. 3. 09:59
안녕하세요. 그린입니다! 이번 포스팅에서는 CocoaPods, 코코아팟에 대해 설치 및 사용을 알아보겠습니다. 코코아팟은 Swift / Objective-C 코코아 프로젝트의 관리자로 여러 라이브러리를 지니며 많은 앱에서 사용되고 있습니다. 즉, 프로젝트를 다양한 기능을 사용할 수 있도록 확장 할 수 있게 도와줍니다😃 그럼 설치부터 해보죠!! 1. 터미널에서 아래 명령어 입력 $ sudo gem install cocoapods -. 이렇게 설치를 하게되면 코코아팟의 라이브러리를 전부 사용할 수 있습니다..! 2. 코코아팟 라이브러리 적용하려는 프로젝트 경로 이동 3. 프로젝트 경로에서 아래 명령어 입력 (Podfile 생성 명령어) $ pod init -. 이렇게 프로젝트 경로에 Podfile이 생긴걸 ..
-
Swift PerformanceSwift 2021. 3. 1. 17:03
안녕하세요. 그린입니다! 이번 포스팅에서는 Swift Performance, 스위프트 퍼포먼스에 대해 이야기 해볼까 합니다😃 우선 Performance는 뭐라고 생각하면 좋을까요? 저는 퍼포먼스가 성능이라고 생각됩니다. 같은 애플리케이션을 구현하더라도 클래스로 구현하냐 구조체로 구현하냐에 따라 앱 성능 차이가 있을겁니다. 이러한 앱의 성능을 최대한으로 이끌어낼 수 있어야 좋은 앱이라고 할 수 있겠죠??🙌 성능을 자료구조에서는 어떤식으로 표현해볼 수 있을까요? : 시간복잡도 (빅오 표기법, Big O)로 표현해볼 수 있습니다. 시간복잡도? : 코드 알고리즘의 성능을 특수한 표현으로 나타낸 표기법으로 성능이랑 연관되어 있습니다. : 예를들어 이중 for문을 시간복잡도로 나타내면 O(N^)으로 나타낼 수 있습..
-
iOS File SystemiOS 2021. 2. 25. 15:41
안녕하세요. 그린입니다! 이번 포스팅에서는 iOS File System과 fileManager 클래스에 대해 알아보겠습니다🏃 파일 시스템? : 파일/자료를 탐색/접근/보관 등의 기능으로 파일을 효율적으로 관리하는 시스템 (영구 저장소 관리) : OS File System Disk 애플 파일 시스템? : Apple file system, APFS로 불리며 애플에서 macOS, iOS, watchOS, tvOS 모두에서 범용으로 사용하도록 만든 파일 시스템 : 디스크 파일 시스템 (디스크 드라이브 관리) : 기존 HFS+ 대체하는 신규 파일 시스템 : iOS에서는 10.3 버전부터 macOS에서는 하이 시에라 버전부터 도입 애플 파일 시스템의 기능 1) 컨테이너 방법 사용하여 컨테이너 내 파티션 용량 조절 ..
-
Responder Chain / Touch EventiOS 2021. 2. 22. 18:04
안녕하세요. 그린입니다! 이번 포스팅에서는 Responder Chain / Touch Event에 대해 알아보겠습니다. Responder란? : 이벤트를 핸들링하고 반응할 수 있는 객체 : 모든 Resonder 객체는 UIResponder에서 상속된 클래스의 인스턴스 : 이벤트 발생 시 이벤트 처리를 위해 해당 이벤트를 앱의 Responder 객체에 전달 : UIKit에 정의된 UIResponder 클래스 이벤트 종류 : Touch / Press / Shake-motion / Remote-control / Editing menu : responder가 해당 이벤트에 맞는 메서드를 오버라이드해서 구현해야함 Responder Chain : responder 객체들이 이벤트나 액션 메시지를 핸들링해야될것을 앱..
-
의존성 관리도구iOS 2021. 2. 18. 20:12
안녕하세요. 그린입니다! 이번 포스팅에서는 의존성 관리도구에 대해 알아보겠습니다. 의존성 관리도구? : 앱 개발을 위해 외부 라이브러리 사용할 때 프로젝트와 해당 라이브러리의 상관관계를 용이하게 관리해주는 도구 : 필수는 아니나 사용하면 불필요한 공수가 줄어듬 -> 외부 라이브러리 가져다 쓸때 업데이트가 생겨 버전이 올라가면 라이브러리 교체해줘야되어 휴먼 에러가 날 수 있으나 해당 작업들을 의존성 관리도구를 이용하면 명령어 한줄 등 간단한 방법으로 해결됨 -. 의존성 관리 도구 장점 : 시간절약 및 안정성 보장 -. 언어별로 의존성 관리도구 다양 1) 자바에는 Maven 2) JS에는 Yarn, NPM 3) 파이썬 pyenv —> 애플: 코코아팟, 카르타고, 스위프트 패키지 매니저 -. Cocoa, Co..