본문 바로가기

IOS18

[iOS] MVC 삽질기, 클린아키텍처와 MVVM 들어가며 (공부하게 된 동기) 학교에서 전공 수업을 들었을 때, 학교 밖에서 프로젝트에 참여했을 때, 혼자서 개발 공부를 할 때 어디서든 늘 듣고 강조 받았던 것은 객체 지향적인 설계와 안정적인 프로젝트, 이를 도와주는(튼튼하게 만들어주는) 아키텍쳐였다. iOS 개발 공부를 시작하고 3개월이 지난 후 아키텍처에 대한 흥미와 배움에 대한 욕구가 생겼는데, 우선 가장 기본이라고 하는 MVC 구조를 제대로 공부해보고 직접 구현해보고 싶다는 마음이 들었다. 지금까지 내가 짜왔던 코드가 바로 MVC 구조인 것이라는 말을 듣기는 했지만 우선 그런 생각을 해본 적이 없었고(그냥 무지성으로 돌아가게만 짰다 😅) 제대로 그 구조를 지켜서 만들어보고 싶었기 때문이다. 의식적으로 MVC 구조를 지키며 코드를 작성하는 것은 .. 2022. 9. 3.
[iOS/Swift] 초기화와 상속 Swift에서의 초기화 종류: designed init, convenience init (지정 초기화, 편의 초기화) 단계 모든 member 초기화 → 상속 받은 member 커스텀 지정 초기자 init(parameters) { statements } 클래스 내의 모든 프로퍼티를 초기화한다. 클래스마다 필수적으로 하나씩 가진다. 편의 초기자 convenience init(parameters) { self.init() // ✅ statements } Optional 이다. 내부에 반드시 지정 초기자를 호출해야 한다. (위 코드의 self.init() 부분을 말한다.) 초기화 규칙 1. 모든 멤버의 초기화를 보장하자 ! 지정 초기자 ⇒ 반드시 super class의 지정 초기자를 호출해야 한다. (= del.. 2022. 5. 2.
[iOS] TabBarItem으로 들어간 이미지가 제대로 표시되지 않을 때 발생한 문제 TabBarItem으로 넣었던 에셋들 중 프로필 이미지가 정상적으로 표시되지 않았다. 추가했던 Asset 집합으로 가서 Render As를 Always Template Mode로 걸어주어도 마찬가지였다. 원인 (약간의 의역이 있습니다) 기본적으로, tabBarItems는 사용자가 넣은 이미지를 그대로 표시하지 않는다. 대신에, alpha 값과 tints를 더한 새로운 이미지를 생성한다. 원본 그대로 표시하고 싶다면, 랜더링 모드의 UIIage.RenderingMode.alwaysOriginal을 사용하라. 해결 두 가지 방법이 있다. 코드로 잡아주기 Asset 자체에서 설정해주기 코드로 잡아주려면 UIImage를 생성할 때 아래처럼 해주면 되고 let profileIcon = UIImage(.. 2022. 4. 24.