바이너리 분석하기
·
iOS/Modularization
👋 들어가기 전랭그래프 포스팅 이후, 약 3개월만의 포스팅이다..회사와 사이드에 치이다보니, 학습시간이 많이 없어 포스팅을 할께 없었다. 이번 포스팅은 최근 회사에서 바이너리를 분석하는 경험을 하게되었는데, 그 때 알게된 지식과 유용한 tool 사용버을 기록하고자한다.🏁 학습할 내용nmotool✊ nm유닉스 계열 운영체제의 object, 실행, 라이브러리등파일내에 포함된 심볼을 확인하는 도구🚀 역할컴파일/링크 오류 디버깅라이브러리 분석바이너리 분석 💬 명령어nm -[옵션 나열..] [파일]옵션설명-n (numeric-sort)주소 순서대로 정렬-u (undefined-only)정의도지 않은 심볼만 -C (Demangle)Mangling 심볼을 다시 사람이 읽기 쉬운 형태로 변환-D (dyamic)..
photoPicker에서 AVAsset 추출하기
·
iOS/SwiftUI
👋 들어가기 전 포토피커를 통해, photosPickerItem을 가져와서 AVPlayer까지 재생하는데,너무 오래 걸린다.. 단, 30초 밖에 안되는 영상인데 말이다... 개선하는 과정이 너무 어이없어서, 남겨놓으려한다..🏁 학습할 내용문제점개선 과정🤬 문제점 🐌 너무 느린 로딩 속도 Gif 이미지를 보면, 4초 쯤에 영상을 선택했는데, 화면이동이 약 26 ~ 27정도에 진행됐다.단, 32초 밖에 안되는 영상을 가져오는데 20초 가량이 걸린 것이다..여기서 느낀 이상한 점은 크게 2개다. 아니 왜이렇게 오래걸리는거야??갤러리에 접근하는데 왜, 권한을 안물어보지?? 권한 문제는 해결 과정에서 알아보고, 일단 왜 이렇게 오래걸리는 지, 문제를 파악해보자. 1️⃣ PhotosPickerItem을 잘못..
onScrollGeometryChange
·
iOS/SwiftUI
👋 들어가기 전 사이드에서, pullToRefresh와 Pagination Loading을 위해, 조금 old한 방법으로 구현을 했느네, iOS18.0 이상부터 사용가능한 좋은 API가 있어서 그걸로 대체해보려가한다..우리 프로젝트는 18.0이상이니깐..😂 기존 코드와 문제점 1️⃣ GeometryReader + PreferenceKey +coordinateSpace부가적인 코드가 너무 많음코드 흐름 파악이 힘듬 2️⃣ 타이밍을 운에 걸어야함ScrollView 높이를 얻기 위해 GeometryReader 내부의 proxy.size.height을 onChange에서 계속 받음 기능상 큰 문제는 없지만, 편법을 하기위한 트레이드 오프 생각보다 작지는 않아보인다.오늘의 주인공으로 해당 문제를 한번 해결해보..
빌드 시스템 (1)
·
iOS/Setting
🏁 학습할 내용미리보기빌드 프로세스작업 tool순서 결정동작 과정증분 빌드우리가 신경써야할 것은 무엇인가?사용자 스크립트👀 미리보기 자세히 들여다보기전에, 먼저 간단하게 알고가면 좋은 배경지식을 정리해보자. 🐝 빌드 프로세스 소스코드 컴파일 및 링크 (.m, .swift, exec .)리소스 복사 (헤더, asset카탈로그, 스토리보드)코드 사이닝 및 스크립트 실행 🔨 작업 tool1️⃣ Clang소스 코드 컴파일러 2️⃣ LD여러 .o 파일과 라이브러리를 하나의 실행파일 또는 프레임워크로 결합심볼 해석주소 재배치정적/동적 라이브러리 연결Mach-O 바이너리 생성입력: .o, .a, .dylib출력: 실행 파일, .app, .framework, .dylib 3️⃣ AC Tool (Asset Ca..
나만의 세팅 섹션 만들기
·
iOS/Setting
👋 들어가기 전 우연히 신기한 개념을 회사에서 경험해서, 혼자 한번 학습해보려고한다. 좋은 가이드라인을 역시 갓제드님께서 만들어놔서, 그걸 기반으로 조금 더 깊게 살펴보려고한다.🏁 학습할 내용Setting Bundle정의목적구조컨트롤 Type앱에서 값 읽어오는 법⚙️ settingBundle ⭐️ 정의iOS앱에서 앱 외부에서 사용자 설정을 구성하는데 사용되는 파일 묶음 🧩 목적앱 내에서 별도의 설정 UI를 만들 리소스가 없어 빠르게 설정 환경을 구축할 때특정 설정이 시스템 설정에 있는게 자연스러운걸 원할 때 🧱구조 Root.plist반드시 Root.plist라는 파일이 존재해야함기본 설정에 대한 내용이 포함됨Additional.plistRoot 하위에 계층적인 환경 설정을 구축할 때 사용됨이름은..
[WWDC2024] Create custom visual effects with SwiftUI
·
iOS/SwiftUI
🏁 학습할 내용Scroll effectColor treatmentsView transitionsText transitionsMetal shaders📜 Scroll effect 스크롤 시, 적용할 수 있는 다양한 effect를 살펴보자 🛞 ScrollTransition스크롤 시, 컨텐츠가 나타나고 사라질 때 적용할 전환 단계사이에 애니메이션을 적용 1️⃣ 파라미터 configurationScrollTransitionConfiguration 타입전환의 동작 종류를 정의, 스크롤 위치 변화에 대한 보간을 어떻게 애님에이션을 할 지.animated(_:): 불연속적 애니메이션.interactive(timeCurve: ...): 연속적 애니메이션.identity: 전환 애니메이션 사용 X axisAxis ..