반응형
LinkedIn 개발자로 성장하면서 남긴 발자취들을 확인하실 수 있습니다.
Github WWDC Student Challenge 및 Cherish, Tiramisul 등 개발한 앱들의 코드를 확인하실 수 있습니다.
개인 앱 : Cherish 내 마음을 들여다보는 시간, 체리시는 디자이너와 PM과 함께 진행 중인 1인 개발 프로젝트입니다.
10년 후, 20년 후 나는 어떤 스토리 텔러가 되어 있을지 궁금하다. 내가 만약에 아직 조금 더 탐구하고 싶은 게 있고, 궁금한 게 있다면, 그게 설사 지금 당장의 내 인생에 도움이 안 되는 것 같더라도 경험해보자. 그 경험들을 온전히 즐기며 내 것으로 만들고, 내 일에 녹여내고... 그러다보면 그 점들이 모여 나란 사람을 그려내는 선이 될 테니까.

Recent Posts
Recent Comments
Total
관리 메뉴

꿈꾸는리버리

로티가 뭐티 ( Lottie ) 본문

오뚝이 개발자/iOS

로티가 뭐티 ( Lottie )

rriver2 2023. 8. 13. 09:22
반응형

디자이너가 splash Image를 변경하고 싶다고 아주 두근거리는 gif를 가지고 오셔서 설렘 가득하게 앱에 반영하다가 고군분투한 이야기.. ❤️‍🔥

 

많은 분들이 사용하는 Lottie 에 대한 이야기..

Lottie는 에어비엔비에서 개발한 오픈소스 모바일 라이브러리로, JSON 기반 애니메이션 파일 형식실시간으로 애니메이션을 랜더링하고 벡터 기반의 애니메이션이기 때문에 깨지지 않는다는 특징이 있다. 벡터 기반인 적에 gif보다 용량이 작다.

 

무료 로티 애니메이션, 모션 그래픽을 위한 모든 플러그인과 도구를 한 곳에 - 로티파일즈/LottieFi

로티파일즈/LottieFiles는 오픈소스 애니메이션 포맷 로티를 제공하는 세상에서 가장 큰 무료 플랫폼입니다. 웹, iOS, 안드로이드, 윈도우를 위한 모션 그래픽 작업을 지원하는 플러그인과 툴을 통

lottiefiles.com

🌟 활용방법

나 같은 경우에는 우리 갓 디자이너가 애니메이션을 만들어줬지만, 디자이너가 없는 팀 같은 경우에는 lottie안에서도 무료 다운이 가능하다!

🌟 Lottie 라이브러리 import 

1️⃣ 공식문서 를 통해 각자 원하는 방법으로 import

나는 SPM을 사용해서 SPM으로 import를 했다. 

 

 👉🏻  Swift Package Manager(SPM) 소개 및 사용 방법

 

Swift Package Manager(SPM) 소개 및 사용 방법

Swift Package Manager이란? 종속성 관리를 위한 Apple의 공식 도구인 Swift Package Manager Swift Package Manager(SwiftPM)는 1st party로 종속성 관리를 위한 Apple의 공식 도구이다. 보통 CocoaPods이나 Carthage같은 third-part

rriver2.tistory.com

2️⃣ 프로젝트에 반영하기

로티 홈페이지 안에 tutorial 영상들이 있어서 나는 여기서 참고해서 개발했다. 

SwiftUI라고 검색하니까 좋은 영상들이 많이 떴다.. 갓 에어비엔비,,,

👉🏻 참고용 SwiftUI 코드

import Lottie
import SwiftUI
import UIKit

struct LottieView: UIViewRepresentable {
    typealias UIViewType = UIView
    var filename: String
    
    func makeUIView(context: UIViewRepresentableContext<LottieView>) -> UIView {
        let view = UIView(frame: .zero)
        let animationView = LottieAnimationView()
        animationView.animation = Animation.named(getGifName(name: filename))
        animationView.contentMode = .scaleAspectFit
        animationView.loopMode = .loop
        animationView.play()
        
        animationView.translatesAutoresizingMaskIntoConstraints = false
        view.addSubview(animationView)
        
        NSLayoutConstraint.activate([
            animationView.widthAnchor.constraint(equalTo: view.widthAnchor),
            animationView.heightAnchor.constraint(equalTo: view.heightAnchor)
        ])
        
        
        return view
    }
    func updateUIView(_ uiView: UIView, context: UIViewRepresentableContext<LottieView>) {
        // do nothing
    }
    
}

 

🔧 문제 상황

ㅎ,,,, 공홈에 나와 있는데로 에펙에서 json 추출을 하려고 하는데 문제가 생겼다..

문제가 되었던 부분은 애팩 효과 중에 Simple Choker을 썼는데 이 기능 때문에 Json 추출이 안된다는 것이었다.

지인에게 물어보니 에펙에서 지원 안해주는 경우가 많아서 보통 작업 전에 이 효과를 써도 되는지 확인하고 사용한다고,,,,

 

하지만 우리 애니메이션... 포기 못해...

 

🌟 문제 해결

구글링을 하다가 못찾았는데,,, 갓 디자이너 분이 해결 방법을 찾아주셨다!!

베타 버전으로 GIF/ animated PNG/ PNG sequence (in zip)/ MP4 / WebM/ MOV을 Json으로 바꿔주더라구요?!

헤헤... 유용하게 쓰일 것 같다..

 

반응형
Comments