작년에 퇴사한 곳의 모바일 서비스 "위치위치"의 개선점들을 iOS개발 관점에서 생각해보았습니다. 이를 유지보수하고, 회사 직원들과 이를 사용하면서 느낀 불편한 점들을 기준으로 개선점들을 고민해보았습니다. 개발자 관점에서 개선해야 된다 생각한 내용들. 1. 하나의 포스트 기준, 로딩속도가 평균 2~3초정도 걸림. 2. 과도한 모바일 데이터 사용 3. 많은 게시물을 업로드한 사용자 페이지 방문 시 앱 종료 고민한 내용 1. 하나의 포스트 기준, 로딩속도가 평균 2~3초정도 걸림. - 모바일에서 사진, 동영상 촬영 후 서버에 업로드 시 해당 이미지, 동영상의 용량을 줄여 서버에 업로드한다. 예를 들어 3MB의 이미지를 300KB의 크기로 resize하여 업로드를 합니다. ( 이미지 리사이즈 방법 : https..
저번에 주입한 의존성 주입 코드를 테스트해보겠습니다. 1. 서버가 없다 가정하고, 목데이터 책 펙토리 생성 후 책 정보를 가져오기. 2. 테스트 코드 추가, 실행 3. 서버가 생겼다 가정하고, 목데이터로 된 펙토리, 서버에서 가져오는 로직으로 바꾸기. 4. 테스트 코드 실행 의존성 주입을 함으로써 코드 테스트가 간편해진 이유는 "서버에서 책을 가져온다"는 동작을 추상화 했기에!! 의존성 주입의 필요성을 저번 포스트와 함께 작성하다 보니, 이의 필요성을 느끼는 것 같습니다. class MyTest: XCTestCase { let bookMakable = MockBookFactory() let testMockClass = TestMockClass() func testMockData() throws { let..
이번주 포스트의 주제는 NotificationCenter입니다. https://developer.apple.com/documentation/foundation/notificationcenter Apple Developer Documentation developer.apple.com A가 B에게 카톡을 보내면 B의 폰에 알림이 옵니다! A가 B에게 카톡을 "보내면" B의 폰에 "알림"이 옵니다. 어떠한 이벤트에 대해 구독하고, 해당 이벤트가 일어나면 알림을 주는 역할이 NotificationCenter입니다. NotificationCenter는 URLSession, UserDefault와 같이 default를 통해 싱글톤을 사용할 수 있습니다. NotificaiionCenter.default.post(na..