본문 바로가기

전체 글138

Swift) Dynamic Type, Accessibility Inspector Dynamic Type 동적 타입? 스크롤뷰처럼 동적으로 뭐.. 크기 늘어나고 그런건가 싶었는데, 아니더라 텍스트의 크기를 flexible하게 조정하는 것이다. 모든 사용자의 시력 등의 조건은 다르다. 이 때문에 애플은 사용자에게 폰트사이즈를 사용자에게 맞게끔 변경할 수 있게 만들어주었다. 하지만 사용자가 폰트사이즈를 변경한다고 어플리케이션의 폰트 사이즈가 변경되진 않는다. 이때 텍스트를 다이나믹 타입으로 만들어주면, 사용자가 설정한 폰트 사이즈에 맞게끔 변경할 수 있다. 위는 애플에서 정의한 다이나믹 타입의 목표이다. 변경은 어떻게 하죠 설정 > 손쉬운 사용 > 디스플레이&텍스트 크기 Dynamic Type 지원 개발자는 모든 사용자를 고려하고, 지원해야하기에 Dynamic Type을 지원하는 어플리케.. 2022. 2. 13.
Swift) 문자열의 특정 범위의 속성을 변경해보자 NSMutableAttributedString NSMutableAttributedString 하나의 레이블에서 특정 부분만 폰트나 사이즈를 변경해주고싶었는데.. 범위를 지정해서 특정 범위에 있는 문자열을 빼오고 원래의 문자열의 특정범위를 빈값으로 변경해버린 뒤 빼온 문자열의 폰트를 변경해 주고.. 다시 원래의 문자열에 더해준다.. 너무 복잡하다. 그러다 이런걸 발견했다. NSMutableAttributedString은 문자열의 속성을 변경할 수 있는 문자열의 타입이다. let attributedString = NSAttributedString(string: cell.customLabel.text ?? "") 해당 타입의 이니셜라이저를 사용하여 String타입의 문자열을 NSMutableAttributedString 타입의 문자열로 반환(변경)한다. .. 2022. 2. 13.
Swift) Codable, Decode, Encode Codable 아 Hashable도 공부해보고싶은데 담에 해봐야지 Codable에 대해 알아보자 정의는 좀 의역을 섞어보면 자신을 변환하거나 외부 표현을 변환할 수 있는 타입이란다. 아 아직 의역안했는데 저서 외부표현이란 JSON 같은 것들이라고 생각하면 된다. 아 그래도 의역안한거네 왜 JSON 같은 것들이라 했느냐 하면 요기를 보면 이래서 했다 다시 본론으로 가보면.. Codable은 Decodable & Encodable 을 묶어서 표현한 것이다. Encode 먼저 Encodable에 대해 알아보자 Encodable을 채택한 타입은 자신(타입)이 JSON으로 파싱될 수 있음을 표현한다. 예제를 보자 struct Cafe: Codable { var kind: String var menu: String.. 2022. 2. 13.
Swift) TableView TableView TableView.. 직접 해보니 재밌다. 좀 이상해 보이는 것도 막 고치고 싶어서 삽질도 좀 해보고 테이블 뷰는 여러 아이템을 List형태로 보여주기 위한 뷰이다. 데이터는 테이블 내부의 셀을 위치시켜 표현할 수 있다. 테이블 내부의 셀의 갯수가 많아지면 자동으로 스크롤 기능이 생겨서 뭐지 했는데 테이블 뷰는 스크롤뷰를 상속받고 있는 것을 확인 할 수 있었다. 난 스토리보드를 사용하여 생성해줬다. 이런식으로 뷰에 테이블 뷰 넣어주고, 테이블 뷰에 셀 넣어주고 해당 셀에 레이블 하나 넣어줬다. 셀은 커스텀셀을 만들어 스토리보드의 셀에 연결해주었다. 그리고 해당 셀을 사용하기위해선 identifer가 필요하다. 어떤 셀을 사용할건지 인식자의 역할을 한다. 화면을 전환할 때 쓰는 ident.. 2022. 2. 13.
Swift) Delegate Delegate? 진짜 Delegate 이거.. 너무 복잡하게 생각했던건가 생각도 드는데.. 이해가 조금 되서 쓰는 것도 있지만, 이해하고 정리하려 포스팅하는 것도 없지 않아 있다. 그냥 우선 쉽게 접근하기 위해 Delegate 뜻이 뭔지부터 알아보자 뭐 더 많은 뜻이 있겠지만, 우리가 알아야하는 Delegate의 뜻은 "위임하다" 이다. (영국식으로 ㅋㅋ) 우리는 위임을 알아야한다. 위임은 내가 할 일은 다른 사람에게 넘기는 것, 대신 시키는 것 이라는 의미를 가진다. 위임하면 사장-직원 같은 수직적인 관계가 생각나는데, 위임은 그저 내가 할 일을 누군가에게 시키는 것이기 때문에 수평적인 관계에서도 가능하다. 들어가기 전 먼저 알아야 할 핵심은 수직/수평적 관계를 따지는 것이 아닌 내가 할 일을 을 다.. 2022. 2. 13.
SOLID SOLID 솔옴 옷 예쁘지 ㅋㅋ 역사? 의의? SOLID 원칙의 의의,, 생겨난 이유가 무엇일까? 재사용성 고려, 재사용성을 높임으로써 높은 확장성을 가지게 된다. 재사용성을 높이기 위해 하나의 클래스는 하나의 책임을 가지게 한다. 낮은 결합도 (높은 응집력)를 가져 작은 변화가 큰 Side Effect를 가져오지 않게한다. 유지보수가 쉬워진다. 써놓고 보니 뭔가 위의 목록은 이유를 말하는 것 같진 않다. 좀 풀어서 써보면.. 재사용성을 높인다 재사용성을 높이기위해 불필요하게 묶여있는 실들을 제거 -> 의존성 분리 의존성을 분리하기 위핸 하나의 클래스는 하나의 책임만을 가짐 하나의 클래스가 하나의 책임을 가짐으로써 Testable Code와 동시에 높은 확장성, 유지보수성을 가지게 되는 긍정적인 효과를 .. 2022. 2. 13.