ios
-
https://showcove.medium.com/library-framework-%EA%B7%B8%EB%A6%AC%EA%B3%A0-xcframework-15387031964b Library, Framework 그리고 XCFrameworkLibrary, Framework, XCFramework 각각의 차이점에 대해 알아보자.showcove.medium.comhttps://tech.kakao.com/posts/521 Swift Package Manager 적용기 - tech.kakao.com안녕하세요! 카페앱개발파트에서 iOS 개발을 하고 있는 셀린(Celine.jin)...tech.kakao.comhttps://dev.gmarket.com/53 iOS Framework 에서 다른 Framework 사용시..
[스크랩] Framework, Library, ...https://showcove.medium.com/library-framework-%EA%B7%B8%EB%A6%AC%EA%B3%A0-xcframework-15387031964b Library, Framework 그리고 XCFrameworkLibrary, Framework, XCFramework 각각의 차이점에 대해 알아보자.showcove.medium.comhttps://tech.kakao.com/posts/521 Swift Package Manager 적용기 - tech.kakao.com안녕하세요! 카페앱개발파트에서 iOS 개발을 하고 있는 셀린(Celine.jin)...tech.kakao.comhttps://dev.gmarket.com/53 iOS Framework 에서 다른 Framework 사용시..
2024.06.13 -
https://velog.io/@ictechgy/SwiftUI%EC%9D%98-View-%EB%A0%8C%EB%8D%94%EB%A7%81%EC%9D%80-%EC%96%B8%EC%A0%9C-%EC%9D%B4%EB%A3%A8%EC%96%B4%EC%A7%80%EB%8A%94%EA%B0%80
[스크랩] SwiftUI의 View 렌더링은 언제 이루어지는가?https://velog.io/@ictechgy/SwiftUI%EC%9D%98-View-%EB%A0%8C%EB%8D%94%EB%A7%81%EC%9D%80-%EC%96%B8%EC%A0%9C-%EC%9D%B4%EB%A3%A8%EC%96%B4%EC%A7%80%EB%8A%94%EA%B0%80
2024.04.19 -
RunLoop란 소켓, 파일, 키보드 마우스 등의 입력 소스와 타이머를 처리하는 이벤트 처리 루프. 타이머는 입력이 아니지만 특별한 타입이며 타이머 이벤트가 발생해도 RunLoop가 리턴되지 않는다. 모든 Thread는 RunLoop를 가질 수 있고 RunLoop.current를 통해 접근될 때 생성되고 실행도 직접시켜줘야 한다. 단 Main Thread는 애플리케이션이 실행될 때 자동으로 RunLoop를 생성하고 실행하며 이를 Main RunLoop라고 한다. RunLoop 클래스는 일반적으로 스레드에 안전하지 않으므로 현재 스레드의 컨텍스트 내에서만 메서드를 호출해야 한다. RunLoop는 한 번 실행되면 이벤트를 가져와서, 이에 대한 핸들러를 수행하고 대기상태에 들어간다. 계속해서 이벤트를 처리하려..
RunLoopRunLoop란 소켓, 파일, 키보드 마우스 등의 입력 소스와 타이머를 처리하는 이벤트 처리 루프. 타이머는 입력이 아니지만 특별한 타입이며 타이머 이벤트가 발생해도 RunLoop가 리턴되지 않는다. 모든 Thread는 RunLoop를 가질 수 있고 RunLoop.current를 통해 접근될 때 생성되고 실행도 직접시켜줘야 한다. 단 Main Thread는 애플리케이션이 실행될 때 자동으로 RunLoop를 생성하고 실행하며 이를 Main RunLoop라고 한다. RunLoop 클래스는 일반적으로 스레드에 안전하지 않으므로 현재 스레드의 컨텍스트 내에서만 메서드를 호출해야 한다. RunLoop는 한 번 실행되면 이벤트를 가져와서, 이에 대한 핸들러를 수행하고 대기상태에 들어간다. 계속해서 이벤트를 처리하려..
2023.07.25 -
UIView 컨텐츠를 보여주고 사용자가 인터랙션할 수 있는 사각형 틀을 제공하는 기본 UI 컴포넌트 Auto Layout API 제공 CALayer의 delegate이자 래퍼, 컨텐츠의 드로잉과 애니메이션을 CALayer에 위임 draw(_:) 메소드가 CPU의 메인스레드에서 동작 UIResponder의 서브클래스이므로 responder chain내에서 터치나 제스처 이벤트 핸들링 가능 Accessibility 지원 CALayer UIView의 기반을 제공하지만 CALayer만으로 UI를 구현할 수는 없다. 컨텐츠를 캡처하여 비트맵으로 backing store에 캐싱 GPU를 사용하여 렌더링 -> 고주사율의 부드러운 애니메이션 가능 UIView보다 성능이 좋아서 복잡한 애니메이션이나 퍼포먼스가 요구되는 ..
UIView와 CALayerUIView 컨텐츠를 보여주고 사용자가 인터랙션할 수 있는 사각형 틀을 제공하는 기본 UI 컴포넌트 Auto Layout API 제공 CALayer의 delegate이자 래퍼, 컨텐츠의 드로잉과 애니메이션을 CALayer에 위임 draw(_:) 메소드가 CPU의 메인스레드에서 동작 UIResponder의 서브클래스이므로 responder chain내에서 터치나 제스처 이벤트 핸들링 가능 Accessibility 지원 CALayer UIView의 기반을 제공하지만 CALayer만으로 UI를 구현할 수는 없다. 컨텐츠를 캡처하여 비트맵으로 backing store에 캐싱 GPU를 사용하여 렌더링 -> 고주사율의 부드러운 애니메이션 가능 UIView보다 성능이 좋아서 복잡한 애니메이션이나 퍼포먼스가 요구되는 ..
2023.07.21 -
UIView가 생성되면 아래 3단계를 거치는데, 이 3단계는 단방향으로만 일어나는 것이 아니라 특정 단계가 이전 단계나 전체 단계를 다시 트리거링 할 수 있다. 한 사이클이 1/60초에 실행된다. 각 단계의 메소드들은 main run loop의 마지막 부분인 update cycle에서 호출되므로 직접 호출해서는 안된다. Update step - updateConstraints() 하는 일: 시스템이 view에 필요한 constraint들을 계산하고 설정 호출시점 시스템이 자동으로 호출하는 경우: view hierarchy에서 bottom-up 순으로 호출 constraint 활성화/비활성화 constraint 값, 우선순위 변경 view를 view hierarchy에서 삭제 명시적으로 호출을 요청하는 방..
Auto Layout 라이프사이클 한눈에 볼 수 있게 정리하기UIView가 생성되면 아래 3단계를 거치는데, 이 3단계는 단방향으로만 일어나는 것이 아니라 특정 단계가 이전 단계나 전체 단계를 다시 트리거링 할 수 있다. 한 사이클이 1/60초에 실행된다. 각 단계의 메소드들은 main run loop의 마지막 부분인 update cycle에서 호출되므로 직접 호출해서는 안된다. Update step - updateConstraints() 하는 일: 시스템이 view에 필요한 constraint들을 계산하고 설정 호출시점 시스템이 자동으로 호출하는 경우: view hierarchy에서 bottom-up 순으로 호출 constraint 활성화/비활성화 constraint 값, 우선순위 변경 view를 view hierarchy에서 삭제 명시적으로 호출을 요청하는 방..
2023.07.21 -
이슈의 시작: 다운 사이징을 했는데 이미지 데이터 크기가 오히려 늘어났다 예전에 개발을 담당했던 모 서비스에서 이미지를 전송할 때 이미지가 5MB(압축하지 않은 JPEG데이터 기준)를 넘어가면 긴 변(long edge)을 1920px로 리사이징하는 정책이 있었습니다. 그래서 프로젝트 내에 있었던 UIImage extension 의 resize 메소드를 사용했습니다. 그런데 이상하게도 특정상황에서 사진 전송시 10초로 설정해 놓은 타임아웃이 발생했고 디버깅한 결과 파일 사이즈가 20MB가 넘어가서 10초안에 전송이 안되는 것이 원인이었습니다. 처음에는 '특정상황에서 이미지 리사이징을 안타고 있는 모양이다'고 생각했습니다. 그런데 확인해 보니 예상과 달리 리사이징 로직을 잘 타고 있었고, 리사이징 전에 43..
iOS에서의 이미지 리사이징에 대하여이슈의 시작: 다운 사이징을 했는데 이미지 데이터 크기가 오히려 늘어났다 예전에 개발을 담당했던 모 서비스에서 이미지를 전송할 때 이미지가 5MB(압축하지 않은 JPEG데이터 기준)를 넘어가면 긴 변(long edge)을 1920px로 리사이징하는 정책이 있었습니다. 그래서 프로젝트 내에 있었던 UIImage extension 의 resize 메소드를 사용했습니다. 그런데 이상하게도 특정상황에서 사진 전송시 10초로 설정해 놓은 타임아웃이 발생했고 디버깅한 결과 파일 사이즈가 20MB가 넘어가서 10초안에 전송이 안되는 것이 원인이었습니다. 처음에는 '특정상황에서 이미지 리사이징을 안타고 있는 모양이다'고 생각했습니다. 그런데 확인해 보니 예상과 달리 리사이징 로직을 잘 타고 있었고, 리사이징 전에 43..
2019.09.27