تنظیم پروژه iOS خود را برای Storytelling

قبل از نوشتن یک خط از کد انیمیشن، شما نیاز به یک پایه محکم دارید. پرتاب Xcode (نسخه 15 یا بعد توصیه می شود) و یک پروژه جدید برنامه نویسی را انتخاب کنید.فت را به عنوان زبان و UIKit برای رابط کاربری نام گذاری کنید و اطمینان حاصل کنید که iOS 16.0 یا بعد از آن برای دسترسی به آخرین API های انیمیشن هدف قرار می دهید.

در داخل پروژه، فایل های خود را به گروه ها سازماندهی کنید: مدل ها (برای داده های داستانی)، دیدگاه ها (برای اجزای UI سفارشی)، کنترل کننده ها (برای کنترل کننده های مشاهده)، و خدمات درمانی (برای کمک کنندگان و افزونه ها) این ساختار ماژولار کد را حفظ می کند زیرا داستان شما رشد می کند.

به اضافه کنید یا یک رویکرد برنامه نویسی را با استفاده از زیر کلاس ها انتخاب کنید، بسیاری از توسعه دهندگان ترجیح می دهند تخته داستان برای سریع نمونه سازی سریع و سپس انتقال به کد برای کنترل دانه های ریز.

طراحی رابط داستانی

در این میان، کاربر باید به صورت کامل و با استفاده از آن، از یک کلمه ی کلیدی استفاده کند و به صورت کامل از آن استفاده کند.

دانلود فیلم Text Set

در این میان، آیات قرآن کریم و قرآن کریم و عترت و ائمه معصومین (ع) را به صورت زیر در نظر می گیرند.

تصویر و دیدگاه های شخصیتی

تصاویر کاراکتر یا تصاویر پس زمینه را در تصاویر اختصاص داده شده (FLT:10) قرار دهید (FLT:11) و کلیپ به محدوده. for پارالاکس اثرات یا حرکت ظریف، درخواست یک (FLT:12) به نمای تصویر - این یک حس عمق بدون کد انیمیشن سفارشی است.

دکمه های انتخاب

انتخاب های شاخه ای قلب داستان سرایی تعاملی است.موقعیت دو یا چند دکمه در پایین صفحه نمایش استفاده از [FLT13] با و رنگ های قلع که منعکس کننده خلق و خوی - گرم برای گزینه های دوستانه، خطوط سرد برای مسیرهای مرموز. اتصال هر دکمه رویداد به یک که به روز رسانی داستان و انیمیشن مربوطه.

معماری داده های داستانی

داستان خود را در یک مدل ساختاری ذخیره کنید.یک کلاس ایجاد کنید که دارای شناسه، متن، نام تصویر و آرایه ای از اشیاء است:

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 یا یک پایگاه داده محلی (به عنوان مثال، داده های اصلی یا Realm)) نگه داشتن داده ها از منطق دید، افزودن شاخه های جدید بدون لمس کد را آسان می کند.

مدیریت دولتی

دیکشنری برای پیگیری تصمیمات کاربر، موجودی یا پرچم، این امر شاخه مشروط را بعداً فعال می کند، به عنوان مثال، اگر کاربر قبلاً یک شخصیت را نجات داده بود، داستان ممکن است یک مسیر پنهان را باز کند.

دانلود فیلم های سفارشی

انیمیشن ها یک داستان استاتیک را به یک تجربه همه جانبه تبدیل می کنند. UIKit چندین مکانیسم داخلی را فراهم می کند؛ یک مورد مناسب را برای هر اثر انتخاب کنید.

انیمیشن های UIView

از [[FLT 22|برای اکثر انتقال ها استفاده کنید:

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

برای اثرات پیچیده تر مانند متن کاتدینگ یا عناصر درخشان، به طور مستقیم با و [FLT] 25 کار کنید.ایجاد یک انیمیشن محو برای یک aura کلیدی شخصیت:

let fadeIn = CABasicAnimation(keyPath: "opacity")
fadeIn.fromValue = 0.0
fadeIn.toValue = 1.0
fadeIn.duration = 2.0
characterLayer.add(fadeIn, forKey: "fadeIn")

چند بار در یک مسیر قرار دهید تا به صورت همزمان و به صورت همزمان به صورت جداگانه و به صورت جداگانه به صورت جداگانه به صورت جداگانه ای به صورت جداگانه به صورت زیر استفاده شود.

انیمیشن های Keyframe برای Paths

اگر یک شخصیت باید از مسیر پیچ و خم شدن (به عنوان مثال، یک جهش پروانه در سراسر صفحه)، استفاده از یک با یک [FLT 29: 29]

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

این تکنیک به زیبایی برای عناصر تزئینی که اتمسفر را افزایش می دهند، کار می کند.

انیمیشن های Text-Specific Animations

در این نامه، از [[FLT 31]] و a Timer استفاده کنید و به صورت متناوب (FLT:32) با (iOS 17+) برای یک اثر تایپی استفاده کنید.

انیمیشن های انتقالی بین صحنه ها

هنگامی که از یک گره داستانی به سمت بعدی حرکت می کنید، از انتقال کنترل کننده دید سفارشی استفاده کنید. مطابق با برای تعریف یک اثر فشار برای لحظات صمیمی یا یک صفحه برای تبدیل یک صفحه، این بسیار جلا داده تر از یک موجود ساده / غیر قابل قبول است.

اضافه کردن Interactive Elements

فراتر از دکمه ها، حرکات را به تعامل عمیق تر اضافه کنید. حرکات Swipe می تواند داستان را پیش ببرد یا اشیاء پنهان را آشکار کند. لانگ اسپر می تواند یک آیتم را بررسی کند. بر روی یک شخصیت اجازه دهد تا کشیدن - و شخصیت را به موقعیت اصلی خود بازگردانید اگر خارج از یک منطقه هدف قرار گیرد.

بازخورد صوتی و Haptic

انیمیشن های Pair با استفاده از صدا (FLT36) بازخورد ماشه از طریق هنگامی که یک دکمه فشرده یا یک ضرب و شتم داستانی بحرانی رخ می دهد، این رویکرد چند سنسوری به طور قابل توجهی افزایش غوطه وری.

Dynamic Type و Accessibility

پشتیبانی از Dynamic Type با استفاده از فونت های ترجیحی ([FLT ۳۸] فونت های مقیاس یافته) اطمینان حاصل کنید که تمام عناصر تعاملی دارای برچسب های دسترسی هستند.استفاده از آن (FLT 39) برای اعلام تغییرات داستانی در کاربران VoiceOver.

بهینه سازی عملکرد

انیمیشن های صاف مهم هستند؛ فریم باعث شکستن غوطه وری می شود.برنامه شما با ابزار Xcode (ابزار انیمیشن هسته ای) شامل:

  • از آن پرهیز کنید و از آن استفاده کنید.
  • • نمایش صفحه نمایش: استفاده از و بر روی تصاویر بزرگ، پیش از استفاده از تصویر در کد یا استفاده از یک دید container.
  • ابعاد تصویر بزرگ: تصاویر مقیاسی برای نمایش اندازه استفاده از با حالت های رندر مناسب.

گزینه های را برای تنظیم کنید تا در طول انیمیشن ها پاسخگو باقی بماند.

تست در دستگاه های واقعی

شبیه ساز iOS عملکرد دنیای واقعی را تکرار نمی کند. Test on چندین دستگاه، به ویژه مدل های قدیمی تر (iPhone 11 یا زودتر) توجه به تخلیه باتری - انیمیشن های بیش از حد می تواند باعث استفاده از گرما و باتری شود.

تست واحد برای منطق و آزمون های UI برای جریان های کاربر بحرانی را بنویسید. A/B طول انیمیشن و سبک های مختلف را با یک گروه کاربر کوچک تست کنید تا ببینید کدام یک از آنها مشارکت بالاتری دارند.

انتشار و توزیع

هنگامی که برنامه شما جلا داده می شود، آن را در Xcode بایگانی کنید و به App Store Connect آپلود کنید، تصاویری را آماده کنید که بهترین انیمیشن های شما را به نمایش می گذارد.

برای منابع خارجی، با مدیر رسمی اپل (FLT:0) Animation و Haptics مشورت کنید و راهنمای انیمیشن برای الهام گرفتن، کاوش Kodeco] کتاب انیمیشن های iOS .

نتیجه گیری

ساخت یک برنامه داستان سرایی تعاملی برای iOS با انیمیشن های سفارشی یک ترکیب ارزشمند از طراحی روایت و مهارت فنی است.با ساختار دادن داده های داستان خود، انتخاب تکنیک های انیمیشن مناسب و عملکرد دقیق تست، شما می توانید یک برنامه ایجاد کنید که واقعا کاربران را جذب می کند - یک اسلاید، یک محو، یک ضربه - پس از آن لایه پیچیده تا زمانی که داستان شما احساس می کند زنده است.

ترکیب طراحی متفکرانه، کد تمیز و انیمیشن های جلا برنامه داستان سرایی خود را در یک بازار شلوغ جدا می کند.در حال حاضر Xcode را باز کنید و اولین شخصیت متحرک خود را به صفحه نمایش برسانید.