برنامهسازی موبایل
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. CommonsWare, 2011.
- M. Neuburg. iOS 12 Programming Fundamentals with Swift. O'Reilly Media, 2018.