<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://eduwiki.innopolis.university/index.php?action=history&amp;feed=atom&amp;title=BSTE%3A_Cross-platform_Mobile_Development_with_Flutter</id>
	<title>BSTE: Cross-platform Mobile Development with Flutter - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://eduwiki.innopolis.university/index.php?action=history&amp;feed=atom&amp;title=BSTE%3A_Cross-platform_Mobile_Development_with_Flutter"/>
	<link rel="alternate" type="text/html" href="https://eduwiki.innopolis.university/index.php?title=BSTE:_Cross-platform_Mobile_Development_with_Flutter&amp;action=history"/>
	<updated>2026-05-07T17:41:31Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://eduwiki.innopolis.university/index.php?title=BSTE:_Cross-platform_Mobile_Development_with_Flutter&amp;diff=8058&amp;oldid=prev</id>
		<title>R.sirgalina: Created page with &quot; = Mobile Cross-Platform Flutter Developer = * '''Course name''': Mobile Cross-Platform Flutter Developer * '''Code discipline''': R-01 * '''Subject area''':   == Short Descri...&quot;</title>
		<link rel="alternate" type="text/html" href="https://eduwiki.innopolis.university/index.php?title=BSTE:_Cross-platform_Mobile_Development_with_Flutter&amp;diff=8058&amp;oldid=prev"/>
		<updated>2023-02-08T12:51:29Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot; = Mobile Cross-Platform Flutter Developer = * &amp;#039;&amp;#039;&amp;#039;Course name&amp;#039;&amp;#039;&amp;#039;: Mobile Cross-Platform Flutter Developer * &amp;#039;&amp;#039;&amp;#039;Code discipline&amp;#039;&amp;#039;&amp;#039;: R-01 * &amp;#039;&amp;#039;&amp;#039;Subject area&amp;#039;&amp;#039;&amp;#039;:   == Short Descri...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
= Mobile Cross-Platform Flutter Developer =&lt;br /&gt;
* '''Course name''': Mobile Cross-Platform Flutter Developer&lt;br /&gt;
* '''Code discipline''': R-01&lt;br /&gt;
* '''Subject area''': &lt;br /&gt;
&lt;br /&gt;
== Short Description ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequisite subjects ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prerequisite topics ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Course Topics ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Course Sections and Topics&lt;br /&gt;
|-&lt;br /&gt;
! Section !! Topics within the section&lt;br /&gt;
|-&lt;br /&gt;
| Basics of Dart/Flutter development || &lt;br /&gt;
# • Key concepts and syntax of Dart programming language&lt;br /&gt;
# • Working with REST API in a Dart/Flutter app&lt;br /&gt;
# • Deep dive into rendering in Flutter (Widgets, Elements, RenderObjects)&lt;br /&gt;
# • Scrollable lists and grids in Flutter&lt;br /&gt;
|-&lt;br /&gt;
| Advanced development || &lt;br /&gt;
# • Usage of Dart/Flutter packages and plugins.&lt;br /&gt;
# • Popular packages and plugins from pub.dev that makes development simpler.&lt;br /&gt;
# • Understanding of packages/plugins development and publication&lt;br /&gt;
# • Persistence in Flutter, different approaches and libraries&lt;br /&gt;
# • Dart asynchronous programming&lt;br /&gt;
# • Flutter app architectures and state management approaches&lt;br /&gt;
# • Complex animations&lt;br /&gt;
|-&lt;br /&gt;
| Extra topics || &lt;br /&gt;
# • Working with deep links &amp;amp; web URLs&lt;br /&gt;
# • Different approaches for native platform interoperability&lt;br /&gt;
# • Usage of Firebase tools and services&lt;br /&gt;
# • Types of testing and how to provide high quality for an application&lt;br /&gt;
# • Build artifacts for different platforms and deploy them&lt;br /&gt;
|} &lt;br /&gt;
== Intended Learning Outcomes (ILOs) ==&lt;br /&gt;
&lt;br /&gt;
=== What is the main purpose of this course? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ILOs defined at three levels ===&lt;br /&gt;
&lt;br /&gt;
==== Level 1: What concepts should a student know/remember/explain? ====&lt;br /&gt;
By the end of the course, the students should be able to ...&lt;br /&gt;
* • Understand core concepts of Dart programming language&lt;br /&gt;
* • Understand asynchronous programming with Dart language&lt;br /&gt;
* • Understand core concepts of how Flutter framework works with UI&lt;br /&gt;
* • Understand core concepts of how Flutter applications communicate with hosting platforms, such as iOS, Android, web, desktop&lt;br /&gt;
* • Apply different architecture patterns in Flutter app development&lt;br /&gt;
* • Know how to create production-ready applications using Flutter framework and provide a great user experience with it&lt;br /&gt;
* • Learn a broad and robust understanding of mobile app development including some basics of Android and iOS specifics&lt;br /&gt;
* • 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&lt;br /&gt;
&lt;br /&gt;
==== Level 2: What basic practical skills should a student be able to perform? ====&lt;br /&gt;
By the end of the course, the students should be able to ...&lt;br /&gt;
* • Write code using Dart programming language&lt;br /&gt;
* • Build business-logic with Dart programming language&lt;br /&gt;
* • Build applications’ UI with Flutter framework&lt;br /&gt;
* • Create complex animations using Flutter framework&lt;br /&gt;
* • Test applications with unit, widget and integration tests&lt;br /&gt;
&lt;br /&gt;
==== Level 3: What complex comprehensive skills should a student be able to apply in real-life scenarios? ====&lt;br /&gt;
By the end of the course, the students should be able to ...&lt;br /&gt;
* • Combine asynchronous programming with multithreading using Dart programming language&lt;br /&gt;
* • Work with platform channels and transmit data between native platform and Flutter application&lt;br /&gt;
* • Build modular Flutter dependencies: packages and plugins&lt;br /&gt;
* • Work with Firebase toolchain: Authorization, Storage, Crashlytics etc&lt;br /&gt;
* • Build Flutter applications for different platforms and deploy them via CI/CD tools &lt;br /&gt;
== Grading ==&lt;br /&gt;
&lt;br /&gt;
=== Course grading range ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &lt;br /&gt;
|-&lt;br /&gt;
! Grade !! Range !! Description of performance&lt;br /&gt;
|-&lt;br /&gt;
| A. Excellent || 85-100 || -&lt;br /&gt;
|-&lt;br /&gt;
| B. Good || 70-84 || -&lt;br /&gt;
|-&lt;br /&gt;
| C. Satisfactory || 55-69 || -&lt;br /&gt;
|-&lt;br /&gt;
| D. Poor || 0-54 || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Course activities and grading breakdown ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &lt;br /&gt;
|-&lt;br /&gt;
! Activity Type !! Percentage of the overall course grade&lt;br /&gt;
|-&lt;br /&gt;
| Labs/seminar classes ||  30&lt;br /&gt;
|-&lt;br /&gt;
| Interim performance assessment ||  40&lt;br /&gt;
|-&lt;br /&gt;
| Exams ||  30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Recommendations for students on how to succeed in the course ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Resources, literature and reference materials ==&lt;br /&gt;
&lt;br /&gt;
=== Open access resources ===&lt;br /&gt;
* • https://www.dart.dev&lt;br /&gt;
* • https://www.flutter.dev&lt;br /&gt;
&lt;br /&gt;
=== Closed access resources ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Software and tools used within the course ===&lt;br /&gt;
 &lt;br /&gt;
= Teaching Methodology: Methods, techniques, &amp;amp; activities =&lt;br /&gt;
&lt;br /&gt;
== Activities and Teaching Methods ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Activities within each section&lt;br /&gt;
|-&lt;br /&gt;
! Learning Activities !! Section 1 !! Section 2 !! Section 3&lt;br /&gt;
|-&lt;br /&gt;
| Development of individual parts of software product code || 1 || 1 || 1&lt;br /&gt;
|-&lt;br /&gt;
| Homework and group projects || 1 || 1 || 1&lt;br /&gt;
|-&lt;br /&gt;
| Testing (written or computer based) || 1 || 1 || 1&lt;br /&gt;
|} &lt;br /&gt;
== Formative Assessment and Course Activities ==&lt;br /&gt;
&lt;br /&gt;
=== Ongoing performance assessment ===&lt;br /&gt;
&lt;br /&gt;
==== Section 1 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &lt;br /&gt;
|-&lt;br /&gt;
! Activity Type !! Content !! Is Graded?&lt;br /&gt;
|-&lt;br /&gt;
| Question || 1. What language construction allows us to write interfaces in Dart? || 1&lt;br /&gt;
|-&lt;br /&gt;
| Question || 2. What does const keyword mean in Dart? || 1&lt;br /&gt;
|-&lt;br /&gt;
| Question || 3. How many threads does Dart application have by default? || 1&lt;br /&gt;
|-&lt;br /&gt;
| Question || 4. How do we write asynchronous code in Dart? What are 2 ways of writing it? || 1&lt;br /&gt;
|-&lt;br /&gt;
| Question || 5. In what way Flutter supports Composition over Inheritance? || 1&lt;br /&gt;
|-&lt;br /&gt;
| Question || 1. What are the generators in Dart? What do yield, sync*, async* keywords mean? || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || 2. What is a Stream in Dart? How many subscribers can it have? Which two main types of streams do we have? || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || 3. What should we use if we want to make two operations in parallel? Do Futures allow us to do so? || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || 4. What is the difference between LocalKeys and GlobalKeys? || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || 5. What is a Widget in Flutter? What are the main types of it we have? || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || Questions for exam preparation within this section || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || 1. What is the difference between var, final and const variables in Dart? || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || 2. What is a Future? How can we work with the result value, encapsulated in it? || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || 3. What is a Sliver? Why may one need to use it? || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || 4. What is an InheritedWidget in Flutter? || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || 5. Why and how do we use Keys in Flutter applications? || 0&lt;br /&gt;
|} &lt;br /&gt;
==== Section 2 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &lt;br /&gt;
|-&lt;br /&gt;
! Activity Type !! Content !! Is Graded?&lt;br /&gt;
|-&lt;br /&gt;
| Question || 1. What are the ways of implementing routing in Flutter application? || 1&lt;br /&gt;
|-&lt;br /&gt;
| Question || 2. What is the difference between package and plugin? || 1&lt;br /&gt;
|-&lt;br /&gt;
| Question || 3. How Dart resolves project dependencies? || 1&lt;br /&gt;
|-&lt;br /&gt;
| Question || 4. What are the requirements for package publishing? || 1&lt;br /&gt;
|-&lt;br /&gt;
| Question || 5. What is SingleTickerProviderStateMixin? || 1&lt;br /&gt;
|-&lt;br /&gt;
| Question || 1. What are the types of animations in Flutter? || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || 2. What is an AnimationController? || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || 3. What is Tween? || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || 4. What are key concepts of BLoC architecture? || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || 5. What are key concepts of Redux architecture? || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || Test questions for exam preparation within this section || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || 1. What is the difference between DI and ServiceLocator? || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || 2. What is the Provider library? || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || 3. What is GetIt and Injectable? How are they related? || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || 4. How dart dependencies can be provided? || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || 5. What state management approaches do you know? || 0&lt;br /&gt;
|} &lt;br /&gt;
==== Section 3 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &lt;br /&gt;
|-&lt;br /&gt;
! Activity Type !! Content !! Is Graded?&lt;br /&gt;
|-&lt;br /&gt;
| Question || 1. What is a deeplink? || 1&lt;br /&gt;
|-&lt;br /&gt;
| Question || 2. How does Flutter communicate with native platforms? || 1&lt;br /&gt;
|-&lt;br /&gt;
| Question || 3. Can you insert native view inside Flutter widgets? || 1&lt;br /&gt;
|-&lt;br /&gt;
| Question || 4. What is MethodChannel and EventChannel? || 1&lt;br /&gt;
|-&lt;br /&gt;
| Question || 5. In what thread messages between native side and Flutter are received? || 1&lt;br /&gt;
|-&lt;br /&gt;
| Question || 1. What features for mobile applications from Firebase do you know? || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || 2. What is the difference between Firebase Cloud Storage and Firebase Realtime Database? || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || 3. What is Crashlytics? || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || 4. What are the three main steps of each test? || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || 5. What are the types of tests in Flutter? How are they different from each other? || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || Test questions for exam preparation within this section || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || 1. What command is used for building a Flutter application? || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || 2. What types of builds do you know? What is the difference? || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || 3. Why is hot reload possible? || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || 4. What are golden tests? || 0&lt;br /&gt;
|-&lt;br /&gt;
| Question || 5.What are the approaches for mocking functionality in Flutter? || 0&lt;br /&gt;
|} &lt;br /&gt;
=== Final assessment ===&lt;br /&gt;
'''Section 1'''&lt;br /&gt;
# 1. What is an abstract class in Dart?&lt;br /&gt;
# 2. What is a mixin in Dart, how can we use it?&lt;br /&gt;
# 3. What is a RenderObject? What responsibilities does it have?&lt;br /&gt;
# 4. What is the difference between Stateless- and StatefulWidgets in Flutter?&lt;br /&gt;
# 5. What is a BuildContext in Flutter?&lt;br /&gt;
'''Section 2'''&lt;br /&gt;
# 1. What is app state and ephemeral state?&lt;br /&gt;
# 2. What different approaches for persistence in Flutter do you know?&lt;br /&gt;
# 3. What is Riverpod and how is it different from Provider?&lt;br /&gt;
# 4. What is an EventLoop in Dart? How does it work with sync/async tasks?&lt;br /&gt;
# 5. What is a microtask in Dart? What is Isolate?&lt;br /&gt;
'''Section 3'''&lt;br /&gt;
# 1. What are core requirements for using Firebase?&lt;br /&gt;
# 2. What types of objects are allowed to be passed through MessageChannel?&lt;br /&gt;
# 3. What is BinaryMessenger?&lt;br /&gt;
# 4. How to handle path navigation in Flutter Web?&lt;br /&gt;
&lt;br /&gt;
=== The retake exam ===&lt;br /&gt;
'''Section 1'''&lt;br /&gt;
&lt;br /&gt;
'''Section 2'''&lt;br /&gt;
&lt;br /&gt;
'''Section 3'''&lt;/div&gt;</summary>
		<author><name>R.sirgalina</name></author>
	</entry>
</feed>