new

  • UserDefaults 값 하나로 앱 진입시 1회만 검사하는 로직 관리하기

    UserDefaults 값 하나로 앱 진입시 1회만 검사하는 로직 관리하기

    앱을 서비스하다보면 버그개선 또는 업데이트 안내 등의 이유로 단 1회만 동작하는 코드가 필요할 때가 있습니다. 예를 들어, TiTi에서는 비어있는 기록 객체인 Daily가 사라지지 않아서 Log화면에 기록이 있는 것 처럼 보이는 버그가 있었는데요,보다시피 기록이 비어 있는데도 날짜 아래에 점이 찍혀 있습니다 (기록이 있는 경우에만 점이 찍혀 있어야함)  이를 해결하기 위해서는 두 가지 동작이 필요 했습니다.  1. 사용자가 기록을 편집해서 그 날의 기록을 모두 지우는 경우 Daily객체를 삭제한다.2. 버그 개선 전에 존재했던 비어있는 Daily객체를 모두 삭제한다. 여기서 2번은 사용자가 앱을 진입할 때 1회만 작업하면 되는 내용입니다.여러번 동작해도 문제는 없겠지만, 비어 있는 Daily객체를 찾기 ..

  • modalPresentationStyle 설정 시점(feat.ViewLifeCycle)

    modalPresentationStyle 설정 시점(feat.ViewLifeCycle)

    사이드 프로젝트에서 투명한 ViewController를 띄울 일이 생겼는데, `modalPresentationStyle = .overFullScreen` 을 viewDidLoad() 시점에 작성했더니 다음과 같은 문제가 있었다.    viewDidLoad()는 present() 이후에 호출되어 View를 메모리에 로드하는데,아마 present()하는 당시에 새로운VC가 가진 modalStyle을 적용하는 듯 하다.present 에니메이션 적용하려면 그래야 할 것 같다..  그래서 present하기 전에 modalStyle을 변경해주어야 하는데, 보통은 present하는 VC에서 설정해주지만,외부에서 해당 ViewController를 컨트롤하지 않도록 하기 위해 init()시점에 modalStyle을 적용..

  • 네이버 부스트 캠프 8기 챌린지 (feat. 중도하차)

    네이버 부스트 캠프 8기 챌린지 (feat. 중도하차)

    네이버 부스트 캠프 챌린지 과정은 짧은 시간동안 CS+관련직무에 대한 언어 지식을 빠르게 키울 수 있는 과정입니다 더불어 개발할 때 꼭 필요한 도구나 지식에 대해서도 학습할 수 있습니다! 과정 과정은 일주일 단위로 진행된다. 매 주 팀원이 새롭게 구성되는데, 같은 포지션(iOS) 4~5명과 함께 한 주 동안 팀이 되어 활동한다 활동 내용은 매일 바뀌는 미션을 해결하고, 다음날 오전에 팀원들과 리뷰+회고를 하는 방식 이 시간을 의미있게 쓰고 싶어서 팀원들에게 코드리뷰를 코멘트로 달아주자고 했었다! 덕분에 코드리뷰하는 방법과 다른사람의 코드를 분석하는데 도움이 많이 되었던것 같다 👍 네부캠에는 직무에 능숙한 사람보다 해당 직무를 처음 접하는 사람이 꽤 많았다 그래서 Swift언어를 처음 사용해보는 팀원들도 ..

  • 네이버 부스트 캠프 8기 합격후기

    네이버 부스트 캠프 8기 합격후기

    네이버부스트캠프(네부캠)은 네이버 커넥트 재단에서 주관하는 프로그램이에요! 대외활동 중에서는 퀄리티가 꽤 높다고 생각해 취준하면서 도전해보았습니다 과정은 서류합격 이후에 두 번의 코테가 있습니다 서류 주변에 지난 네부캠에 합격했던 사람들이 많아서 도움을 많이 받았어요! 네이버가 자소서를 굉장히 중요하게 생각하는것 같습니다 공개채용 때도 그렇고 자기자신에 대해 고민해볼 수 있는 질문이 많았어요 ❓ 왜 개발자가 되고 싶나요? 소프트웨어 개발을 더 잘하고 싶어서 시도했던 경험 “해야 하는데”에서 끝나지 않고 실천했거나, ~ 자기주도적으로 사고하고 행동한 경험 열린 사고로 동료와 협력한 경험 개인적으로 이런 질문을 좋아하는데, 개발자로서 나를 다시 돌아보고 고민해볼 수 있어서 좋은것 같습니다! 네부캠은 협업&몰..

  • [UIKit] TableView Multiple Cell, multi type json data parsing

    [UIKit] TableView Multiple Cell, multi type json data parsing

    TableView는 하나의 Cell이 아닌 다양한 Cell을 가질 수 있습니다.종종 앱을 보다보면 tableview 중간중간 광고가 나온다거나, 나를 위한 추천을 한다거나 ...대부분의 앱 서비스가 tableview를 사용하고, multiple cell을 사용합니다.그래서 저도 multiple cell을 사용하여 다음과 같은 앱을 만들어 볼것입니다! 데이터 가져오기먼저 멀티타입 데이터를 어떻게 가져올 것인지에 대해 고민해야합니다.(JSON에 대한 내용은 접은글에 있습니다)더보기let JSONData ="""{ "data" : [ { "type" : "TITLE_ONLY", "title" : "Struct vs Class" }, ..

hot

  • 네이버 부스트 캠프 8기 합격후기

    네이버 부스트 캠프 8기 합격후기

    네이버부스트캠프(네부캠)은 네이버 커넥트 재단에서 주관하는 프로그램이에요! 대외활동 중에서는 퀄리티가 꽤 높다고 생각해 취준하면서 도전해보았습니다 과정은 서류합격 이후에 두 번의 코테가 있습니다 서류 주변에 지난 네부캠에 합격했던 사람들이 많아서 도움을 많이 받았어요! 네이버가 자소서를 굉장히 중요하게 생각하는것 같습니다 공개채용 때도 그렇고 자기자신에 대해 고민해볼 수 있는 질문이 많았어요 ❓ 왜 개발자가 되고 싶나요? 소프트웨어 개발을 더 잘하고 싶어서 시도했던 경험 “해야 하는데”에서 끝나지 않고 실천했거나, ~ 자기주도적으로 사고하고 행동한 경험 열린 사고로 동료와 협력한 경험 개인적으로 이런 질문을 좋아하는데, 개발자로서 나를 다시 돌아보고 고민해볼 수 있어서 좋은것 같습니다! 네부캠은 협업&몰..

  • sw마에스트로 13기 활동후기 (멘토링, 팀프로젝트)

    sw마에스트로 13기 활동후기 (멘토링, 팀프로젝트)

    https://990427.tistory.com/84 sw마에스트로 13기 합격후기 (자소서,코테,면접) 합격후 한참 바쁠때 쓰는 합격후기&회고 사실 큰 기대 없이 시작했다. 작년에 굉장히 열심히 준비했음에도 불합의 아픔을 겪었기 때문에,, ㅎㅎ 올해는 고민하다가 나답지 않게 하루전에 자소서 990427.tistory.com 회고와 회상에 가까울 13기 활동후기 글을 써보려고 한다. 요약 소마를 했던 2022년을 한단어로 요약하자면 ✨완벽✨ 이다 소마에서 했던 공부들과 만났던 사람들 모두 너무 감사했던 완벽한 1년이였다..! 누가 나한테 다시 돌아가도 소마 하겠냐고 물어본다면 0.1초의 망설임도 없이 YES다. 예비과정 소마 사무국에서 대부분의 활동 과정들을 노션에 정리해주셨다 예비과정은 아무것도 모르는..

  • [UIKit] CustomDatePicker 만들기 (1/3)

    [UIKit] CustomDatePicker 만들기 (1/3)

    UIKit 공부겸 프로젝트를 진행하는 도중에 DatePicker를 커스텀해야 하는 상황과 마주했다. 📌 구현내용 일단 기본 제공되는 DatePicker를 사용할 수는 없었다 그래서 UIButton의 inputView에 pickerView를 넣어서 만들것이다 일반적으로 TextField의 inputView에 pickerView를 사용하던데 나는 TextField가 필요없어서 대장정을 걸어보기로 했다.. 📌 UI setting 위에 언급했던 CustomDatePicker에서 box 하나씩을 CustomPickerButton이라고 하겠다. // CustomPickerButton.swift public class CustomPickerButton: UIButton { private var uiView = UIV..

  • [SwiftUI] TabView 페이지 이동시 TabBar , NavigationBar Hidden 처리하기

    [SwiftUI] TabView 페이지 이동시 TabBar , NavigationBar Hidden 처리하기

    일주일 삽질하고 작성하는 트러블슈팅 .. 우선 나는 TabView안에 NavigationView를 담아 페이지 이동을 하고 싶었다. FirstView -> SecondView struct ContentView: View { var body: some View { TabView { NavigationView { FirstView() } .tabItem { Text("first") } } } } struct FirstView: View { var body: some View { ZStack{ Color.yellow VStack{ Text("FirstView") NavigationLink { SecondView() } label: { Text("Go SecondView") } } } } } struct Sec..

  • [Stanford iOS] 아키텍처 & MVC

    [Stanford iOS] 아키텍처 & MVC

    [Stanford iOS]는 한글링이 번역한 Stanford iOS를 정리합니다. [무료] Stanford iOS 한글자막 강의 - 인프런 | 강의 한글링의 첫번째 프로젝트 아이오에스는 현재 iTunes에서 공개된 Stanford - Developing iOS 9 Apps with Swift 강의를 번역하였습니다., - 강의 소개 | 인프런... www.inflearn.com 아키텍쳐 MVC 디자인 패턴 iOS 기본 디자인 패턴 📌 Model What 프로그램이 하는일, 즉 모든 계산을 담당한다. UI와는 상관 없는 일을 처리함 📌 View UI == Client와 상호작용을 하는 부분 -> View 혼자 할 수 있는 부분 📌 Controller How Model과 View 연결 (View를 리스닝하고,..