iOS 49

[iOS : Toy Project] Todo List 만들기 (2)

이전 Todo List (1) [iOS : Toy Project] Todo List 만들기 (1) 이번주차 스터디 과제로, 클론 프로젝트를 간단하게 해보기로 했었다! 스터디장님이 올려주신 것 중 나는 흔히 간단하게 다들하는,, Todo List 를 만들어보기로 결정! 이미 만들어진 Project를 따라 yexjinitlog.tistory.com 자세한 코드는 여기로! GitHub - yexjin/iOS_Study: iOS 토이프로젝트 모음집📱 iOS 토이프로젝트 모음집📱. Contribute to yexjin/iOS_Study development by creating an account on GitHub. github.com 8/16 어제 했던 Storage에 이어, 이번엔 싱글톤 객체를 만들 Todo..

iOS/Toy project 2022.08.16

[iOS : Toy Project] Todo List 만들기 (1)

이번주차 스터디 과제로, 클론 프로젝트를 간단하게 해보기로 했었다! 스터디장님이 올려주신 것 중 나는 흔히 간단하게 다들하는,, Todo List 를 만들어보기로 결정! 이미 만들어진 Project를 따라 코딩하면서 화면 구성과 AutoLayout 그리고 Todo List에 필요한 디테일한 기능을 다뤄볼 예정 자세한 코드는 여기로! GitHub - yexjin/iOS_Study: iOS 토이프로젝트 모음집📱 iOS 토이프로젝트 모음집📱. Contribute to yexjin/iOS_Study development by creating an account on GitHub. github.com 8/15 탭바로 묶기 전에 일단 화면부터 구성해보기로! 나 증말.. 지지리도 Auto Layout 못해서 화면 구..

iOS/Toy project 2022.08.15

[iOS : Toy Project] Github Profile (2) : Refactoring

💡 Github Profile Project Refactoring! Refactoring이 이루어질 이전 코드는 위의 링크에서 참고하자 - Resource와 NetworkService를 이용해서 코드를 줄여보자 - Resource 를 이용해서 아래의 코드 줄여보기 = URLRequest 에 필요한 것을 만들어줌 let base = "https://api.github.com/" let path = "users/\(keyword)" let params: [String:String] = [:] let header: [String:String] = ["Content-Type":"application/json"] var urlComponents = URLComponents(string: base+path)! le..

iOS/Toy project 2022.07.17

[iOS : Toy Project] Github Profile (1)

💡 Network을 이용해, Github 프로필 가져오기! 들어가기에 앞서,, SearchViewController에 Component 연결까지도 되어있다! 일단 ViewController에서 해줘야 할 일은 setupUI : UI 세팅 userProfile 데이터 확인 Binding : User가 업데이트 되면, UI까지 업데이트 되게! searchControl 세팅 network 세팅 이다. 천천히 해보자! 1️⃣ setupUI private func setupUI() { // thumbnail 이미지 Radius 설정 thumbnail.layer.cornerRadius = 80 } 2️⃣ userProfile 데이터 Binding var subscriptions = Set() @Published p..

iOS/Toy project 2022.07.16

[iOS] iOS에서의 네트워크

1️⃣ URLSession iOS 네트워크 작업을 도와줌 URLSesstion을 이용해서 서버와 소통 URLSessionConfiguration .default - 디스크를 이용한 정보 저장을 하는 configuration - 그냥 브라우저를 띄울 때 .ephemeral - default랑 비슷핸데, 몇가지 정보들을 저장하지 않음 (쿠키, 인증서 등) - 브라우저 시크릿 모드라고 생각하면 쉬움 .background - 네트워크를 통해, 파일다운로드 받을 때 - 앱이 백그라운드에서 돌 때도, 다운도르 시켜줄 수 있음 URLSession : contifuration을 보고, 세션을 생성 URLSessionTask dataTask uploadTask downloadTask 2️⃣ Codable - swift ..

iOS 2022.07.14

[iOS] 네트워크 왕 기초 개념

알아 놓을 용어 1️⃣ Concurrency - 여러개의 작업이 동시에 일어나는 것처럼 보이게 하는 것 2️⃣ Thread - 각 작업들이 일어나는 공간 - Main-Thread, Background, Custom 3️⃣ Async vs. Sync Task - 동기: request, return이 같음 - 비동기: request, return이 동시가 아님 📌 HTTP 1️⃣ HTTP - 서버와 대화하는 방식(통신 규약) 2️⃣ 데이터 요청 URL : 서버에 데이터를 요청하기 위해 입력하는 영문 주소 Request Method GET(존재하는 자원에 대한 요청) POST(새로운 자원 생성) PUT(존재하는 자원에 대한 변경) DELETE(존재하는 자원에 대한 삭제) 3️⃣ 데이터 응답 status cod..

iOS 2022.07.14

[iOS : Toy Project] Apple Framework List (4) : Combine

➰ 이전 코드 내용 Apple Framework List(1) Apple Framework List(2) Apple Framework List(3) : Modal ➰ Combine 개념 정리 Combine(1) : Overview Combine(2) : Publisher/Subscriber/Operator 💡 Apple Framework List(4)에서 할 것은 Combine 적용! - Combine을 적용할 View Controller에 Combine을 Import 해야함! 일단, 이전 코드를 정리해볼까? 이전코드 // FrameworkListViewController.swift import UIKit class FrameworkListViewController: UIViewController { /..

iOS/Toy project 2022.07.08

[iOS] Combine (2) : Publisher / Subscriber / Operator

Combine(1)에서 간단히 정의한 Publisher / Subscriber / Operator 1️⃣ Publisher - 생산자 2️⃣ Subscriber - 소비자 3️⃣ Operator - 가공자 Event Stream(Event Pipeline) - Publisher → Operator → Subsciber - 위와 같은 순서에서 어떠한 이벤트들이 생길지 모르니, Combine이라는 비동기 Framework가 필요함! 더 자세히 알아보자! 1️⃣ Publisher protocol Publisher { associatedtype Output// 구체적인 Output 정의 associatedtype Failure: Error// 구체적인 Failure 정의 func subscribe(_ subsc..

iOS 2022.07.03

[iOS] Combine (1) : Overview

동기 vs 비동기 1️⃣ 동기? - 요청과 결과가 동시에 2️⃣ 비동기? - 요청에 대한 결과가 언제 나타날 지 모름 모바일 개발에서 비동기 작업은 굉장히 많음! - 서버에서 데이터를 받아와서 페이지에 보여주는데 걸리는 시간 - 사용자의 버튼 인터렉션 (언제 버튼을 클릭할 지 모르는 것) 📌 Combine? - 효율적인 비동기 처리 방식 - 여러 비동기 처리 방식들 (Target/Action, Notification Center...) 대신 통합된 비동기 처리방식이 필요하여 Combine 등장 - 일관된 방식으로 비동기 처리할 수 있는 API를 Combine으로 제공! 🍎 Apple이 정의한 Combine! - A unified, declarative API for processing values ove..

iOS 2022.07.03

[iOS : Toy Project] Head Space Focus (2) : Navigation

➰ 이전 코드 내용 Head Space Focus 💡Head Space Focus(2)에서 할 것은 Navigation 구현! - 상세 뷰로 넘어가게 하기! ❗️Navigation을 구현할 때는, 사용자가 최대한 개미지옥에서 탈출할 수 있도록 구현해줘야 함을 잊지말자! 1️⃣ 상세 뷰를 위한 다른 Storyboard, View Controller 만들기 - QuickFocusStoryboard - QuickFocusListViewController - 새로운 스토리보드의 Class와 Storyboard ID 까아쥐 2️⃣ 화면의 Component, AutoLayout 설정 - CollectionView 이용 → CollectionViewCell도 필요하겠지? "QuickFocusCell" 만들기 // Q..

iOS/Toy project 2022.06.30