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
이미지 메모리를 효율적으로 관리하는 다운 샘플링

이미지 메모리를 효율적으로 관리하는 다운 샘플링

서론iOS를 개발할 때, 이미지를 관리하는 것은 사용자 경험에 있어서 중요한 부분입니다. 높은 해상도를 가지고 있는 이미지들은 메모리 사용량에 큰 영향을 줄 수 있죠. 이번 시간에는 어떻게 효율적으로 이미지 메모리를 줄일 수 있는 방법을 알아보겠습니다.다운 샘플링이 필요한 상황들다운 샘플링은 이미지의 퀄리티는 유지하면서 이미지의 사이즈를 줄이고 메모리 사용량을 줄이는 과정입니다. 특히 용량이 큰 이미지들을 작업할 떄 성능의 문제가 생기지 않게 하려면 더욱 필요합니다. 다운 샘플링이 필요한 순간은 다음과 같을 수도 있습니다.갤러리 사진들만약 사용자가 해상도가 높은 사진을 갤러리에서 인터렉션 한다면 어떨까요? 이미지를 로딩 하는 것만으로도 메모리 사용량은 큰 부담을 느낄 것입니다. 특히 오래된 기기들이라면 ..

  • format_list_bulleted iOS/iOS 응용
  • · 2024. 4. 28.
NWPathMonitor로 네트워크 에러를 감지하고, UI 업데이트하기

NWPathMonitor로 네트워크 에러를 감지하고, UI 업데이트하기

서론 앱 개발자로서 안정적이고 끊임없는 네트워크 연결을 기대합니다. 하지만, 네트워크 연결은 언제나 변수가 존재 이런 예측할 수 없는 변수들 속에서 사용자에게 명확한 UI를 제공하는 것은 당연 이번 글에서는 Network 프레임워크의 NWPathMonitor라는 것을 이용하여 기본 원리와 사용 방법을 소개 NWPathMonitor NWPathMonitor는 Network 프레임워크에 포함된 클래스 글자 그대로 Apple이 제공하는 다양한 플랫폼에서 네트워크 연결성을 모니터링할 수 있는 역할, 뿐만 아니라 인터넷 연결, 셀룰러 데이터 인지 파악 각 다양한 인터페이스마다 다양한 적절히 조치를 취하는 것이 가능 Singleton 객체 만들기 final class NetworkCheck { static let ..

  • format_list_bulleted iOS/iOS 응용
  • · 2024. 4. 10.
GitHub Actions로 CI를 구축하여 SwiftFormat 테스트하기

GitHub Actions로 CI를 구축하여 SwiftFormat 테스트하기

서론CI는 프로젝트를 관리하면서 개발 프로세스를 자동화하고 개선하기 위한 방법론입니다. 테스트가 수행되어 문제점을 조기에 발견하고 해결할 수 있는 아주 좋은 도구입니다.편행 프로젝트는 SwiftFormat을 이용한 팀원들의 코드 포맷과 Build 테스트 두 가지를 적용하는 CI를 적용했습니다.CI는 GitHub Actions을 이용하여 구현했고, 이번 글은 그 과정을 소개하려고 합니다. YAML 파일 생성먼저 yaml파일을 생성해야합니다. yaml파일은 프로젝트 레포지토리에 있는 .github/workflows 경로에 생성하면 됩니다.이 yaml파일은 CI를 실행시킬 조건, 테스팅을 어떻게 진행할지에 대한 총괄하는 파일입니다.참고로 WorkFlow는 프로세스에서 여러 단계를 거쳐..

  • format_list_bulleted iOS/iOS 응용
  • · 2024. 4. 8.
SwiftUI에서 ViewModel을 효과적으로 사용하고, DIP를 지키는 방법

SwiftUI에서 ViewModel을 효과적으로 사용하고, DIP를 지키는 방법

서론 SwiftUI에서 MVVM을 채택하게 되면 ViewModel을 어떤 방식으로 구현할지 고민을 해봐야합니다. SwiftUI에서 제공해주는 API인 State, ObservableObject은 Source Of Truth라는 중요한 것들이 있습니다. ViewModel은 한 화면마다 하나의 Source Of Truth로 구현되어야 마땅합니다. 이번 글에서는 SwiftUI에서 ViewModel을 어떻게 쉽게 관리할 수 있는지, 또 Clean Architecture를 위한 DIP는 어떤식으로 지켜질 수 있는지 알아보겠습니다. ObservableObject의 ViewModel ViewModel은 Source Of Truth이어야합니다. 즉 여러 값으로 복사되어 여러 객체에서 사용되지 않아야 합니다. 그래서 주..

  • format_list_bulleted iOS/iOS 응용
  • · 2024. 4. 6.
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.
  • navigate_before
  • 1
  • 2
  • 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 모든 권리 보유.

티스토리툴바