전체 글

· TIL
🩵 오늘 한 일 ✔️ 시뮬레이터 버전을 변경하다 https://yy-dev.tistory.com/132 [Xcode] iOS 시뮬레이터 버전 변경/추가 개발을 하다보면 os 버전을 낮춰서 하게 될 때가 많죠 이럴 때 시뮬레이터에서 제대로 확인해보려면 해당 버전의 시뮬레이터로 돌려야 합니다 시뮬레이터의 os 버전 변경/추가하는 방법 알아볼 yy-dev.tistory.com https://yy-dev.tistory.com/133 [Xcode] Unable to boot the Simulator 에러 해결 이전 게시글에서 iOS 시뮬레이터 버전을 변경하고 빌드하는 과정 중, Unable to boot the Simulator 에러가 발생했어요 더보기 ~ 이전글 발췌~ Unable to boot the Simu..
· iOS/Xcode
이전 게시글에서 iOS 시뮬레이터 버전을 변경하고 빌드하는 과정 중, Unable to boot the Simulator 에러가 발생했어요 더보기 ~ 이전글 발췌~ Unable to boot the Simulator xcode 녀석이 우리가 추가해준 시뮬레이터로는 부팅을 못 해주겠다네요 시뮬레이터 상태 손상 시뮬레이터의 상태가 손상되었거나, 시뮬레이터 자체가 비정상적으로 종료된 경우 호환성 문제 사용 중인 macOS나 Xcode 버전이 시뮬레이터와 호환되지 않는 경우 프로세스 충돌 다른 프로세스나 시스템 리소스와 충돌한 경우 이런 경우 발생하는 에러라고 하는데 대충 찾아보니 xcode 캐시를 싹 지우거나 컴퓨터 재부팅을 하면 해결된다고 합니다 저는 캐시 지우기로 빠르게 해결했어요! https://yy-d..
· iOS/Xcode
개발을 하다보면 os 버전을 낮춰서 하게 될 때가 많죠 이럴 때 시뮬레이터에서 제대로 확인해보려면 해당 버전의 시뮬레이터로 돌려야 합니다 시뮬레이터의 os 버전 변경/추가하는 방법 알아볼게요 (Xcode Version 15.0.1 기준) ✔️ 진행 과정 우선 Xcode -> Settings 로 진입해서 설정창을 열어주세요 그런 다음 Platforms로 이동해줍니다 Platforms에는 기본 상태(최신 버전)로 1개씩 설치되어 있어요 Platforms 창 좌측 하단에 + 버튼을 누르면 어떤 기종의 os를 설치할 지 선택할 수 있어요 저는 iOS 개발을 하고 있으니 iOS를 선택합니다 이런 식으로 설치할 수 있는 os 버전이 쭉 뜨는데, 지금 제 xcode상에서는 15.0이 최저 버전이네요 이걸 깔아줄게요!..
· TIL
🩵 오늘 한 일 ✔️ 디자인 제작 + 디자인 시스템? 디자인 시스템이라는 것에 알고 계신가요? 대충 서비스에 적용될 디자인적인 규칙 혹은 가이드라인이라고 보시면 쉽습니다. 보통은 공통으로 사용될 것을 지정해둡니다. 예를 들면 색상, 텍스트와 관련된 스타일 / 재사용이 잦을 것으로 예상되는 버튼과 같은 UI 컴포넌트등이 포함됩니다. 이번 팀 과제의 주제는 날씨 앱으로 정했어요. 테마는 "간단하게 확인하고 원하는 정보를 커스텀 가능한" 날씨 앱 입니다. 보편적으로 메인 화면에 한 번에 정보를 확인할 수 있도록 하단에 쭈루룩 정보가 떠 있는데, 이걸 최대한 단순화 시키고 스크롤 x 단일 페이지로 작업해봤어요 이렇게 디자인을 하고 나면 (혹은 하기 전에) 개발자는 디자인을 확인하며 어떤 부분이 재사용될지 생각해..
· TIL
🩵 오늘 한 일 ✔️ 난데없이 우수 TIL 되다 안녕하세요 슬랙 알람 보자마자 회의하다말고 소리를 질러버린 사람입니다 갑자기 우수 TIL로 제 글이 선정되었다네요... ⬇️ 우수 TIL 보러가기 ⬇️ https://nbcamp.spartacodingclub.kr/blog/%EB%82%B4%EC%9D%BC%EB%B0%B0%EC%9B%80%EC%BA%A0%ED%94%84-%EC%9A%B0%EC%88%98-til-%EC%95%B1-%EA%B3%BC%EC%A0%95-2%EA%B8%B0-11%EC%A3%BC%EC%B0%A8-15698 내일배움캠프 우수 TIL | 앱 과정 2기 11주차 - 내일배움캠프 블로그 TIL 작성 방법이 궁금한가요? 내일배움캠프 수강생들의 우수 TIL을 참고해 보세요. | 📕수강생 학습일지..
· TIL
🩵 오늘 한 일 ✔️ 코어데이터 관계.. 코어데이터 Entity 2개의 Relationship을 연결해서 할 일-카테고리를 연동시켰다 코어데이터의 관계는 상하위 수직관계고 1:1부터 1:다 로 구현할 수 있는데 이 관계의 상하위를 어떻게 할 지 고민을 좀 했다. 처음에는 할일 하위로 카테고리가 들어가야 하나 싶었는데 하다보니.. 카테고리의 하위로 할 일 배열이 들어갔다.(To Many) 이 부분은 코어데이터 관련 포스팅하며 차근히 정리해보려고 한다! 🔻 일단 첫 발을 뗀 설정 관련 포스팅ㅎㅎ 진짜.. 내부저장소는 너무너무 헷갈려서 어쭙잖게 블로그 보면 안되겠는데? 라는 생각이 들어.. 공식문서만 보고 있는데 생각보다 자세하게 설명하고 있어서 읽기 편하다 👍 https://yy-dev.tistory.com..
· iOS/Swift
🩵 Core Data란? Core Data는 앱의 데이터를 관리하는 똑똑한 비서같은 존재입니다! 앱에서 사용하는 모든 정보, 즉 사진, 메모, 설정 등을 안전하게 보관하고 필요할 때 꺼내 주는 역할을 하지요. 마치 우리 뇌의 기억 장치와 같은 존재라고 생각하면 쉽습니다. 1. 사용하기 쉽다 복잡한 데이터베이스 관리를 숨겨서 간단한 코드로 데이터를 저장하고 관리할 수 있도록 도움 마치 레고 블록처럼 다양한 데이터를 쉽게 조립하고 분해할 수 있음 2. 안전하고 신뢰할 수 있다 데이터 손실을 막기 위해 백업 기능을 제공하고, 여러 기기에서 동일한 데이터를 사용할 수 있도록 도움 앱이 갑자기 꺼지더라도 저장된 데이터는 안전하게 보호 3. 다양한 기능을 제공한다 오프라인에서도 데이터를 사용할 수 있음 인터넷 연결..
· TIL
🩵 오늘 한 일 ✔️ 벌써 1월 말일이라니... 그렇습니다. 오늘은 1월 31일... 벌써~ 1월이 끝났습니다.. 생각보다 꾸준히, 열심히 하고 있어서 스스로가 대단하네요. 와중에 2달밖에 안남아서 두렵기도... 두달, 석달 뒤의 저는 무엇을 하고 있을까요? 여전히 컴퓨터 앞에 열두시간 앉아서 포폴을 만들고 있을까요? 사실 이번 팀에서.. 포폴로 쓸 만한 프로젝트를 할 수 있을 것 같아서 기대중입니다 ㅎㅎ ✔️ 이미지 로더 이슈, 테이블뷰 셀 재사용 https://yy-dev.tistory.com/126 [트러블슈팅] 앱개발심화(개인) - 이미지 로딩 및 재사용 문제 해결 🩵 이미지 로딩 및 재사용 문제 해결 ✔️ 문제 파악 - UITableViewCell 재사용 시 이미지뷰 초기화가 정상적으로 이루어지..
🩵 이미지 로딩 및 재사용 문제 해결 ✔️ 문제 파악 - UITableViewCell 재사용 시 이미지뷰 초기화가 정상적으로 이루어지지 않아 이미지가 덮어씌워지는 문제. - Main Thread에서 UI 업데이트에 대한 이슈. ✔️ 원인 분석 - 비동기 이미지 로딩을 하고 있는데, 이미지 로딩이 완료되기 전(imageView에 이미지 데이터가 설정되기 전)에 셀이 재사용되는 상황 (수정전)ImageLoader.swift final class ImageLoader { static func loadImage(from url: String, into imageView: UIImageView, completion: (() -> Void)? = nil) { if let imageURL = URL(string: u..
· TIL
🩵 오늘 한 일 ✔️ AVPlayerViewControleller Memory Leak AVPlayerViewController를 통해 받아온 영상 관련 데이터를 사용해서 화면에 보여주는 과제를 진행하고 있었다 1개의 에러..만 빼고 대충 완료된 것 같아서 Instruments를 돌려보았는데 이게 웬걸.. AVPlayerViewController.player.play() 했을 때 leak이 나는 것이다 시스템 라이브러리 leak이라서 그냥 냅둬야 하나.. 싶었는데 일단 튜터님께 여쭤보았음! Reference Count에 의한 메모리 관리에서 leak이라는 것은 결국 강한 참조로 잡혀있기 때문에 계속 메모리에 남아있는 상황이 발생하는 것인데 비디오나 오디오와 같은 미디어 리소스는 백그라운드에 계속 살아 있..
· iOS/Swift
🩵 CoreData의 삭제를 구현하던 중... 기존에는 단순하게 생각해서 filter라는 고차함수를 사용해서 해당하는 요소를 필터링해주었습니다. let filteredData = todos.filter { String(describing: $0.id) == id }[0] context.delete(filteredData) 기본적인 구현을 다 끝내고 코드를 정리하던 중, 한 가지 의문이 들었습니다. filter()는 검색된 값을 배열에 담아 반환해줍니다. 그런데 어차피 상세페이지에서만 삭제가 가능한데, 해당하는 요소는 1개인데도 배열로 반환시킬 필요가 있나? 🩵 filter()와 first()의 차이점 filter() 메서드는 주어진 조건을 만족하는 요소만을 새로운 배열로 반환합니다. 반면, first()..
· iOS/Xcode
안녕하세요 yen입니다. 최근들어 스토리보드 대신 코드로 UI를 구현하는 연습을 하고 있는데요, 처음에는 세팅법을 몰라서 스토리보드를 그냥 냅두고 열심히 코드만 쳤던 기억이 나네요. 다들 저같은 일은 겪지 마시라고.. 적어둡니다. 🩵 코드베이스 프로젝트 설정 방법 우선은 프로젝트를 생성해줍니다. iOS 개발을 하고 있으니 App으로 생성하구요 초기 프로젝트 파일에서 확장자가 storyboard인 것은 다 지워버립시다!! Main.storyboard 파일은 iOS 애플리케이션의 메인 인터페이스를 정의하는 데 사용되는 스토리보드 파일입니다. LaunchScreen.storyboard 파일은 앱이 시작될 때 보이는 초기 화면을 정의하는 데 사용됩니다. 하지만 저희는 SceneDelegate에서 window에 ..
YEN_
YEN's CodeWeave