일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Observable
- tableView
- 리팩토링
- HIG
- uitableview
- Refactoring
- Xcode
- Human interface guide
- swiftUI
- clean architecture
- 스위프트
- ribs
- Clean Code
- RxCocoa
- ios
- MVVM
- 애니메이션
- Protocol
- 클린 코드
- UICollectionView
- uiscrollview
- 리펙터링
- combine
- swift documentation
- map
- rxswift
- 리펙토링
- SWIFT
- collectionview
- UITextView
- Today
- Total
목록WWDC 정리 (19)
김종권의 iOS 앱 개발 알아가기
낮은 수준의 성능을 야기하는 요소 4가지1) Function call - 최적화 되지 않은 많은 함수 호출2) Memory allocation - 메모리 할당에 너무 많은 시간을 소비3) Memory layout - 데이터가 표현되는 방식 때문에 많은 시간이나 메모리 낭비4) Value copying - 불필요하게 값을 복사하고 파괴하는데 많은 시간을 소비* 1), 2)번 내용은 이전 포스팅 참고3) Memory layoutmemory layout이란?메모리를 할당한 후 해당 메모리를 사용하여 값을 저장하는 방법메모리 에서의 representaion이라는 개념representation은 메모리 안에서 value를 어떻게 바라보는가를 의미아래 코드에서 array는 메모리 관점에서 "두 개의 double 값..
낮은 수준의 성능을 야기하는 요소 4가지1) Function call - 최적화 되지 않은 많은 함수 호출2) Memory allocation - 메모리 할당에 너무 많은 시간을 소비3) Memory layout - 데이터가 표현되는 방식 때문에 많은 시간이나 메모리 낭비4) Value copying - 불필요하게 값을 복사하고 파괴하는데 많은 시간을 소비-> Swift perfomance는 대부분 위 4가지 비용 중 하나 이상에 영향을 미침성능 1) Function call무의식적으로 사용하는 코드중 성능에 영향을 주는 Function call 요소인수, 함수의 주소, 메모리 로컬 상태에 함수 정보 할당Call dispatchstatic dispatch: 컴파일 타임에 우리가 호출하는 함수를 정확히 알..
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: 개발자 경험과 새로운 생태계 그룹을 ..