일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- UIKit
- iphone
- Animation
- Concurrency
- SwiftUI
- fullscreencover
- ios
- Network
- GCD
- gesture
- combine
- swift
- CS
- 달력
- withAnimation
- realitykit
- ar
- environmentobjet
- arkit
- WWDC
- 데이터최적화
- RxSwift
- Performance
- stateobject
- state
- firebase
- dataflow
- 네트워크
- authentication
- auth
- Today
- Total
목록Home (52)
XLOG
[참고] 이 글은 ARKit의 사용법 보단, AR Kit을 사용하기 위해 사전 지식에 대한 정리라는 점을 참고해주시기 바랍니다. 필요에 의해 ARKit에 대한 공부를 해봤다. 몇년 전부터 많이 들려오는 AR(Augmented Reality)인 증강현실, 현실 세계에 가상을 더한 컨텐츠, AR 뜻만 알아도 AR kit은 증강현실을 구현하는 프레임워크라는 것을 알 수 있다. 역시나 공식문서를 보면 2d, 3d 요소를 라이브뷰(카메라로 찍는 현실세계) 에 표현하는 증강현실을 위한 프레임 워크라고 한다. 여기서 우리는 라이브뷰, 즉 카메라로 부터 현실세계의 데이터를 수집해야 한다. QR code 스캐너에 관한 글을 작성할 때 처럼 session을 사용할 것이라는 느낌이 온다. session을 시작하게 되면 처음..
이전 회사 면접에서 내 포트폴리오에 RestApi 를 활용한 프로젝트가 없어서, 회사에서 이런 요구사항이 오면 어떻게 해결할지에 대한 질문을 받았었다. 다행히 이전에 캘린더 관련 프로젝트를 진행하며 대한민국 공휴일 데이터를 어떻게 가져올 수 있을까 고민하면서 Rest Api 에 대한 공부를 했었다. 1. Rest Api 란 무엇일까? RESTful API는 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스입니다. 출처 : https://aws.amazon.com/ko/what-is/restful-api/ 2. Swift에서 무엇을 사용할까? 그건 바로 URLSession, URLRequest 이다. URLSession 에 URLRequest를 사용하여 통신프로토콜을 사용..
1. 배경 많은 취업 공고에 Autolayout 에 대한 이해를 기본 자격요건으로 적혀있는 경우가 많다. Autolayout 이 왜 중요할까? 이유는 간단한 것 같다. 2010년 이전엔 대부분이 비슷한 크기, 비슷한 비율의 모니터로 인터넷을 사용했다. 하지만 2010대에 다양한 핸드폰, 태블릿... IT 서비스를 즐길 수 있는 다양한 기기가 나왔으며, 그만큼 사이즈 또한 다양해졌다. 가로모드까지.... UIKit 의 경우 이전 포스팅에서도 얘기를 했었지만, 명시형 프로그래밍 언어이다. View 를 명시하고 추가할때, 사이즈도 추가를 해줘야 한다. 위에 사진을 보게 되면, 사이즈를 정한 View의 경우 시뮬레이터 상에서 우리가 확인할 수 있지만, 사이즈를 지정해주지 않은 View는 눈에 보이진 않는다. 하..
SwiftUI 만으론 QR Code Scanner를 만들 수 없다...... 그 이유는 UIKit Framework 가 필요하다. AVFoundation, AVCaptureMetadataOutputObjectsDelegate 를 사용하기 위해서...... 우선 AVFoundation 은 swift 에서 제공하는 Audio, Video 를 다루기 위한 frameworkd 다. 여기서의 핵심은 AVCaptureSession 을 사용하는 것이다. 디바이스로 부터 들어온 데이터를 출력해주는 세션, 즉 input 과 Output을 연결해주는 역할을 한다. 우리는 이 센션에 AVCaptureDeviceInput 을 Input으로 추가, 가져온 메타데이터를 위해 AVCaptureMetadataOutput 을 oupu..
금일 Apple Developer 에서 디자인 챌린지를 열었다. 내용은 사용자 경험 측면 탭바, 네비게이션, 모달 사용에 대한 내용이었다. 우선 기본 베이스는 WWDC17 Essential Design Principles 를 기반으로 만들어 졌다고 한다. 그래서 영상을 확인했더니, 프레젠테이션의 내용이 비슷한 것이 많았다. 가장 먼저 들었던 내용들의 핵심을 나름 정리해 보자면, 앱은 직관적이어야 한다는 것이다. 앱의 화면은 정보를 주기 위함이다. 그렇기에 표지판에 비유를 했다. 앱은 단순히 영상처럼 정보를 주기만 하는 것이 아니다. 사용자와의 인터렉션을 통해 새로운 정보를 전달하거나, 되돌아갈 수 있어야 한다. 그렇게 화면에는 어디로 갈 수 있는지, 어디로 갈 건지, 지금 내가 어디인건지 등등을 표시해 ..
이전 Posting 에 달력에 활용할 무한스크롤에 대한 아이디어를 적어서 포스팅 한 적이 있다. 그래서 이번엔 그 스크롤에 활용할 달력을 만들어 보려고 한다. 그러기 위해선 Swift 에서 날짜를 다루는 것들에 대해 먼저 알아봐야 한다. 그래서 Date, Calendar 를 확인할 예정이다. 우선 Date 기본 파라미터 없이 init을 하게 되면 현재 날짜와 시간을 알려준다. 여기서 timeInterval 은 시간차(초 단위) 날짜를 구한다고 알고 있으면 된다. Calendar 는 달력유닛과 특정 시점으로 정의를 내려준다고 한다. 그리고 날짜 계산 및 비교도 제공을 해준다. 여기서 달력 유닛은 말그대로 달력의 종류인데 일반적으로 양력(그레고리언) 을 사용한다. 이것과 관련된 설정으로 아이폰에서 일반 > ..
취업을 준비하고 있는 요즘.... 계속 공부했던 내용을 블로그에 정리하거나, 새롭게 공부할 내용이 보이면 다시 정리의 반복 최근 카카오뱅크 개밸자 채용 공지를 보면서 Modular Architecture 란 것을 알게 되었다. (이렇게 기업 채용공고를 보다 보면 현업에서 관심 있어하는 기술들이 중복되는 것이 많다... 그럼 그걸 공부해보는 것이 요즘 나의 공부 방법) 일단 모듈러 아키텍쳐는 무엇일까? Modular architecture is based on the design and use of systems composed of separate repetitive elements (standard units), which are similar in size, shape and functional na..
작년 애플아카데미에서 프로젝트를 진행하면서 MVC, MVVM 아키텍쳐를 채택하고 자연스럽게 Model을 만들었다. Model을 만들었을 때 모델은 클래스로 하느냐, 구조체로 하느냐에 대한 논의를 많이 했었다. 그 당시 구조체는 값, 클래스는 참조 이렇게 단순하게만 생각했다. 그래서 당시 멘토 비비에게 물어봤더니 WWDC16 의 Understanding Swift Performance 를 추천해줬었다. 영상에서 처음 Struct 와 Class 가 메모리에 어떻게 할당하는지를 보여준다. Struct => Stack Class => Heap Stack 메모리는 push 와 pop 으로 동작하는 심플한 구조로 포인터는 맨 마지막을 가르키며 간단하게 동작을 한다. 하지만 힙은...? 사용되지 않는 메모리 공간을 ..
UIKit 에서 UIView 에 cornerRadius 를 주기 위해선 layer 에 속성값을 주고 clipToBound 를 해준다. 마치 View 를 Layer로 자르는 작업을 하는 듯... 그렇다면 이 Layer 는 무엇일까? CALayer 타입이다. CA 는 CoreAnimation 을 뜻한다. UIKit의 Core Animation 은 그래픽렌더링 및 애니메이션 인프라라고 한다. 그리고 Layer 는 우리의 View 가 Core Animation에서 작동하도록 만들어 주는 요소인 것 같다. 왜 UIKit은 Core Animation을 사용할까? 우리의 UI 는 단순히 view를 보여주기만 하는 것이 아닌 사용자와의 인터랙션도 일어난다. 다들 알고 있겠지만 main thread 는 UI를 담당하고 ..
작년에 SwiftUI를 공부하면서 캘린더를 만들어야 하는 상황이 있었다. 단순히 버튼을 눌러 값을 변화시키는 것이라면 조금은 간단할 수 있지만, 기본 제공 달력 처럼 Scroll Animation 효과가 있어야 한다. 기본적인 Infinity Scroll의 경우 한 방향으로 지속적으로 작동, 값을 추가만 하면 된다. 하지만 달력의 경우 좌, 우 즉 값이 추가되거나 감소되거나 해야한다. 무작정 사람이 스크롤 할 만한 범위의 값을 불러와서 만들기는 싫었다. 내가 생각한 아이디어는 3주치의 배열을 계속해서 바꿔주는 것이다. Paging을 사용하게 되면 쉽게 될 줄 알았지만 값의 변화에 따른 View의 재생성되는 과정이 매끄럽지 못했다. 그 당시 생각할 수 있었던 아이디어는 HStack 의 특성을 이용하여 of..