감자주먹밥
close
프로필 배경
프로필 로고

감자주먹밥

  • 분류 전체보기 (86)
    • iOS (64)
      • Swift (14)
      • RxSwift (2)
      • UIKit (35)
      • SwiftUI (9)
      • Test (4)
    • 코퉤엣 (12)
    • Git (2)
    • Android (8)
  • 홈
  • 태그
  • iOS
  • Github
  • 방명록

Swift 고차함수 정리 - map, flatMap, compactMap / filter, reduce, forEach

고차함수 (High order function)다른 함수를 매개변수로 받거나 반환하는 함수를 의미한다.클로저와는 다르다 (클로저는 이름이 없는 익명함수) 고차함수가 매개변수로 받는 함수가 클로저일때가 많아서 헷갈릴수는 있지만, 고차함수 안에서 클로저를 자주 사용하는 것 뿐 같은 개념은 아니다.특징가독성함수형 프로그래밍 스타일재사용성 높음maplet numbers = [1, 2, 3, 4, 5]let twoTimesNumbers = numbers.map{ $0*2 }//[2, 4, 6, 8, 10]각 요소에 동일한 연산을 적용해 새로운 배열을 반환한다.for-in문과 비교했을 때 차이는 없지만, 속도면에서 차이가 있다. (요소가 많을수록 차이 남)flatMaplet numbers = [[1, nil], [..

  • format_list_bulleted iOS/Swift
  • · 2025. 7. 8.
  • textsms

ARC (자동 참조 카운트) 자세히 알아보기 + 참조 키워드(weak, strong, unowned)

정의ARC(Automatic Reference Counting)는 메모리 구조에서 힙 영역을 관리한다.Swift에서 힙에 메모리를 할때는 참조타입을 생성할 때 자동으로 할당하게 된다.ARC는 할당된 메모리가 더 이상 필요하지 않을 때 자동으로 해제한다.C++에서는 new, delete 키워드를 통해 클래스 인스턴스를 생성할 때 메모리를 할당, 해제 한다.특징컴파일 시점에 언제 참조되고 해제되는지 결정되어 런타임때 그대로 실행된다.장단점장점개발자가 참조 해제 시점을 파악할 수 있음RunTime 시점에 추가 리소스가 발생하지 않음단점순환 참조 발생 시 영구적으로 메모리가 해제되지 않을 수 있음MRC? ARC?둘 다 Reference Counting을 하지만, Manual, Automatic의 차이가 있다.M..

  • format_list_bulleted iOS/Swift
  • · 2025. 7. 1.
  • textsms
Pinit 셀 재사용 이슈

Pinit 셀 재사용 이슈

발생했던 문제Pinit 에서는 이미지가 있을때는 그대로 보여주고, 이미지가 없다면 기록한 위치의 지도를 스냅샷으로 보여준다.여기서 문제가 발생했다.이미지는 저장된걸 바로 보여주지만, 스냅샷은 주소만 보내주고 셀에서 스냅샷 이미지를 로드하기에 몇 초 더 지연시간이 생긴다.이때 셀이 엄청 많을때 스크롤을 하면, 재사용 때문에 이전에 사용된 이미지 또는 스냅샷이 먼저 보이고 나중에 제대로 된 스냅샷으로 갈아끼워지는 문제가 있었다.문제점 파악문제점은 역시 셀 재사용 매커니즘을 제대로 이해못하고 지연시간을 고려하지 않았기 때문이다.셀이 재사용 될 때 이전 데이터를 그대로 들고 있다는 것 역시 인지하지 못했기 때문에 일어난 문제였다.셀이 화면에서 사라지면 셀 자체가 지워지지 않고 이전 데이터 그대로 Reusable..

  • format_list_bulleted iOS/UIKit
  • · 2025. 6. 25.
  • textsms
☝️커스텀 바텀시트 구현 + PanGesture 로 바텀시트 같은 인터렉션 만들기

☝️커스텀 바텀시트 구현 + PanGesture 로 바텀시트 같은 인터렉션 만들기

GitHub - EST-iOS-TEAM2/Pinit: ESTSoft 2차 팀프로젝트ESTSoft 2차 팀프로젝트. Contribute to EST-iOS-TEAM2/Pinit development by creating an account on GitHub.github.com 바텀시트 만들어보기탭바를 가리지 않으면서 바텀시트를 홈화면에서 상시운용을 하려는데, 간단한 방법들로는 불가능한거 같아 직접 바텀시트를 만들게 됐다!물론 검색해보면 엄청난 방법으로 만드는분도 있었지만, 이 프로젝트엔 간단하게만 사용되기에 만드는 방법만 좀 알아보고 적용해봤다. 바텀시트로 사용될 Viewfinal class CustomBottomSheet: UIView { var collectionView = UICollection..

  • format_list_bulleted iOS/UIKit
  • · 2025. 6. 12.
  • textsms
🌐 MapKit의 마커에 클러스터를 사용해보자!

🌐 MapKit의 마커에 클러스터를 사용해보자!

GitHub - EST-iOS-TEAM2/Pinit: ESTSoft 2차 팀프로젝트ESTSoft 2차 팀프로젝트. Contribute to EST-iOS-TEAM2/Pinit development by creating an account on GitHub.github.com 맵킷 사용해보자!Mapkit의 기본기능만을 활용해 어노테이션 + 클러스터를 구현했다.처음에는 마커 이미지도 커스텀으로 적용했지만, 다른뷰에서 이미 기본마커로 구현을 했기에...Home 화면의 지도 역시 기본마커로 만들기로 했다. 클러스터 마커 생성하기클러스터 마커를 생성하는건 기본 마커 커스텀을 하는 방법과 유사하다 (아예 똑같기도 하다)MKMarkerAnnotationView 를 상속받아 구현해주면 된다.final class Cus..

  • format_list_bulleted iOS/UIKit
  • · 2025. 6. 12.
  • textsms

📦공통된 CollectionView 재사용을 위한 Adpater 패턴 적용기

GitHub - EST-iOS-TEAM2/Pinit: ESTSoft 2차 팀프로젝트ESTSoft 2차 팀프로젝트. Contribute to EST-iOS-TEAM2/Pinit development by creating an account on GitHub.github.com UI 재사용에 대한 고민Home, PastPin, Setting에 들어가는 데이터나 동작이 동일하기에 이를 통합해 재사용할 방법을 고민했다.어댑터 패턴collectionView 서브클래싱 서브클래싱이 가장 익숙한 방식이었지만, 어댑터 패턴을 선택했다.그 이유는 데이터가 setting 화면에서는 동일하지 않을 수 있고, 그에따른 확장이 필요한 경우,datasource나 delegate를 기본을 사용하면서도 다른 동작이 필요할 때 따로 ..

  • format_list_bulleted iOS/UIKit
  • · 2025. 4. 25.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • ···
  • 15
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (86)
    • iOS (64)
      • Swift (14)
      • RxSwift (2)
      • UIKit (35)
      • SwiftUI (9)
      • Test (4)
    • 코퉤엣 (12)
    • Git (2)
    • Android (8)
최근 글
인기 글
태그
  • #백준
  • #swiftUI
  • #SWIFT
  • #programmers
  • #Kotlin
  • #tableView
  • #ios
  • #android
  • #코딩테스트
  • #UIKit
최근 댓글
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바