본문 바로가기
반응형

Apple40

UITableView style grouped 사용할 때 아래 여백이 생기는 문제 UITableView의 grouped 스타일을 사용할 때 섹션 헤더와 푸터의 기본 높이는 자동으로 설정됩니다.높이 값으로 인해 원치 않는 여백을 제거 하기 위해서 아래 가이드를 따라 주세요. 1.delegate method를 구현func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { UIView()} func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { .leastNormalMagnitude} 위에 까지 적용하면 높이는 줄어드는데 여백이 조금 남습니다. 2.FooterVi.. 2024. 7. 23.
[Combine Framework] Publisher, Subscriber, Upstream, DownStream 정리 퍼블리셔(Publisher): • 퍼블리셔는 데이터를 생성하고 배포하는 역할을 합니다. 예를 들어, 서버에서 데이터를 받아오는 작업을 수행할 수 있습니다. 퍼블리셔는 구독자(subscriber)에게 데이터를 전달합니다.  2. 구독자(Subscriber): • 구독자는 퍼블리셔로부터 데이터를 받아 처리하는 역할을 합니다. 구독자는 퍼블리셔에 연결되어 데이터를 수신하고, 이를 사용하거나 다른 작업을 수행할 수 있습니다.  3. 업스트림(Upstream): • 업스트림은 데이터가 시작되는 쪽을 의미합니다. 즉, 퍼블리셔 쪽을 업스트림이라고 부릅니다. 퍼블리셔는 데이터를 생성하여 구독자에게 전달합니다.  4. 다운스트림(Downstream): • 다운스트림은 데이터가 도착하는 쪽을 의미합니다. 즉, 구독자 쪽.. 2024. 7. 3.
xcconfig로 build setting 설정하기. .xcconfig를 이용한 빌드 설정의 이유와 장점 1. 설정의 분리와 가독성 향상  • 코드와 설정 분리: 빌드 설정을 소스 코드와 분리함으로써, 설정 파일이 더 깔끔하고 관리하기 쉬워집니다. • 가독성: 텍스트 파일 형식의 .xcconfig 파일은 Xcode UI보다 설정을 일목요연하게 정리할 수 있습니다. 2. 환경별 설정 관리 용이  • 환경별 설정 관리: 개발, 테스트, 프로덕션 등 다양한 빌드 환경별로 설정을 쉽게 관리할 수 있습니다. • 중복 최소화: 공통 설정을 하나의 파일로 관리하고, 환경별로 필요한 설정만 덧붙일 수 있어 설정 중복을 최소화할 수 있습니다. 3. 버전 관리  • Git 등 VCS 관리 용이: .xcconfig 파일은 텍스트 파일이므로 Git 등의 버전 관리 시스템에서 변.. 2024. 7. 2.
URLCache URL Cache는 네트워크 요청에 대한 응답 데이터를 캐시하여, 동일한 요청에 대해 더 빠르고 효율적으로 응답을 제공하는 메커니즘입니다. URL Cache를 통해 네트워크 트래픽을 줄이고, 응답 시간을 단축하며, 앱의 성능을 향상시킬 수 있습니다. URL Cache의 주요 기능  1. 캐싱 정책: • URL Cache는 HTTP 응답 헤더에서 제공하는 캐싱 지침을 따릅니다. 이러한 지침은 서버가 클라이언트에게 응답을 캐시할지 여부와 캐시 기간을 알리는 방법입니다. • 대표적인 헤더: • Cache-Control: 캐시 동작을 제어하는 가장 일반적인 헤더. 예: no-cache, max-age, public, private. • Expires: 응답이 만료되는 날짜와 시간을 지정합니다. • ETag: 응.. 2024. 7. 1.
@resultBuilder resultBuilder란? resultBuilder는 Swift 프로그래밍 언어에서 사용되는 특수한 기능으로, 여러 개의 값을 조합해서 하나의 결과를 만들어내는 방식입니다. 일종의 “레고 블록”을 쌓아서 하나의 완성된 모형을 만드는 것과 비슷합니다. 예를 들어, 우리는 여러 개의 작은 블록을 쌓아서 큰 집을 만들 수 있습니다. resultBuilder는 여러 개의 작은 값을 받아서 하나의 큰 값을 만들어내는 “건축가”와 같은 역할을 합니다. 비유를 통한 설명 우리가 집을 짓는다고 생각해봅시다. 집을 짓기 위해서는 벽돌, 창문, 문, 지붕 등이 필요하겠죠? 하나씩 모아서 집을 완성할 수 있습니다. 마찬가지로, resultBuilder는 여러 개의 값을 하나로 합쳐주는 기능을 제공합니다. 예를 들어, 여러.. 2024. 6. 26.
UISheetPresentationController에 대해서 (iOS15이상) iOS 15의 도입으로 애플은 개발자들에게 강력한 새로운 도구를 제공했습니다. 이 컨트롤러를 사용하면 Apple 지도나 Safari와 같은 앱에서 사용자가 경험하는 것처럼 시트 형식으로 뷰 컨트롤러를 프레젠테이션할 수 있습니다. 이번 블로그 포스트에서는 UISheetPresentationController의 기능, 커스터마이징 옵션, 그리고 실용적인 사용 사례에 대해 살펴보겠습니다.UISheetPresentationController란?UISheetPresentationController는 iOS 15에서 도입된 새로운 프레젠테이션 컨트롤러입니다. 이 컨트롤러는 뷰 컨트롤러를 시트 형태로 프레젠테이션하며, 사용자는 이 시트를 상하로 끌어서 원하는 높이로 조절할 수 있습니다. 기본적으로 시트는 화면 하단에.. 2024. 5. 23.
Swift Package Manager: Package.swift 간단 구조 정리 아래 다룰 주제 1. 디렉토리 구조와 Package.swift 안의 1:1 매칭 구조 2. Package class안에 들어가는 파라미터 1. 디렉토리 구조와 Package.swift 안의 1:1 매칭 구조 패키지 이름과 1:1 매칭 해당 라이브러리의 구현 타겟 설정 테스트 타겟은 "ExampleTarget"를 테스트하기 위해 의존성을 갖고 있다. 테스트 타겟 설정 2. Package class안에 들어가는 파라미터 name: Swift 패키지의 이름 products: 패키지가 제공하는 제품들의 목록 .library -> name: 라이브러리 이름 .library -> targets: 라이브러리 제품에 묶여 있는 타겟들. targets: 코드 모듈, 테스트 정의 .target -> name: 타겟 이름 .. 2024. 3. 26.
[Localization] 다른 나라 언어 대응하기. (현지화) 이번 시간에는 앱에서 여러 국가의 언어를 대응하는 방법을 알아보려고 한다. (Xcode15.2를 기준으로 작성되었다) Xcode 실행 > 왼쪽 네비게이션 화면에서 Cmd + N 또는 File > New > File 선택 1. string 검색 2. String Catalog 선택후 Next 1. 원하는 이름 작성 (일반적으로는 Localizable로 그대로 둔다) 2. Create 버튼 선택 1. 생성된 Localizable 파일을 볼 수 있다. 선택한다. 2. + 버튼을 선택한다 3. 원하는 국가를 선택한다 (해당 예제에서는 ko를 선택함) English를 선택한다. 1. Key를 입력하면 시스템에서 국가에 맞게 해당 텍스트를 보여준다. Default로 설정된 English는 Key와 실제로 앱에 나타.. 2024. 3. 21.
반응형