| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- map
- swiftUI
- 애니메이션
- HIG
- uitableview
- RxCocoa
- Protocol
- ios
- MVVM
- Refactoring
- collectionview
- rxswift
- 스위프트
- Observable
- UICollectionView
- 리펙토링
- scrollview
- uiscrollview
- clean architecture
- ribs
- combine
- UITextView
- 클린 코드
- Xcode
- SWIFT
- 리팩토링
- Human interface guide
- swift documentation
- tableView
- Clean Code
- Today
- Total
목록ios (1133)
김종권의 iOS 앱 개발 알아가기
Code Completion (자동완성)Copilot과 유사하게 자동완성 기능을 제공빌드세팅 - Isolated Global Variables전역변수는 Concurrency에서 안전하지 않다는 warning 표출해주는 옵션위 옵션을 키고 빌드 시 warning 확인 가능간편한 프리뷰 - @Previewable아래와 같은 RobotFaceSelectorView를 프리뷰 사용할 때 currentFace에 관한 바인딩이 필요한 상황기존에는 위 뷰를 preview하려면 wrapper view를 만들어서 currentFace를 바인딩시켜야함ex) 기존 방법struct Simple_Previews: PreviewProvider { struct ContainerView: View { @State ..
Swift 저장소Swift의 레포는 원격 저장소는 github을 사용하고 있으며, 기존에는 github.com/apple/* 형태로 관리되고 있었음대표적인 swift github주소: https://github.com/apple/swift이제 swift는 github.com/swiftlang 주소로 이전될 것곧 마이그레이션을 시작할 예정이며 자세한 내용은 Swift.org에 게시 https://github.com/swiftlangSwift 언어 업데이트 - 1) Noncopyable types (~Copyable)swift에서 value타입이나 reference타입이나 모두 복사가 가능Noncopyable types는 이 기본 복사 가능성을 막아주는 역할고유한 소유권을 표현하고자 할 때 적합한 키워드만약..
이번 WWDC 세션의 의미Swift언어가 어떻게 발전하며 앞으로도 어떤 패러다임을 가지고 발전할 것인가를 이해할 수 있는 세션2024년 Swift의 핵심 패러다임: 다른 플랫폼과의 상호운용성Swift 언어의 진화2014년에 Swift1.0부터 2024년에 Swift6.0이 나오는데, 2023년까지는 전반적으로 다른 언어와 어울릴 수 있는 기반을 다루도록 진화특히 2023년에는 C++과의 상호 운용성을 도입SwiftData와 같이 차세대 API를 활성화하는 매크로도 도입애플의 Swift팀 구성2024년에 새로 생긴팀: Plaform, Ecosystem, Embeddedplatform: Swift를 더 많은 곳으로 가져오는데 집중하기 위한 플랫폼 운영팀Ecosystem: 개발자 경험과 새로운 생태계 그룹을 ..
* SwiftUI Sample 앱 살펴보기 전체 목차는 여기 참고TabView 개념SwiftUI에서의 TabView는 선언적으로 매우 직관적으로 사용이 가능Text 밑에 TabView를 표현하고 싶은 경우?아래 코드에 TabView 블록을 추가struct ContentView: View { var body: some View { Text("Hello, world!") .padding() }}(TabView 추가)struct ContentView: View { var body: some View { Text("Hello, world!") .padding() TabView { // 이제 화면 A, B, C 뷰를 넣고 싶은 경우, 차례로 연달아서 넣기struct Cont..
1. Navigation AppAbout Me, TabView 살펴보기Choose Your Own Story 살펴보기Date Planner 살펴보기 2. Presenting ContentOrganizing with GridsEditing GridsImage GalleryLaying Out Views3. Retrieving Content from a ServerMeme Creator4. Responding to User InputBubble LevelSeismometerRecognizing GesturesAnimating Shapes * 참고- https://developer.apple.com/tutorials/sample-apps/aboutme
UITableViewCell과 UICollectionViewCellUITableViewCell과 UICollectionViewCell은 각각 반복되는 여러 데이터를 화면에 보이는 지점만 렌더링하여(cellForRowAt, cellForItemAt) 효율적으로 뷰를 그릴 수 있는 인터페이스UITableViewCellUICollectionViewCell각 커스텀 셀을 구현할 때 비슷한 구조를 가지고 있음ex) tableViewCell 구현class CustomTableViewCell: UITableViewCell { let titleLabel = UILabel() override init(style: UITableViewCell.CellStyle, reuseIdentifier: String..
iOS 17+에서 UIActivityViewController 접근성 버그버튼을 눌러서 UIActivityViewController를 띄우는 화면에서 접근성이 버튼에서 자동으로 UIActivityViewController으로 이동되지 않는 현상기본지식) fullScreen 모달 스타일로 UIViewController가 화면에 보여지게되면 접근성도 UIViewController로 자동으로 포커스가 이동되어야 하는데 iOS 17+ 에서 UIActivityViewController를 present로 띄우면 포커스가 자동으로 이동 안되는 경우가 존재코드)import UIKitclass ViewController: UIViewController { override func viewDidLoad() { ..
코드 실행아래와 같이 viewDidAppear에서 a()함수가 실행되면 출력되는 값은?"a" -> "b" -> "c" -> "deinit" 일까?class VC: UIViewController { deinit { print("deinit") } override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = .systemBlue } override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) a() } func a() { prin..
