Your Second Flutter App

Nov 30 2021 · Dart 2.13, Flutter 2.2.3, Visual Studio Code

Part 1: Parse Network Data

02. Create the Project

Episode complete

Play next episode

About this episode
Leave a rating/review
See forum comments
Cinema mode Mark complete Download course materials
Previous episode: 01. Introduction Next episode: 03. Understand Futures

Get immediate access to this and 4,000+ other videos and books.

Take your career further with a Kodeco Personal Plan. With unlimited access to over 40+ books and 4,000+ professional videos in a single subscription, it's simply the best investment you can make in your development career.

Learn more Already a subscriber? Sign in.

Heads up... You’re accessing parts of this content for free, with some sections shown as obfuscated text.

Heads up... You’re accessing parts of this content for free, with some sections shown as obfuscated text.

Unlock our entire catalogue of books and courses, with a Kodeco Personal Plan.

Unlock now

To continue on your Flutter journey, in this course you’ll build an app named RW Courses.


To get started working with a new Flutter project, a good habit is to run Flutter doctor to make sure everything is working as designed. Now, I’m using macOS command-spacebar to access the terminal. If you are using windows, you can search for command line by searching from the start menu.

command-space (search terminal)
flutter doctor
class Strings {
  static String appTitle = 'RW Courses';
  static String filter = 'Filter';
  static String ios = 'iOS';
  static String android = 'Android';
  static String flutter = 'Flutter';
  static String unity = 'Unity';
  static String sss = 'Server-Side Swift';
  static String macos = 'macOS';
  static String archived = 'Archived';
  static String all = 'All';
  static String unknown = 'Unknown';
class Constants {
  // Values from the RW API
  static const String iosDomain = '1';
  static const String androidDomain = '2';
  static const String unityDomain = '3';
  static const String macosDomain = '5';
  static const String archivedDomain = '6';
  static const String sssDomain = '8';
  static const String flutterDomain = '9';

  // Values stored in preferences
  static const int iosFilter = 1;
  static const int androidFilter = 2;
  static const int flutterFilter = 9;
  static const int sssFilter = 8;
  static const int unityFilter = 3;
  static const int macosFilter = 5;
  static const int allFilter = 0;
  static const int otherFilter = -1;

  static const String filterKey = 'FILTER_KEY';
class CoursesPage extends StatefulWidget {
  const CoursesPage({ Key? key }) : super(key: key);

  _CoursesPageState createState() => _CoursesPageState();

class _CoursesPageState extends State<CoursesPage> {
  Widget build(BuildContext context) {
    return Container(

return Text('RWCourses');
class _CoursesPageState extends State<CoursesPage> {
  Widget build(BuildContext context) {
    return const Text('RWCourses');
class RWCoursesApp extends StatelessWidget {
  const RWCoursesApp({Key? key}) : super(key: key);

  Widget build(BuildContext context) {
    return Container();
Widget build(BuildContext context) {
  return Scaffold();
Widget build(BuildContext context) {
  return Scaffold(
    appBar: AppBar(
      title: Text(Strings.appTitle),
import 'strings.dart';
void main() => runApp(MaterialApp(
      title: Strings.appTitle,
      theme: ThemeData(primaryColor:,
      home: const RWCoursesApp(),
import 'strings.dart';