일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ios
- 3b52.1
- launch screen
- 구조적 정체성
- panorama view
- data driven construct
- 라이브러리 없이
- requirenativecomponent
- 뷰 생명주기
- 리액트
- 명시적 정체성
- 360도 이미지
- SwiftUI
- React Native
- react
- ssot
- 네이티브
- launchscreen
- 뷰 정체성
- React-Native
- 360도 이미지 뷰어
- 앱 성능 개선
- 리액트 네이티브
- Android
- 360도 뷰어
- 스켈레톤 통합
- react-native-fast-image
- 파노라마 뷰
- privacyinfo.plist
- native
- Today
- Total
목록개발지식 정리/Swift (31)
Neoself의 기술 블로그
1. 동시성동시성 프로그래밍은 엄밀히 따지면, 동시성과 병렬성을 모두 포함하는 개념이라고 볼 수 있습니다. 즉, 여러 작업을 동시에 처리하는 프로그래밍 방식입니다. 여기서 동시성 프로그래밍(Concurrent Programming)과 병렬성 프로그래밍(Parrallel Programming)의 가장 큰 차이는 무엇일까요? 둘다 여러 작업을 동시에 처리한다는 방향을 공유하고 있지만, 동시성이 한번에 하나의 작업을 번갈아가며 처리를 하는 방식이라면, 병렬성은 멀티코어 환경을 바탕으로 여러작업을 실제로 동시에 처리하는 방식을 일컫습니다.즉 동시성 프로그래밍은 소프트웨어적 쓰레드에서 동시에 일을 하는 개념이기 때문에, 보다 개발자 개입이 중요한 처리방식입니다. 아래 다이어그램을 보면 동시성과 병렬성의 동작방식..
iOS와 WatchOS는 Widget Extension과 달리 완전 독립적인 OS로서 취급되기 때문에, Data Store를 공유하고 있지 않습니다. 때문에, 애플에서는 두 OS의 Data Store들 사이에서의 데이터 동기화 및 통신을 위해 WatchConnectivity 프레임워크를 제공하고 있습니다. 1. Data Store여기서 Data Store란 무엇일까요??Data Store는 앱에서 데이터를 저장하고 관리하는 방식을 의미합니다. iOS와 WatchOS에서 사용하는 Data Store 옵션들은 다음과 같습니다.UserDefaults: 간단한 키-값 쌍의 데이터를 저장합니다.Core Data: 복잡한 데이터 모델을 관리하는 데에 사용됩니다.File System: 파일 형태로 데이터를 저장합니다..
이 글은 Apple Developer 유튜브 채널에 있는 "SwiftUI에서 고급 애니메이션 사용하기" 영상의 내용을 정리한 게시글입니다.https://www.youtube.com/watch?v=NFmQjc7ia4YApple의 SwiftUI에서는 고급 애니메이션을 위해 Animation Phases와 Keyframes 기능을 제공하고 있습니다. 각 기능들을 예시와 함께 설명드리겠습니다. Animation Phases위 기능은 연속된 애니메이션에 적합한 기능으로, phaseAnimator 뷰 수정자를 사용해 구현할 수 있습니다. 해당 뷰 수정자를 통해 각 단계를 정의하는 일련의 상태를 제공하면, SwiftUI는 자동으로 각 상태 사이를 애니메이팅하게 됩니다. 예시.phaseAnimator([false, t..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/nJwh2/btsJ6dOqPu1/7wm2IjsRmkkGkxieJaNrsk/img.png)
이글은 Apple Developer 유튜브 채널의 "SwiftUI 애니메이션 알아보기" 영상의 내용을 정리한 내용을 담고 있습니다. https://www.youtube.com/watch?v=IuSuHJs5-KE&list=LL&index=12 가장 먼저 Animation의 근간이 되는 뷰 업데이트에 대해 톺아보겠습니다. SwiftUI View는 뷰의 종속항목을 상시 추적합니다. 여기서 종속항목은 @State, @ObservedObject, @Published 등의 프로퍼티 래퍼가 될 수 있는데요.종속항목이 변경되면서 뷰의 상태가 변경되면, 아래의 절차가 연차적으로 수행됩니다. 1. 다운스트림 속성값이 만료되며 기존 View 무효화2. Transaction 생성3. 업스트림 종속성이 변경되며 프레임워크가 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bmAF6t/btsJ0QEOzdH/4vrFSOe0uyhxj8d0Du0LlK/img.png)
0. 프로젝트에 WatchOS 타겟 추가우선 심박수를 측정하는 애플워치에서 동작할 WatchOS 앱과 심박수 데이터를 전달받고 처리하는 iOS 앱이 있어야 합니다.만일 iOS 앱만 생성되어있다면, 같은 프로젝트에서 WatchOS에 대한 새 타겟을 추가해줘야 합니다. 1. Xcode 상단 메뉴 File > New > Target을 클릭2. WatchOS 탭에 있는 App 선택3. Product Name을 설정 & "Watch App for Existing iOS App"을 선택 후 기존 iOS Target 선택WatchOS Target이 동일 프로젝트 내부에 생성되었다면, 생성된 WatchOS 타겟에 대해 Bundle Identifier를 확인합니다.watchOS 타겟 생성 시, 사진처럼 {iOS의 번들..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bT7jaU/btsJYFkGbSg/MMh4A2zKgB5wpxXpeldbXk/img.png)
이 게시글은 프론트엔드로 Swift, SwiftUI, 백엔드로 Node.js & Mongoose(MongoDB)를 사용해 소셜로그인을 구현하는 방법을 작성한 글입니다. 소셜로그인을 구현하고자 하는 풀스택 개발자에게 도움이 되었으면 합니다! 0. 사전설정구글 소셜로그인을 위해 GoogleSignIn 프레임워크를 PodFile에 명시한 후 'pod install'을 실행해 워크스페이스에 추가해줍니다.이때, 애플 로그인에 필요한 AuthenticationServices 프레임워크는 외부 라이브러리가 아니기 때문에 따로 추가하지 않으셔도 됩니다.target 'exampleApp' do # Comment the next line if you don't want to use dynamic frameworks ..
저처럼 React Native 개발을 해오다가, Swift와 SwiftUI 앱개발 하고자 기술스택을 변경한 사람들의 시간을 절약시키고자, 제가 여태껏 Swift로 모바일 앱을 제작하면서 느꼈던 React Native와의 유사점과 차이점들을 중점으로 설명을 드리고자 합니다. 1. 상태관리우선 Swift로 넘어오면서, 가장 적응하기 어려웠던 것은 상태관리 방식이였습니다.import React, { useState } from 'react';function HomeScreen() { const [selectedTags, setSelectedTags] = useState([]); const [sortOption, setSortOption] = useState('default'); const [..
iOS 앱개발에서 사용자의 정보를 안전하게 관리하기 위해 Apple이 제공하는 매커니즘은 2가지가 있습니다.바로 UserDefaults와 Keychain입니다. 먼저 이 두 매커니즘의 차이를 비교해보도록 하겠습니다.UserDefaultsKeychain키-값 쌍으로 데이터 저장데이터베이스가 암호화됨앱이 삭제되면 데이터도 삭제됨앱이 삭제되어도 데이터 유지보안수준 상대적으로 약함보안수준 높음간단한 사용자 설정 및 비민감 정보 저장에 적합비밀번호, 인증토큰 저장에 적합사용용도: 언어, 최근 검색어, 앱 실행 횟수 ...사용용도: 인증 토큰, 암호화 키 ... 제가 제작한 앱인 TyTE에서는 아래와 같이 KeychainManager 클래스를 따로 만들어 Keychain 관련 작업을 정리 및 추상화하였습니다.먼..
기존에 출시한 TyTE 어플리케이션의 성능 최적화를 위해 인스턴스의 생성 및 해제 시점을 파악하고자 각 ViewModel 및 서비스 레이어에 print문을 배치시키고 홈화면에 진입한 결과, 아래 로그 내용을 볼 수 있었습니다.MainTabView initializedTodoService initializedSharedTodoViewModel initializedTodoService initializedHomeViewModel initializedTodoService initializedHomeView initialized... 로그인 및 회원가입을 완료하게 될 경우, 가장 먼저 진입하는 뷰인 MainTabView, 하위 뷰들에게 주입하고자 MainTabView에서 초기화를 거친 SharedTodoVie..
ARC(Automatic Reference Counting)은 Swift에서 메모리 관리를 자동화하는 시스템입니다. 이름에서 짐작할 수 있듯, ARC는 각 객체가 참조되는 횟수를 추적함으로써, 객체가 필요하지 않을때 자동으로 메모리에서 객체를 해제하는 시스템인데, 이때 참조 횟수의 기준은 강한 참조를 의미합니다. 아래 코드에서는 몇번의 강한 참조가 발생하고 있을까요?? class HomeViewModel: ObservableObject { private let todoService: TodoService init( todoService: TodoService = TodoService() ) { self.todoService = todoService } ..