본문 바로가기
728x90

전체 글139

[iOS] RxSwift - Subject vs Observable 곰튀김님 강의 [3교시] RxSwift 활용범위 넓히기에 해당하는 내용입니다! 💡 RxSwift - Observable vs Subject Observable 은 어떤 데이터를 내보내야할지 미리 정해진 형태의 스트림이다. create 하는 시점부터 값이 정해져있고, 중간에 데이터 값을 변경할 수 없다. 버튼 조작으로 데이터 값을 변경해야하는 등의 상황에서는 Observable 대신 Subject 를 이용하면 된다. Subject 는 Observable 외부에서 데이터를 넣어줄 수도 있고, 구독할 수도 있는 양방향성을 가진 타입이다! Subject 는 일반 Observable 처럼 subscribe 하여 event 를 전달받을 수 있음과 더불어, Subject 외부에서 onNext, onCompleted,.. 2021. 7. 14.
[iOS] RxSwift - Observables 생성과 구독, 생명주기, operator 💡 ReacitveX - Observable ReactiveX 에서 Observer 는 Observable 을 subscribe 한다. observer 는 Observable 이 방출하는 아이템 (단일 혹은 시퀀스)에 응답한다. 이를 통해 동시성(concurrency) 연산이 가능하다. Observable 이 객체를 방출할 때까지 기다릴 필요 없이, 객체가 방출되면 그 시점을 감시하는 관찰자를 observer 내에 두고, 그를 통해 알림을 받는다. ✔︎ Observer 생성 & 구독 비동기 모델에서는 아래와 같은 흐름대로 코드가 실행된다. async method 호출로 결과를 리턴받고, 필요한 동작을 처리하는 method 를 정의한다. * Observer 의 일부 Observable 로 비동기 호출을 정.. 2021. 7. 11.
[iOS] MVVM & RxSwift 스터디 W1 - Observable 생명주기와 쓰레드관리 iamchiwon/RxSwift_In_4_Hours RxSwift, 4시간 안에 빠르게 익혀 실무에 사용하기. Contribute to iamchiwon/RxSwift_In_4_Hours development by creating an account on GitHub. github.com 곰튀김님 강의 영상을 보고, 정리한 내용입니다! [1교시] RxSwift 를 이용한 비동기 프로그래밍 💡 RxSwift 는 비동기 작업의 결과를 Completion closure 가 아닌, 함수의 return 값으로 전달하기 위한 유틸리티 중 하나이다! 👀 비동기 프로그래밍, RxSwift 가 왜 필요할까? 네트워크 작업 등 데이터를 받아오는 데 시간이 걸리는 작업의 경우, 비동기 프로그래밍이 필요하다. 동기(sync).. 2021. 7. 11.
[알고리즘/Swift] 해시 - 베스트앨범 Swift 스터디 11주차 - 해시 :: 위장, 베스트앨범 [알고리즘/Swift] 프로그래머스 - 위장 (해시) Python3 로 풀었던 문제를 Swift 로 다시 풀어봤어요. iOS 개발을 좀더 효율적으로 하기위해서 Swift 데이터구조, 알고리즘 공부의 필요성을 느꼈습니다. 🤔 '위장' 문제에 대한 접근 방법은 이전 포 jellysong.tistory.com 👀 첫번째 풀이 # 딕셔너리 형태 playDict 는 ["장르" : (총 재생곡수, [재생곡수])] 형태의 딕셔너리이다. 같은 장르의 총 재생곡수에 따라 1차 정렬을 해줘야하기 때문에, 총 재생곡수를 추가적으로 저장했다. musicDict 는 ["장르_재생곡수" : [고유번호]] 형태의 딕셔너리이다. 같은 장르에 같은 재생곡수를 가진 노래가 여러.. 2021. 7. 6.
[iOS] FLO 앱 개발 일지 #2. TableView 로 가사 화면 개발하기 프로그래머스 연습 과제의 FLO 앱 요구사항을 바탕으로 개발한 앱입니다. FLO 앱 개발 일지 #1. MVVM 패턴과 Data Binding [iOS] FLO 앱 개발 일지 #2. TableView 로 가사 화면 개발하기 이번 개발 일지는 전체 가사 보기 화면을 개발하면서 TableView 를 어떻게 이용했는지에 대해 작성해볼게요! 아래 순서로 작성했습니다 1. 문자열의 가사를 딕셔너리로 변환하기 2. TableView 로 전체 가사 화면 UI 개발하기 3. Music Player 의 시간이 지남에 따라 가사가 변경되도록 하기 * Issue :: Observer 를 등록하고 화면이 종료될때 해제해주지 않아 가사 싱크가 맞지않는 이슈가 발생 (해결) 4. TableView 로 특정 가사 터치 시 해당 구간.. 2021. 6. 30.
[iOS] FLO 앱 개발 일지 #1. MVVM 패턴과 Data Binding 프로그래머스 과제관에 FLO 뮤직 플레이어 iOS 앱 연습 과제가 있어서, 이를 개발하면서 적용한 것이나 발생했던 이슈들에 대해서 정리해보도록 할게요! 해당 앱을 개발하기로 한 이유는 다음과 같습니다. 1. 정해진 앱의 개발 환경, 화면 구성 요소, 기능 요구사항에 맞춰 개발하기 위해서 2. 비교적 작은 규모의 앱에서 MVVM 패턴을 적용해보기 위해서 3. 부스트코스 1강에서 학습한 음악 플레이어의 연장선으로 학습하기 위해서 🎵 Demo 영상 (iPhone 11, iOS14.5) ✔︎ FLO 앱의 음악 재생 화면에서 MVVM 패턴 적용하기 💡 MVVM 패턴의 기본 룰 1. View (View Controller)는 View Model 을 가지고, View Model 은 Model 을 가진다. 2. Vie.. 2021. 6. 29.
[알고리즘/Swift] 정렬 문제풀이 - K번째수, 가장 큰 수, H-Index Swift 스터디 10주차 6/24 스터디 4주차 챕터였던 "정렬 알고리즘" 에서 삽입 정렬, 병합 정렬, 퀵 정렬에 대해 학습했었습니다. 이와 관련되서 프로그래머스의 정렬 챕터를 통해 알고리즘 문제 풀이를 진행했습니다. ✔︎ K번째수 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하는 문제이다. 👀 입출력 array : Int 배열, 1 2021. 6. 25.
[iOS] MVC 패턴 (Model - View - Controller) 디자인패턴 중 앱 개발에 적용되는 MVC(Model-View-Controller) 패턴에 대해 정리해보자! iOS 앱 프로그래밍 부스트코스 무료 강의 www.boostcourse.org 1장에서 음악재생 앱을 만들면서 아래의 내용들을 학습했습니다. 에셋(Asset) - 앱 아이콘, 이미지 파일, 데이터 파일을 관리, 앱 실행시 파일에 쉽게 접근할 수 있도록 도와준다. 앱 시닝(App thinning)과 앱 슬라이싱(App slicing) - 다양한 디바이스에서 빠르게 다운로드할 수 있도록 하는 최적화 기술 Cocoa Touch, UIKit, Foundation - iOS 앱 개발에 필요한 프레임워크 Autolayout 을 적용하며 UI를 개발하는 법 - 인터페이스 빌더 vs 코드로 작성 iOS의 View.. 2021. 6. 18.
[iOS] 디자인 패턴 & Singleton 패턴 적용된 사례 디자인 패턴의 정의, 시작 그리고 분류에 대해서 정리. iOS 앱 개발에서 싱글턴 패턴이 적용된 사례를 중심으로 학습해보자! iOS 앱 프로그래밍 부스트코스 무료 강의 www.boostcourse.org 1장에서 음악재생 앱을 만들면서 아래의 내용들을 학습했습니다. 에셋(Asset) - 앱 아이콘, 이미지 파일, 데이터 파일을 관리, 앱 실행시 파일에 쉽게 접근할 수 있도록 도와준다. 앱 시닝(App thinning)과 앱 슬라이싱(App slicing) - 다양한 디바이스에서 빠르게 다운로드할 수 있도록 하는 최적화 기술 Cocoa Touch, UIKit, Foundation - iOS 앱 개발에 필요한 프레임워크 Autolayout 을 적용하며 UI를 개발하는 법 - 인터페이스 빌더 vs 코드로 작성.. 2021. 6. 16.
728x90