일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- uiscrollview
- ios
- scrollview
- ribs
- Clean Code
- Protocol
- Refactoring
- MVVM
- 리펙토링
- UITextView
- combine
- SWIFT
- Observable
- swiftUI
- Human interface guide
- 클린 코드
- UICollectionView
- 애니메이션
- Xcode
- tableView
- clean architecture
- collectionview
- RxCocoa
- swift documentation
- 스위프트
- rxswift
- map
- 리팩토링
- uitableview
- HIG
- Today
- Total
목록전체 글 (1652)
김종권의 iOS 앱 개발 알아가기

Multiline String Literal 개념문자열을 표시할 때 따옴표 3개로 표현하는 것label.text = """abcdef ab123456가나다라"""이 방법을 사용할 때 가끔 indent에 대해서 헷갈리는 경우가 있는데, indent는 끝 따옴표 """의 시작 지점이 0 indent라는 것을 알기ex) 아래 코드들 모두 화면에서는 동일하게 보임 label.text = """abcdef ab123456가나다라"""label.text = """abcdef ab123456가나다라"""label.text = """ abcdef ab 123456 가나다라 """만약 마지막 """ 따옴표를 기준으로 칸이 띄어져 있으면 그만큼 indent가..

Widgets and Live Activities기존에 iOS에만 있던 Live Activities 기능이 watchOS에서도 추가됨iOS 기반의 Live Activities가 자동으로 Apple Watch에 표출supplementalActivityFamilies에 small과 medium을 적용하여 watchOS에서 한 번에 더 많은 가사를 표출custom containers - 새로운 ForEach(subviewOf:)ForEach의 새로운 API인 ForEach(subviewOf:)를 사용하면 재귀적으로 하위뷰를 접근하여, 계속 뷰가 위에 쌓이는 UI구현이 가능 * container 관련 UI 구체적인 개념은 WWDC24 Demystify SwiftUI containers 참고Ease of use ..

Side bar UI 진화 (TabView)iOS 18.0에서는 사이드바에서 특정 버튼을 누르면 상단으로 메뉴가 이동됨또 사용자가 항목을 재정렬 할 수 있는 기능이 추가됨사용자가 자주 사용하는 옵션과 사용하지 않는 옵션을 원하는데로 커스터마이징 할 수 있게 제공Side Bar 상단 메뉴 전환 옵션 적용 방법TabView로 감싸진 코드에, tabViewStyle(.sidebarAdaptable)를 사용탭 재정렬 및 제거와 같은 옵션 적용 방법tabViewCustomization() 사용(이렇게 적용하면 macOS, tvOS에서도 자연스럽게 적용됨)tvOS에서 적용된 모습macOS에 적용된 모습* 이 밖의 tabView에 관한 구체적인 내용은 WWDC24 Improve your tab and sideba..

Explicit Modules단 한줄의 코드도 변경하지 않고 빌드 향상이 가능더 빠른 디버깅 제공C와 Objective-C의 경우에는 Explicit Modules 기능이 디폴트로 on 되어있고, Swift는 build setting에서 설정 필요Explicit Modules 컴파일 단계explicit built modules를 yes로하면 각 컴파일 단위의 처리를 3단계로 처리ScanBuild ModulesBuild SourceScan단계와 Build Modules 단계는 빌드 로그에서 표시된 것을 확인 가능"Scan Dependency", "Compile Clang module", "Compile Swift module" 커멘드로 표출이전에는 원래 이 단계들이 소스 파일 컴파일의 일부로, 암시적으로 ..

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..