iOS 46

RxSwift 파헤치기 도전! (2) Observable

실습에 들어가기 전, Rx의 심장이라는 Observable에 대해 알아보자! - Observable = Observable Sequence = Sequence - Asynchronous(비동기적) - Observable은 일정 기간 동안 계속해서 이벤트를 생성하며, 이러한 과정을 emitting(방출)이라고 표현한다. - marble diagram 시간의 흐름에 따라 값을 표시하는 방식(시간의 흐름은 왼쪽 -> 오른쪽) http://rxmarbles.com/ RxMarbles: Interactive diagrams of Rx Observables rxmarbles.com (생명주기) Obeservable은 1. 어떤 구성요소를 가지는 next 이벤트를 계속해 방출할 수 있다. 2. error 이벤트를 방..

iOS/Swift실전 2023.01.17

Swift의 고차함수에 대해 알아보자. (Map,Filter,Reduce)

부끄럽지만 iOS 프로그래밍을 하며 고차함수에 대한 이론만 공부하고 제대로 실전에서 사용을 해본 적이 없었다. 요즘 이론을 다시 공부하며 고차함수에 대해 제대로 이해하고 사용법도 익혀보고자 이 글을 작성한다. 일단 Filter, Map, Reduce에 대해 정리하기 전, 고차함수란 무엇일까?! 다른 함수를 전달인자(argument)로 받거나 함수 실행의 결과로 함수를 반환하는 함수 스위프트의 함수가 일급객체라는 것을 아니 무슨 소리인지 이해가 간다. https://yejprogramming.tistory.com/7 Swift) iOS 프로그래밍 함수, 1급객체, 클로저, 클래스 함수 함수의 타입 (자료형, 자료형, ...) -> 리턴형(Int, Int, ...) -> Int => 리턴형이 Void형이면 ..

iOS/Swift이론 2023.01.15

RxSwift 파헤치기 도전! (1)

RxSwift를 이해하기 위해 글을 몇 개 읽었는데 이해하는데 한계가 있어 패스트캠퍼스의 GitHub 앱 만들기 강의를 보며 따라 해보려고 한다! RxSwift는 비동기를 위해 사용된다. https://yejprogramming.tistory.com/69 Swift의 비동기 처리 ※해당 글은 Swift 비동기에 관한 다른 블로그 글들을 보고 공부 목적으로 정리하였습니다. 더 자세한 정보를 원할 시 하단의 출처를 보시고 해당 글들을 참고하시길 바랍니다!! Sync vs Async Sync(동 yejprogramming.tistory.com 바로 어제 비동기에 대한 글을 작성하였는데, 이러한 방식의 비동기 처리는 복잡하고 코드가 지저분하다고 한다. 하지만 Rx를 사용하면 코드가 직관적이고 효율적이게 된다고 ..

iOS/Swift실전 2023.01.10

Swift 검색 기능, search controller 사용해보기

앱에서 중요한 기능인 검색!! Swift에 있는 search controller로 간단하게 구현해 볼 수 있다. storyboard navgation과 table view를 연결해준다. 또한 테이블뷰는 tableView라는 이름으로 아웃렛을 만든다. @IBOutlet weak var tableView: UITableView! viewController.swift 일단, 내가 만든 프로젝트는 배우들의 이름을 배열에 저장하고 그 배열을 테이블뷰로 출력해서 검색할 수 있게 해주는 기능을 담았다. 열심히 주석을 단 코드 전체를 첨부하니 설명은 생략! import UIKit class ViewController: UIViewController { @IBOutlet weak var tableView: UITable..

iOS/Swift실전 2023.01.09

Swift의 비동기 처리

※해당 글은 Swift 비동기에 관한 다른 블로그 글들을 보고 공부 목적으로 정리하였습니다. 더 자세한 정보를 원할 시 하단의 출처를 보시고 해당 글들을 참고하시길 바랍니다!! Sync vs Async Sync(동기) 요청과 응답이 동시에 일어남 코드 작성 순서대로 호출 주어진 작업이 완료될 때 까지 다음 작업으로 넘어가지 않음 Async(비동기) 요청과 응답이 동시에 일어나지 않는 방식. 요청하면 상황에 따라 응답(하지 않을 수도 있음) 주어진 작업의 완료 여부와 관계 없이 작업 전달 후 바로 다음 작업으로 넘어감 Serial vs Concurrent Serial(직렬) 순차 진행 할 일을 하나의 스레드에 차곡차곡 순서대로 쌓는 것 DisaptchQueue.main() Concurrent(동시) 동시 ..

iOS/Swift이론 2023.01.08

[Swift] array! 배열에 대해 파헤쳐보자!

Swift의 컬렉션 타입에는 배열, 딕셔너리, 세트가 있다. 그 중에서 오늘은 배열에 대해 한 번 자세히 알아보고자 한다. 배열[array]은 "같은 타입"의 데이터들을 "순서"에 맞춰 저장하는 타입이다. 배열의 생성은 다음과 같이 한다. var array : Array = Array() var array2 : = [Int]() var array3 : [Int] = [] 여기서 알아야 할 점! 1. 위 코드와 같이 빈 배열을 생성할 경우에는 배열의 타입을 명시해야 하지만, 값을 넣어서 배열을 만들 경우에는 타입을 명시하지 않아도 된다. 그런 경우는 밑의 코드 처럼 작성한다. var array = [100, 200, 300] 2. 하나의 배열에는 같은 타입의 데이터들만 있을 수 있다. 고로 밑의 코드는 잘..

iOS/Swift이론 2022.12.28

[Swift/iOS프로그래밍] 뷰와 뷰 사이 데이터 전달

지난 화면전환 네비게이션 글에서 실습한 프로젝트 이후 부분이니 참고바람 https://yejprogramming.tistory.com/62 [swift/iOS프로그래밍] navigation controller 4가지 방법, 세그 vs 코드,push vs present 스위프트로 화면전환을 구현하는 방식 중에 네비게이션 컨트롤러가 있다. 세그로 구현하는 것과 코드로 구현하는 것이 있는데 이 중에서도 푸쉬와 프레젠트라는 방식이 있다. 오늘은 이런 4가 yejprogramming.tistory.com ▼실습 완료 화면 코드로 구현한 네비게이션 컨트롤러 부분에서 Push 부분은 첫번째 뷰컨트롤러(루트컨트롤러)에서 두번째 컨트롤러로 데이터 전달, Present 부분은 delegate으로 두번째 뷰컨트롤러에서 첫번..

iOS/Swift실전 2022.05.25

[Swift/iOS프로그래밍] 뷰 사이클과 관련된 메서드들

viewDidLoad() : 뷰 컨트롤러의 모든 뷰들이 메모리에 로드됐을 때 호출, 처음 한 번만! -> 라이프사이클에서 딱 한 번만 호출될 내용만 정의 viewWillAppear : 뷰가 뷰 계층에 추가되고, 화면에 보이기 직전에 매 번 호출, 즉 다른 뷰로 이동했다가 돌아올 때도 재호출됨 viewDidAppear() : 뷰 컨트롤러의 뷰가 뷰 계층에 추가된 후 호출, 주로 뷰가 나타날 때 필요한 추가 작업이나 애니메이션을 시작하는 작업 viewWillDisappear() : 뷰 컨트롤러의 뷰가 뷰 계층에서 사라지기 전 호출, 뷰가 생성된 뒤 작업한 내용 되돌리는 작업, 최종적으로 데이터 저장하는 작업 viewDidDisappear() : 뷰 컨트롤러의 뷰가 뷰 계층에서 사라진 뒤 호출, 뷰가 사라지는..

iOS/Swift실전 2022.05.25

[Swift/iOS프로그래밍] navigation controller 4가지 방법, 세그 vs 코드,push vs present

스위프트로 화면전환을 구현하는 방식 중에 네비게이션 컨트롤러가 있다. 세그로 구현하는 것과 코드로 구현하는 것이 있는데 이 중에서도 푸쉬와 프레젠트라는 방식이 있다. 오늘은 이런 4가지 방식에 대한 포스팅을 해볼 예정! ▼ 실습 후 완성 화면 네비게이션 컨트롤러를 추가해주고 뷰컨트롤러에 세그 연결을 해준다. 네비게이션 기능을 구현해줄 각각의 버튼도 만들어준다. 총 4개의 실습을 할 것이라고 했는데 세그 연결로 네비게이션을 구현하는 뷰 컨트롤러 두 개와, 코드로 구현할 뷰 컨트롤러 두 개이다. 일단, Push와 Present 화면 전환 동작하는 모습이 다른데 Push는 방향이 가로(왼쪽->오른쪽), Presents는 세로(아래->위)이다. 또한 Push는 스택 형식이라 여러 뷰가 쌓일 수 있다. ① 세그로..

iOS/Swift실전 2022.05.24

UIKit

Cocoa Touch Framework : iOS 개발환경 구축을 위한 최상위 프레임워크 가장 많이 사용되는 애플리케이션 : UIKit, Foundation UIKit Framework : 사용자의 인터페이스 관리, 이벤트 처리(제스처, 그림그리기, 텍스트 등) UIView, UIViewController 등 UI가 붙는 것들은 UIKit 주로 MVC 디자인 패턴 (Model, View, Controller) model: 앱의 데이터, 비즈니스 로직 (무엇을) view: 사용자에게 데이터를 보여주는 ui (보여줄것인가) controlelr: 모델과 뷰의 중간다리 역할 (어떻게) - 현실에서는 View와 Contoller가 너무 가까움. 프로젝트가 커질수록 Controlller가 비대해짐 이를 해결하기 위..

iOS/Swift이론 2022.05.23