본문 바로가기

728x90
반응형
SMALL

전체 글

(196)
SwiftUI active, inavtive, background 상태 iOS 앱의 상태를 나타내는 세 가지 상태 활성(active) 상태: 앱이 포그라운드에 있고, 사용자와 상호작용할 수 있는 상태입니다. 사용자가 앱을 사용하고 있을 때 해당 상태가 됩니다. 앱이 활성 상태에서는 사용자 입력을 받고, 화면 갱신 및 작업을 수행할 수 있습니다. -> 앱이 실행되고 화면 표시되고 있는 상태 비활성(inactive) 상태: 앱이 포그라운드에 있지만, 사용자와 상호작용할 수 없는 상태입니다. 예를 들어, 알림이나 다른 시스템 창이 나타나서 앱의 화면이 가려진 경우에 해당합니다. 비활성 상태에서는 일시적으로 앱의 작업이 중단되고, 사용자 입력을 받을 수 없습니다. -> status bar 를 내렸을 때, 홈인디케이터 버튼으로 화면을 축소시켜을 경우 백그라운드(background) ..
업보청산 - 4(혐주의) 엄청나게 힘든 하루였습니다. 800줄이나 되던 코드를 200줄로 줄이는데 성공했습니다. 1. 생각없이 썼던 코드들을 정리하면서 함수를 하나로 묶고 뷰모델로 옮겼습니다. 2. [String]? -> [String?] 을 봐꾸면서 불필요한 if let 으로 nil일 경우를 처리해서 불필요한 분기처리를 없앴습니다. https://github.com/Byeonjinha/LostArkExchange/issues/1 코드가 너무 길고 지저분 합니다. · Issue #1 · Byeonjinha/LostArkExchange 코드가 너무 길고 지저분 합니다. 05.15 변경전 변경후 75f81bc ForEach로 반복된 코드 정리 변경전 변경후 d360d7e [String?] 으로 받으면서 n..
SwiftUI 이미지 캐시처리 SwiftUI 이미지 캐시처리 SwiftUI에서 이미지 캐시 처리는 이미지를 다운로드하고 캐시에 저장하여 빠르게 로드할 수 있도록 하는 기술입니다. 이미지를 캐싱하면 앱이 이미지를 다시 다운로드하지 않고 캐시된 이미지를 사용할 수 있으므로, 불필요한 데이터 사용을 줄이고 로딩 시간을 단축시킬 수 있습니다. SwiftUI에서 이미지 캐시 처리를 구현하는 방법에는 여러 가지가 있습니다. 예를 들어, 1. 이미지 캐시 라이브러리를 사용 2. View Modifier를 이용하여 CacheKey를 지정 3. URLSession에서 URLCache를 사용 이미지 캐시 처리는 앱의 성능을 향상시키는 데 도움이 되는 기술이므로, 적절한 방법으로 구현하는 것이 중요합니다. 적절한 캐싱 전략을 선택하고, 이미지 크기를 최..
업보청산 - 3(혐주의) 강제 언래핑 범벅코드를 방어코드로 만드는 작업을 하려합니다. 죄송합니다. 죄송합니다. 옵셔널로 받아왔던 파라미터를 함수 실행 전에 if let을 사용해서 없애고 Enum으로 아이템의 타입을 만들고 파라미터로 보내서 하나의 함수에서 Switch 문으로 아이템 타입에 맞게 파싱하는 함수가 실행되도록 했습니다. 덕분에 100줄 정도 덜은 것 같습니다. 앞으로 할 일 파싱하는 함수 불필요한 부분 없애기, 함수 공통요소 찾아서 하나로 묶기, nil 병합 연산자 없애기, 변수명 변경하기, 타입이 같은 요소들 묶어서 처리하기 등등 진짜 산더민데... 알고 있는 거 전부 수정 후에는 주변의 유능하신 선생님들께 매맞으면서 피드백 받을 생각하니 벌써부턴 두근거리네요. 아...다시 정리하니 너무 기쁩니다. 저는 긍정적인 사..
DDD동아리 합격 및 WWDC2023 Student challenge 장학생 선발 후기 근래 좋은 소식이 있습니다. :) 면접 때 너무 떨었고 스스로 부족한 점이 많았다고 생각한 것과 달리 동아리 합격 안내를 받았습니다.ㅠㅠㅠ 정말 정말 감사합니다. 열심히 하겠습니다. 개인적으로는 지금까지 모든 팀프로젝트가 너무너무 즐거웠어서 꼭 하고 싶었는데 벌써부터 두근거립니다. 아카데미 이후 첫 팀프로젝트가 될 것 같고, 새로운 사람과 만나는게 어떻게 이렇게나 두근거릴 수 있는지 모르겠습니다. 진짜 진짜 신납니다. 두번째로 2022년에 이어 2023WWDC Student Challenge에도 장학생으로 선발될 수 있었습니다!!! 덕분에 제 애플계정은 1년더 살아남게 되었어요! 아카데미 + 장학생2번으로 무려 3년이나 연장 사용합니다. :) 작년 굳즈는 여자친구와 지금도 친하게 지내고 있는 팀원들에게..
업보 청산 - 2(혐주의) 일단 모델, 뷰모델을 따로 분리 했습니다. Json데이터 파싱만 800줄이라... 그것도 따로 보관해뒀습니다. 죄송합니다. 죄송합니다. Model // // CharacterModel.swift // LostArkExchange // // Created by Byeon jinha on 2023/05/09. // import SwiftUI struct EquipmentViewData { var name: String var image: String var quality: String var basicStat: String var basicText: String var optionStat: String var optionText: String var color: String var qualityColor: ..
업보 청산 - 1(혐주의) 이게 뭔가 싶지만... 예. 제가 싼 코드입니다...(묵직) 1200줄 뚫어버리기... 변명해보면... 사실 OPEN API 를 경험해보고 싶은 욕심으로 헤헿 좀만 싸야지 했는데...하다보니 끝이 안나서...ㅠㅠㅠㅠㅠ 괜찮읍니다. 유지보수를 위한 좋은 코드를 왜 짜야하는지 뼈쩌리게 느꼈읍니다!!!!!!!!! 진짜 진짜... 잘못했읍니다. 잘못했읍니다. 아... 제 코드보고 진짜 감방가야된다고...외치던 친구들이 생각납니다. PTSD.. 갖곰님께서 회개하면 된다고... ChatGPT도 선생니뮤도ㅠㅠㅠㅠㅠㅠ 절레절레...ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 그럼 막막하지만 죄를 달게 받는 마음으로 리펙토링해보겠습니다. import SwiftUI struct CharacterDetailEquipmentsView: View {..
UIKit 화면 전환 방법과 예제 View Controller 의 View 위에 다른 View를 가져와 바꿔치기 예시코드 import UIKit class ViewController: UIViewController { var currentView: UIView? override func viewDidLoad() { super.viewDidLoad() // 첫 번째 View 생성 및 추가 let view1 = UIView(frame: self.view.bounds) view1.backgroundColor = .red self.view.addSubview(view1) self.currentView = view1 // Timer를 사용하여 2초마다 View 변경 Timer.scheduledTimer(withTimeInterval: 2.0, r..

728x90
반응형
LIST