일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- launch screen
- 3b52.1
- 360도 뷰어
- React Native
- privacyinfo.plist
- 스켈레톤 통합
- Android
- Privacy manifest
- native
- 360도 이미지 뷰어
- launchscreen
- requirenativecomponent
- 360도 이미지
- 라이브러리 없이
- 스켈레톤 UI
- 리액트 네이티브
- react
- Skeleton UI
- 파노라마 뷰
- 리엑트 네이티브
- 스플래시스크린
- boilerplate 제거
- 앱 성능 개선
- 리액트
- panorama view
- react-native-fast-image
- React-Native
- Native Module
- 네이티브
- ios
- Today
- Total
목록전체 글 (43)
Neoself의 기술 블로그
요세푸스 문제import Foundationlet input = readLine()!.components(separatedBy:" ")var arr = Array(1...Int(input[0])!)var id = 0var ans:[String] = []while !arr.isEmpty { let targetId = (id+Int(input[1])!-1)%arr.count // K번째 사람 숫자 ans.append(String(arr[targetId])) // 숫자 배열에 더하기 arr.remove(at:targetId) // 해당 숫자 배열에서 제거 id=targetId}print("") 직각삼각형import Foundationwhile true { let arr = read..
최근에 UIKit + MVC 아키텍처 패턴으로 작은 프로젝트를 만들게 되었습니다. 이를 만들어보면서 고민했던 아키텍처 구성 과정을 적어보았습니다.MVC는 뭐죠??MVC 패턴의 사전적 의미를 먼저 보겠습니다.디자인 패턴중 하나로, Model, View, Controller의 약자입니다. 사용자가 Controller를 조작하면, Controller는 Model 레이어를 통해서 데이터를 가져오고, 그 정보를 바탕으로 View를 업데이트하는 과정을 통해 앱이 동작하는 구조라고 이해하면 됩니다. Model: 애플리케이션의 정보, 데이터를 처리하는 레이어데이터베이스 혹은 Core Data 프레임워크를 활용한 데이터 처리 CRUD 메서드와 같이 정보들의 가공을 책임지는 컴포넌트가 이에 해당됩니다.View: 앱 사용자..
오픈소스를 활용하지 않고 iOS 앱 개발 시, 내부에 데이터를 저장하여 활용하는 방법은 크게 2가지가 있습니다.UserDefaultCoreData비밀번호나 사용자 이메일 주소와 같은 단순한 키-값을 저장하는 데에는 이전에 말씀드렸던 UserDefaults나 Keychaion이 더 적합합니다. 하지만, 복잡한 데이터 관계가 필요하거나, 데이터의 변경에 대한 롤백, 즉 변경 추적이 필요한 경우에는 Core Data가 더 적합한 프레임워크가 됩니다.Core Data가 그래서 뭐죠?Core Data는 객체 그래프 관리자로서, iOS 어플리케이션에서 데이터를 구조화하고 유지하기 위한 프레임워크입니다. 여기서 Core Data는 DB 그 자체가 아닌, 객체 그래프, 즉 아래와 같이 객체들 간의 관계를 나타내는 연결..
윤년let num = Int(readLine()!)!print(num%4 == 0 && (num%100 != 0 || num%400 == 0) ? "1" : "0")여기서 != 연산자를 양옆에 공백 없이 사용하면 컴파일 에러 발생한다... 사분면 고르기let a = Int(readLine()!)!let b = Int(readLine()!)!var ans = -1if a 알람시계import Foundationvar arr = readLine()!.components(separatedBy:" ").map{Int($0)!}if 45>arr[1] { arr[0]=(arr[0]+23)%24}arr[1]=(arr[1]+15)%60print("\(arr[0]) \(arr[1])") 소수 찾기import Foun..
위 이미지는 제 현재 프로필 이미지입니다... 잘은 모르겠지만, 일단 롤로치면 아이언 5이지 않을까요? 오늘부터 백준으로 알고리즘 루틴을 아예 바꿔볼 생각입니다. A+Bimport Foundationlet input = readLine()!let arr = input.components(separatedBy:" ")print("\(Int(arr[0])!+Int(arr[1])!)")확실히 프로그래머스에 비해선 많이 불친절한것같습니다. 날것의 맛이 좀 있는 듯하네요...! readLine 함수서부터 시간을 생각보다 많이 쓰게될줄은 몰랐습니다... A-Bimport Foundationlet input = readLine()!let arr = input.components(separatedBy:" ")print..
컴퓨터 시스템의 구성요소CPU컴퓨터의 두뇌 역할을 하는 중앙처리장치로, 실제 연산과 명령어 처리를 담당합니다. 산술논리연산장치(ALU)와 제어장치(CU)로 구성되어 있습니다. RAM주기억장치로, CPU가 직접 접근할 수 있는 고속의 휘발성 메모리입니다. 실행 중인 프로그램과 데이터를 임시로 저장합니다.저장장치HDD나 SSD와 같은 비휘발성 메모리로, 전원이 꺼져도 데이터가 유지됩니다. CPU와 메모리 간의 데이터 교환은 버스 시스템을 통해 이루어집니다. 여기서 버스는 전기적 신호를 전달하는 물리적 와이어들의 집합이라고 이해하면 쉽습니다. 버스는 아래와 같은 유형으로 나뉩니다.데이터 버스: 양방향 통신을 지원하며, CPU 및 다른 장치들 사이의 실제 데이터를 전송합니다.주소 버스(Address Bus): ..
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: 파일 형태로 데이터를 저장합니다..
K번째 수func solution(_ array:[Int], _ commands:[[Int]]) -> [Int] { return commands.map{$0.map{$0-1}}.map{ array[$0[0]...$0[1]].sorted()[$0[2]]}}주어진 commands 배열의 경우 배열용 id에서 1이 더해진 값을 담고 있었기 때문에, map{$0.map{$0-1}} 고차함수를 적용해 2차원 배열 내부 값들을 일괄 변경해주었다.그 이후에 범위 연산자를 통해 array의 일부 영역에 접근, 오름차순 정렬 후 $0[2]번째 값을 접근하였다. 두 개 뽑아서 더하기func solution(_ numbers:[Int]) -> [Int] { var ans:[Int] = [] for i in..
이 글은 Apple Developer 유튜브 채널에 있는 "SwiftUI에서 고급 애니메이션 사용하기" 영상의 내용을 정리한 게시글입니다.https://www.youtube.com/watch?v=NFmQjc7ia4YApple의 SwiftUI에서는 고급 애니메이션을 위해 Animation Phases와 Keyframes 기능을 제공하고 있습니다. 각 기능들을 예시와 함께 설명드리겠습니다. Animation Phases위 기능은 연속된 애니메이션에 적합한 기능으로, phaseAnimator 뷰 수정자를 사용해 구현할 수 있습니다. 해당 뷰 수정자를 통해 각 단계를 정의하는 일련의 상태를 제공하면, SwiftUI는 자동으로 각 상태 사이를 애니메이팅하게 됩니다. 예시.phaseAnimator([false, t..