All Projects → dwyl → flutter-todo-list-tutorial

dwyl / flutter-todo-list-tutorial

Licence: GPL-2.0 license
✅ A detailed example/tutorial building a cross-platform Todo List App using Flutter 🦋

Programming Languages

dart
5743 projects
HTML
75241 projects
shell
77523 projects
swift
15916 projects

Projects that are alternatives of or similar to flutter-todo-list-tutorial

Javascript Todo List Tutorial
✅ A step-by-step complete beginner example/tutorial for building a Todo List App (TodoMVC) from scratch in JavaScript following Test Driven Development (TDD) best practice. 🌱
Stars: ✭ 212 (+253.33%)
Mutual labels:  todolist, beginner
Llvm 9.0 Learner Tutorial
A blog for LLVM(v9.0.0 or v11.0.0) beginner, step by step, with detailed documents and comments. Record the way I learn LLVM and accomplish a complete project for FPGA High-Level Synthesis with it.
Stars: ✭ 58 (-3.33%)
Mutual labels:  starter, beginner
Golang Gin Realworld Example App
Exemplary real world application built with Golang + Gin
Stars: ✭ 1,780 (+2866.67%)
Mutual labels:  starter, todolist
webvr-demo
A simple demo use WebVR API with pure webGL.
Stars: ✭ 30 (-50%)
Mutual labels:  starter
express-firebase
🔥 Express starter for your Firebase applications
Stars: ✭ 60 (+0%)
Mutual labels:  starter
ugly-todo
Just an Ugly To-Do app that I wanted to develop.
Stars: ✭ 35 (-41.67%)
Mutual labels:  todolist
vulkan-seed
🌋🌱 A Vulkan starter repo that you could use to get the ball rolling.
Stars: ✭ 57 (-5%)
Mutual labels:  starter
firebase-spring-boot-rest-api-authentication
Firebase Spring Boot Rest API Authentication
Stars: ✭ 172 (+186.67%)
Mutual labels:  starter
taro-weapp
🎮一款提供餐桌,酒桌上小游戏的小程序。
Stars: ✭ 28 (-53.33%)
Mutual labels:  todolist
vuejs-workshop
Repositório responsável pelos workshops de Vue.js com Azure App Service
Stars: ✭ 23 (-61.67%)
Mutual labels:  todolist
umi-dva-antd-mobile-starter
Get started with Umi3.js and Ant Design Mobile.
Stars: ✭ 21 (-65%)
Mutual labels:  starter
example-app
Example app showcasing fulls1z3's Angular libraries
Stars: ✭ 27 (-55%)
Mutual labels:  starter
TvrboReact
Dream starter project: React, Redux, React Router, Webpack
Stars: ✭ 13 (-78.33%)
Mutual labels:  starter
PY-NOOB
A repository of very simple Python programs to edit, change and learn basics of Python programming language.
Stars: ✭ 37 (-38.33%)
Mutual labels:  beginner
open-source-DSA-code
open source contribution during hacktoberfest for beginners.
Stars: ✭ 31 (-48.33%)
Mutual labels:  beginner
CS-study
cs지식을 정리하는 공간
Stars: ✭ 171 (+185%)
Mutual labels:  beginner
strapi-starter-gatsby-blog
Updated version of the first Gatsby starter with much more features
Stars: ✭ 140 (+133.33%)
Mutual labels:  starter
job-shop-scheduling
Determine a schedule for running a set of jobs.
Stars: ✭ 34 (-43.33%)
Mutual labels:  beginner
Trello-
🏷️看板、todolist、trello、vue
Stars: ✭ 22 (-63.33%)
Mutual labels:  todolist
javascript-sabuk-putih
Modal Awal Belajar Fundamental Javascript Untuk Mendalami React JS, Vue JS, Angular JS, ataupun Node JS
Stars: ✭ 47 (-21.67%)
Mutual labels:  beginner

Flutter TodoList Tutorial

Create a simple todolist Flutter application

To run the project on your machine:

The application contains the following main folders:

  • lib/models Contains the task and todolist models
  • lib/screens Contains the different screens of the application. Currently only the tasks screen exists. In the tasks folder you can find the task, tasks and todolist widgets which define the UI of this screen.
  • lib/widgets This folder is used to store widgets used on multiple screen, currently this folder is empty
  • test This contains the unit, widget and integration tests.

The application is using Provider to manage the states. Providers allow us to notify the UI of the application when a state change. For example when a task is toggled the notifyListener function is called which let the application knows that a refresh of the task's UI is required:

  void toggle() {
    completed = !completed;
    notifyListeners();
  }

Flutter concepts

Widgets

Flutter is using Widgets to create the applications' UI. Widgets let you declare how and what to render on the screen.

Widgets can be composed to create more complex UI, creating a widgets tree, similar to the Document Object Model which is used to represent html pages.

For example a todo list app could be represented with the follownig wireframe:

todolist-app

From there we can start to have an idea of the widgets tree structure:

widgets-tree

see also:

Create a new Flutter application

A quick CLI tour

You can create a new Flutter project with the following command line:

flutter create --org com.dwyl --project-name todolist .

This will create the project todolist in the current folder .. The --org flag uses the reverse domain name notation to identify your application.

You can then run the application with flutter run and run the tests with flutter test.

For the list of command type flutter help. For more details about a specific command, for example create, run flutter create --help

Material Design

Material Design is a guideline to create user interface. Flutter implements the guideline with the material components widgets. This list of widgest allow us to create rapdly a UI folling the best practices from material design. To use these widgets you need first to import the material Dart package with import 'package:flutter/material.dart'; You can then browse all the material widgets and select the ones required for your application https://api.flutter.dev/flutter/material/material-library.html

You have also the possiblity to create an IOs look by using the Cupertino widgets package

Main Widgets used

Note that the Column and Exapanded widgets are "space" widgets.

Flutter provide a widget inspector where you can see the full tree of the application:

widget tree

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].