| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- uitableview
- collectionview
- MVVM
- combine
- HIG
- Human interface guide
- map
- 애니메이션
- uiscrollview
- Observable
- swift documentation
- Protocol
- tableView
- Xcode
- SWIFT
- rxswift
- ribs
- swiftUI
- ios
- 스위프트
- UITextView
- 리펙토링
- 클린 코드
- 리팩토링
- RxCocoa
- UICollectionView
- scrollview
- Refactoring
- Clean Code
- clean architecture
- Today
- Total
목록분류 전체보기 (1694)
김종권의 iOS 앱 개발 알아가기
클로드 코드 vs 깃헙 코파일럿클로드 코드Anthropic은 2021년, OpenAI의 창립 멤버였던 `다리오 아모데이(Dario Amodei)`와 그 형제들이 설립OpenAI가 점점 상업화되고 AI 안전성(Safety)보다 성능 확장에만 치중하는 것에 반대하며 회사를 나옴Anthropic의 핵심 가치는 `안전하고 신뢰할 수 있는 AI`깃헙 코파일럿GitHub은 원래 오픈소스 코드의 저장소였지만, MS 인수 후 `모든 개발 단계에 AI를 심겠다`는 전략을 세우며 2021년 출시된 GitHub CopilotMS는 특정 모델(OpenAI)에만 국한되지 않고 Claude나 Gemini 같은 경쟁사 모델도 Copilot 안에서 선택할 수 있게 개방하도록 수정 -> 플랫폼의 힘 강화깃헙 코파일럿에서도 클로드 모델..
단축키cmd + esc: 포커싱 변경 (에디터 클로드코드 챗)코드를 드래그하고 cmd + esc하면 클로드코드 채팅창에 해당 코드 위치 참고하게됨드래그 상태에서도 단순히 포커싱만 변경만 원하는 경우, cmd+2 (클로드코드 챗이 2번째 탭에 있는 경우)shift + tab: 에이전트 모드 바꾸기 (아래에서 소개 예정)유용한 기능cmd + esc로 클로드코드 포커싱하고 난 후 shift + tab하면 모드 변경이 가능Ask before Edit: 클로드가 코드를 변경하려고 할 때마다 사용자에게 변경 사항을 보여주고 승인을 요청Edit Automatically: 사용자의 개별 승인 없이 클로드가 직접 파일을 수정Plan mode: 코드를 직접 수정하기 전에, 클로드가 수행할 작업의 단계별 계획을 먼저 세우..
클로드 코드 설치npm install -g @anthropic-ai/claude-codevscode 확장vscode 오픈 > 확장 > Claude Code for VS Code 설치IDE 오른쪽에서 생겨난 것을 확인 가능단축키 cmd + esc로 오픈위 화면에서 Claude.ai Subscription 클릭클로드코드 사이트에서 pro plan 구독 버튼을 누르고 결제vscode로 돌아와서 다시 클로드 코드 사이트로 갈 수 있는 URL이 있는데 그걸 복사해서 클로드 코드로 가서 확인 누르면 아래처럼 토큰이 보이는 화면 등장이 토큰을 복사하여 vscode에 떠있는 클로드 코드 chat 화면에 붙여넣기vscode에서 클로드 코드 화면을 닫고 다시 열으면 사용할 수 있는 화면 등장 * 이어서 클로드 코드 유용한..
변경된 앱 아이콘 컨셉예전에는 맥북, 아이폰, 애플워치 마다 같은 성격의 설정 앱이라도 이미지가 미세하게 달랐었음하지만 이제는 매우 심플하게 처리맥북, 아이폰: 네모난 배경애플워치: 동그란 배경이렇게 처리하게된 배경에는 `foreground layer`, `background layer`, `.icon`과 관련된 개념이 생겨나서 부터 확립Icon Composer (layer와 .icon)애플에서는 앱 아이콘을 정의할때 layer(*층)라는 것을 두어서 이것을 사용하여 앱 아이콘을 표현함층을 두어서 입체적으로 표현하려는것이 목적층(layer)들을 합쳐놓은(Composer)것을 Icon Composer라고 지칭이 개념에 의해, 이제 여러가지의 앱 아이콘 제작이 없이, 단순히 각 layer를 표현하는 이미지만..
cf) LazyVStack해서 구현 방법 포스팅 글은 이 링크의 포스팅 글 참고: https://ios-development.tistory.com/1760 StickyHeader 구현 아이디어StickyHeader를 순수 직접 구현하려면 많은 작업이 들겠지만, SwiftUI에서 List안에 Section(header:)를 이용하면, 스크롤 시 자동으로 위에 걸쳐지는 효과를 사용하면 구현하기가 매우 쉬움단, List의 속성에 .listStyle(.plain)을 해줘야 section으로 넣었던 UI들이 sticky header로 동작함구현List 선언struct ListStickyHeaderView: View { var body: some View { NavigationView { ..
SwiftUI Instruments 에 중요한 것SwiftUI Instruments를 보면 빨간선과 주황선이 보이는데, 이 정보들은 중요한 것임(아래 사진 관련 내용: https://ios-development.tistory.com/1815)빨간색 선 기준기준: View의 body 계산 시간이 1.0ms를 초과할 때 표시의미: 매우 심각한 성능 저하 상태영향: 120Hz 디스플레이(ProMotion) 환경에서 프레임당 가용 시간은 약 8.3ms인데, 뷰 하나 그리는 데 1ms를 넘겨버리면 실제 렌더링 루틴 전체가 꼬이며 눈에 띄는 Hitch(버벅임)가 발생주황색 선 기준기준: View의 body 계산 시간이 0.5ms를 초과할 때 표시의미: 성능 저하 주의 단계영향: 당장 화면이 멈추지는 않더라도, 이런..
탭했을 때 키보드 내리기다른 제스처도 동시에 동작하게끔 하기 위해 보통 아래처럼 simultaneousGesture를 사용하여 tapGesture 이벤트를 얻어서 isFocused = false로 처리struct ContentView: View { @State private var text: String = "" @FocusState private var isFocused: Bool var body: some View { ScrollView { VStack(spacing: 16) { TextField("텍스트를 입력하세요", text: $text) .textFieldStyle(.roundedBor..
전체빌드 개념단어 그대로 캐싱 없이, a부터 z까지 모든 파일을 빌드하는 것 cf) 빌드란?소스 코드들을 실행 가능한 형태로 메모리에 올리는 것증분빌드 개념증분 빌드(Incremental Build)는 “변화가 영향을 미치는 범위만 찾아서 필요한 파일만 재컴파일”하는 방식Xcode는 이를 위해 “의존성 그래프(Dependency Graph)”와 “인터페이스 파일(.swiftinterface / .dia)”을 사용증분빌드 원리빌드 시스템은 파일마다 해시(hash) 또는 timestamp를 기록해 두고 있다가 사용FileA.swift → 해시값 0xA2B3 FileB.swift → 해시값 0xC883Swift는 모든 .swift 파일 내부의 타입, 프로토콜, extension 등을 분석해 파일 간의 의존성 ..
