일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- UIListContentConfiguration
- interceptor
- Xcode
- RxSwift
- RequestInterceptor
- RxCocoa
- observable
- alamofire
- defaultContentConfiguration
- distinctUntilChanged
- 컴공선배
- URLSession
- flatmap
- restfulAPI
- UICollectionViewListCell
- 개발블로그
- SWIFT
- observe(on:)
- UIKit
- dispatchqueue
- Moya
- ReactiveX
- 라이징캠프
- IOS
- iOS교육
- ContentMode
- QoS
- Main Thread
- cellForRowAt
- SwiftUI
- Today
- Total
목록전체 (11)
RB의 iOS 개발 이야기

안녕하세요. 오늘은 오랜만에 RxSwift를 다시 공부해볼 겸 곰튀김 님의 강의 영상을 시청하던 중 전혀 모르고 있던 꿀팁을 알게되어 공유드릴 겸 글을 작성하게 되었습니다! 바로 확인해보시죠! 먼저 간단하게 어떻게 메모리 누수를 일으키는지 코드를 살펴 보겠습니다. private func downloadJson(_ url: String) -> Observable { return Observable.create() { f in DispatchQueue.global().async { let url = URL(string: url)! let data = try! Data(contentsOf: url) let json = String(data: data, encoding: .utf8) DispatchQueue.m..

이번 포스트 또한 이전 포스트에서 이어지는 글 입니다! 이전 포스트를 읽고 오시면 이해하시는데 더욱 도움이 될 것 같습니다 ㅎㅎ https://rb-ios.tistory.com/13 Rx가 지원하는 스케줄러(schedulers)의 종류들 이번 포스트는 바로 직전의 포스트의 다음 글로 내용이 이어집니다! 이전 포스트를 확인하고 넘어오시는 것을 추천드립니다 ㅎㅎ https://rb-ios.tistory.com/12 Alamofire RequestInterceptor 사용해보기 로그 rb-ios.tistory.com 직전 포스트에서 Rx의 Scheduler에 대하여 알아봤습니다. 그런데? .observe(on: SerialDispatchQueueScheduler.init(qos: .background)) 일단..

이번 포스트는 바로 직전의 포스트의 다음 글로 내용이 이어집니다! 이전 포스트를 확인하고 넘어오시는 것을 추천드립니다 ㅎㅎ https://rb-ios.tistory.com/12 Alamofire RequestInterceptor 사용해보기 로그인 같은 작업을 수행하게되면 대개 로그인 API에서 accessToken과 refreshToken을 반환하게된다. 이러한 토큰들은 앱 내의 여러 작업을 수행하는 API를 요청할 때에 필요한 값들인데 오늘은 회원탈 rb-ios.tistory.com 읽고 넘어오셨다면? 이어서 작성해보도록 하겠습니다. Alamofire의 RequestInterceptor를 사용해보며 adapt와 retry 메서드에 코드를 작성했었습니다. 아래 코드를 보시면 func retry(_ req..

로그인 같은 작업을 수행하게되면 대개 로그인 API에서 accessToken과 refreshToken을 반환하게된다. 이러한 토큰들은 앱 내의 여러 작업을 수행하는 API를 요청할 때에 필요한 값들인데 오늘은 회원탈퇴를 구현하는 부분에서 구현하는데에 시간이 꽤 많이 소요된 부분을 정리하고자 한다. 회원탈퇴를 요청할 때에 내가 사용중인 API는 요청 바디는 없으며 요청 헤더로 응답받은 accessToken과 고유 key를 넣게된다. 회원탈퇴 API를 요청하는 부분에서 고려해야할 상황이 있는데 로그인 후 앱을 사용하다가 token이 만료되는 상황이 있을 수 있다는 것이다. 대개 흔치 않은 경우지만 개발자는 사용자의 모든 경우의 수를 생각하고 개발해야 하기에 회원탈퇴 시 token이 만료되는 상황을 고려해보았..

저는 현재 SeSAC iOS 앱 개발자 데뷔과정 PLUS를 수강하고 있습니다. Light Service Level Project을 진행하던 중 겪은 Status Code에 따른 네트워크 처리를 공유하기 위해 글을 적어봅니닷 LSLP(Light Service Level Project)의 테스트 서버는 로그인 후 1분 경과 시: AccessToken 만료 5분 경과 시: RefreshToken 만료 자동 로그인에 필요한 AccessToken과 RefreshToken을 테스트 서버는 짧은 시간안에 만료시키고 있습니다. 앱 최초 실행 시 로그인 화면 실행 회원가입 버튼 클릭 후 이메일, 비밀번호, 닉네임 기입 -> 회원가입 성공 -> 로그인 성공 앱 재실행 앱을 삭제하지 않았고 UserDefaults에 Toke..

iTunes Search API를 활용하기 오늘은 애플의 iTunes Search API를 활용하여 기본 앱인 앱스토어의 검색 기능을 구현하던 중 메모리 누수와 앱 정지 이슈를 경험하게 되어 작성하게 되었습니다. 예제는 RxSwift를 기반으로 코드를 작성하였고 RxSwift를 학습하면서 예제를 구현하고있어 문제를 파악하고 해결하는데 시간이 꽤 걸렸던 것 같습니다. 원하는 기능 (실제 앱 스토어 기능 구현) 초기 화면 - 검색결과가 없는 (당연하게도) 상태 단어 검색 중 - 검색 중에도 검색 결과는 나타나지 않음 검색 버튼 클릭 - 검색 창의 단어로 API를 요청하여 검색 결과를 받아 테이블 뷰에 보여짐 취소 버튼 클릭 - 모든 결과와 검색 창의 단어도 사라지며 초기 상태로 돌아옴 검색 단어 수정 - 검..

Observable vs Subject Observable은 이벤트를 방출하는 역할을 담당하고 Observer는 Observable을 구독하며 이벤트를 받아서 처리하는 역할을 담당합니다. 여기서 Observable은 새로운 값을 받을 수 없다. 그렇다면 Observer 역할을 하는 녀석은 누구일까? 글의 제목에서 유추할 수 있듯이 Observer 역할을 하는 친구가 Subject입니다. Subject의 RxSwift 문서를 확인해보면 Observable을 상속받고 있고 ObservavleType을 채택하고 있습니다. 그렇기에 정확히는 'Observer 역할을 하는 친구가 Subject이다.' 라는 말 보다는 'Observable과 Observer의 역할을 모두 가지고 있는 친구가 Subject이다.'가 ..

오늘은 자료구와 알고리즘에서 자주 빈출되는 그래프, 트리, BFS, DFS에 관하여 간단하게 정리해보려고 합니다! 그래프 그래프란? 노드와 간선으로 구성된 자료구조로 이를 통해 연결된 노드간의 관계를 표현할 수 있다. 노드(node)란 정점(vertex)라고도 하며 그래프를 구성하는 기본 원소 (점) 간선(edge)이란 정점간의 관계로 노드를 연결하는 선 인접행렬 노드와 노드가 연결되어 있는지 나타내는 정사각행렬(이차원 배열) 장점: 구현이 쉽고 직관적이다. i와 j 노드의 연결상태를 바로 알 수 있다. 단점: 노드의 개수가 N이라고 하면 이 배열의 크기는 N*N이 된다. 특정 노드에 연결된 노드를 찾으려면 N번 만큼 확인해줘야한다. 인접리스트 노드별로 연결된 노드를 기록 장점: 실제로 연결된 노드의 정..