분류 전체보기 13

UIImageView에 GIF 넣기 [Lottie 사용X]

How to use a GIF file in UIKit's UIImageView 개발을 하다보면 이미지보다는 움직이는 화면을 보여주는게 사용자에게 더 와닿을 때가 있다고 생각하는데,그 상황이 보통 용량이 큰 파일을 다운로드 받거나, 네트워크 통신시간이 길어질 때 움직이는 화면을 통해 진행중임을 알려주는 상황이라고 생각한다. 그렇담 하나하나 Animation을 적용해야할까?그렇게도 가능하겠지만, 많은 시간을 쏟을 수 없었고, 그렇다고 써드파티 라이브러리를 추가하고 싶지 않았다.(Lottie를 통해서 구현하면 더 빠르고 쉽게 적용할 수 있었지만, 이 뷰를 위해 의존성을 또 추가하는게 마음에 들지 않았다.) 해결할 수 있는 방법을 찾다가, UIImageView에 애니메이션을 걸어줄 수 있는 프로퍼티와 메서드가..

swift/swift 공부 2024.12.12

TrendMovie 협업 프로젝트 1차 MVP를 마감하며 회고

간단하게 이번에 진행한 협업 프로젝트에 대해 소개해보자면,TMDB api를 호출하여 1. 트렌드 영화, TV 2. 영화 검색 3. 즐겨찾기 기능이 있는 어떻게 보면 작은 프로젝트였다. 구현의 퀄리티도 물론 중요하지만, 이번 프로젝트에서 가장 중요하게 가져가기로 했던 부분은 "협업"이었다.그래서 기본적인 프로젝트 기술 스택은 3명 모두 새롭지 않은 UIKit에 RxSwift, MVVM -in/ouput pattern, SnapKit을 활용하기로 결정했다. 어떻게 하면 셋이서 협업을 진하게 느끼면서 서로에게 좋은 영향을 줄 수 있을지 고민을 많이 했었던 것 같다.그래서 다들 서로가 이 프로젝트를 하면서 가져가고 싶은 것들이 뭐가 있는지, 기능 명세에서 제외하고 싶은 것들이 있는지,진행 속도는 어느 정도로 생..

카테고리 없음 2024.10.17

로뮤끄 개인정보 처리방침

로뮤끄는 「개인정보 보호법」 제30조에 따라 정보주체의 개인정보를 보호하고 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 하기 위하여 다음과 같이 개인정보 처리방침을 수립·공개합니다. 제1조(개인정보의 처리목적) 로뮤끄가 개인정보 보호법 제32조에 따라 등록․공개하는 개인정보파일의 처리목적은 다음과 같습니다. 제2조(처리하는 개인정보의 항목) ① 로뮤끄는 개인정보 항목을 처리하고 있지 않습니다. 제3조(개인정보 파일의 현황) ① 로뮤끄는 개인정보 파일, 쿠키 등 을 사용하지 않고, 저장하지 않습니다. 제4조(개인정보의 처리 및 보유 기간) ① 로뮤끄는 개인정보 파일, 쿠키 등 을 사용하지 않고, 저장하지 않습니다. 따라서 이용자의 개인정보를 처리할 내용과 보유기간이 존재하지 않습니다. 제5조(개..

카테고리 없음 2024.10.04

Cell Tap Event가 발생하지 않는다면?! (CollectionView Cell didSelectItem이 안되는 문제)

이번에 모임을 만들고 구하는 앱을 만들면서 가장 당황스러웠던 CollectionView Cell Tap을 감지하지 못했던 이슈에 대해 소개하고 해결 방법까지 소개해보려고 한다. View 구성1. BaseViewController를 상속받은 ViewController에 CollectionView를 얹은 구성2. CollectionView Cell에 버튼 및 TapGesture를 추가한 것 X3. contentView에 UI Component를 추가한 상황. 이렇게만 놓고보면 Cell의 didSelectItem이 호출되지 않을 이유가 전혀 없다. ContentView에 addSubView도 했고, UIControl을 상속받는 객체가 cell보다 상위에 있어 gesture 인식 범위에 의해 tap event ..

swift 2024.09.18

protocol에서 associatedtype은 뭘까 ?

MVVM 패턴을 적용할 때, viewModel을 이렇게 in,output 구조체로 나누고 transform 메소드를 통해 변환해주는 형태로 만들어서 사용하는데, 1 VC 1 VM을 만들어서 사용하다보니 VC의 개수만큼 VM 파일이 생기고, 그럴때마다 이 형태를 반복해서 만들어줘야했다. 반복해서 사용해주는건 어쩔 수 없지만, 이 형태(in,output pattern)를 따르고 있다는 것을 프로토콜로 만들어놓고 채택해준다면, viewModel의 상단만 보더라도 어떤 형태로 viewModel을 구성했는지 알 수 있을 것 같아서 프로토콜을 만들고자 했다.// 중복되는 viewModel의 형태 final class SthViewModel { struct Input { } struct Output { } func ..

swift/swift 공부 2024.08.08

[UICollectionViewDiffableDataSource] 각 섹션마다 다른 Cell 적용기

Header는 추후 업로드 예정이며, 이해를 돕기 위해 "굳이" Cell을 숫자로 표현한 것! ⚠️ 기본적으로 UICollectionViewDiffableDataSource는 indexPath로 데이터에 접근하지 않기 위해 사용함! Section 1,2,3이 모두 다른 Cell이고, 3번과 4번 Cell은 compositional Layout을 활용해 layout 크기만 다른 형태로 구현했음. 1번 Cell = TrendMovieTitleCollectionViewCell2번 Cell = TrendMovieCastCell3,4번 Cell = TrendMovieCollectionViewCell      Section과 각 Cell에 넣어줄 데이터 모델enum TrendDetailSectionKind: Int..

swift 2024.07.22

URL 구성 (Scheme, Host, Port, Path, Parameter 정리)

EndPoint를 정의하고 Alamofire, URLSession을 사용해서 api 통신을 하는 코드를 여러 방법으로 만들어보고 있는데,path와 parameter 용어를 혼용해서 사용하고 명확하게 분리된 Endpoint를 구성하려다보니 헷갈려서 정리하는 글URL 구성URL componentScheme(=Protocol)HTTP/HTTPS 브라우저가 리소스를 요청하기 위해 사용해야 하는 프로토콜HTTP(Hyper Text Transfer Protocol): 웹 브라우저와 웹 서버가 서로 데이터를 주고받기 위해 만든 통신규약HTTPS(Hyper Text Transter Protocol Secure): HTTP에서 보안이 강화된 버전Host호스트명(차상위 도메인/서브 도메인) - 도메인명 - 최상위 도메인명..

카테고리 없음 2024.06.26

[Xcode Error] failed to read asset tags / 이미지 에셋 한글 에러

사용환경macOSsonoma 14.0xcode15.3devicemac mini m2pro macbook pro m2 13" Error message: failed to read asset tags: The command '(cd/Users/___ /Documents/GitHub/_____ /_____ && /Applications/Xcode.app/Contents/Developer/usr/binactool --print-asset-tag-combinations --output-formal xml1 /Users/____ /Documents/GitHub/_____/_____/_____/Assets.xcassets)' exited with status 255. // 문제 생긴 파일 관련한 에러 메세지 출력 에..

swift/swift 에러 2024.06.03

[Swift, RxSwift] 앱에서 이메일 보내는 기능 및 최신 Device 모델 식별자(15 pro max까지)

이런 식으로 앱 내부에서 유저가 개발자에게 피드백을 줄 수 있는 소통 창구를 만들텐데, 보통 구글 폼 아니면 메일로 받게 만든다. 구글 폼과 메일로 보내는 방법의 가장 큰 차이점은, 유저의 디바이스 정보, os 정보, 앱 버전을 정확하게 받을 수 있는지 유무 정도 ? 우리는 유저의 디테일한 정보를 얻기 위해서 메일을 통해 피드백을 받는 방식으로 선택하였다. RxSwift, MVVM-C 패턴을 사용하고 있어서 조금 다를 수 있지만 위치의 차이일 뿐 크게 다르지 않다. import MessageUI //애플이 제공하는 Framework // final class viewModel: NSObject, ViewModel, MFMailComposeViewControllerDelegate { } input.inqu..

카테고리 없음 2024.04.08

[Fastlane] 128 Error cloning certificates repo, please make sure you have read access to the repository you want to use

해결하느라 고생했던 could not read Usename for 'https://github.com': terminal prompts disabled Exit Status: 128 Error cloning certificates repo, please make sure you have read access to the repository you want to use Run the following command manually to make sure you're properly authenticated: [!] Error Cloning certificates git repo, please make sure you have access to the repository - see instructions ..

swift/swift 에러 2024.02.20