전체 글 58

49일차 TIL

하위뷰로 놓기 [searchBar,recentView].forEach { view.addSubview($0)} [recentLabel].forEach { recentView.addSubview($0)}recentLabel을 recentView 하위에 놓고 싶으면 이렇게 addSubview로 호출해 주면 된다! 스탠더드반 강의스파르타 코딩 클럽 네트워크 통신 1 url 만들기url : 네트워크 통신을 위해 접근하는 주소* 단순히 string으로 받을 수 있고, URLComponent를 통해 좀 더 세세하게 정리해서? 받아올 수도 있다 * 쿼리 (쿼리이름 = 쿼리조건) : 검색 조건 func fetchNumberAPI(num: Int) { guard let url = URL(st..

TIL 2024.05.07

UIView 모서리 둥글게 만들기 / 그림자 추가

UIView 모서리를 둥글게 만들기!cornerView.layer.cornerRadius = 20간단하게 이렇게 해서 cornerRadius에 값을 주면 모든 모서리를 20 정도 둥글게 만들어줄 수 있다.값이 커질수록 더 동그래짐! 그런데 모든 모서리가 아니라 특정 모서리만 둥글게 해 주려면,,cornerView.layer.cornerRadius = 20cornerView.layer.maskedCorners = CACornerMask(arrayLiteral: .layerMinXMinYCorner, .layerMinXMaxYCorner)이렇게 해주면 되는데, 이 코드는 왼쪽 상단과 하단을 둥글게 만들어준 코드이다. 실행하면 이렇게 나온다. https://swieeft.github.io/2020/03/05/..

개인공부 2024.05.07

동영상 실습 (AVKit)

iOS 앱 개발 심화 (실습)스파르타 코딩 클럽 import AVKit: AudioVisual ( 소리와 시각적 요소를 모두 처리하는 전자 매체 )를 사용하기 위한 기본적 사용자 인터페이스 URL: URL은 특정 리소스의 위치를 나타냄 ( 보통 String을 통해서 접근 && 한글이나 공백 포함 시 리턴 값이 nil )let url = URL(string : "url 주소")! playerButton = 눌렀을 때 동영상을 띄우기 위해 뷰에 생성될 버튼이다.url = 띄울 동영상의 urlplayerController = 동영상플레이어의 컨트롤러 인스턴스 생성 (AVPlayerViewController)player = 동영상 인스턴스 생성 (AVPlayer)    ㄴ AVPlayer?로 선언하여 Optio..

개인공부 2024.05.06

코드베이스 _ SnapKit 라이브러리

스탠다드반 강의스파르타 코딩클럽스탠다드반 강의 자료 SnapKit 라이브러리를 사용하면 codebase로 구현할 때 더 깔끔하고, 간결하게 코딩할 수 있다translatesAutoresizingMaskIntoConstraints = false 도 따로 해줄 필요 없음 ! 스냅킷 사용 전 import SnapKit 잊지 않기 !//textLabel.translatesAutoresizingMaskIntoConstraints = false//textLabel.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 30).isActive = true// SnapKit 사용textLabel.snp.makeConstraints { ma..

개인공부 2024.05.05

48일차 TIL _codebaseUI

스탠다드 반 강의 (복습)스파르타 코딩 클럽 우선 코드베이스로 구현하려면 프로젝트를 생성 후, 메인 스토리보드를 삭제하고,info에서 StoryboardName 부분에 Main으로 설정되어 있는 것을 지우고, SceneDelegate 파일에서 ViewController를 연결해 주는 작업이 필요하다func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { guard let windowScene = (scene as? UIWindowScene) else { return } window = UIWindow(windowScene: wind..

TIL 2024.05.03

AutoLayout

스탠다드반 AutoLayout 강의스파르타 코딩클럽 https://fluffy-brie-4fd.notion.site/1-d0123b8d3111493ab7a539ed369de8c6 스탠다드 반 1주차 세션 - 오토레이아웃 | Notion오토레이아웃fluffy-brie-4fd.notion.site AutoLayout: 제약 조건(Constraints)에 따라  뷰 계층 구조에 있는 모든 뷰의 크기와 위치를 동적으로 지정하는 것   (디바이스가 작아져도 같은 모양을 유지하기 위해 설정하는 것) 오토레이아웃을 위한 필수 요소    1) 위치     2) 크기    ( * Lable, Button, Switch 등은 자기 기본 크기를 갖기 때문에 위치만 정해주면 ok ) Aspect Ratio: 요소의 크기를 일..

개인공부 2024.05.02

46일차 TIL

스탠다드 반 강의스파르타 코딩 클럽 https://fluffy-brie-4fd.notion.site/6-CollectionView-fe448c305e1e4a16bed98cbba71ba1c9 스탠다드반 6주차 - CollectionView | Notion컬렉션 뷰의 특징fluffy-brie-4fd.notion.site CollectionView: 정렬된 데이터 항목 컬렉션을 관리하고 사용자 정의 가능한 레이아웃을 사용하여 표시하는 개체    ㄴ 스크롤 방향 선택 가능    ㄴ 셀 간격 설정 가능    ㄴ Padding(Inset) 내부 간격 설정 가능 FlowLayout 설정: 컬렉션 뷰는 자율성이 보장되는 대신 직접 지정해야 하는 것들이 있다. (셀 크기, 간격, 스크롤 방향 등등)    주요 함수   ..

TIL 2024.05.01

45일차 TIL

iOS 앱 개발 심화 강의스파르타 코딩 클럽  아키텍처 (Architecture): 시스템 전체적인 모습을 정의 (기능, 성능 보안 등 비기능적 요소에 대한 해결책 제시) - MVC ( Model - View - Controller )  Model : 데이터와 데이터 처리 로직 관리 (구조체, 클래스)  View : 사용자 인터페이스 관리 ( UI Component 포함)  Controller : Model과 View의 상호작용   장점 : 비교적 간단한 구조 ( 직관적 ) && 세 가지 부분이 분리되어 독립적으로 작동  단점 : ViewController가 비교적 비대해지는 경향 ( 하나의 ViewController에 많은 역할과 책임 집중 -> 테스트가 어려워질 수 있음 ) - MVVM ( Model..

TIL 2024.04.30

44일차 TIL

- 2024.04.29 월 MegaStruct 프로젝트 정리 https://roasted-quiet-f1c.notion.site/MegaStruct-2fa3b4cf9afe4a09976fdd8c9f865440 MegaStruct | Notion메가구조체roasted-quiet-f1c.notion.site  다음 프로젝트 할 때 주의 !코드 정리코드 컨벤션git conflict 해결 시 신중하게MVC 패턴에 따른 파일 정리구현 시작 전에 필수 구현 기능들 잘 확인하고, 어떻게 구현할 지 공부하고 결정한 후에 구현 시작하기내 코드에 대한 이해도 높이기 ( 알고 사용하기 ! ) 프로젝트를 마치면서 더 공부했으면 하는 부분스크롤 뷰테이블 뷰viewDidLayoutSubviews()화면전환 (present, dis..

TIL 2024.04.30