| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- mangle
- mach-o파일분석
- UIKit
- WWDC24
- 이진삽입정렬
- mainrunloop
- updatecycle
- IOS
- Swift
- actor
- 다이나믹링크분석
- applaucnchprocess
- 뷰를그리는메서드
- 뷰의레이아웃을계산하는메서드
- swiftconcurrency
- ciimage
- swift6
- modulararchitecture
- cgimage
- XCUITest
- Architecture
- SPM
- swift-demangle
- ios바이너리분석
- xcrun swift-demangle
- task
- swift6.1
- displayscale
- uicollectionview
- Xcode
- Today
- Total
목록iOS (27)
꾸준한 기록
선언형으로 뷰를 정의 선언형 🆚 명령형선언형명령형사과 뷰가 있다.동그랗고, 빨간색의 원이있다. App 프로토콜앱의 동작과 구조를 나타내는 프로토콜UIApplicationDelegateAdaptor를 사용하면 iOS앱의 UIKit app의 delegate가 호출되도록 할 수 있다.@mainstruct MyApp: App { var body: some Scene { WindowGroup { Text("Hello, world!") } }} Scene 프로토콜앱의 유저인터페이스에 해당 구현하면서 알게 된 사항화면 전환 메서드는 SceneDelegate에서만 호출된다. 반면에 스킴랜딩시에는 AppDelegate의 메서드만 호출된다.
구성1. 코드프로그램의 코드 존재2. 데이터global 변수, static 변수 존재global 변수 (file의 top level에 선언하는 것)프로그램이 시작할 때, 할당되며, 프로그램이 존료될 때 해제된다.3. 힙reference 타입 인스턴스 할당됨.동적 메모리 할당이 이루어지는 곳ARC를 이용해서 힙 메모리 영역을 관리.(개발자가 직접 할당과 해제를 관리할 수도 있다.)4. 스택함수 호출시 함수 호출에 관한 정보를 담는 스택 프레임이 저장됨.함수 호출이 완료되면, 자동으로 FILO 형식에 의해서, 스택프레임이 할당 해제됨value 타입 할당 Heap 영역에서 메모리가 관리되는 방식ARC가 관리Heap 영역에 할당된 인스턴스를 참조하는 코드가 늘어나면, 참조카운트가 1 증가함.참조카운트가 0이 되..
Friction vs. FlowFlow: 심리학에서 행동과 생각이 하나로 융합되는 상태. 기기 사용 시 필요한 다음 단계가 항상 가까이 있고 쉽게 접근 가능함을 의미.Friction: 사용자가 작업을 완료하는 데 방해가 되는 요소. 앱 전환이나 사용 중 발생하는 작은 불편함들.앱 전환의 예: 앱 내에서 모든 것이 완벽하게 동작하더라도 사용자는 여러 앱을 사용하여 작업을 완료해야 함. 앱을 전환하는 것은 약간의 마찰을 초래함.목표: 기기가 앱의 핵심 기능을 이해하고 상위 레벨에서 이를 제시하여 사용자 경험을 개선하는 것.Understanding the FrameworkApp Intents의 역할:앱의 핵심 기능을 정의하여 시스템 기능(Siri, Spotlight 등)에서 사용할 수 있게 함.시스템 기능과 ..
Scene based app 에서 UIApplication.State의 의미가장 active한 scene의 값을 사용한다.가장 active 하다는 것을 판단하는 기준? 각 scene의 activationState 프로퍼티scene이 scene session과 connect되고, 다른 상태로 transition 되거나, disconnect될 때마다 상태가 바뀐다.어떤 상황에서 Scene이 특정 상태가 되는가?UnattachedScene이 생성된 직후 앱이 새롭게 실행될 때(이는 앱이 앱 스위처에 남아있는 상태에서 앱 인스턴스만 존재하지 않을 때, 앱을 다시 실행하는 경우도 포함된다.)시스템에서 시스템에서 리소스를 확보하기 위해 백그라운드 상태에 있는 앱을 유저가 앱 스위처에서 앱을 종료할 때 Foregr..
import SwiftUI@mainstruct LandmarksApp: App { var body: some Scene { WindowGroup { ContentView() } }}SwiftUI App은 App 프로토콜을 준수하는 struct를 갖는다.@main와 함께 사용 ➡️ 앱의 시작점에 해당 앱에서 보여줄 컨텐츠를 갖는 Scene을 return 한다. App앱의 동작과 구조를 표현하는 타입시스템에서 앱을 실행시킬 때 main() 메서드를 호출한다. App 프로콜이 main()의 default 구현을 제공앱의 entry 포인트(시작점)은 한군데여야 함 ➡️ @main 한번만 사용 가능 SceneUI를 구성하는 view를 갖는다.라이프사이클을 ..
업무를 하면서 FileSystem을 다룰 일이 많아져서, 블로그에도 정리해서 포스팅해보려 합니다. iOS FileSystem과 관련된 공식 문서에 따르면, 애플은 유저의 정보를 보호하기 위해 앱의 샌드박스 내부에 존재하는 파일만 접근할 수 있도록 제한하고 있습니다. 그리고 앱에서 FileSystem에 쉽게 접근할 수 있도록 FileManager라는 인터페이스를 제공합니다. 샌드박스 디렉토리는 크게 2가지 영역으로 나뉘어집니다. 1) Bundle Container 디렉토리: 앱의 Bundle에 해당 2) Data Container 디렉토리: 앱을 운영하기 위한 데이터 저장, 사용하는 용도에 따라서 하위 디렉토리가 다시 존재 오늘 제가 중점적으로 살펴볼 부분은 Data Container의 하위 디렉토리이며,..
이 포스팅은 iOS URL Loading System 요약입니다. - URL Loading System을 이용해서 remote URL 리소스에 접근할 수 있습니다. - http 프로토콜 뿐만 아니라, custom 프로토콜을 이용하는 통신에서도 사용할 수 있습니다. - URL Loading System에서 데이터 로딩 작업은 일반적으로 비동기적으로 일어납니다. 구성 요소 1. URLSession 2. URLTask 3. URLSessionConfiguration 구성 요소 설명 URLSession을 이용하여 URLSessionTask를 생성할 수 있습니다. URLSessionTask를 이용하여 데이터를 업로드, 다운로드 할 수 있습니다. URLSessionConfiguration을 이용하여 캐싱, 쿠키, ..