Table of Contents
스토리텔링을 위한 iOS 프로젝트 설정
애니메이션 코드의 단일 라인을 작성하기 전에, 당신은 고체 기반이 필요합니다. 발사 Xcode (버전 15 이상 권장) 새로운 응용 프로그램을 만들. 선택 Swift 언어와 UIKit 인터페이스. 이름 당신의 프로젝트와 최신 애니메이션 API에 액세스하려면 나중에 iOS 16.0 이상을 대상.
프로젝트 내에서, 그룹으로 파일을 구성: 모델 (스토리 데이터), 보기 (사용자 지정 UI 구성 요소), 컨트롤러 (보기 컨트롤러), 유틸리티 (수신자 및 확장 용). 이 모듈 구조는 당신의 이야기 성장으로 유지 코드를 유지.
Main.storyboard 을 추가하거나 ] subclasses 를 사용하여 프로그래밍 접근 을 선택한다. 유연성을 위해 많은 개발자는 신속한 프로토 타이핑을 위해 스토리 보드를 선호하고 그 후 미세 편두 제어 코드를 전환합니다.
Storytelling 인터페이스 설계
사용자 인터페이스는 깨끗하고 최소한이며, 월리에 초점을 맞추고 있어야 합니다. 긴 텍스트 구절에 대한, 일러스트의 ], ] 인스턴스를 사용하여 선택 분지. UIStackView]를 사용하여 다른 화면 크기에 걸쳐 동적으로 이러한 요소를 정렬합니다.
스토리 텍스트 레이아웃
]의 과 ]]의 래핑 이야기 단락은 사고를 방지하기 위해. ]를 사용하여 페이지를 공개하는 경우에만 피싱. 원활한 자동 ‐ 학습 텍스트를 위해 내부 를 사용하여 더 고급 - 태전 애니메이션.
이미지 및 문자 보기
속성 문자 삽화 또는 배경 이미지 전용 subviews. 설정 및 클립 경계. parallax 효과 또는 미묘한 동작을 위해, 적용 이미지 보기 – 이것은 사용자 정의 애니메이션 코드없이 깊이의 감각을 제공합니다.
선택 버튼
Branching 선택은 대화 형 스토리텔링의 핵심입니다. 스크린의 하단에 두 개 이상의 버튼이 있습니다. ]과 ]과 색조의 분위기를 반영하고, 친절한 옵션, 신비한 경로의 멋진 톤을 반영합니다. 각 버튼의 이벤트를 ]로 연결하여 스토리 상태를 업데이트하고 해당 애니메이션을 트리거합니다.
스토리 데이터의 건축
구조 모델에 대한 이야기를 저장합니다. 식별자, 텍스트, 이미지 이름 및 개체를 붙인 클래스를 만듭니다.
class StoryNode {
let id: String
let text: String
let imageName: String?
let choices: [Choice]
var animationType: AnimationType = .slideIn
}
struct Choice {
let title: String
let destinationId: String
}
JSON 파일 또는 로컬 데이터베이스 (예: Core Data 또는 Realm)에서 로드 스토리 데이터. 뷰 로직에서 분리되는 데이터를 유지하면 터치 코드없이 새로운 지점을 추가 할 수 있습니다.
국가 관리
] dictionary를 사용하여 사용자 결정, 재고, 또는 플래그를 추적합니다. 이것은 조건부 지칭을 나중에 가능하게합니다. 예를 들어, 사용자가 이전에 문자를 저장하면, 이야기는 숨겨진 경로가 잠금 해제 될 수 있습니다. 각 선택에 대한 응답 상태 업데이트하고 다음 에 전달하십시오.
Custom Animation 구현
애니메이션은 정적 이야기를 immersive 경험으로 변환합니다. UIKit는 여러 내장 메커니즘을 제공합니다. 각 효과에 맞는 것을 선택하십시오.
Basic UIView 애니메이션
]를 가장 전환합니다. 예를 들어, 문자에 슬라이딩 :
UIView.animate(withDuration: 0.8, delay: 0.2, usingSpringWithDamping: 0.7, initialSpringVelocity: 0.5, options: .curveEaseInOut, animations: {
characterImageView.center.x = self.view.center.x
}, completion: nil)
봄 애니메이션은 자연을 느끼고 문자 입구 또는 텍스트가 눈에 띄는 것입니다.
CALayer와 핵심 애니메이션
캐스케이딩 텍스트 또는 글로우링 요소와 같은 더 복잡한 효과에 대해, ]과 ]와 직접 작업. 키 문자의 아우라에 대한 페이드 인 애니메이션 만들기:
let fadeIn = CABasicAnimation(keyPath: "opacity")
fadeIn.fromValue = 0.0
fadeIn.toValue = 1.0
fadeIn.duration = 2.0
characterLayer.add(fadeIn, forKey: "fadeIn")
여러 애니메이션을 로 결합하여 회전, 스케일 및 페이드를 동시에 구현합니다.
Paths의 핵심 애니메이션
문자가 풍광 경로 (예를 들어, 화면의 나비 조각)를 따라야하면 를 로 사용하십시오.
let path = UIBezierPath()
path.move(to: startPoint)
path.addCurve(to: endPoint, controlPoint1: cp1, controlPoint2: cp2)
let pathAnimation = CAKeyframeAnimation(keyPath: "position")
pathAnimation.path = path.cgPath
pathAnimation.duration = 3.0
이 기술은 분위기를 향상 장식 요소에 아름답게 작동합니다.
텍스트 - 특정 애니메이션
과 타이머를 사용하는 ‐ letter에 대한 의향 텍스트 모양 문자 ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐
Transition 생기 사이에 장면
한 이야기 노드에서 다음으로 이동하면 사용자 정의보기 컨트롤러 전환을 사용합니다. ]에 따라 친밀한 순간이나 페이지를 돌리기위한 페이지 ‐curl에 대한 푸시 인 효과를 정의합니다. 이것은 간단한 현재 / 오류보다 더 광택이 있습니다.
Interactive Elements 추가
버튼이 넘어, 상호 작용을 강화하기 위해 제스처를 통합. 스 와프 제스처는 이야기를 전하거나 숨겨진 개체를 공개 할 수 있습니다. 긴 프레스는 아이템을 검사 할 수 있습니다. 드래그 앤 드롭 할 수있는 문자에 [FLT : 35]을 추가하고 대상 영역 밖에 떨어지면 원래 위치로 문자를 다시 시작합니다.
소리와 햅틱 피드백
]를 사용하여 오디오와 쌍 애니메이션. 버튼을 누르면 중요한 이야기가 발생했을 때 ]를 통해 방아쇠 해적 피드백. 이 멀티 센티리 접근은 크게 침수 증가.
동적 유형 및 접근성
원하는 글꼴을 사용하여 동적 유형 지원 (). 모든 상호 작용 요소가 액세스 할 수 있습니다. ]를 사용하여 음성으로 변경 사항을 발표합니다.
성능 최적화
부드러운 애니메이션은 중요; 프레임 드롭 휴식 침수. Xcode의 악기 (Core Animation tool)와 앱을 프로필. 일반적인 pitfalls 포함:
- 오버 드로잉: 완전히 불투명한 층에 ]를 설정하지 마십시오.
- Offscreen 렌더링 : 의 사용을 최소화하고 ]] 큰 이미지에. 대신, pre-mask 코드를 이미지 또는 컨테이너보기를 사용합니다.
- 큰 이미지 치수: 크기를 표시하는 Downscale 이미지. 적당한 연출 형태를 가진 를 사용하십시오.
] 옵션을 로 설정하여 애니메이션에 대한 응답을 유지한다.
Real 기기에서 테스트
iOS 시뮬레이터는 실제 ‐ 세계 성능을 복제하지 않습니다. 여러 장치에서 테스트, 특히 이전 모델 (iPhone 11 이상). 배터리 드레인에주의를 기울여 – 과도한 애니메이션은 열과 배터리 사용을 일으킬 수 있습니다. ] 악의적으로 사용하고 타이머 구동 루프에서 블록 기반 애니메이션을 선호합니다.
중요한 사용자 흐름에 대한 스토리 상태 논리 및 UI 테스트에 대한 단위 테스트를 작성합니다. A/B 테스트는 작은 사용자 그룹과 다른 애니메이션 지속 및 스타일로 더 높은 참여를 산출합니다.
출판 및 배포
앱이 광택이있을 때, Xcode에서 아카이브하고 App Store Connect로 업로드하십시오. 최고의 애니메이션을 보여주는 스크린 샷을 준비하십시오. 대화 형 달리를 강조하는 매력적인 설명을 작성하십시오.
외부 리소스를 위해서는 Apple의 공식 ]Animation and Haptics documentation]과 Core Animation guide를 참조해 주세요. 영감에 대해서는 Kodeco의 iOS 애니메이션 책를 살펴보십시오.
관련 기사
iOS용 대화형 스토리텔링 앱을 맞춤 애니메이션으로 구축하면 narrative 디자인과 기술 기술 기술의 보상 혼합입니다. 스토리 데이터를 구축함으로써, 올바른 애니메이션 기술을 선택하고 엄격한 테스트 성능을 보장하며, 사용자가 진정으로 캡티브하는 앱을 만들 수 있습니다. 작은 상호 작용으로 시작하십시오. 슬라이드, 페이드, 탭 - 스토리가 살아있을 때까지 복잡한 레이어를 만들 수 있습니다.
생각이 좋은 디자인, 깨끗한 코드 및 광택 애니메이션의 조합은 군중 시장에서 스토리텔링 앱을 설정할 것입니다. 이제 Xcode를 열고 화면에 첫 애니메이션 캐릭터를 가져옵니다.