eung7.archive
close
프로필 사진

eung7.archive

github: @eung7

  • 분류 전체보기 (30)
    • CS (5)
      • 운영체제 (5)
      • 네트워크 (0)
    • iOS (22)
      • Swift (1)
      • iOS 기본 (6)
      • iOS 응용 (9)
      • XCode (6)
    • Flutter (1)
      • Dart (1)
      • Flutter 기본 (0)
      • Flutter 응용 (0)
    • 소프트웨어 공학 (2)
  • 홈
  • GitHub
Custom XCode Configuration Flag 추가하여 디버그 프로세스 최적화

Custom XCode Configuration Flag 추가하여 디버그 프로세스 최적화

XCode Configuration XCode Configurations는 다양한 상황의 빌드 옵션들을 추가할 수 있는 설정 특정 목적 또는 환경에 맞도록 프로젝트를 커스터마이징이 가능 기본적으로는 Debug, Release 속성 두 개가 존재 이외에도 커스텀 Configuation을 추가하여 사용자 정의 빌드 구성을 따로 추가할 수 있음 (오늘의 내용) Custom Configuation 추가하기 위 사진은 Debug일 때의 사진 Debug일 때는 실제 서버에서 가져오는 데이터가 아닌, Mock JSON을 통해 데이터를 가져옴 관련 아티클: URLProtocol을 통해 Mock 데이터로 네트워크 Unit Test 진행하기 Release는 실제 서버에서 데이터를 가져오지만, Log를 출력하지 않음 결론..

  • format_list_bulleted iOS/XCode
  • · 2024. 4. 4.
URLProtocol을 통해 Mock 데이터로 서버 의존도 줄이기

URLProtocol을 통해 Mock 데이터로 서버 의존도 줄이기

서론 거의 모든 앱은 서버 의존도가 필수불가결적으로 높습니다. 앱 개발자로써 서버가 다운되거나, 점검 중이거나, 배포 전일 때에도 계속 개발을 지속할 수 있어야합니다. 그래서 서버의 응답이 완료 될 떄에만 앱이 실행되는 것은 굉장히 불리한 조건을 갖게 됩니다. 우리 편행 프로젝트에서도 이 기술을 활용하여 서버 의존도를 낮추고 효과적으로 개발에 임할 수 있었습니다. 이번 시간에는 URLProtocol을 이용해 서버 없이도 개발을 효과적으로 진행하는 방법을 소개해드리겠습니다. URLProtocol URLProtocol은 네트워크 요청을 실제 데이터로 받지 않고 Mock 데이터로 받을 수 있게 할 수 있는 객체입니다. URLSession의 Configuration을 통해 주입이 되어야합니다. URLSessio..

  • format_list_bulleted iOS/iOS 응용
  • · 2024. 4. 2.
Diffable DataSource + ReactorKit으로 복잡한 UI 관리하기

Diffable DataSource + ReactorKit으로 복잡한 UI 관리하기

서론 UIDiffableDataSource는 iOS13 및 WWDC19부터 공개된 기존 고전 방식의 DataSource를 대체하는 새로운 API입니다. 이 API를 통해서 기존 UI를 구현하는 방식보다 훨씬 간단하고 효율적으로 구현할 수 있습니다. 추가적으로 DiffableDataSource와 잘 어울리는 레이아웃을 그리는 API인 Compositional Layout과 CollectionViewCell인 이 세 가지를 이용하여 화면을 구성하는 방법을 소개해드릴 예정입니다. 제가 진행했던 페이버 프로젝트는 ReactorKit과 RxSwift의 조합을 사용하고 있습니다. ReactorKit은 MVVM의 Rx화를 시켜 통일화를 시켜준 라이브러리이기 떄문에 Reactor를 ViewModel이라고 생각하셔도 무..

  • format_list_bulleted iOS/iOS 응용
  • · 2024. 3. 30.
Environment Value를 통해 의존성 주입하기

Environment Value를 통해 의존성 주입하기

의존성 주입이란?의존성 주입은 클래스 간의 결합도를 낮추고 코드 유연성을 높이는 중요한 개념클래스 간의 의존성이 있다는 것은 한 클래스가 다른 클래스에 영향을 미친다는 것을 의미예를 들어, 한 클래스가 변경될 때 다른 클래스도 영향을 받는 상황입니다. 프로토콜 의존성 주입프로토콜 의존성 주입은 클래스 간의 결합도를 낮추기 위해 프로토콜을 사용하는 방법이를 통해 코드 유연성을 높임프로토콜을 정의하여 클래스가 특정 기능을 구현하도록 강제하고, 이를 의존성 주입을 통해 클래스에 주입유연성 증대: 프로토콜을 통해 클래스의 인터페이스를 추상화하면, 해당 클래스를 변경할 때 다른 클래스에 영향을 덜 줌. 즉, 코드 변경 시 다른 클래스에 영향을 최소화테스트 용이성: 프로토콜을 사용하여 클..

  • format_list_bulleted iOS/iOS 응용
  • · 2024. 3. 30.
SwiftUI, View의 최적의 성능을 만들어내는 방법

SwiftUI, View의 최적의 성능을 만들어내는 방법

SwiftUI에는 다양한 툴을 이용하여 데이터 모델을 정의할 수 있습니다. State, ObservableObject와 관련된 툴들이 하나의 예시입니다. 이 툴들과 SwiftUI의 뷰들간의 최적의 성능을 만들어내기 위해서는 선행적으로 뷰들이 내부적으로 어떻게 동작하는지에 대한 이해가 필요합니다. 일반적으로 뷰는 UI 컴포넌트를 직접적으로 가지고 있습니다. 그렇기 때문에 뷰는 비용이 적게 들어야 함과 동시에 가벼워야 합니다. 여기서 유의할 점이 있습니다. 화면의 나타나는 View의 수명과 Struct인 View의 수명은 따로 움직입니다. 개발자가 직접 코드를 입력하는 View 프로토콜을 채택하는 구조체는 매우 짧은 수명을 가집니다. 내부적으로 SwiftUI는 이 구조체를 이용하여 화면을 렌더링하고 사..

  • format_list_bulleted iOS/iOS 기본
  • · 2024. 3. 30.
SwiftUI, The Source Of Truth

SwiftUI, The Source Of Truth

SwiftUI에서 UI와 관련된 데이터 플로우에서 가장 중요한 것은 The Source Of Truth입니다. 직역 그대로 복사된 데이터들이 아니라 원본 데이터라는 뜻을 가지고 있습니다. SwiftUI는 원본 데이터의 변경으로 화면의 렌더링을 개발자의 의도적인 업데이트없이 가능하게 됩니다.UIKit에서는 데이터와 화면간의 인터페이스를 Delegate나 Closure를 이용한 것을 자주 보셨을 겁니다. 그렇지만 SwiftUI에서는 The Source Of Truth때문에 이런 것들이 필요 없게 됩니다. SwiftUI에서 소개하는 툴은 대표적으로 두 가지입니다.StateState는 대표적인 SwiftUI의 Source Of Truth입니다. 기존 데이터 모델의 @State 어노테이션을 추가하면 구조체..

  • format_list_bulleted iOS/iOS 기본
  • · 2024. 3. 30.
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • navigate_next
전체 카테고리
  • 분류 전체보기 (30)
    • CS (5)
      • 운영체제 (5)
      • 네트워크 (0)
    • iOS (22)
      • Swift (1)
      • iOS 기본 (6)
      • iOS 응용 (9)
      • XCode (6)
    • Flutter (1)
      • Dart (1)
      • Flutter 기본 (0)
      • Flutter 응용 (0)
    • 소프트웨어 공학 (2)
Copyright © Eung7 모든 권리 보유.

티스토리툴바