| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- 리팩토링
- rxswift
- HIG
- MVVM
- clean architecture
- Clean Code
- Observable
- 리펙토링
- 클린 코드
- 스위프트
- Protocol
- UICollectionView
- RxCocoa
- Refactoring
- map
- tableView
- 애니메이션
- Xcode
- Human interface guide
- uitableview
- uiscrollview
- ribs
- combine
- swiftUI
- SWIFT
- swift documentation
- collectionview
- ios
- scrollview
- UITextView
- Today
- Total
목록2025/10 (5)
김종권의 iOS 앱 개발 알아가기
1. VScode에 깃헙 코파일럿 세팅 방법 (github copilot)2. VScode에 깃헙 코파일럿 활용 방법 (github copilot)3. VScode에 깃헙 코파일럿 활용 방법 (github copilot, 지침, 프롬프트) github copilot 개념GitHub Copilot은 GitHub과 OpenAI가 공동 개발한 AI 프로그래밍 도우미IDE에서 gpt5, claude code와 같은 것들을 사용할 수 있게 제공해주는것github copilot의 기능자동 코드 완성주석이나 함수 이름만 써도 나머지 코드를 자동으로 제안자연어 설명 기반 코드 생성“사용자 로그인 화면 만들기”처럼 자연어로 설명을 쓰면,그 설명에 맞는 코드를 자동으로 생성다양한 언어 지원Swift, Python, Jav..
XCMetrics 오픈소스오픈소스github: https://github.com/spotify/XCMetrics스포티파이가 만든 오픈소스이며, 성능에 관해 실시간으로 모니터링 할 수 있는 시스템xcactivitylog 형식으로 저장된 Xcode 및 xcodebuild 로그를 파싱할 수 있는 도구인 XCLogParser를 기반으로 구축Spotify iOS 앱에서 약 100만 개의 빌드와 100억 개 이상의 단계를 수집했고, 이를 통해 프로젝트 구조 및 아키텍처와 관련하여 중요하고 정보에 기반한 결정을 내릴 수 있음이점xcactivitylog 파일에서 데이터를 추출하여 빌드 시간, 경고, 오류 및 기타 메타데이터를 원하는 방식으로 볼 수 있음정렬, 검색이 가능하여, 어떤 부분이 빌드 시간이 오래걸리고 언제부..
행이란?사용자가 앱을 쓸 때 지연된다고 느껴지는 것예) 사용자가 버튼을 누른 경우, 조금 있다가 반응한다는 느낌을 주는 것애플에서 제공하는 가이드)의미Instant즉각적인반응이 바로 느껴질 정도로 빠름 (~100ms 이내)Circumstantial상황에 따라 달라지는, 약간 느리지만 용인됨약간의 지연(~250ms)은 사용자가 느끼지만 불편하지 않음Microhang미세한 멈춤눈에 띄는 짧은 멈춤 (~500ms 미만)Hang완전한 멈춤(먹통)반응이 끊기거나 멈춘 듯한 상태 (~500ms 이상)즉, 즉각적이려면 100ms 이내로 동작하게끔해야함또 행의 기준은 500ms 이상 걸리는 동작을 의미함행 파악하는 방법위에서 알아본대로 500ms 이상 걸리는 작업을 행이라고 정의이 행은 Instruments의 Time..
Time Profiler Xcode > Cmd + I로 Instrument 실행 > Time Profiler 선택창이 뜨면 Record 버튼을 눌러서 앱을 실행중지 버튼을 눌러서 분석 중지그래프를 보면 삐쭉 튀어나와있는 부분에 커서를 대면 시간이 얼마나 걸렸는지 알 수 있음그 부분을 왼쪽마우스로 클릭하고 아래 로그를 보면 어떤 부분에서 시간이 걸렸는지 확인이 가능더 구체적으로 확인 방법위에 까지 알아본 방법은 대충 어떤 함수가 많이 걸리는지 알려주는데 더욱 구체적인 back trace를 보고싶은 경우는 아래처럼 처리가 필요Samples를 클릭Profile 클릭하단 로그를 보면 아래처럼 누적값으로 Weight가 표시되는데 가장 큰 weight가 증가한 start부분을 펼치기option + 왼쪽마우스 클릭하..
frame(maxWidth: .infinity)의 의미"부모가 줄 수 있는 만큼 가로폭을 가득 채워라" 란 의미frame(maxWidth: .infinity)는 최대 크기를 제한 한다는 느낌을 주는데 이 의미가 아님다른 예제)아래처럼 텍스트가 좌우 24 패딩을 갖는 뷰 구현?여기도 frame(maxWidth: .infinity)를 추가하여 구현struct Example1: View { var body: some View { VStack { Text("Hello") .frame(maxWidth: .infinity) // Rounded 처리 방법보통 외부 마진을 주고 버튼이 수평으로 쫙 펼친 아래와 같은 것을 요건이 있는 경우?구현하다보면 아..