전체 글188 250615 TIL | 사이판에서 돌아왔아요 ㅇ안녕하세요 저입니다. 요즘 공부를 왤케 안했냐면요 싸이판 갔다왔서요!!! 안물어봤다고요? 넵 ㅠㅠ 그럼 오늘 공부한 내용 스타트~ iOS 앱 구조와 UI 기초 개념 정리SceneDelegate vs AppDelegateAppDelegateapplication(_:didFinishLaunchingWithOptions:) 등을 통해 앱 초기 설정 가능→ 다른 사람이 만든 프로젝트를 처음 볼 때 AppDelegate부터 보면 흐름 파악에 도움 됨(저도 얼릉 입사해서 앱델리게이트로 코드 파악하고시버요 ^_^)앱 전체 생명 주기를 다룸. 앱이 실행될 때 가장 먼저 실행되는 객체SceneDelegate앱의 각 UI 씬(Scene) 단위 생명 주기를 관리함→ 필요한 기능이 있다면 공식 문서/검색 통해 그때그때 찾아.. TIL 2025. 6. 15. 250529 TIL | 코드로 Navigationcontroller 구현하기 코드로 내비 구현하기func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { guard let windowScene = (scene as? UIWindowScene) else { return } window = UIWindow(windowScene: windowScene) let naviController = UINavigationController(rootViewController: ViewController()) window?.rootViewController = naviController .. TIL 2025. 5. 29. 250523 TIL | firebase SPM과 Pod이 꼬이다... 해결방법...! 안녕하세요? ㅠㅠ한시간 반에 걸쳐 SPM과 Pod 설정 중 꼬인 문제들을 드디어 해결했다 ㅠㅠㅠㅠㅠㅠㅠ Access level on imports require '-enable-experimental-feature AccessLevelOnImport' 이런 오류가 발생함 SPM 해결 안돼서 pod으로 다시 돌아가기로 결정,package가서 firebase 삭제함 ㅜ 근데 삭제 안됨 ㅜ다시 SPM으로 도전.. 응 무한 실패 * 10000 각설하고 저 문제는 firebase sdk 버전이 맞지 않아 생긴 오류 package dependencies 가서 삭제하지 말고 여기서 삭제해야함 사실 삭제 안해도 되고 버전 10.24.0으로 맞춰줘서 해결!!!!!! 버전 낮추세요!!!!!!!!!원래는 11.??.??.. TIL 2025. 5. 23. [Swift] TableView의 모든 것을 알아보기!!! 안녕하세요..? 저는 ㅇㅅㅈ이고요오늘은 테이블뷰에 대해서 좀 더 자세히 공부해보았어요 그럼 정리 시작! iOS 앱 개발에서 많이 쓰이는 UI 컴포넌트 중 하나가 바로 UITableView! (그치만 컬랙션뷰가 더 많이 쓰인다는 사실)수십 개, 수백 개의 데이터를 스크롤 가능한 리스트 형태로 보여줄 때 사용하며, 성능과 유연성 모두 뛰어남이 글에서는 TableView의 기본 구조부터 작동 메커니즘, 실전 코드까지 차근차근 정리해보겠어요TableView란?iOS에서 여러 개의 데이터를 세로 방향으로 나열해 보여주는 컴포넌트-> 그래서 위아래로 쭈르륵 스크롤 가능)UICollectionView보다 구조가 단순하고 리스트 형태 UI에 최적화되어 있음-> 현업에서는 더 고도화된 사용을 위해 컬랙션 뷰를 주로 쓴다.. iOS/swift 2025. 5. 20. 250520 TIL | 셀 재사용부터 앱 생명주기까지 안녕하세요?오늘은 셀 재사용, 앱 생명주기, if/guard 문 등등 많은 내용을 정리해보았서요!그럼 렛츠고셀 재사용과 메서드prepareForReuse()란?UITableViewCell 또는 UICollectionViewCell의 재사용 직전에 호출됨셀에 남아있는 이전 상태 초기화용으로 주로 사용ex: 이미지 초기화, 텍스트 리셋 등if문, guard, 클로저, 옵셔널 처리if 분기문이 많으면 초보 개발자 티 남→ 로직 분기 단순화하거나 함수 분리 고려삼항연산자는 ()로 감싸면 가독성 좋아짐guard 구문에는 비즈니스 로직 넣지 않기→ 유효성 검사만 하는 게 좋음guard / if는 옵셔널 바인딩 도구일 뿐, 자체가 바인딩 로직은 아님클로저 안에서 self에 ? 붙이면 안전한 참조 가능→ [weak s.. TIL 2025. 5. 20. 250511 TIL | 메모리 누수, Firebase Firestore, SPM, TableViewCell 등등 안녕하세요? 오늘은 많은 내용들에 대해 공부했어요그리고 그걸 정리해봤답니다그럼 레츠 고async/awaitSwift 5.5부터 등장한 비동기 문법Swift 6부터 완전히 안정화됨기존 콜백 기반 코드를 가독성 좋게 개선 가능ARC & Memory Leak메모리 누수(memory leak)는 강한 참조 사이클로 발생주로 클로저에서 [strong self] 사용 시해결: weak self → 캡처된 객체가 옵셔널됨레거시 코드에서 unowned → weak으로 변경 권장Xcode의 Memory Graph, 외부 메모리 누수 탐지 라이브러리(memory leak detector)로 추적 가능ARC(Automatic Reference Counting)는 과제 전형 평가 항목에 포함되기도 함코드 스타일 / 가독성gu.. TIL 2025. 5. 11. 250510 TIL | 채팅 기능 구현하며 내용 공부함 하이염 오늘은 테이블뷰 구성하는 메커니즘에 대한 3차..? 복습을 했어요 아이고 헷갈리라 코드 작성하고 주석으로 정리함 레츠고! //// ChatViewController.swift// Flash Chat iOS13//// Created by Angela Yu on 21/10/2019.// Copyright © 2019 Angela Yu. All rights reserved.//import FirebaseFirestoreimport FirebaseCoreimport FirebaseAuthimport UIKitclass ChatViewController: UIViewController { @IBOutlet weak var tableView: UITableView! @IBOutlet weak.. TIL 2025. 5. 10. [Swift] 테이블뷰 메커니즘 구성하는 법 안녕하세요 오늘은 테이블뷰를 구성하는 방법에 대해 알아보아요 레쯔고! 테이블뷰는 많은 데이터를 효율적으로 보여주기 위한 리스트 UI 컴포넌트임!화면에 보이는 셀만 메모리에 올리고, 스크롤할 때 재사용하면서 새로운 데이터를 표시함전체 메커니즘UITableView: 뷰 컨트롤러 안에 들어가는 리스트 뷰임ㅇㅇ 테이블 뷰 자체는 데이터가 없음 → 데이터는 따로 전달해줘야 함DataSource 프로토콜:테이블뷰가 몇 개의 셀이 필요한지, 각 셀에 어떤 데이터를 넣을지 묻는 인터페이스꼭 구현해야 하는 2가지 메서드 있음:numberOfRowsInSection: 몇 개의 셀이 필요한지 반환cellForRowAt: 각 셀에 어떤 내용을 표시할지 반환UITableViewCell: 셀 하나하나를 의미! 셀은 dequeue.. iOS/swift 2025. 5. 10. 250507 TIL | FireStore 사용법 익히기, 딕셔너리 활용 안녕하세요 ~오늘은 어제 공부한 코드를 안보고 혼자서 쳐봤어요! Flash Chat 앱 처음부터 끝까지 논스톱으로 작성해봄!-> 총 3시간 정도 걸림 ㅎ 다만,, 복습하기로 체크해 놓은 부분은 약간의 컨닝이 있었기 때문에,,,다시 복습하는걸로!!!import FirebaseFirestoreimport FirebaseCoreimport FirebaseAuthimport UIKitclass ChatViewController: UIViewController { @IBOutlet weak var tableView: UITableView! @IBOutlet weak var messageTextfield: UITextField! private var messages: [Message] = [] l.. TIL 2025. 5. 7. 250506 TIL | Firebase Firestore 데이터 가져오기, 연휴 끝🙀 안야세요오늘은 채팅 앱에서 메세지 데이터들을 가져오는 과정에 대한 공부를 했어요// Firestore에서 메시지를 불러오는 메서드private func loadMessages () { // Firestore의 특정 컬렉션에서 모든 문서를 가져옴 self.db.collection(K.FStore.collectionName).getDocuments { querySnapShot, error in // 문서 스냅샷이 nil이 아닐 경우 실행 ⭐️documents는 실제로 가져온 문서들의 배열⭐️ if let snapShotDocument = querySnapShot?.documents { // 문서 배열을 순회하며 각 문.. TIL 2025. 5. 6. [swift] 동기와 비동기 동기(Synchronous)와 비동기(Asynchronous)는 작업 실행 순서와 처리 방식에 관련된 개념임Swift에서는 특히 async/await, DispatchQueue, completion handler 같은 방식으로 비동기 처리를 많이 사용함✅ 동기(Synchronous)작업이 순차적으로 실행됨앞 작업이 끝나야 다음 작업이 실행됨코드 흐름이 직관적이지만, 시간 오래 걸리는 작업이 있으면 앱이 멈춰 보일 수 있음func fetchData() -> String { // 서버에서 데이터 가져온다고 가정 return "데이터"}let result = fetchData() // 완료될 때까지 기다림print(result)✅ 비동기(Asynchronous)작업이 백그라운드에서 실행되고, 바로.. iOS/swift 2025. 4. 29. [swift] for - in과 forEach문에 대해 알아보자! 안냐세요 오늘은 for -in 문법과 forEach 문법에 대해 알아보고 차이점을 살펴볼게요! 고고 for-in과 forEach는 Swift에서 컬렉션을 순회(iterate)할 때 사용하는 대표적인 문법임!각각 장단점이 있음🔁 for-in 문법let numbers = [1, 2, 3, 4, 5]for number in numbers { print(number)}명령형 스타일임continue, break, return 사용 가능await와 함께 비동기(for-await-in) 처리 가능가독성이 좋고 범용적임 🔄 forEach 메서드let numbers = [1, 2, 3, 4, 5]numbers.forEach { number in print(number)}함수형 스타일임 (클로저를 파라미터로.. iOS/swift 2025. 4. 29. 이전 1 2 3 4 5 6 7 ··· 16 다음