برنامهسازی موبایل
Mobile Programming
مقطع: کارشناسی | گرایش: نرمافزار |
نوع درس: نظری | تعداد واحد: ۳ |
پیشنیاز: برنامهسازی پیشرفته | همنیاز: – |
هدف کلی
هدف از این درس آشنایی دانشجویان با مفاهیم و الگوهای برنامهسازی موبایل است. مطالب این درس دربرگیرندهی برنامهسازی در سیستمهای عامل اندروید و iOS خواهد بود. آشنایی قبلی با زبان برنامهسازی جاوا برای این درس لازم است، بنابراین گذراندن درس برنامهسازی پیشرفته به عنوان پیشنیاز ضروری است.
سرفصلها
- مقدمه و برپایی محیط توسعه اندروید (۲ جلسه)
- آشنایی با مفاهیم، ابزارها (Android Studio و Android SDK)، نحوهی خطایابی و آزمون در توسعهی برنامههای اندروید، فرایند تولید یک برنامه اندروید
- واسط کاربری و الگوهای آن (۳ جلسه)
- آشنایی با الگوی MVP، معرفی مولفههای واسط کاربری، اصول طراحی و پیادهسازی یک واسط کاربری سفارشی (به کمک بسطview و GroupView)، مدیریت واسط کاربری به صورت پویا (dynamic layouts management)، بهترین الگوهای (best practices) طراحی واسط کاربری در اندروید
- مدیریت دادهها و بومیسازی (۳ جلسه)
- ذخیره و بازیابی اطلاعات یک برنامه کاربردی در Preference اشتراکی و اختصاصی، ارتباط با پایگاه داده (SQLite database)، مکانیزمهای پشتیبانی از localization (l10n) و internationalization (i18n)
- حافظه و ریسمانها (۴ جلسه)
- چرخهی حیات برنامه اندروید (application life cycle)، مدل حافظه و مدیریت ریسمانها در اندروید، آشنایی با اصول پیادهسازی الگو AsyncTask
- مدیریت سرویسها (۴ جلسه)
- سرویسهای مبتنی بر مکان (location-based services)، مدیریت سرویسها و هشدارها (Services, Broadcast receivers and notifications)، مدیریت دوربین، مدیریت سنسورها (sensor manager)، آشنایی با پرداخت درون برنامهای
- برپایی محیط توسعه iOS (۱ جلسه)
- آشنایی با مفاهیم و ابزارهای توسعه برنامهسازی (Xcode)، مروری بر مولفههای واسط کاربری و آشنایی با Storyboards، آشنایی با الگوی MVC
- برنامهسازی با Swift (۳ جلسه)
- آشنایی با ساختار زبان، انواع داده، کلاسها و اشیا، قلمروها (Scopes)، اختیاریها (Optionals)، دادهها و توابع عام (Generics)، آشنایی با پروتکلها (Protocols)، مدیریت خطاها، مروری بر مدیریت حافظه
- تکنولوژیهای iOS (۸ جلسه)
- تکنولوژیهای واسط کاربری (UIKit، Core Graphics، Core Animation)، تکنولوژیهای بازیسازی (Game Kit، Sprite Kit، OpenGL ES، Game Controller)، تکنولوژیهای مدیریت دادهها (Core Data، Foundation)، مدیریت صدا و تصویر (AV Foundation)
- امنیت (۳ جلسه)
- آشنایی با مخاطرات امنیتی و استانداردهای تخمین آن (mobile security assessment)، آشنایی با ابزارهای Obfuscation، آشنایی با ابزارهای تحلیل مخاطرات امنیتی (روشهای مبتنی بر تحلیل ایستا و پویا-static and dynamic analysis tools، روشهای مهندسی مجدد)
ارزیابی پیشنهادی
- آزمونهای میانترم و پایانترم: ۱۲ نمره
- چهار تمرین: ۴ نمره
- یک پروژه: ۴ نمره
منابع پیشنهادی
- M. L. Murphy. The busy coder's guide to Android development. 2nd Edition, CommonsWare, 2011.
- M. Neuburg. iOS 12 Programming Fundamentals with Swift. O'Reilly Media, 2018.