iOS/Swift실전 21

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

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/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

[iOS] textfield와 label

앱을 만들면서 기초작업(?)을 어떤 유튜브를 보면서 따라하다보니 평소 사용하던 스토리보드에서 label이 아닌 textfield로 작업을 했다. 사실 빌드를 하고 시뮬레이터에서 겉보기에는 오른쪽 사진처럼 아무 문제 없어보이길래 사실 그냥 비슷한건가 보다 하고 이대로 냅뒀는데.. 오잉? 한 줄 짜리 글이 나오는데 이렇게 스크롤을 내릴 수 있다. 거기에 저렇게 커서까지 생긴다. 아..! 멍청한 실수였구나. 레이블로 바꿔야겠다. 이참에 한 번 이런 오브젝트들을 공부해보고 블로그에 정리를 해봐야겠다.

iOS/Swift실전 2022.01.25

[iOS]this class is not key value coding-compliant for the key

this class is not key value coding-compliant for the key라는 에러가 났다. 다 고치고 나서 쓰는 글이라 중간 과정이 빠졌지만 혹시나 다음번에 또 비슷한 상황이 생길 수도 있으니 기록용으로 짧게 글을 작성한다. 아주 간단한 에러였는데, 아웃렛을 수정하는 과정에서 제대로 삭제되지 않아 Table이 두 개가 있었다. 하나를 삭제하니 바로 문제가 해결되었다.

iOS/Swift실전 2022.01.22

[iOS] 할 일 체크리스트 앱 만들기! To do list

새로운 프로젝트를 만들어주자. 이름은 ToDoList. 딱히 설정해야할 것은 없다. 스토리보드에 기존에 있던 뷰 컨트롤러는 삭제해주고(ViewController.swift 파일도 함께 삭제) 테이블 뷰를 끌어온다. 테이블 뷰를 선택한 상태에서 Editor - Embed in - Navigation Controller을 통해 네비게이션 컨트롤러를 추가한다. 기존에 스토리보드에 있던 뷰 컨트롤러를 삭제해서 entry point가 없으니 지정해주자. 네비게이션 컨트롤러를 선택하고 attributes inspector에서 View Controller 영역에서 Is Initial View Controller 체크체크! 네비게이션 바 영역에 Bar Button Item을 추가해주자. 이 버튼을 선택하고 인스펙터의 ..

iOS/Swift실전 2022.01.19

[iOS] Swift 테이블 뷰 table view

기본적으로는 Table View Controller을 사용하지만 오늘은 이해를 위해 View에 Table View를 추가! Table View를 뷰에 꽉 채우기 위해 Constraints를 추가한다. 모든 방향에 0, 그리고 Constrain to margins도 체크를 해제하자. 아웃렛 변수 설정까지 고! UITableViewDelegate, UITableViewDataSource 두 가지 프로토콜을 채택하자. 여기서, UITableViewDelegate만 채택했을 때는 오류가 뜨지 않는다. why? 이 프로토콜은 필수 메소드가 없기 때문! XCode의 fix 기능을 사용하여 UITableViewDataSource의 필수 메소드를 추가해준다. 테스트용 코드 여기서 viewDidLoad 메소드에 들어가 ..

iOS/Swift실전 2022.01.17