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

  • 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" }, ..