이번주에 배운 것들
1.
UIKit
2.
UIKit Autolayout
프로젝트 진행 상황
•
파이썬 > 이미지 크롤링하며 OCR로 데이터 구현하려했지만 이미지 해상도가 낮음
◦
OCR이 잘안되서 고화질로 크롤링 우회 > 법적인 문제 여부 체킹
◦
크롤링이 아닌 이미지를 모아서 해야할듯?
▪
구글 이미지 검색하여 데이터 수집중 > 한품목 5가지 100개정도 표준화
•
메인 뷰 UI 완성
◦
카메라 / 보이스오버
•
결과 1번 화면 아직 미구현
◦
태훈님이랑 같이
•
카메라 부분은 현재 학습중?!
◦
개발자 사이트에서 카메라에 대해 학습중!
◦
수업진도도 있어서 물리적인 시간이 많이듬
•
1월 이후 프로젝트 팀 섞임!
◦
시간을 더 늘려서 공수산정을 해도될듯!
멘토링
•
RenderImageModifier
◦
뷰 렌더링
◦
뷰 모디파이어
•
UIKit 컴포넌트
◦
@IBOutlet
▪
인터페이스 빌더(스토리보드)와 코드를 연결하기 위해 사용되는 방법!
▪
코드에 연결하면 @IBOutlet weak var title: UILabel!
•
! → 강제 옵셔널 바인딩
•
guard let , if let 옵셔널 바인딩
•
스토리보드랑 클래스가 1:1 대응
◦
연결되어 있는 상황에서는 확실하게 존재한다고!
◦
파탈 에러가 뜸!
◦
개발자가 규약을 잘 따라라~
◦
하이 리스크를 미리 개발자가 개발시점에 파악할 수 있도록
◦
@IBAction
▪
사용자 인터랙션
•
메인스레드를 사용하여 시간 소모적인 작업을 수행하는 앱 내의 다른 코드는 시간 소모적인 작업이 완료될때까지 전체 애플리케이션이 멈춘것처럼 보이게 한다.
◦
메인 스레드
▪
계속 유지되고 있나
▪
앱 > 사용자의 인터랙션 상호작용 & 뷰를 보여줘야함!
▪
60hz > 1초당 60번의 깜빡임
▪
메인스레드는 뷰 / 화면 UI
▪
뷰는 멈추겠죠? 메인 스레드는 1개!
•
멈춘것처럼 보이는것!
•
앱이 멈춘게 뷰를 렌더링 하는것이 멈춘것!
•
Task / async / await
◦
비동기 처리 방법
•
스레드 & 비동기 처리
▪
비동기 / 동기 차이
•
동기가 계속 작업이 되고 있다?
◦
Synchronous
▪
싱크가 되어 있는 얘
▪
동기
•
작업이 순차적으로 실행
•
한 작업 완료되기전에는 > 다음 작업이 대기중
•
print(1)
print(2)
1 / 2
•
서버 통신 > 이미지를 불러온다거나
•
동기적이면 다 기다려야함 순서대로 > 작업이 끝날때 동안 프로그램이 멈추고 > 효율성 저하
▪
비동기
•
Asynchronous
•
작업이 동시에 실행될 수 있음 ㅇㅇ
•
한 작업이 완료되는것을 다 기다리는것이 아니고 다음 작업을 시작한다
•
네트워크 통신
◦
네트워킹을 요청하는 비동기 함수가 존재
◦
해당 요청을 시작해놓고 다음 코드를 실행할 수 있음!
•
스레드 - 일련의 작업 단위
•
OS > Process > Thread
▪
SwiftUI
•
Spacer()
struct A {
let title: String
init() {}
}
// A 인스턴스 만들때
let a = A(title: "green")
// title 출력
print(a.title)
Swift
복사
▪
MapKit
•
NaverMap