타입간의 의사소통 방법 중 Coupling을 낮출 수 있는 방법은 무엇이 있을까??
Storyboard에서는 간편하게 Editor-Embed in-Navigation Controller로 추가하였는데평소에 코드를 통한 개발에도 관심이 많아서 코드로 Navigation Controller을 추가해보려고 합니다. 해당 글은 학습을 기록하기 위한 글입니다참
리뷰어 붱이와 함께한 SOLID! SOLID는 "클린 소프트웨어", "클린 코드", "클린 아키텍처"라는 책의 저자인 로버트.C마틴이 객체 설계를 할 때 중요하게 생각하는 것으로 제시한 원칙 다섯 가지이다!! 그럼 그 다섯 가지의 원칙이 무엇인지 확인해보자!!!
Swift는 함수가 일급시민으로서 상수나 변수에 참조를 할당할 수 있다Swift의 함수, 클로저에 대해 공부해 본 사람이라면 누구나 이 문장을 본 적이 있을 겁니다!그리고 이 예제를 보면서 공부하셨겠죠??ㅎ며칠 전에 프로젝트를 진행하면서, "그럼 프로퍼티의 위치만 참조
iOS 환경은 개인마다 다른 시력, 색맹, 기기 고장 등의 상황에도 iOS를 이용자가 제대로 사용할 수 있게 Accessibility (접근성, 손쉬운 사용) 이라는 것을 만들어 놨다!!개인적으로 터치 버튼이 iPhone 8에서 사용하던 중 고장이 나서 Assistiv
저번 시간에 Accessibility Labels에 대해서 알아보았는데, 그럼 이제 어떻게 Label을 작성하는지에 대해 궁금해졌지 않은가??그래서!!WWDC2019 에서 발표된 내용을 바탕으로 Accessibility Inspector을 이용한 Accessibilit
야곰의 오토레이아웃 정복하기 강의를 듣고 느낀 점들을 정리하는 시간을 가져보자!!!참고 : 오토레이아웃 가이드오토레이아웃은 크기와 위치를 Constraint를 기반으로 동적으로 계산하는 개념이다이러한 Constraint는 뷰의 내부적 변경과 외부적 변경에 대응하기 위한
StoryBoard Interface Builder StoryBoard에서 AutoLayout-Constraint 설정을 한 눈에 보고 설정하는 방법에 대해서 알아보자!!! 해당 Interface Builder들은 Pin 메뉴 해당 (View의 위치와 크기) +
AutoLayout을 설정하다 보면 알 수 없는 에러를 마주칠 때가 많은데, 그런 에러를 잡는 방법에는 어떤 것들이 있는지 한 번 알아보자!!!AutoLayout 에러에는 크게 세 가지 종류가 있다Unsatisfiable LayoutsAmbiguous LayoutsLo
코드로 Constraints 짜보기!!코드로 Constraints를 짜는 방법에는 크게 세 가지 방법이 있다고 한다.But,Visual Format Language 로 Constraints를 짜는 것은 어렵고 효율적이지 않다고 하니오늘은 NSLayoutConstrain
오늘은 AutoLayout의 개념 중 SizeClass에 대해서 해보려고 한다iOS Device 들은 기기 종류, 회전 등등의 상황에 따라 가로 세로 길이가 바뀐다. AutoLayout에서는 이러한 길이를 하나의 클래스로 정의 놓았는데, 오늘 그 Class에 대해서 알
말 그대로 앱의 생명 주기이다. App이 foreground 혹은 background에 있을 때, 기타 중요한 이벤트, 혹은 정의 이벤트를 처리한다.앱의 상태에 따라 할 수 있는 작업과 할 수 없는 작업으로 나뉜다.iOS 13 이상scene-based로 하는 App에서
Operation, GCD에 대한 간단한 학습알쓸신잡(전수열님)GCD(DispatchQueue) / OperationQueue직접적으로 쓰레드를 관리하지 않고, 큐(Queue)라는 개념을 이용해 작업을 분산 처리쓰레드의 갯수를 시스템에서 알아서 관리함쉽게 다른 쓰레드에
iOS13버전 이후, AppDelegate의 역할은 SceneDelegate로 몇 가지 이전되면서, AppDelegate에 Session LifeCycle에 대한 역할이 추가되었다Scene Session이 생성되거나 삭제될 때 AppDelegate에 알리는 두 메소드가
URLSession dataTask(with:) 과정을 네트워크에 의존하지 않고 테스트 하는 방법에 대해서 고민하고 작성하는 포스팅입니다
UIImageView에 UIImage를 채우고 해당 이미지가 어떤 비율로 들어갈지를 정할때 우리는 ContentMode를 사용한다기본적으로는 top, bottom, left, right 등이 존재하며, scaleToFill, scaleAspectFit, scaleAsp
프로젝트 요구사항 중 작성일자를 사용자의 지역 포멧에 맞게 표현해야 되서 찾아보는 Date Formatter참고 자료: Developer Documenthttps://developer.apple.com/documentation/foundation/datefor
이전에 학습할 때 순환참조에 의한 메모리 누수, 그리고 그것을 해결하기 위한 약한참조에 대해 알아보았다. 오늘은 살짝 다른 주제에 대해서 정리하려고 한다 클로저의 강한참조 순환 강한 참조 순환 문제는 두 인스턴스끼리의 참조일 때만 발생하는 것 외에도 클로저가 인스
해당 내용은 WWDC 2020 Modern cell Configuration을 정리하는 것UICollection View는 2020 WWDC에서 데이터를 채우는 방법, 레이아웃을 정의하는 방법, cell을 표시하는 방법에 있어서 새로운 기능을 도입하였다.이번 Moder
Swift에서 가장 많이 사용하는 Server Side Frameworks이다. Perfect, Vapor, Kitura 가 있는데, Vapor가 가장 github star 개수가 많은 만큼 대중적이다.Vapor Toolbox의 경우는 Homebrew를 통해 설치할 수
1편에 이어서 Vapor를 통해서 서버에 저장할 데이터들을 정의하고 마이그레이션, 데이터 검증, 오류 처리까지하는 과정에 대해서 알아보자!!모델은 데이터베이스에서 테이블 또는 컬렉션에 저장되는 데이터 구조를 나타냅니다. 모든 모델에는 유일한 식별자가 하나씩 있으며, 이
Responder, Responder Chain이해하기 야곰 캠프 활동학습 중 나온 주제이다. 개발자 문서에서 빈번하게 등장하는 Responder Chain 개념에 대해서 알아보자! Responder and UIResponder Responder는 이벤트를 핸들링
Apple Developers Document-File System Basics File System iOS 파일 시스템은 SandBox 구조를 띄고 있다 > SandBox 아이들에게 놀이터 모래사장 안에서만 놀 수 있도록 하고, 나올때는 흙을 털고 나오게 하는 것
사용자의 media library에서 사진 촬영, 동영상 녹화 및 사진 선택을 위한 시스템 인터페이스를 관리하는 ViewController이다신기하게도 NavigationController를 상속받고 있다UIImagePickerController는 사용자 상호 작용을
사실 UICollectionView에 대해서 공부를 하면서, List형태로 cell들의 Layout을 변경하면 TableView를 만들면 될 것 같다는 생각이 들었다. TableView와 CollectionView의 차이점에 대해서 생각해보고 어떨 경우에 두 개체를 어
Test!! Test!!TDD 진짜 너무너무너무너무 어렵다...(다음 프로젝트 기회에ㅎㅎ)Unit Test 하는 것도 어렵다.............어려운게 아니라 익숙하지 않은 것이라고 생각하자!iOS Unit Testing and UI Testing Tutoriali
Unit Testing and Test Doubles in SwiftUnit Test를 작성하는 동안 production에 사용될 객체와 동일하게 동작하지만 단순화된 버전이 필요한 경우가 있다. 우리는 이런 종류의 객체들을 Test Double 이라고 한다. 외부 의존
이번 시간에는 Safe Area와 Layout Margin에 대해서 알아보고, 연장선으로 Scroll View 까지 정리해보자! Safe Area iOS에서는 Navigation Bar, Tool Bar 혹은 기기의 노치 부분에 있어서 가려지지 가능성이 없는 Vie
참고자료) https://www.vadimbulavin.com/xcode-build-system/ https://yagom.net/courses/start-lldb/https://ko.wikipedia.org/wiki/LLVM/LLDB란 Xc
이전에 학습했던 GCD / Operation의 심화 버전이다! https://bit.ly/2SxzHqk 여러 가지 Task들이 있는데, 비슷한 Task끼리 그룹을 만들고, 해당 그룹이 언제 끝나는지 알고 싶어서!!! 그룹이라는 것을 만든다이렇게 특정 그룹의 모
해당 글은 앨런의 특강을 듣고 작성한 글입니다모든 이미지는 앨런의 강의에서 참고하였으며, 자세한 강의 내용은 앨런 유튜브 혹은 인프런 강의를 통해..
Notion TIL을 velog로 옮기면서 복습 후 내용 추가 작업!Yagom Camp 동기화 메모장을 위한 SplitViewController 학습파파고의 도움을 받은 개발자 문서 해석새로운 개념에 대한 Apple 개발자 문서 읽기는 항상 어렵다...Container
Xcode 내에서 자주 볼 수 있는 단어들에 대해서 정확히 알아보고 어떤 목적으로 분리되고 사용되고 있는지 알아보자
Key-Chain키체인은 사용자의 Mac, 앱, 서버 및 웹 사이트 계정과 암호 및 신용 카드 번호 또는 은행계좌 PIN 번호와 같은 중요 정보를 암호화하여 안전하게 저장한다Passwords, Cryptographic keys, Certs & identities, No
@IBDesignable와 @IBInspectable을 적용하여, Storyboard 개발에 편의를 제공해봅시다!
View의 LifeCycle-ViewDidLoad, ViewWillAppear 등등 ViewLifeCycle과 관련된 메소드들을 소개합니다.
AppDelegate, SceneDelegate에서 마주치는 window 프로퍼티는 왜 거기에 있는 것일까?? 알아보자! 그리고 무슨 역할일까?
SceneDelegate, AppDelegate에서 볼 수 있었던 UIWindowScene 객체는 어떤 것일까? Window, Screen, Scene 등은 무슨 차이가 있을까?iOS Developer Document - UIWindowSceneiOS Developer
이제껏 textField 혹은 textView를 통해서 text를 입력받을 때, keyboard frame에 UI 요소가 가려지지 않도록 NotificationCenter 를 통해서 Observing 하고, 그에 반응해서 frame에 반응했는데 다른 방법이 있다고 해서
포트폴리오나 과제전형에서 DispatchQueue를 사용하게 되면 항상 "왜 항상 main thread에서 UI 업데이트를 하는지 설명해보세요" 라는 질문을 받는다. 알고있지만, 항상 입에서 안떨어진다... 왜 백그라운드 스레드에서 UI를 업데이트하면 안되는지 알아가
면접 질문에서, layoutIfNeeded와 setNeedsLayout의 차이가 정확히 무엇인지, 1/60 프레임을 기다리지 않고 실행된다는 것이 정확히 어떤 것인지에 대한 대답을 제대로 하지 못했다... View가 메모리에 적재되고 난 이후에 화면에 표시되기까지를 정
들어가며 암호화폐 관련 앱을 제작하면서, 주식 앱이나 암호화폐 거래소에서 쉽게 접할 수 있는 CandleStick Chart를 직접 구현해야 하는 일이 생겨 도전하게 되었습니다.. 처음으로 해보는 작업인지라 쉽지 않았네요 Charts iOS 에서 차트를 그릴 수
지난 시간에는 BarChartView를 그려봤어요. 그리는 원리는 완전히 똑같지만 프로젝트에 구현했던 CandleStickChartView를 기록해보려고 해요.앞 순서에서 알아봤던 BarLineChartViewBase 를 CandleStickChartView 또한 상속
지난 1달 반 정도 프로젝트를 진행하면서, 처음으로 SnapKit 을 사용하게 되었다. 사용하면서도 "이게 줄어들면 얼마나 줄어든다고... 왜 쓰지?" 라는 생각을 했었는데, 우연히 옛날 레포를 살펴보다가, NSLayoutConstraint 를 통해서 AutoLayou
ARC에 대한 정리를 하다가 WWDC 2021 에 ARC 관련 Session 을 찾게 되어서 정리하게 되었습니다.기존에 알고 있던 것들에서 어떤 것들을 새롭게 알게 되었는지 정리하겠습니다.객체의 생명주기는 위와 같이 ARC와 연관되어서 정해집니다.객체의 이니셜라이져를
면접 중 받았던 질문 중 COW(Copy-On-Write) 에 대해서 질문을 받았었다. 물론 개념도 알고 왜 사용되는지 알지만, 바로 대답을 못했어서 아쉬웠다. 오늘 기록해보고 커스텀 타입에서 COW를 구현하는 방법에 대해서 알아보자.Copy On Write는 Swif