반응형

iOS 312

Sec15 187) FlashChat TIL

FlashChat TIL -Cocoapod, Firebase practice 1. 로그인/로그아웃 테스트 중 계속해서 아이디 패스워드 치기 귀찮으면 => ? storyboard 에서 잠깐 아이디 패스워드 쳐놓고 테스트 해도 됨 (코드베이스가 아니라 스토리보드 베이스일땐 이렇게 하면 진짜 편하네..) 2. popToRootViewController 웰컴VC -> 로그인VC -> 채팅VC로 이동한 경우, 채팅창에서 로그아웃한 뒤 WelcomeVC로 한번에 rootVC를 제외한 모든 stack을 pop 해서 넘어가는 코드 3. navigation back button 숨기기 - 한줄로 간단하게 해결 navigationItem.hidesBackButton = true 4. Constants 파일 만들기 by r..

Sec15 179) Cocoapods 설치

Cocoapods 설치 방법 터미널에 다음 두가지 명령 실행 (최초 설치시) 1. sudo gem install cocoapods 2. pod setup --verbose 제대로 설치되었는지 확인하려면 아래 명령 pod --version 1. 터미널에서 cd ~~ 해당 프로젝트 파일 (가장 parent 폴더) 2. pod init 참고) Xcode에서 코코아팟 init시 최근 에러가 남 해결방법: 아래 Xcode 14.0-compatible -> Xcode 13.0-compatible로 바꿔준다. 3. 파인더에서 해당 프로젝트로 들어가서 Podfile 우클릭->Others->Xcode로 열기 아래 페이지가 열린다. 이 pod file의 형식을 지정해야 관심 있는 pod을 실제로 추가할 수 있다. coco..

Sec15 176) for in loops 반복문

let names = ["Anna", "Alex", "Brian", "Jack"] for name in names { print("Hello, \(name)!") } //Hello, Anna! //Hello, Alex! //Hello, Brian! //Hello, Jack! for number in 1...5 { print("Hello, \(number)") } // Hello 1 // Hello 2 // Hello 3 // Hello 4 // Hello 5 for _ in 1...5 { print("Hello") } // Hello // Hello // Hello // Hello // Hello 조건이 참인 경우 계속해서 그 구문 안을 실행. 거짓인 순간 바로 빠져나옴. 무한루프 생성될 수 있으므로 주..

Sec15. 175) 타이핑 애니메이션

타이핑 애니메이션 titleLabel.text = "" var charIndex = 0.0 let titleText = "⚡️FlashChat" for letter in titleText { print("-") print(0.1 * charIndex) print(letter) Timer.scheduledTimer(withTimeInterval: 0.1 * charIndex, repeats: false) { (timer) in self.titleLabel.text?.append(letter) } charIndex += 1 } charIndex를 설정해준 이유? 타이머를 character 개수만큼 만들고, 각각의 타이머들 사이에 시간 간격을 두어야 차례로 글자가 타이핑 되는것처럼 실행되니깐. charInde..

Sec14 157) 소수점 원하는 자리에서 반올림 / 버튼 둥글게

Extension 활용 - 소수점 원하는 자리에서 반올림 / 버튼 둥글게 소수점 원하는 자리에서 반올림 extension Double { func round(to places: Int) -> Double { let precisionNumber = pow(10, Double(places)) var n = self n = n * precisionNumber n.round() n = n / precisionNumber return n } } Double -> String let priceString = String(format: "%.2f", bitcoinPrice) 버튼 둥글게 extension UIButton { func makeCircular() { self.clipsToBounds = true self..

iOS swift 코드베이스로 만들기 - 스토리보드 제거

코드베이스로 만들기 - 스토리보드 제거 https://declan.tistory.com/19 Xcode 프로젝트 Storyboard 제거하기 최근 코드로만 뷰를 작성하는 것에 관심이 생겼습니다! 그래서 이번에는 Storyboard 제거와 더불어 앱을 빌드 했을 때 화면을 불러오는 방법에 대해서 적어보도록 하겠습니다! 첫번째로 스토리보 declan.tistory.com 1. General - Main Interface 수정 (Storyboard X) -> 현재 Xcode 14.1 기준 Build Settings에서 storyboard name 지우기(5번 설명과 같음) 2. Info.plist 에서 Application Scene Manifest -> storyboard name 지우기 3. 스토리보드 파..

RxSwift) RxCocoa 로 TableView Delegate 처리

https://ios-development.tistory.com/795 [iOS - swift] RxCocoa로 TableView delegate 처리 방법 RxCocoa에서 제공하는 방법으로 tableView의 ControlEvent 처리 방법 RxCocoa의 UITableView+Rx 파일에 존재 itemSelected: 선택한 셀의 IndexPath 값 획득 // viewDidLoad()에서 호출 private func setupTableViewDelegate() { tableView.r ios-development.tistory.com itemSelected: 선택한 셀의 IndexPath 값 획득 modelSelected: 선택한 셀의 model 값을 획득 itemSelected와 modelSe..

iOS/RxSwift 2023.01.13

RxSwift 4시간만에 끝내기(곰튀김님 강의 듣고 정리) [시즌2]

RxSwift 란? 비동기로 생기는 결과값을 컴플리션 형태가 아닌 리턴값으로 나타내기 위해 쓰는 유틸리티 (URLSession 이나 Alamofire에서 completion 에 나타나는 코드들이 너무 길어서 깔끔하게 쓰고 싶었던 적이 많았을 것이다) 사용 방법에는 2가지가 있다. 1) create - 비동기로 생기는 데이터를 Observable로 감싸서 처리하는 방법 2) subscribe - Observable로 오는 데이터를 받아서 처리하는 방법 *한 번 생성된 Observable이 disposed 되면 다시 사용 불가. 새로 만들어주어야 함. *위에처럼 RxSwift를 쓰다가 너무 길어져서 이걸 짧게 줄이고 코드를 간결하게 쓰고 싶기에 나온 애들이 SugarAPI. SugarAPI 는 operato..

iOS/RxSwift 2023.01.12

RxSwift 4시간만에 끝내기(곰튀김님 강의 듣고 정리) [시즌0]

RxSwift 4시간만에 끝내기(곰튀김님 강의 듣고 정리) [ 1. ReactiveX 사이트 둘러보기 ] [ 2. 비동기작업과 Observable ] [ 3. Disposable DisposeBag ] 1) Async 2) PromiseKit 3) RxSwift 이미지 다운로드와 동시에 숫자는 계속해서 올라감 (Async 한 작업) Rx를 왜 쓰는가? Async 한 작업에 대한 코드를 간단하게 쓰기 위해서 코드 형태: Observable 로 리턴. onNext로 전달해서 subscribe 쪽으로 결과가 나옴. 이 때 아래를 참고하면 subscribe는 disposable 리턴 onCancel 쪽의 action: disposable?.dispose() 함으로써 취소 DisposeBag이란? dispose들..

iOS/RxSwift 2023.01.09
반응형