برنامه‌سازی موبایل

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، روش‌های مهندسی مجدد)

ارزیابی

  • آزمون‌های میان‌ترم و پایان‌ترم (۱۲ نمره)
  • چهار تمرین (۴ نمره)
  • یک پروژه ‌(۴ نمره)

مراجع

  1. M. L. Murphy. The busy coder's guide to Android development. CommonsWare, 2011.
  2. M. Neuburg. iOS 12 Programming Fundamentals with Swift. O'Reilly Media, 2018.