0% found this document useful (0 votes)
11 views7 pages

Mobile Application Development-2

The document outlines the Scheme of Studies for a BS in Computer Science with a focus on Mobile Application Development for the year 2025. It details course objectives, learning outcomes, weekly schedules, and recommended materials for both theoretical and lab components of the course. The curriculum emphasizes practical skills in mobile app development using Flutter and Firebase, along with state management and deployment strategies.

Uploaded by

asifiqra1110
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views7 pages

Mobile Application Development-2

The document outlines the Scheme of Studies for a BS in Computer Science with a focus on Mobile Application Development for the year 2025. It details course objectives, learning outcomes, weekly schedules, and recommended materials for both theoretical and lab components of the course. The curriculum emphasizes practical skills in mobile app development using Flutter and Firebase, along with state management and deployment strategies.

Uploaded by

asifiqra1110
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Scheme of Studies for BS (Computer Science) 2025

CS Elec. - V, Mobile Application Development


Course Code: CSMA-424-T

Semester Credit Hours Prerequisite


[BSCS-7] [2+0] [CSOO-117-T]
Course Description
Objective of mobile development is creating applications and any other kind of software specific
to mobile devices, including tablets. Mobile development seeks to optimize functionality and user
experience on mobile devices, as there are important differences between mobile and desktop UX.
This course aims to introduce students to the following concepts and cognitive skills.

Course Learning Outcomes (CLOs)


The course learning outcome along with domain and BT level are listed below

S. # CLO STATEMENT DOMAIN BT LEVEL PLO


Develop user friendly cross platform C3
CLO-1 mobile applications. C 2
Applying
Design data persistent cross platform C6
CLO-2 mobile applications. C 4
Evaluation
Adapt best practices and advanced C6
CLO-3 features. C 4
Evaluation
* BT= Bloom’s Taxonomy, C=Cognitive Domain, P=Psychomotor Domain, A= Affective Domain

Course Materials
 Flutter fundamentals: Building UIs, understanding widgets, and layouts
 State management: Managing app state using Provider, Riverpod, and other solutions
 User interaction and navigation: Handling user input, navigating between screens, and
using named routes
 Data storage and persistence: Using local storage, Firebase, and other databases to store
and retrieve data
 Firebase integration: Implementing Firebase authentication, Firestore, and other Firebase
features
 Advanced features: Using maps, animations, and native integration in Flutter apps
 Best practices and optimization: Writing clean code, testing, and optimizing app
performance
 App deployment: Preparing and publishing apps to the App Store and Google Play Store

Course Weekly Schedule


The course schedule for 16 weeks is detailed below

200
Scheme of Studies for BS (Computer Science) 2025
Week Topic
1 Introduction to Flutter: What is Flutter? Why use it? The widget-based architecture.
Cross-platform-capabilities.
Introduction to Dart: The programming language of Flutter. Variables, data types,
control flow (if/else, loops), functions.
Object-Oriented Programming (OOP) in Dart: Classes, objects, constructors,
inheritance, and polymorphism.
2 Stateless vs. Stateful Widgets: Understanding the core difference and when to use each.
Basic Widgets: Text, Image, Icon, Button, Container, SizedBox.
Layout Widgets: Row, Column, Stack, Padding, Margin.
Flutter's Layout System: The "everything is a widget" philosophy and how to build
complex UIs by composing widgets.
3 Handling User Input: GestureDetector, InkWell, and ElevatedButton/TextButton
widgets.
Forms and Form Validation: TextField, TextFormField, and form validation logic.
Basic Navigation: Navigating between screens using [Link]() and
[Link]().
Named Routes: Using named routes for cleaner navigation in larger apps.
4 Displaying Lists of Data: ListView, [Link], and GridView.
Asynchronous Programming: Future, async, await. Handling asynchronous data
retrieval.
Networking and APIs: Making HTTP requests with the http package to fetch data from
a REST API.
JSON Serialization: Converting JSON data into Dart objects.
5 The Problem with setState(): Why simple state management isn't scalable for complex
apps.
Introduction to State Management: The different approaches and the role of a state
management solution.
Provider Package: The most common and simple state management solution.
Using ChangeNotifier and Consumer: Understanding how to listen for state changes
and rebuild only necessary widgets.
6 Introduction to more advanced state management: Understanding the Bloc pattern or
Riverpod (recommended as a modern alternative to Provider).
Responsive Design: Creating UIs that adapt to different screen sizes and orientations.
Using MediaQuery and LayoutBuilder: Adapting layouts based on screen dimensions.
Custom Widgets: Creating your own reusable and composable widgets.

201
Scheme of Studies for BS (Computer Science) 2025
Week Topic
7 Introduction to Local Data Storage: Why and when to use local storage.
Shared Preferences: Simple key-value storage for small data.
SQFlite: Using a local SQLite database for structured data.
Hive: A popular and fast NoSQL database for Flutter.
8 Introduction to Firebase: What is Firebase and why is it a popular backend for Flutter
apps?
Setting up Firebase: Creating a project, adding Firebase to your Flutter app.
Firebase Authentication: Implementing email/password, social media (Google,
Facebook) and anonymous sign-in.
Firestore Database: Introduction to a NoSQL, real-time database.
9 Mid Term Exams
10 Firestore Advanced Concepts: Data modeling, querying, and security rules.
Cloud Storage: Storing and retrieving images and other files.
Cloud Functions: Writing serverless functions to extend your app's functionality.
Push Notifications: Implementing push notifications with Firebase Cloud Messaging
(FCM).
11 Platform Channels: Understanding how to communicate with native code
(Android/iOS).
Using Popular Packages: url_launcher, image_picker, location, geolocator.
Maps Integration: Displaying maps and markers using the Maps_flutter package.
Animations: Introduction to implicit and explicit animations. AnimatedContainer,
Hero widgets.
12 Clean Architecture: Structuring your app for maintainability and scalability.
Separation of Concerns: Splitting code into different layers (UI, business logic, data).
Introduction to Testing: Unit tests, widget tests, and integration tests.
Writing Tests: Writing effective tests for different parts of your application.
13 Debugging Tools: Using Flutter DevTools to inspect widgets and profile app
performance.
Performance Best Practices: const widgets, efficient list building, and image caching.
Error Handling and Crash Reporting: Implementing services like Firebase Crashlytics.
CI/CD (Continuous Integration/Continuous Deployment): Introduction to automating
builds and deployments.
14 Finalizing the Capstone Project.

202
Scheme of Studies for BS (Computer Science) 2025
Week Topic
15 Capstone Project: Addressing any last-minute challenges.
App Store and Play Store Deployment: A step-by-step guide to preparing and
publishing your app.
Monetization Strategies: AdMob, in-app purchases.
Next Steps: Continuing to learn and grow as a Flutter developer.
16 Final Term Exams

Recommended Textbooks
1. " Flutter Apps Development: Build Cross-Platform Flutter Apps with Trust " by Mouaz
M. Al-Shahmeh
2. " Beginning App Development with Flutter " by Rap Payne
Recommended Reference (Books/Websites/Articles)
1. [Link]

203
Scheme of Studies for BS (Computer Science) 2025
CS Elec. - V, Mobile Application Development -Lab
Course Code: CSMA-424-L

Semester Credit Hours Prerequisite


[BSCS-7] [0+1] [CSOO-117-L]

Course Description
Objective of mobile development is creating applications and any other kind of software specific
to mobile devices, including tablets. Mobile development seeks to optimize functionality and user
experience on mobile devices, as there are important differences between mobile and desktop UX.
This course aims to introduce students to the following concepts and cognitive skills.

Course Learning Outcomes (CLOs)


The course learning outcome along with domain and BT level are listed below

S. # CLO STATEMENT DOMAIN BT LEVEL PLO


CLO-1 Develop programs using fundamental C6
concepts of mobile application C 4
development Evaluation

CLO-2 Manipulate the use of Android Studio P3


for making mobile applications. P Guided 5
Response
CLO-3 Manipulate the use of any technology to P3
create a mobile application with database P Guided 5
connectivity. Response
* BT= Bloom’s Taxonomy, C=Cognitive Domain, P=Psychomotor Domain, A= Affective Domain

Course Materials
Mobiles Application Development Platform, Android OS: Architecture, Framework and
Application Development; iOS: Architecture, Framework; Application Development with
Windows Mobile; Eclipse; Fragments; Calling Built-in Applications using Intents; Displaying
Notifications; Components of a Screen; Adapting to Display Orientation; Managing Changes to
Screen Orientation; Utilizing the Action Bar; Creating the User Interface; Listening for UI
Notifications; Views; User Preferences; Persisting Data; Sharing Data; Sending SMS Messages;
Getting Feedback; Sending E-mail; Displaying Maps; Consuming Web Services Using HTTP;
Web Services: Accessing and Creating; Threading; Publishing, Android Applications;
Deployment on App Stores; Mobile Programming Languages; Challenges with Mobility and
Wireless Communication; Location-aware Applications; Performance/Power Tradeoffs; Mobile
Platform Constraints; Emerging Technologies.
Lab Weekly Schedule

204
Scheme of Studies for BS (Computer Science) 2025
The course schedule for 17 weeks is detailed below

Week Topic
1  Install Flutter and set up your development environment.
 Create your first "Hello, World!" Flutter app.
 Complete Dart programming exercises: build a simple calculator or a
program to manage a list of items using OOP concepts.

2  Recreate a simple UI screen (e.g., a login screen or a basic profile page)


using various layout widgets.
 Build a simple "Counter" app to understand the concept of state
(StatefulWidget).
3  Build a simple multi-screen application (e.g., a simple quiz app).
 Create a user registration form with basic validation (e.g., checking for
empty fields).
4  Build a ListView that displays a static list of items.
 Create a simple weather app that fetches data from a public weather
API.
5  Refactor a previous app (e.g., the quiz app) to use the Provider package
for state management.
 Build a simple shopping cart app with Provider to manage the list of
items.
6  Migrate an app from Provider to a more advanced state management
solution like Riverpod to understand the differences.
 Design a responsive UI for a single screen that looks good on both a
phone and a tablet.
7  Build a "Notes" app that stores notes locally using a database like Hive or
SQFlite.
 Implement a settings screen where user preferences are saved using
shared_preferences.
8 Open Ended Mid Term Lab Exam

9  Build a complete authentication flow for a new app, including sign-up,


sign-in, and sign-out.
 Create a simple "To-Do List" app that stores tasks in Firestore.
10  Extend the "To-Do List" app to allow users to add images to their tasks,
which are stored in Firebase Storage.
 Implement a chat feature in the app, using Firestore to send and receive
real-time messages.
11  Build an app that uses the image_picker to select an image and display it
on the screen.
 Integrate a map into your app to display the user's current location.
12  Refactor a previous app project to follow a more organized architecture.
 Write unit tests for your Dart classes and widget tests for your UI
components.

205
Scheme of Studies for BS (Computer Science) 2025
Week Topic
3  Use Flutter DevTools to identify and fix a performance bottleneck in a
sample app.
 Integrate Crashlytics into your project to report errors.
14  Create a project plan, including a list of features, a timeline, and a
wireframe/design for your capstone project.
 Set up a new Flutter project and configure all the necessary packages
and Firebase integrations.
15  Complete the capstone project.
 Generate a release build of your app.
 Prepare all assets (icons, screenshots) for the app stores.
16 Open ended End Term Lab Exam

Recommended Textbooks

1. Professional Android Application Development, Reto Meier, Wrox Programmer to


Programmer, 3rd Edition (2014)
2. iOS Programming: The Big Nerd Ranch Guide, Conway, J., Hillegass, A., & Keur, C., 5th
Edition (2015)
Recommended Reference (Books/Websites/Articles)
1. Android Programming: The Big Nerd Ranch Guides, Phillips, B. & Hardy, B., 3rd Edition
(2017)

206

You might also like