분류 전체보기 260

4. Nested Scroll View 구현

Nested Scroll View 구현 공개예정에 해당하는 UpcomingViewController이 아직 custom class로 지정되지 않았기에 이를 지정하고 기능을 구현한다. 우선 HomeViewController의 코드를 해석해보자 HomeViewController에서는 3개의 RecommandListViewController를 갖고있다. 이때 prepare을 통해 각각의 segue의 identifier로 ViewController를 구분하고 type을 지정해서 fetch하는 구조이다. RecommandListViewController에 들어가게 되면 updateUI를 하게되고 각 sectionLabel은 HomeViewController에서 updateType으로 지정한 type에 해당하는 텍..

3. Container View를 활용한 Nested ScrollView 만들기

Container View를 활용한 Nested ScrollView 만들기 공개예정 Tabbar에서 생성한 vertical stack view에 임의의 View를 삭제하고 container view 2개를 삽입하자. height는 200이다. 여기서 stack view는 안에 존재하는 content의 크기에 따라 사이즈가 지정이 되기에 stack view의 height auto layout 지정은 삭제한다. 이때 stack view의 height 600을 유지하게 되면 안에 존재하는 contents의 크기가 전부를 못채우기 때문에 에러가 발생한다. 현재 UIView라는 빈공간이 들어가있고 이 빈공간이 오른족에 존재하는 ViewController로 대체되는 구조이다. 일반 ViewController을 Em..

2. Nested Scroll View

Nested Scroll View TableView 와 CollectionView는 ScrollView의 한 형태이다. ScrollView는 화면에 보여지고 스크롤을 할 수 있는 ScrollView 자체가 있고, 그 안에 컨텐츠를 담은 왔다갔다하는 ContentsView가 존재한다. 예를들면 기차를 타고 창밖을 바라보면 배경은 엄청 넓지만 창문으로 바라보는 세상은 위의 그림처럼 제한적이다. 창문이 ScrollView와 대응되고 배경이 컨텐츠와 대응되는 개념이다. 스크롤 뷰는 “공개 예정” tabbar에서 만들어 보겠다. ScrollView를 넣고 Auto Layout으로 4방향 모두 space를 지정해 줬지만 다른 UIComponents와 달리 오류가 계속 뜨고 있다??? --> ScrollView에는 ..

1. Netfilx app extension start

기존의 넷플릭스st application에서 기능을 추가해서 확장해보겠다. 추가할 기능은 두가지다. 1. HomeViewController에서 구현한 것과 같이 Nested Scroll View를 완성한다. 2. Firebase를 연동해서 Search History data를 R/W 한다. Firebase의 경우 연동하는 방법을 정리했으니 참고하길 바란다. 내용이 길지 않으니 이론부터 익히길 바란다. https://yeongwoo-cho.tistory.com/153 1. Firebase Firebase 란? 앱을 만들다 보면 서버와의 Networking을 하는 경우가 많이 생기고, 서버를 만들어야 되는 경우가 존재한다. 이제는 서버를 서비스로 제공하는 것이 존재하고 이는 google의 Firebase이다..

11. Crash between Swift Package and Cocoapods

Crash between Swift Package and Cocoapods 간혹 Swift Package와 Cocoapods로 추가한 라이브러리가 충돌하는 경우가 발생한다. 예를들어 Kingfisher은 Swift Package로 연결하고, Firebase는 Cocoapods로 연결할 경우 Kingfisher의 연결에 문제가 생길 수 있다. 해결방법은 간단하다. Swift Packages로 연결된 라이브러리를 업데이트 시키면 된다. Kingfisher을 클릭하고 Exact로 Version 변경을 한다 —> Up to Next Major 상태이기에 그냥 Done시키면 아무 변화가 없다. 그 후, 다시 Upt to Next Major로 바꿔주면 된다. 끝이다. 성공적으로 Build 될 것이다.

6. Realtime Database 데이터 파싱하기

데이터를 가져와서 몇명의 customer이 있는지 파악할 것이다. 데이터를 가져와서 customer가 몇 명 있는지 확인하고 UI로 출력할 것이다. JSON 파일을 받아와서 데이터를 파싱하는 작업이 필요하다 —> Codable 우선 데이터를 받아왔을때 어떤 형태인지를 확인하기 위해 데이터 읽기를 해본다. 데이터를 확인해보면 Array형태로 내려왔음을 확인할 수 있다. Array로 받아온 데이터를 사용하기 편하도록 바꿔보겠다. JSON형태로 만들고 이를 우리가 원하는 struct 데이터 구조로 만들기 위해 Codable을 사용해서 parsing을 해보겠다. 데이터를 넣어서 JSON데이터 형식을 생성하고 Decoder을 통해 우리가 원하는 데이터 타입인 [Customer]형태로 decode를 했다. 물론 C..

5. Realtime Database 데이터 쓰기

Realtime Database 데이터 추가하기 write의 경우 key를 정하고 setValue 하면 된다. 그런데 우리가 보낼 데이터를 이렇게 간단하지 않다. 예를 들면 고객의 데이터를 보낸다고 가정해보자 그렇다면 데이터는 다음과 같은 구조를 가질 것이다. 데이터는 이런 형식이다. Customer을 보낼려고 하는데 Book type은 넘어갈수 없다… String, number, array, dictionary 이 4가지만 데이터로 쓸수 있다. 그렇다면 dictionary가 가장 적합하다. 이렇게 compute property를 더하면 Customer은 Book type을 dictionary type으로 데이터베이스에 쓰게 된다. 참고로 중복된 데이터는 추가되지 않는다.

4. Realtime Database 데이터 읽기

두개의 데이터 베이스가 존재한다. FireStore Database와 Realtime Database가 존재한다. 우리는 Realtime Database 를 사용해볼 것이다. https://firebase.google.com/docs/firestore/rtdb-vs-firestore?hl=ko 데이터베이스 선택: Cloud Firestore 또는 실시간 데이터베이스 | Firebase Firebase는 실시간 데이터 동기화를 지원하며 클라이언트에서 액세스할 수 있는 2가지 클라우드 기반 데이터베이스 솔루션을 제공합니다. Cloud Firestore는 모바일 앱 개발을 위한 Firebase의 최신 데이 firebase.google.com Realtime Database 생성 아무나 R/W 되도록 할 것인지..

3. Firebase 연결하기 (iOS Swift by CocoaPods)

우리는 iOS 어플과 Firebase를 연결시키기 위해서 CocoaPods 라는 것을 사용할 것이다. 우선 아래의 링크를 참고해서 CocoaPods를 설치해보자 https://cocoapods.org/ CocoaPods.org CocoaPods is built with Ruby and is installable with the default Ruby available on macOS. We recommend you use the default ruby. Using the default Ruby install can require you to use sudo when installing gems. Further installation instructions are in the g cocoapods.org ..

2. Firebase iOS SDK

Firebase IOS SDK를 프로젝트 안에 설치하면 된다. SDK ( Software Development Kit ) —> 개발도구라고 생각하면 된다. Firebase를 사용하기 위한 기능들을 구글 개발자들이 만들어놨다. 우리는 가져와서 사용만 하면 된다. UIKit은 UI를 어플에 접목하기 위한 바구니 이다. Firebase IOS SDK는 Firebase를 IOS에 접목하기 위한 소프트웨어 개발 바구니 이다. Cocoapods 우리는 외부 개발도구인 SDK를 가져와야 하는데, 여러가지 방법중 많이 사용하는 cocoapods가 있다. 루비 기반의 외부 개발도구 혹은 라이브러리 관리 모듈이다. 우리는 cocoapods를 통해 Firebase IOS SDK를 가져올 것이다.

1. Firebase

Firebase 란? 앱을 만들다 보면 서버와의 Networking을 하는 경우가 많이 생기고, 서버를 만들어야 되는 경우가 존재한다. 이제는 서버를 서비스로 제공하는 것이 존재하고 이는 google의 Firebase이다. firebase를 이용하면 따로 서버를 구축하지 않아도 다음과 같은 기능을 사용할 수 있다. 데이터저장, 실시간 데이터 동기화, 사용자 인증, 데이터 분석, A/B Testing(제품의 성장을 위한), 등등등등 좀더 깊이 들어가보자 firebase는 3가지 축으로 서비스를 도와주고 있다. 더 잘만들도록, 앱 퀄리티를 높게, 비지니스적 성장 3가지 이다. 1. 더 잘 만들도록 : 개발 속도를 높히는 서버관련 기능들을 제공한다. 사용자 인증, 호스팅, 클라우드 저장소, 머신러닝 백엔드 서..