Information
| Unit | FACULTY OF SCIENCE AND LETTERS |
| COMPUTER SCIENCES PR. | |
| Code | BBZ405 |
| Name | Mobile Application Development |
| Term | 2026-2027 Academic Year |
| Semester | 7. Semester |
| Duration (T+A) | 2-2 (T-A) (17 Week) |
| ECTS | 5 ECTS |
| National Credit | 3 National Credit |
| Teaching Language | Türkçe |
| Level | Belirsiz |
| Type | Normal |
| Label | E Elective |
| Mode of study | Yüz Yüze Öğretim |
| Catalog Information Coordinator | Dr. Öğr. Üyesi Cevher ÖZDEN |
| Course Instructor |
The current term course schedule has not been prepared yet.
|
Course Goal / Objective
The aim of this course is to provide students with conceptual and practical competence in mobile application development using the Flutter framework and the Dart programming language, and to enable them to apply user interface design, state management, data exchange, local and cloud-based data storage, testing, and deployment processes within an integrated mobile application development life cycle.
Course Content
Introduction to mobile application development; native and cross-platform development approaches; fundamental structures of the Dart programming language; Flutter framework architecture; widget tree, stateless and stateful widgets; layout, themes, visual components, and user interaction; navigation and routing; form handling and user input validation; state management approaches; data exchange through REST APIs; JSON processing; an introduction to cloud-based mobile services and Firebase; local data persistence; access to device features; error handling; testing, debugging, and performance improvement; application packaging, deployment processes, and term project development.
Course Precondition
There is no prerequisite. Prior knowledge of object-oriented programming, basic data structures, and basic web services is recommended.
Resources
Lecture notes, official Flutter documentation, official Dart documentation, Flutter API documentation, and sample project notes provided by the instructor. The Flutter documentation is the main technical reference for widgets, examples, updates, and API documentation, while the Dart documentation covers language features, the SDK, the package ecosystem, and best practices. (docs.flutter.dev)
Notes
Flutter Cookbook, Flutter State Management Documentation, Flutter Navigation Documentation, Flutter Testing Documentation, Firebase for Flutter Documentation, and the pub.dev package repository. Firebase can be used as a Backend-as-a-Service approach that supports the integration of cloud services such as Authentication, Firestore, and Storage in Flutter applications. (docs.flutter.dev)
Course Learning Outcomes
| Order | Course Learning Outcomes |
|---|---|
| LO01 | Explains mobile application development approaches and native and cross-platform development models. |
| LO02 | Applies the fundamental structures of the Dart programming language in the context of mobile application development. |
| LO03 | Designs user interface components using the Flutter widget tree, stateless widgets, and stateful widgets. |
| LO04 | Develops mobile interfaces using layout structures, themes, visual components, and user interaction elements. |
| LO05 | Applies user input handling, form operations, validation, and error message processes. |
| LO06 | Develops navigation, routing, and data transfer structures between screens in Flutter applications. |
| LO07 | Manages application state using appropriate state management approaches. |
| LO08 | Develops application components that exchange data through REST APIs and cloud-based mobile services. |
| LO09 | Develops an integrated mobile application project that includes local data persistence, basic testing, debugging, and deployment processes. |
Relation with Program Learning Outcome
| Order | Type | Program Learning Outcomes | Level |
|---|---|---|---|
| PLO01 | Bilgi - Kuramsal, Olgusal | Gain comprehensive knowledge of fundamental concepts, algorithms, and data structures in Computer Science. | 3 |
| PLO02 | Bilgi - Kuramsal, Olgusal | Learn essential computer topics such as software development, programming languages, and database management | 3 |
| PLO03 | Bilgi - Kuramsal, Olgusal | Understand advanced computer fields like data science, artificial intelligence, and machine learning. | 3 |
| PLO04 | Bilgi - Kuramsal, Olgusal | Acquire knowledge of topics like computer networks, cybersecurity, and database design. | 3 |
| PLO05 | Beceriler - Bilişsel, Uygulamalı | Develop skills in designing, implementing, and analyzing algorithms | 3 |
| PLO06 | Beceriler - Bilişsel, Uygulamalı | Gain proficiency in using various programming languages effectively | 3 |
| PLO07 | Beceriler - Bilişsel, Uygulamalı | Learn skills in data analysis, database management, and processing large datasets. | |
| PLO08 | Beceriler - Bilişsel, Uygulamalı | Acquire practical experience through working on software development projects. | |
| PLO09 | Yetkinlikler - Bağımsız Çalışabilme ve Sorumluluk Alabilme Yetkinliği | Strengthen teamwork and communication skills. | |
| PLO10 | Yetkinlikler - Alana Özgü Yetkinlik | Foster a mindset open to technological innovations. | |
| PLO11 | Yetkinlikler - Öğrenme Yetkinliği | Encourage the capacity for continuous learning and self-improvement. | 3 |
| PLO12 | Yetkinlikler - İletişim ve Sosyal Yetkinlik | Enhance the ability to solve complex problems | 3 |
Week Plan
| Week | Topic | Preparation | Methods |
|---|---|---|---|
| 1 | Introduction to mobile application development; mobile operating systems, native and cross-platform development approaches | Installing the Flutter and Dart development environment | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma |
| 2 | Introduction to the Dart programming language: variables, data types, collections, functions, and classes | Reviewing basic Dart syntax | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma |
| 3 | Flutter framework architecture, project structure, widget tree, and basic working principles | Creating the first Flutter project | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 4 | StatelessWidget, StatefulWidget, hot reload, and basic user interface components | Reviewing basic widget examples | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 5 | Layout structures: Row, Column, Stack, ListView, GridView, and responsive interface design | Reviewing layout widget examples | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 6 | Themes, styling, images, icons, user experience, and accessibility principles | Reviewing theme and style files | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 7 | User input, form handling, validation, error messages, and basic interactions | Reviewing form and TextField examples | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 8 | Mid-Term Exam | Review of topics | Ölçme Yöntemleri: Yazılı Sınav |
| 9 | Navigation, routing, screen transitions, and data transfer between screens | Reviewing navigation examples | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 10 | State management approaches: setState, Provider/Riverpod logic, and application state management | Reviewing state management documentation | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 11 | Using REST APIs, HTTP requests, JSON processing, and creating a service layer | Reviewing HTTP and JSON examples | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 12 | Cloud-based mobile services: Firebase Authentication, Cloud Firestore, Cloud Storage, and the Backend-as-a-Service approach | Reviewing Firebase project setup steps | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 13 | Local data persistence, offline operation logic, device features, and permission management | Reviewing local data persistence packages | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 14 | Testing, debugging, performance improvement, secure coding, and application quality | Reviewing debugging and testing examples | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 15 | Application packaging, deployment processes, term project presentations, and general evaluation | Preparing project files and presentation | Öğretim Yöntemleri: Soru-Cevap, Tartışma, Proje Temelli Öğrenme |
| 16 | Term Exams | Final project presentations | Ölçme Yöntemleri: Proje / Tasarım |
| 17 | Term Exams | Review of topics | Ölçme Yöntemleri: Yazılı Sınav |
Student Workload - ECTS
| Works | Number | Time (Hour) | Workload (Hour) |
|---|---|---|---|
| Course Related Works | |||
| Class Time (Exam weeks are excluded) | 14 | 4 | 56 |
| Out of Class Study (Preliminary Work, Practice) | 14 | 4 | 56 |
| Assesment Related Works | |||
| Homeworks, Projects, Others | 5 | 2 | 10 |
| Mid-term Exams (Written, Oral, etc.) | 1 | 3 | 3 |
| Final Exam | 1 | 3 | 3 |
| Total Workload (Hour) | 128 | ||
| Total Workload / 25 (h) | 5,12 | ||
| ECTS | 5 ECTS | ||