Repository contains information about Programming mobile applications in Flutter course.
Mateusz Wojtczak – mateusz.wojtczak@leancode.pl
Piotr Rogulski – piotr.rogulski@leancode.pl
Wiktor Zając – wiktor.zajac@leancode.pl
Students need to gather at least 51pt to pass the course:
- 51–60pt - 3
- 61–70pt - 3.5
- 71–80pt - 4
- 81–90pt - 4.5
- 91–100pt - 5
Points can be gained from:
- Project — 100pt
- Activity during lectures — 10pt
- Labs (non-obligatory) — 8 × 3pt = 24pt
- Flutter 3.47.6
- Dart 3.13.5
- Install Flutter by following the official guide.
- On the faculty lab computers, follow How to install Flutter. You can also bring your own laptop.
Lectures take place on Tuesdays. If anything changes - it will be announced.
| # | Date | Lecture | Lecturer |
|---|---|---|---|
| 1 | 06.10.2026 | Introduction to Flutter | Wiktor Zając |
| 2 | 13.10.2026 | Layouts 2: Flex, lists, and slivers | Wiktor Zając |
| 3 | 20.10.2026 | Giving context to BuildContext | Tomasz Koter |
| 4 | 27.10.2026 | Asynchrony and HTTP | Piotr Rogulski |
| 5 | 03.11.2026 | State Management with External Libraries | Wiktor Zając |
| 6 | 10.11.2026 | Firebase | Wiktor Zając |
| 7 | 17.11.2026 | Animations | Wiktor Zając |
| 8 | 24.11.2026 | Architecture | Mateusz Wojtczak |
| 9 | 01.12.2026 | Testing | Wiktor Zając |
| 10 | 08.12.2026 | Forms | Kamil Sztandur |
| 11 | 15.12.2026 | Data Persistence | Piotr Rogulski |
| 12 | 22.12.2026 | Fullstack Development with .NET and Flutter | Wiktor Zając |
| 13 | 12.01.2027 | Communication with Native | Wiktor Zając |
| 14 | 19.01.2027 | Flame | Kamil Sztandur |
| 15 | 26.01.2027 | Design Systems & Accessibility | Kamil Sztandur |
Labs take place on Tuesdays, right after the lecture, in two groups. From lab 2 on, each lab is an exercise about the lecture from the previous week. Each lab consists of multiple parts. Completing all parts is optional (as your homework) and is worth additional 3 pts each.
| # | Date | Lab |
|---|---|---|
| 1 | 06.10.2026 | Getting started: Dart and Flutter setup |
| 2 | 13.10.2026 | Layouts 1 |
| 3 | 20.10.2026 | Layouts 2 & using context |
| 4 | 27.10.2026 | Context and StatefulWidget |
| 5 | 03.11.2026 | Communication with API |
| 6 | 10.11.2026 | State management with external services |
| 7 | 17.11.2026 | Firebase Auth in action |
| 8 | 24.11.2026 | Animations |
| 9 | 01.12.2026 | Mandatory project checkpoint |
Week 10–15 lab slots can be used for project consulting — only by prior arrangement.
Send each lab by email to the teacher of your group:
- Group 1 — Wiktor Zając wiktor.zajac@leancode.pl
- Group 2 — Piotr Rogulski piotr.rogulski@leancode.pl
- Solve the lab in your clone of this repository, in
labs/weekN. Don't create a separate project. - Run
flutter cleaninlabs/weekN. - Zip the whole
labs/weekNdirectory and name the archivelabN_surname_name.zip, lowercase and without Polish characters, e.g.lab2_kowalski_jan.zip. The archive should contain one directory:weekN.
Your teacher unpacks the archive in place of labs/weekN and runs it as it is,
so don't send single files or a different project structure.
- Individual multilayer Flutter application that works at least on one mobile platform (Android/iOS)
- Application’s topic and scope is defined by the student, should be described in the initial documentation and approved by the teacher of your group.
- Project’s source code and final documentation is submitted according to the Timeline.
- Implementation of the required project assumptions (50pt)
- Initial documentation — 5pt
- Architecture — 15pt
- Code quality (e.g., static code analysis, formatting) — 15pt
- UI/UX
- Material Design — 5pt
- Custom design widgets — 5pt
- The final documentation — 5pt
- Optional requirements (max 50pt)
- Animations
- Implicit / ready-to-use packages — max 5pt
- Custom — max 10pt
- Tests
- Unit tests — max 5pt
- Widget tests — max 5pt
- Patrol tests — max 10pt
- Signing in process
- Firebase Auth — max 5pt
- Custom backend auth — max 10pt
- Multistep form with validation — max 10pt
- CI/CD — max 15pt
- Code analysis & run flutter test — max 10pt
- App deployment — max 10pt
- Platform Channels
- Using pub package for platform features (e.g., camera) — 5pt
- Creating custom platform channels — 15pt
- Internationalization — max 10pt
- Custom painting — max 5pt
- Local data persistence (offline) — max 15pt
- Animations
- 27.10.2026 — Initial documentation
- 01.12.2026 — Mandatory project checkpoint
- 29.01.2027 — Project Submission (source code + final documentation)
- 14.02.2027 — Late Project Submission
Send the project by email to the teacher of your group, as with
labs. Run flutter clean, then zip the project directory
together with the final documentation (PDF) and name the archive
project_surname_name.zip, e.g. project_kowalski_jan.zip.
Initial documentation should contain:
- Project description
- Desired optional requirements should be listed in the initial documentation
- User stories (e.g., As a user, I can sign in; As a user, I can view the list of items)
The final documentation should contain:
- Project description
- Integrations
- List of optional requirements
- Instruction
- Test account (if applicable)
- Database/Firestore schema (if applicable)
- CI/CD description/screenshot (if applicable)
But it shouldn't be longer than 1–2 pages. :)
Students can submit the project until 14.02.2027. Each day of being late will take a decrease of 5pt from the total number of gained points (not less than 51pt). Projects submitted after the final deadline won't be accepted.