IU:TestPage
Revision as of 00:17, 9 September 2022 by R.sirgalina (talk | contribs)
Mobile Cross-Platform Flutter Developer
- Course name: Mobile Cross-Platform Flutter Developer
- Code discipline: R-01
- Subject area:
Short Description
This course covers the following concepts: Basics of mobile development; Fundamentals of Dart programming language; Fundamentals of mobile development with Flutter; Advanced cross-platform development topics.
Prerequisites
Prerequisite subjects
Prerequisite topics
Course Topics
Section | Topics within the section |
---|---|
Basics of Dart/Flutter development |
|
Advanced development |
|
Extra topics |
|
Intended Learning Outcomes (ILOs)
What is the main purpose of this course?
Flutter is a powerful multi-platform framework that allows one to create complex
ILOs defined at three levels
Level 1: What concepts should a student know/remember/explain?
By the end of the course, the students should be able to ...
- By the end of the course, the students should be able to ...
- Understand core concepts of Dart programming language
- Understand asynchronous programming with Dart language
- Understand core concepts of how Flutter framework works with UI
- Understand core concepts of how Flutter applications communicate with hosting
- platforms, such as iOS, Android, web, desktop
- Apply different architecture patterns in Flutter app development
- Know how to create production-ready applications using Flutter framework and
- provide a great user experience with it
- Learn a broad and robust understanding of mobile app development including
- some basics of Android and iOS specifics
- Create a portfolio-ready project which uses some advanced mobile app
- development techniques such as client-server communications, complex animations,
- unit- and UI-testing and so on
Level 2: What basic practical skills should a student be able to perform?
By the end of the course, the students should be able to ...
- By the end of the course, the students should be able to ...
- Write code using Dart programming language
- Build business-logic with Dart programming language
- Build applications’ UI with Flutter framework
- Create complex animations using Flutter framework
- Test applications with unit, widget and integration tests
Level 3: What complex comprehensive skills should a student be able to apply in real-life scenarios?
By the end of the course, the students should be able to ...
- By the end of the course, the students should be able to ...
- Combine asynchronous programming with multithreading using Dart programming
- language
- Work with platform channels and transmit data between native platform and Flutter
- application
- Build modular Flutter dependencies: packages and plugins
- Work with Firebase toolchain: Authorization, Storage, Crashlytics etc
- Build Flutter applications for different platforms and deploy them via CI/CD tools
Grading
Course grading range
Grade | Range | Description of performance |
---|---|---|
A. Excellent | 85-100 | - |
B. Good | 70-84 | - |
C. Satisfactory | 55-69 | - |
D. Poor | 0-54 | - |
Course activities and grading breakdown
Activity Type | Percentage of the overall course grade |
---|---|
Labs/seminar classes | 30 |
Interim performance assessment | 40 |
Exams | 30 |
Recommendations for students on how to succeed in the course
Resources, literature and reference materials
Open access resources
Closed access resources
Software and tools used within the course
Teaching Methodology: Methods, techniques, & activities
Activities and Teaching Methods
Learning Activities | Section 1 | Section 2 | Section 3 |
---|---|---|---|
Development of individual parts of
software product code || 1 || 1 || 1 | |||
Homework and group projects | 1 | 1 | 1 |
Testing (written or computer based) | 1 | 1 | 1 |
Formative Assessment and Course Activities
Ongoing performance assessment
Section 1
Activity Type | Content | Is Graded? |
---|---|---|
Question | What language construction allows us to write interfaces in Dart? | 1 |
Question | What does const keyword mean in Dart? | 1 |
Question | How many threads does Dart application have by default? | 1 |
Question | How do we write asynchronous code in Dart? What are 2 ways of writing it? | 1 |
Question | In what way Flutter supports Composition over Inheritance? | 1 |
Question | What are the generators in Dart? What do yield, sync*, async* keywords mean? | 0 |
Question | What is a Stream in Dart? How many subscribers can it have? Which two main | 0 |
Question | types of streams do we have? | 0 |
Question | What should we use if we want to make two operations in parallel? Do Futures | 0 |
Question | allow us to do so? | 0 |
Question | What is the difference between LocalKeys and GlobalKeys? | 0 |
Question | What is a Widget in Flutter? What are the main types of it we have? | 0 |
Question | Questions for exam preparation within this section | 0 |
Question | What is the difference between var, final and const variables in Dart? | 0 |
Question | What is a Future? How can we work with the result value, encapsulated in it? | 0 |
Question | What is a Sliver? Why may one need to use it? | 0 |
Question | What is an InheritedWidget in Flutter? | 0 |
Question | Why and how do we use Keys in Flutter applications? | 0 |
Section 2
Activity Type | Content | Is Graded? |
---|---|---|
Question | What are the ways of implementing routing in Flutter application? | 1 |
Question | What is the difference between package and plugin? | 1 |
Question | How Dart resolves project dependencies? | 1 |
Question | What are the requirements for package publishing? | 1 |
Question | What is SingleTickerProviderStateMixin? | 1 |
Question | What are the types of animations in Flutter? | 0 |
Question | What is an AnimationController? | 0 |
Question | What is Tween? | 0 |
Question | What are key concepts of BLoC architecture? | 0 |
Question | What are key concepts of Redux architecture? | 0 |
Question | Test questions for exam preparation within this section | 0 |
Question | What is the difference between DI and ServiceLocator? | 0 |
Question | What is the Provider library? | 0 |
Question | What is GetIt and Injectable? How are they related? | 0 |
Question | How dart dependencies can be provided? | 0 |
Question | What state management approaches do you know? | 0 |
Section 3
Activity Type | Content | Is Graded? |
---|---|---|
Question | What is a deeplink? | 1 |
Question | How does Flutter communicate with native platforms? | 1 |
Question | Can you insert native view inside Flutter widgets? | 1 |
Question | What is MethodChannel and EventChannel? | 1 |
Question | In what thread messages between native side and Flutter are received? | 1 |
Question | What features for mobile applications from Firebase do you know? | 0 |
Question | What is the difference between Firebase Cloud Storage and Firebase Realtime | 0 |
Question | Database? | 0 |
Question | What is Crashlytics? | 0 |
Question | What are the three main steps of each test? | 0 |
Question | What are the types of tests in Flutter? How are they different from each other? | 0 |
Question | Test questions for exam preparation within this section | 0 |
Question | What command is used for building a Flutter application? | 0 |
Question | What types of builds do you know? What is the difference? | 0 |
Question | Why is hot reload possible? | 0 |
Question | What are golden tests? | 0 |
Question | What are the approaches for mocking functionality in Flutter? | 0 |
Final assessment
Section 1
- What is an abstract class in Dart?
- What is a mixin in Dart, how can we use it?
- What is a RenderObject? What responsibilities does it have?
- What is the difference between Stateless- and StatefulWidgets in Flutter?
- What is a BuildContext in Flutter?
Section 2
- What is app state and ephemeral state?
- What different approaches for persistence in Flutter do you know?
- What is Riverpod and how is it different from Provider?
- What is an EventLoop in Dart? How does it work with sync/async tasks?
- What is a microtask in Dart? What is Isolate?
Section 3
- What are core requirements for using Firebase?
- What types of objects are allowed to be passed through MessageChannel?
- What is BinaryMessenger?
- How to handle path navigation in Flutter Web?
The retake exam
Section 1
Section 2
Section 3