목록Swift (214)
HIT해

프로젝트 기획이번 겨울에도 어김없이 눈이 내렸다. 달라진 점이 있다면 어릴적엔 눈사람을 만들고 녹지 않길 바라며 냉동고에 보관했던 것이었다. 그래서 이틀동안 간단하게 만들어보았다. 눈사람 어플리케이션~~ 그날의 걸음 수에 따라 눈사람 크기가 결정되고 냉동고에 눈사람을 저장할 수 있는 어플리케이션이다. WeatherKit로 날씨를 불러오고 HealthKit로 걸음수를 불러오고 CoreLocation으로 현재위치를 불러왔다. 그리고 CloudKit에 그날그날 걸음수를 기록해 냉장고에 저장된 눈사람 정보를 불러오는 식으로 만들어보았다. 처음 기획의도는 포켓몬GO 처럼 걸을때마다 걸음수를 기록해서 눈사람 몸통이 굴러가는 모션을 주려고 했으나 너무 빠른 주기로 걸음수를 확인하다보니 CPU 사용량이 너무 커졌고..

개발 배경 및 문제 상황SwiftUI와 SceneKit을 사용하여 3D 오브젝트(돌)의 애니메이션을 구현했습니다. 기존에는 사용자가 화면에서 돌을 직접 터치했을 때만 애니메이션이 동작했지만, 돌 프로필 조회와 애니메이션 액션이 겹치는 문제가 발생했습니다. 이로 인해 외부 UI 버튼으로도 동일한 애니메이션을 제어할 필요성이 생겼습니다. 문제는 기존 코드에서 3D 오브젝트 애니메이션이 UIKit의 터치 이벤트에만 연결되어 있어 SwiftUI의 버튼 등 다른 UI 요소에서 같은 애니메이션을 트리거하기 어려웠다는 점입니다. 이를 해결하기위해 Delegate 패턴을 활용했습니다. Delegate 패턴이란?Delegate 패턴은 객체 간의 통신을 위한 디자인 패턴으로, 한 객체가 특정 작업을 다른 객체에게 위임하는..

https://school.programmers.co.kr/learn/courses/30/lessons/176963 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 첫 풀이photo에 담긴 배열 수만큼 result 에 합산한 값을 담아주었다. 이떄 photo에 있는 이름을 name 배열에서 firstIndex(of: 검색할값)으로 인덱스를 찾고 그리움 점수 배열에 해당 인덱스를 넣어 점수를 합산했다. func solution(_ name:[String], _ yearning:[Int], _ photo:[[String]]) -> [Int] { var result : [Int] = [] ..
취업준비와 팀프로젝트를 겸행하다보니 프로젝트가 지체되어 아쉬움이 남았다. 서버를 올리기전까지 백엔드 팀원이 로컬 서버를 열어야 api 동작 테스트를 할 수 있었고 새로운 기술인 TCA를 독학해서 상태관리를 하다보니 이게 맞는 방법일까 스스로에게 의구심이 들기도했다. 그래서 2월안에 개인프로젝트를 완성시키고자 마음 먹었다. RxSwift를 사용하고 팀프로젝트에서 완성시킨 3D 툴을 사용하고 SwiftData와 CloudKit를 활용해서 백엔드를 대체해보고자 한다. Todomate 처럼 일정을 손쉽게 관리하되 그날 그날 달성한 일정들을 3D 메달 표시해주어 사용자에게 특별한 추억을 선사하는 그런 어플을 만들어보자.

https://school.programmers.co.kr/learn/courses/30/lessons/159994 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr goal 배열을 두번 순회하면서 일치하는지 확인하고 최초 접근 인덱스 위치를 변경해 알아보려했다. 코드import Foundationfunc solution(_ cards1:[String], _ cards2:[String], _ goal:[String]) -> String { // goal을 두번 순회하면서 인덱스위치를 저장하고 그 후에 다음 요소가 존재하고 안하고를 판별해보자. var index = 0 var coun..

https://school.programmers.co.kr/learn/courses/30/lessons/120809?language=swift 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr import Foundationfunc solution(_ numbers:[Int]) -> [Int] { var answers : [Int] = [] answers = numbers.map{ $0 * 2 } return answers}
1. 기본 수학 연산산술 연산// 기본 연산자let sum = 5 + 3 // 8let difference = 10 - 4 // 6let product = 6 * 7 // 42let quotient = 20 / 4 // 5let remainder = 22 % 5 // 2// 복합 할당 연산자var number = 5number += 3 // number = 8number *= 2 // number = 16고급 수학 함수import Foundation// 거듭제곱과 제곱근let power = pow(2.0, 3.0) // 8.0 (2의 3승)let squareRoot = sqrt(16.0) // 4.0let cubeRoot = cbrt(27.0) // 3.0 (세제곱근)// 절..
1. 기본 변환Character 배열 ↔ String// Character 배열을 String으로 변환var charArray: [Character] = ["H", "e", "l", "l", "o"]let string = String(charArray) // "Hello"// String을 Character 배열로 변환let str = "Hello"let charArray2 = Array(str) // ["H", "e", "l", "l", "o"] String 배열 조작// String 배열을 하나의 문자열로 결합var strArray: [String] = ["Hello", "World"]let joined = strArray.joined() // "HelloWorld"let joinedWithSp..