일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 달력
- state
- environmentobjet
- dataflow
- WWDC
- gesture
- 데이터최적화
- GCD
- swift
- Performance
- authentication
- UIKit
- ios
- fullscreencover
- Network
- Animation
- ar
- realitykit
- withAnimation
- RxSwift
- arkit
- auth
- firebase
- 네트워크
- combine
- Concurrency
- SwiftUI
- iphone
- stateobject
- CS
- Today
- Total
목록Swift/Etc (15)
XLOG
이전 회사에서 혼자 AR 을 담당해서 개발을 했었는데, 바쁘다는 핑계로 제대로 정리를 한적이 없었다....그래서 시작하게 된 AR Posting1. ARKit, RealityKit 은 무엇일까?ARKitAR을 사용하려면 ARKit 을 쓰면된다고 생각하지만 100% 맞다고 할 순 없다. 실제 우리가 App 을 만들때 UI 가 있어야 하지만, ARKit 은 우리가 사용할 수 있는 UI 요소가 존재하지 않는다. ARKit 은 AR 환경을 구축하기 위해 내가 가지고 있는 하드웨어(iPhone, iPad)에 장착되어 있는 센서들을 통해 데이터를 받아와 AR 환경을 만드는데 도움을 주는 프레임워크이다.RealityKitRealityKit 공식 문서 페이지에서 말해주듯이 3D 시뮬레이션 및 렌더링 기능을 제공하는 프..
회사에서 근무를 하며 백엔드에서 날려주는 상황별 Error Code 는 매우 다양했다. 하지만 Client 측에선 다양한 Error Code 라도 유저가 할 수 있는 Action 은 그리 다양하지 않았다.그리고 회사에서 TCA 를 적용해서 프로젝트를 진행하였기 때문에 Error Handling 을 Composable 하게 구성할 수 없을까 고민을 했다. 그래서 Error Handling 을 위한 Redcuer 와 View 를 만들어 각 Feature 적용해야 겠다는 생각을 했다.우선 내가 throw 할 수 있는 Error Case 와 해당 Error 마다 할 수 있는 액션들의 정의가 필요했다.//// Created by Sooik Kim on 5/15/24.//import SwiftUI// API 통신..
TDD(Test Driven Development) 는 테스트 주도 개발이다. 초기 공부를 시작하다보면 자연스럽게 접하게 되는 용어이다. 왜 그런걸까? Swift 를 공부하면서 XCTest를 알기전, View를 만들고 확인하고 내부 로직을 만들어 View 붙이고를 반복했다. 메인 페이지라면 크게 문제는 없었지만 프로젝트 규모가 커지고, 내부에 view들을 확인하기 위해 simulator 를 돌리고, 원하는 페이지까지 이동해서 확인하고, 문제가 있으면 수정해서 다시 로직을 수정하고를 반복했다. 가끔은 Playground 를 만들어 테스트 해보고 프로젝트에 적용하기도 했다. 상당히 비효율적이다. XCTest 를 사용하면 이와 같은 문제를 해결할 수 있다. 각종 테스트를 할 수 있는 프레임워크다. 프로젝트 생..
[참고] 이 글은 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를 사용하여 통신프로토콜을 사용..
금일 Apple Developer 에서 디자인 챌린지를 열었다. 내용은 사용자 경험 측면 탭바, 네비게이션, 모달 사용에 대한 내용이었다. 우선 기본 베이스는 WWDC17 Essential Design Principles 를 기반으로 만들어 졌다고 한다. 그래서 영상을 확인했더니, 프레젠테이션의 내용이 비슷한 것이 많았다. 가장 먼저 들었던 내용들의 핵심을 나름 정리해 보자면, 앱은 직관적이어야 한다는 것이다. 앱의 화면은 정보를 주기 위함이다. 그렇기에 표지판에 비유를 했다. 앱은 단순히 영상처럼 정보를 주기만 하는 것이 아니다. 사용자와의 인터렉션을 통해 새로운 정보를 전달하거나, 되돌아갈 수 있어야 한다. 그렇게 화면에는 어디로 갈 수 있는지, 어디로 갈 건지, 지금 내가 어디인건지 등등을 표시해 ..
취업을 준비하고 있는 요즘.... 계속 공부했던 내용을 블로그에 정리하거나, 새롭게 공부할 내용이 보이면 다시 정리의 반복 최근 카카오뱅크 개밸자 채용 공지를 보면서 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 으로 동작하는 심플한 구조로 포인터는 맨 마지막을 가르키며 간단하게 동작을 한다. 하지만 힙은...? 사용되지 않는 메모리 공간을 ..
작년 Apple Developer Academy 에서 iOS 에 대해 처음 공부를 했다. 마지막 프로젝트에서 팀원들과 SwiftUI 를 쓸 것이냐? UIKit을 쓸 것이냐 에 대한 이야기를 나눴었다. 큰 이견없었다. 다들 현업에서 UIKit 을 쓰고 있으니, 당장 1~2년 안에 취업을 할 생각을 가지고 있다면 UIKit 을 하는게 좋겠다 란 얘기가 나와서 UIKit을 썻었다. 나의 경우엔 이전 프로젝트에서 UIKit을 거의 안써봤기에 UIKit을 써보고 싶다는 생각을 했었기에 좋았다. 하지만 요즘 혼자 공부를 하면서 저런 이유말고, 왜 UIKit인가? 왜 SwiftUI인가? 에 대한 이유를 찾게 됐다. 그렇다면 SwiftUI 는 뭘까? wwdc19 SwiftUI essentials 를 보면 좋은 UI를 ..
Async/await 은 concurrency programming 을 위한 swift 5.5 에 나온 기능이다. 기존에는 비동기 프로그래밍을 위해 GCD를 사용하며 completion handler를 많이 사용했다. 하지만 여기에 큰 문제점이 있다. thread explosion, deadlock, 가독성 등 개발자들은 조금 더 쉽고 안전하게 비동기프로그래밍을 하길 원한다. 그래서 채택하게 된 것이 async/await 이다. 우선 wwdc 영상에 나온 예시 코드를 먼저 살펴보자. 우선 위에 코드는 기존 completion handler 를 사용한 방법이다. wwdc21 Meet async/await in Swift 영상에서 나온 코드인데, 설명 중에 guard let ~ else { return } ..