본문 바로가기

전체 글

(193)
[iOS] NSCache https://developer.apple.com/documentation/foundation/nscache Apple Developer Documentation developer.apple.com NSCache A mutable collection you user to temporarily store transient key-value pairs that are subject to eviction when resources are low. 리소스가 부족할 때 제거될 수 있는 임시 key-value 쌍을 저장하는 데 사용하는 변경 가능한 컬렉션입니다. = 임시 캐시 공간..! class NSCache : NSObject where KeyType : AnyObject, ObjectType : AnyObje..
[burstcamp] 유저정보를 효율적으로 관리하는 방법 (with. 파이어베이스, KeyChain) 생각을 정리한 글입니다. 팩트가 아닐 수도 있습니다. 유저 정보는 모든 화면에서 쓰이고, 자주 업데이트가 되는 모델입니다. 이 유저 정보를 어떻게 모든 화면에서 접근하고 효율적으로 저장할지 생각의 과정을 적어보겠습니다. 첫번째 만약에 유저 정보가 필요한 곳에서 필요할 때마다 DB에서 유저정보를 호출을 하게된다면? 저희는 Firestore에 유저 정보를 저장하고 업데이트를 하고있습니다. 필요한 곳마다 유저 정보를 호출하면 같은 유저 정보를 받는데 비용이 큰 네트워크 요청이 정말 많아질 것입니다. 같은 유저 정보를 저장한다는 의미에 초점을 두면 한번만 불러와서 여러 화면에서 유저정보를 사용하면 될 것이라는 생각이 들었습니다. 두번째 싱글톤에 유저 정보를 저장하고 앱 시작할 때 Firestore에서 유저 정보..
[burstcamp] 다크모드 Switch 버튼 제공 (+iOS 15 대응) 이전에 다크모드를 구현했을 때는 시스템 설정을 따라가도록 만들었기 때문에 Color Asset만 Darkmode 설정을 해주면 따로 코드 작업을 하지 않아도 다크모드를 구현할 수 있었습니다. 이번에는 Switch 버튼으로 다크모드를 직접 앱에서 설정할 수 있도록 구현해야하기 때문에 코드작업이 필요했습니다. (더불어,, 네비게이션바와 탭바도,,) 앱의 다크모드 설정 Flow는 다운로드시 Light, 후에는 사용자 설정으로 따라갔기 때문에 UserDefaults에 정보를 저장하기로 했습니다. UserDefaults에서 정보를 꺼내와서는 Appearance 라는 객체를 만들어 사용하였습니다. (light, dark) 다크모드 window 설정 스위치가 On/Off 될 때마다 window의 overrideUse..
[burstcamp] XCTemplate 팀에서 코드 템플릿을 만들어 사용하자는 의견이 있어서 Notion에 템플릿을 적어두고 구현할 때마다 복사해서 사용하기로 했었습니다. 템플릿에는 ViewController에서 구현해야하는 required init, loadView, viewDidLoad, configureUI, bind, MARK 주석 등을 적어두었습니다. 그러던 도중 XCTemplate 라는 것을 처음 딜라이트룸의 벨로그 글을 보고 알게되었습니다. https://medium.com/delightroom/xcode-xctemplate-filetemplate-을-통해-팀-생산성을-높여보자-ff2d20f5eaa0 [Xcode] XCTemplate(FileTemplate)을 통해 팀 생산성을 높여보자 딜라이트룸 iOS 그룹의 생산성 높이기 me..
[Swift] Codewars: Persistent Bugger https://www.codewars.com/kata/55bf01e5a717a0d57e0000ec Codewars - Achieve mastery through coding practice and developer mentorship A coding practice website for all programming levels – Join a community of over 3 million developers and improve your coding skills in over 55 programming languages! www.codewars.com Codewars 사이트에서 처음 푼 문제 무슨 기준으로 추천해주는지 모르겠는데 나갔다가 다시 들어가니까 추천 문제가 바뀌어 있는..?! 과거 코드는 따..
[iOS] Generic 오류 (URLSession과 Decode를 곁들인) URLSession의 요청이 많아지다보니 공통화를 하고싶어서 Generic에 손을 댔는데 생각지도 못한 오류 때문에 시간을 많이 잡아 먹었다. 해결책도 사실 근본적인 해결책이라고 볼 순 없지만.. 적어놓고 나중에 완전히 이해되면 다시 볼 생각으로 글을 적어보려고한다. 오류상황 현재 NetworkManager에 모든 URLSession 작업과 Encode, Decode 함수를 넣어놨는데 Decode 함수를 제네릭으로 만들고 request 함수에서 호출하려고 보니 오류가 발생했다. 처음으로 발생한 오류 : 일반 매개변수 T를 유추할 수 없습니다. Generic parameter 'T' could not be inferred private func decode(data: Data?) -> T? { let de..
[iOS] UITabBarController, UITabBar UITabBarController A container view controller that manages a multiselection interface, where the selection determines which child view controller to display. 다중 선택 인터페이스를 관리하는 container view controller로, 선택에 따라서 보여질 child view controller가 결정됩니다. Declaration @MainActor class UITabBarController : UIViewController 이 클래스는 일반적으로 그대로 사용되지만 서브 클래스로 사용될 수도 있습니다. Tab bar 인터페이스는 화면 아래 쪽에 탭으로 보여집니다. 사용자가 ..
부스트캠프 웹모바일 7기 합격후기 (챌린지, iOS) 4월에 퇴사를 하고 올해 목표중 하나였던 부스트캠프를 합격해서 후기를 끄적여보려고 합니다.. 부스트캠프 지원한 이유 iOS 과정의 부트캠프는 많지 않고 (있어도 유료가 많은편) 부캠의 커리큘럼을 보고 실력을 향상하는데 많은 도움이 될 것 같아서 작년부터 너무너무 하고싶었습니다 ㅎ.ㅎ 작년에는 코테 준비도 뭐고 아무것도 안하고 봤더니 코테 1차 탈락.. 올해에는 알고리즘 문제를 꾸준히는 아니지만 손에 놓지는 않고 계속 푼 결과 합격..! 갬동 ㅠ_ㅠ 자기소개서 최대한 iOS 개발이 너무 하고 싶은 것처럼 보이게, 그리고 부스트캠프가 왜 하고싶은지 생각하면서 적었습니다. 적은 내용은 개인플젝 + 팀플젝 했을 때 경험으로 [iOS 개발에 관심많아요!!!] 라고 적었지만 굳이 관련 경험으로 적지 않아도 무관한 ..