일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- launchscreen
- 360도 이미지 뷰어
- 리엑트 네이티브
- 파노라마 뷰
- ios
- react-native-fast-image
- 스켈레톤 통합
- Skeleton UI
- 스켈레톤 UI
- Native Module
- Privacy manifest
- native
- privacyinfo.plist
- 360도 이미지
- panorama view
- Android
- 리액트
- 360도 뷰어
- React Native
- requirenativecomponent
- 3b52.1
- React-Native
- 앱 성능 개선
- 라이브러리 없이
- 스플래시스크린
- 리액트 네이티브
- react
- boilerplate 제거
- 네이티브
- launch screen
- Today
- Total
목록전체 글 (43)
Neoself의 기술 블로그
이상한 문자 만들기func solution(_ s:String) -> String { var ans:String = "" var id = 0 for ch in s { if ch == " " { ans.append(ch) id = 0 } else { if id%2==0 { ans.append(ch.uppercased()) } else { ans.append(ch.lowercased()) } id+=1 } } return ans}단어마다 짝수 및 홀수 번째인지를 구분하..
이글은 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. 업스트림 종속성이 변경되며 프레임워크가 ..
직사각형 별찍기func myPrint (_ a:Int,_ b:Int) { for i in 0..Array(repeating:String,count:Int)로 String 타입의 배열 생성 후, joined()로 단일 String로 변경 최대공약수와 최소공배수func _solution(_ n:Int, _ m:Int) -> [Int] { var myMax = min(n,m) while true { if max(m,n)%myMax==0 && min(m,n)%myMax==0 { break } else { myMax-=1 } } var myMin = 1 while true { if ((myMa..
약수의 개수와 덧셈func addMinus(_ left:Int, _ right:Int) -> Int { var ans = 0 for i in left...right { var cnt=1 // 원래 수 if i != 1 { for a in 1...i/2 { if i%a==0 {cnt+=1} } } ans += cnt%2==0 ? i : -i } return ans}... 연산자를 활용하여 순회할 범위를 지정한 다음, 매 순회마다 %연산자로 약수인지 여부를 파악하였다. 이때 시간복잡도를 줄이고자 순회하는 범위를 i가 아닌 i/2로 축소하였는데, 이의 경우 i가 1일 경우는..
제일 작은 수 제거하기func removeLeast(_ arr:[Int]) -> [Int] { var arrMin = arr.min() return arr.count == 1 ? [-1] : arr.filter{$0 != arrMin}}filter함수로 매 요소마다 arr.min()함수를 호출하면 1번 케이스에서 시간초과를 겪는데, arr.min() 함수는 그 자체로 모든 요소를 1회 순회하며 O(n) 시간 복잡도를 갖기 때문이다. 따라서 arrMin 변수 선언 시에만 해당 함수를 실행하고, 이후 filter로 arr 순회할때 해당 변수를 재사용 할 경우 시간초과 문제를 해결할 수 있다. 핸드폰 번호 가리기func phoneNum(_ phone_number:String) -> String..
평균 구하기func getMean(_ arr: [Int]) -> Double { return Double(arr.reduce(0,+))/Double(arr.count)}reduce 고차함수를 사용해 총합을 구한후, 인자 배열 내부 요소 개수를 나누어 평균값을 구하였습니다. 이때 반환 타입 Double임을 유의하여 타입을 수동 지정해주었습니다. x만큼 간격이 있는 n개의 숫자시간복잡도: O(n) = map 고차함수로 모든 요소 순회하기 때문func x_n_other(_ x:Int, _ n:Int) -> [Int64] { return Array(1...n).map { Int64($0 * x) }} 1...n로 1~n까지의 범위를 생성한 후, Array 함수에 삽입하여, 1부터 n까지 순차적으로 요..
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의 번들..
이 게시글은 프론트엔드로 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 [..
최댓값과 최솟값func solution(_ s: String) -> String { let myArr = s.components(separatedBy: " ").compactMap{ Int($0) } return "\(myArr.min() ?? 0) \(myArr.max() ?? 0)"}.components(separatedBy: " ")Swift의 String 클래스에서 제공하는 메서드입니다.함수를 통해 "1 2 3 4"와 같이 공백과 함께 주어진 String값들을 데이터 접근이 용이한 [String] 타입의 배열로 반환합니다. .compactMap {}Swift의 고차 함수 중 하나로, map과 filter 기능을 결합한 것과 유사하다고 생각하면 된다.이때, 변환한 결과가 nil이면 자동으..