분류 전체보기(26)
-
4주차 iOS - 2021.09.12 ~ 2021.09.18
ADD) RealmService 추가 RealmService를 만들었다. 기존처럼 Reactor에서 직접 Realm 객체를 생성하여 사용하는 건 비효율적이라고 판단했고, RealmService를 만들어서 Realm을 사용하는 reactor에 이 service를 의존성 주입하여서 read, write, update, delete를 조금 더 효율적으로 사용할 수 있도록 만들었다. UPDATE) UserService추가 및 Floating Panel View 사용성 개선 floating view에 관한 global state를 UserService를 통하여 처리했다. 개념 자체는 어렵지 않았지만 구현 방식에 대해서는 아직 공부할 점이 많이 남았다. ReactorKit이 상당이 잘 만들어져 있는 라이브러리임을 ..
2022.04.26 -
3주차 iOS - 2021.09.05 ~ 2021.09.11
UPDATE) Realm DB 추가, Main 화면에 Floating Panel 추가 아직 Reactor에 익숙지 않은 듯하다. 이건 조금 더 써보면서 적응을 해야 할 것 같다. Realm DB를 처음으로 추가해봤다. 근본적으로 DB를 다루는거라 쿼리문에만 익숙해진다면 어렵지 않은 것 같았다. 이걸 어떻게 암호화하고 서버에 값을 보내야 할지 구조를 정해야 하는데 잘 생각나지 않는다. 테이블도 금방 만들었고 검색도 어렵지 않아 보이니 다음 주에 큰 비중을 두지는 않을 것 같다. MainView에 Floating Panel을 추가하였다. FIX) Floating Panel layout Floating Panel을 추가하니 layout이 내가 예상한것과는 달랐다. Floating Panel을 추가하는 방법이 ..
2022.04.26 -
2주차 iOS - 2021.08.29 ~ 2021.09.04
ADD) Side Menu 추가 디자인을 따라 메인에 있는 앱 드로어를 Side Menu 라이브러리를 통해 구현하고, 추가하였다. 리스트에 있는 버튼들은 재사용이 가능하도록 만들었고, 테마에 따라 컬러가 같이 바뀌도록 구현하였다. 로그아웃 버튼을 만들고 기능을 추가하였다. ❗️도달한 문제 MVVM-C 구조를 쓰면서 Side Menu를 어떻게 추가해야 할지 한참 고민했었다. 또한 SideMenu용 DelegateProxy를 제작하려고 했으나, 기존 NaviagtionDelegate와 충돌이 일어나서 사용하지 못했다. 이건 다른 방법을 찾아야겠다. RxSwift가 Logout을 할 때 생기는 에러를 Dismiss를 한번 해주고 logout을 해줌으로써 해결하였다. REFACTOR) RxAnimated를 통한..
2022.04.26 -
1주차 iOS - 2021.08.19 ~ 2021.08.28
INIT) iOS 앱의 아키텍처 그렇기에 소프트웨어 아키텍처를 많이 생각해보았고 Clean Swift(VIP)나 VIPER, RIBs를 사용하기에는 화면 구성이 그렇게 많지 않아 오버헤드가 아닌가 싶어서 가볍게 구성하기 위해 MVVM-C 구조를 채택하기로 하였다. ViewModel은 개발자마다 구현하는 방법이 다르기에 큰 틀을 잡아주고 User의 Action에 따른 State가 변경되어 업데이트 시점을 정확히 할 수 있다는 장점이 있는 라이브러리인 ReactorKit을 채택하였다. 또한 Coordinator Pattern을 조금 더 쉽게 사용하기 위해 RxFlow를 사용하기로 결정하였고, 앱에 바로 적용시켰다. ADD) 캘린더 추가 iOS앱의 가장 유명한 캘린더 라이브러리인 FSCalendar를 사용하기..
2022.04.26 -
Xcode Archive 멈춤현상 해결
최근 Xcode를 사용하며 아카이빙이 멈추는 현상이 생겼습니다 ㅠㅠ 아카이빙이 멈추는 이유라도 알려줬으면 시간을 덜 낭비 했었을텐데... 한시가 급한 배포 상황이었기에 너무 많은 당황을 했었지만 시간에 맞춰 배포가 되어야하니 정신을 부여잡고서 구글링을 했었습니다. 이를 해결하기 위해 여러 방면으로 리서치를 해보았고, 많은 시간을 허비한 후 스택오버플로우에서 답을 찾을 수 있었습니다 😭 https://stackoverflow.com/questions/57881459/building-archiving-for-release-hangs-indefinitely-in-xcode-11 Building/archiving for release hangs indefinitely in Xcode 11 I'm trying t..
2022.04.19 -
lazy var 정리
이번에 미세먼지 앱을 만들어 보면서 lazy란 개념을 공부했습니다. 기존에 lazy라는 게 있다고 들어는 봤지만, 어떻게 쓰는지도 몰랐고 왜 쓰는지도 몰랐어요. 하지만 이번 기회에 왜 쓰는지 정리해보고 싶어서 공부를 시작해보았습니다. lazy는 초기 init시에 초기화되는 것이 아니라 호출될 때 생성이 되면서 메모리에 올라가며 이후 같은 변수를 사용 시 다시 초기화가 진행되지 않고 이전에 생성된 변수를 그대로 사용하더라고요. 또한 클래스나 구조체 내에서만 사용이 가능하다는 특징이 있었습니다. 아래는 예시 코드입니다 class Person { var name: String var age: Int // 초반 init때 생성되지 않음 lazy var info: String = { return "이름 : \(s..
2021.04.13