Git Product home page Git Product logo

flutter-beginners-tutorial's Introduction

flutter-beginners-tutorial

All course files for the Flutter Beginners playlist on The Net Ninja YouTube channel.

How to use these files

Each lesson in the playlist has it's own branch in this repository. To see the code for that lesson, choose the appropriate branch. E.g. to see the code for lesson 15, checkout the lesson-15 branch.

important - if you are cloning the repo to your desktop, you will need to perform a packages get / pub get to install any dependencies that the project may have at that point of the course.

Link to playlist on YouTube

flutter-beginners-tutorial's People

Contributors

iamshaunjp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flutter-beginners-tutorial's Issues

#8 Image

Hi,
can't get the image file show up.
Unable to load asset: assets/space-1.jpg
Message showing up:
When the exception was thrown, this was the stack:
#0 PlatformAssetBundle.load (package:flutter/src/services/asset_bundle.dart:225:7)

#1 AssetBundleImageProvider._loadAsync (package:flutter/src/painting/image_provider.dart:668:31)
#2 AssetBundleImageProvider.load (package:flutter/src/painting/image_provider.dart:651:14)
#3 ImageProvider.resolveStreamForKey. (package:flutter/src/painting/image_provider.dart:504:13)
...
Image provider: AssetImage(bundle: null, name: "assets/space-1.jpg")
Image key: AssetBundleImageKey(bundle: PlatformAssetBundle#7aede(), name: "assets/space-1.jpg", scale: 1.0)

The Readme is not clear

The Readme of this repo is not well explained.
Could someone give practical git CLI commands examples on how to use it?

git clone (...)
git checkout (...)
et.al.

Thx

lesson-12

I couldn't find lesson-12, it is not among other branches.
Thank you.

Exception has occurred. FlutterError (setState() called after dispose():

My home.dart:

import 'package:flutter/material.dart';
class Home extends StatefulWidget {
@OverRide
_HomeState createState() => _HomeState();
}

class _HomeState extends State {
Map data={};
dynamic result;
@OverRide
Widget build(BuildContext context) {
data = data.isNotEmpty? data : ModalRoute.of(context).settings.arguments;

return SafeArea(
  child: Scaffold(

      body: Container(
        decoration: BoxDecoration(
          image: DecorationImage(
            image: data['isdaytime']? AssetImage('images/day.jpg'): AssetImage('images/night.jpg'),
            fit: BoxFit.cover,
          ),
          
        ),
        child: Padding(
          padding: const EdgeInsets.fromLTRB(0, 80, 0, 0),
          child: Column(
          crossAxisAlignment: CrossAxisAlignment.stretch,
          children: <Widget>[
            FlatButton(
              onPressed: () async{
               result = await Navigator.pushReplacementNamed(context, '/editlocation');
                if(result!=0){
                  setState(() {
                  data = {
                        'location': result['location'],
                        'flag': result['flag'],
                        'time': result['time'],
                        'isdaytime': result['isdaytime'],
                      };
                });
                    
                }

// Exception has occurred.
// FlutterError (setState() called after dispose():
// if(result!=0){
// print("11");
// data = {
// 'location': result['location'],
// 'flag': result['flag'],
// 'time': result['time'],
// 'isdaytime': result['isdaytime'],
// };
// print(data);
// // setState(() {
// // print("12");
// // data = {
// // 'location': result['location'],
// // 'flag': result['flag'],
// // 'time': result['time'],
// // 'isdaytime': result['isdaytime'],
// // };
// // print(data['location']);
// // });
// }

              }, 
              child: Row(
                mainAxisAlignment: MainAxisAlignment.center,
                children: <Widget>[

                  Icon(Icons.location_on,color: Colors.white,),
                  SizedBox(width:10.0),
                  Text(
                    "Edit Location",
                    style: TextStyle(
                      color: Colors.white,
                    ),
                  
                  ),
                ],
              ),
             
                              ),
             SizedBox(
               height: 10.0,
             ),
            Center(
              child: Text(data['time'],style: data['isdaytime']? 
              TextStyle(
                fontSize: 40.0,
                letterSpacing: 3.0,
                fontWeight: FontWeight.bold,
              ) : TextStyle(
                fontSize: 40.0,
                letterSpacing: 3.0,
                color: Colors.white,
                fontWeight: FontWeight.bold,
              ),
              
            ),
            ),
             SizedBox(
               height: 10.0,
             ),
             Center(
               child: Text(data['location'],style: data['isdaytime']? 
                TextStyle(
                  fontSize: 30.0,
                  letterSpacing: 3.0,
                  fontStyle: FontStyle.italic,
                ) : TextStyle(
                  fontSize: 30.0,
                  letterSpacing: 3.0,
                  color: Colors.white,
                  fontStyle: FontStyle.italic,
                ),
                
            ),
             ),
           
          ],
    ),
        ),
      ),
  ),
  
);

}
}

Grey screen on release

I followed the tutorial on Youtube and the app I built worked on debug mode but, when I install the app on my phone I get a grey screen (which, based on what I've read on the internet should be the release-equivalent of the debug-red-screen but in debug I don't get any error)

So I downloaded the code of the last lession and tried with it and... I have the same problem!
Can someone help me? Am I doing something wrong with Android Studio (even though with previous apps of the course build works fine...)

Error

======== Exception caught by widgets library =======================================================
The following _TypeError was thrown building Home(dirty, dependencies: [_ModalScopeStatus], state: _HomeState#99b83):
type 'Null' is not a subtype of type 'Map<dynamic, dynamic>' in type cast

Build failed due to use of deprecated Android v1 embedding.

Hey guys,

I'm getting the following message: "Build failed due to use of deprecated Android v1 embedding."

It seems it needs to be migrated to Android embedding v2 since the v1 is being deprecated.
They say you can just add the "--ignore-deprecation" flag to ignore this check and continue with the deprecated v1 embedding, however, you'll have an error (due to deprecated API) if using an Android emulator.

lesson-28 โ€” Adjust time to locale with negative offset

Update
String offset = data['utc_offset'].substring(1,3);
with
String offset = data['utc_offset'].substring(0,3);

To keep a sign.

  1. Use "utc_datetime" instead of "datetime".
    // it is strange why
    // DateTime.parse(datetime) does not adjust time with offset in the "datetime" string)

  2. Another improvement when offset is with an half of hour.

Thank you for videos on Youtube !!! :)

Negative offset not incorporated

For example, the time for Berlin with a "+2" offset would work. The current code is not working for New York when the offset is "-4".

In Lesson-34 error

In lesson 34 the code is:

  List<WorldTime> locations = [
    WorldTime(url: 'Europe/London', location: 'London', flag: 'uk.png'),
    WorldTime(url: 'Europe/Berlin', location: 'Athens', flag: 'greece.png'),
    WorldTime(url: 'Africa/Cairo', location: 'Cairo', flag: 'egypt.png'),
    WorldTime(url: 'Africa/Nairobi', location: 'Nairobi', flag: 'kenya.png'),
    WorldTime(url: 'America/Chicago', location: 'Chicago', flag: 'usa.png'),
    WorldTime(url: 'America/New_York', location: 'New York', flag: 'usa.png'),
    WorldTime(url: 'Asia/Seoul', location: 'Seoul', flag: 'south_korea.png'),
    WorldTime(url: 'Asia/Jakarta', location: 'Jakarta', flag: 'indonesia.png'),

In the 3rd line the url= Europe/Berlin but the location is Athens and the flag is greece.

This would be the correct code with a Athens and Berlin:

  List<WorldTime> locations = [
    WorldTime(url: 'Europe/London', location: 'London', flag: 'uk.png'),
    WorldTime(url: 'Europe/Athens', location: 'Athens', flag: 'greece.png'),
    WorldTime(url: 'Europe/Berlin', location: 'Berlin', flag: 'germany.png'),
    WorldTime(url: 'Africa/Cairo', location: 'Cairo', flag: 'egypt.png'),
    WorldTime(url: 'Africa/Nairobi', location: 'Nairobi', flag: 'kenya.png'),
    WorldTime(url: 'America/Chicago', location: 'Chicago', flag: 'usa.png'),
    WorldTime(url: 'America/New_York', location: 'New York', flag: 'usa.png'),
    WorldTime(url: 'Asia/Seoul', location: 'Seoul', flag: 'south_korea.png'),
    WorldTime(url: 'Asia/Jakarta', location: 'Jakarta', flag: 'indonesia.png'),

Not an issue but I would like to thank The Net Ninja

Not an issue, I want to say thank you to The Net Ninja. I went from not knowing how to use flutter at all to making a 'completed' world time app

Thank you again to The Net Ninja (and the helpful commenters who pointed out errors in the videos)!

Failure in wordl_time.dart

It seams that the minus sign is not handled, which means that every offset of the utc time is positive.

column 24 in wordl_time.dart.m

  String offset = data['utc_offset'].substring(1,3);

should be replaced with:

  String offset = data['utc_offset'].substring(0,3);

Debug.apk is working fine but Release-apk not working

I tested the app in debug mode and everything was working fine but when I did the same for Release-apk neither loading screen was working nor time was showing. It is showing the catch error "couldn't show the time". Please help!

Lesson 26 get does not take url as link

` import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';

class Loadding extends StatefulWidget {
@OverRide
_LoaddingState createState() => _LoaddingState();
}

class _LoaddingState extends State {
void getTime() async {

http.Response response = await http.get(Uri.parse('https://jsonplaceholder.typicode.com/todos/1'));
Map data = jsonDecode(response.body);
print(data);
print(data['title']);

}

@OverRide
void initState() {
super.initState();
getTime();
}

@OverRide
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("loading"),
centerTitle: true,
),
body: Row(
children: [
ElevatedButton.icon(onPressed: (){
Navigator.pushNamed(context, '/home');
}, icon: Icon(Icons.home), label: Text('Home'))
],
),
);
}

}
`

this will work fine.

Changing Time

Hello Shaun, Can you tell a way so that the time updates automatically after each minute? Thanks in advance

Provide images

On the world time app, can you provide pictures so i can use them?

Time shows 30 minutes delay than actual time

I followed your YouTube tutorial to make this project. However when I chose the time of India it showed me the time 30 minutes behind the actual time. e.g. If it is 12:30 the clock shows 12. The World Time api gives the time correctly but this line : DateTime now = DateTime.parse(datetime); gives the wrong time output. Is it a problem with the DateTime module or my OS timezone?
My time zone url is 'Asia/Kolkata'

lesson 30

(index):82 Loading app from service worker.
js_primitives.dart:30 โ•โ•โ•ก EXCEPTION CAUGHT BY WIDGETS LIBRARY โ•žโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
js_primitives.dart:30 The following TypeErrorImpl was thrown building Home(dirty, dependencies: [_ModalScopeStatus],
js_primitives.dart:30 state: _HomeState#a2be0):
js_primitives.dart:30 Expected a value of type 'Map<dynamic, dynamic>', but got one of type 'Null'
js_primitives.dart:30
js_primitives.dart:30 The relevant error-causing widget was:
js_primitives.dart:30 Home Home:file:///C:/Users/hp/Desktop/app/world_time/lib/main.dart:13:34
js_primitives.dart:30
js_primitives.dart:30 When the exception was thrown, this was the stack:
js_primitives.dart:30 C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/internal/js_dev_runtime/private/ddc_runtime/errors.dart 251:49 throw
js_primitives.dart:30 C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 84:3 castError
js_primitives.dart:30 C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 452:10 cast
js_primitives.dart:30 C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/classes.dart 635:14 as_C
js_primitives.dart:30 packages/world_time/pages/home.dart 24:56 build
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4870:27 build
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4754:15 performRebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4928:11 performRebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4477:5 rebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4735:5 [_firstBuild]
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4919:11 [_firstBuild]
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4729:5 mount
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3790:13 inflateWidget
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3540:18 updateChild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 6284:14 mount
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3790:13 inflateWidget
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3540:18 updateChild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4780:16 performRebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4477:5 rebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4735:5 [_firstBuild]
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4729:5 mount
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3790:13 inflateWidget
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3540:18 updateChild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 6284:14 mount
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3790:13 inflateWidget
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3540:18 updateChild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 6284:14 mount
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3790:13 inflateWidget
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3540:18 updateChild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4780:16 performRebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4928:11 performRebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4477:5 rebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4735:5 [_firstBuild]
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4919:11 [_firstBuild]
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4729:5 mount
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3790:13 inflateWidget
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3540:18 updateChild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 6284:14 mount
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3790:13 inflateWidget
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3540:18 updateChild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 6284:14 mount
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3790:13 inflateWidget
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3540:18 updateChild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4780:16 performRebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4928:11 performRebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4477:5 rebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4735:5 [_firstBuild]
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4919:11 [_firstBuild]
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4729:5 mount
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3790:13 inflateWidget
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3540:18 updateChild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4780:16 performRebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4477:5 rebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4735:5 [_firstBuild]
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4729:5 mount
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3790:13 inflateWidget
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3540:18 updateChild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4780:16 performRebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4928:11 performRebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4477:5 rebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4735:5 [_firstBuild]
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4919:11 [_firstBuild]
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4729:5 mount
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3790:13 inflateWidget
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3540:18 updateChild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 6284:14 mount
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3790:13 inflateWidget
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3540:18 updateChild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 6284:14 mount
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3790:13 inflateWidget
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3540:18 updateChild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4780:16 performRebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4477:5 rebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4735:5 [_firstBuild]
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4729:5 mount
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3790:13 inflateWidget
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3540:18 updateChild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 6284:14 mount
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3790:13 inflateWidget
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3540:18 updateChild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4780:16 performRebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4928:11 performRebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4477:5 rebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4735:5 [_firstBuild]
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4919:11 [_firstBuild]
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4729:5 mount
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3790:13 inflateWidget
browser_client.dart:72 GET http://worldtimeapi.org/api/timezone/Europe/Berlin net::ERR_EMPTY_RESPONSE
send @ browser_client.dart:72
(anonymous) @ async_patch.dart:45
runUnary @ zone.dart:1685
handleValue @ future_impl.dart:159
handleValueCallback @ future_impl.dart:766
_propagateToListeners @ future_impl.dart:795
[_completeWithValue] @ future_impl.dart:601
(anonymous) @ future_impl.dart:639
_microtaskLoop @ schedule_microtask.dart:40
_startMicrotaskLoop @ schedule_microtask.dart:49
(anonymous) @ async_patch.dart:166
Promise.then (async)
_scheduleImmediateWithPromise @ async_patch.dart:164
_scheduleImmediate @ async_patch.dart:136
_scheduleAsyncCallback @ schedule_microtask.dart:69
_rootScheduleMicrotask @ zone.dart:1493
scheduleMicrotask @ zone.dart:1705
[_addListener] @ future_impl.dart:464
[_thenAwait] @ future_impl.dart:368
onAwait @ async_patch.dart:40
runBody @ async_patch.dart:111
_async @ async_patch.dart:123
[_waitInTheLine] @ window.dart:141
handleNavigationMessage @ window.dart:156
runBody @ async_patch.dart:84
_async @ async_patch.dart:123
handleNavigationMessage @ window.dart:155
[_sendPlatformMessage] @ platform_dispatcher.dart:482
sendPlatformMessage @ platform_dispatcher.dart:265
send @ binding.dart:354
_invokeMethod @ platform_channel.dart:167
runBody @ async_patch.dart:84
_async @ async_patch.dart:123
[_invokeMethod] @ platform_channel.dart:165
[_invokeMethod] @ platform_channel.dart:446
invokeMethod @ platform_channel.dart:445
runBody @ async_patch.dart:84
_async @ async_patch.dart:123
invokeMethod @ platform_channel.dart:444
selectSingleEntryHistory @ system_navigator.dart:49
initState @ navigator.dart:3245
[_firstBuild] @ framework.dart:4893
mount @ framework.dart:4729
inflateWidget @ framework.dart:3790
updateChild @ framework.dart:3540
performRebuild @ framework.dart:4780
rebuild @ framework.dart:4477
[_firstBuild] @ framework.dart:4735
mount @ framework.dart:4729
inflateWidget @ framework.dart:3790
updateChild @ framework.dart:3540
performRebuild @ framework.dart:4780
rebuild @ framework.dart:4477
[_firstBuild] @ framework.dart:4735
mount @ framework.dart:4729
inflateWidget @ framework.dart:3790
updateChild @ framework.dart:3540
performRebuild @ framework.dart:4780
rebuild @ framework.dart:4477
[_firstBuild] @ framework.dart:4735
mount @ framework.dart:4729
inflateWidget @ framework.dart:3790
updateChild @ framework.dart:3540
performRebuild @ framework.dart:4780
rebuild @ framework.dart:4477
[_firstBuild] @ framework.dart:4735
mount @ framework.dart:4729
inflateWidget @ framework.dart:3790
updateChild @ framework.dart:3540
performRebuild @ framework.dart:4780
rebuild @ framework.dart:4477
[_firstBuild] @ framework.dart:4735
mount @ framework.dart:4729
inflateWidget @ framework.dart:3790
updateChild @ framework.dart:3540
performRebuild @ framework.dart:4780
rebuild @ framework.dart:4477
[_firstBuild] @ framework.dart:4735
mount @ framework.dart:4729
inflateWidget @ framework.dart:3790
updateChild @ framework.dart:3540
performRebuild @ framework.dart:4780
performRebuild @ framework.dart:4928
rebuild @ framework.dart:4477
[_firstBuild] @ framework.dart:4735
[_firstBuild] @ framework.dart:4919
mount @ framework.dart:4729
inflateWidget @ framework.dart:3790
updateChild @ framework.dart:3540
performRebuild @ framework.dart:4780
rebuild @ framework.dart:4477
[_firstBuild] @ framework.dart:4735
mount @ framework.dart:4729
inflateWidget @ framework.dart:3790
updateChild @ framework.dart:3540
performRebuild @ framework.dart:4780
performRebuild @ framework.dart:4928
rebuild @ framework.dart:4477
[_firstBuild] @ framework.dart:4735
[_firstBuild] @ framework.dart:4919
mount @ framework.dart:4729
inflateWidget @ framework.dart:3790
updateChild @ framework.dart:3540
performRebuild @ framework.dart:4780
rebuild @ framework.dart:4477
[_firstBuild] @ framework.dart:4735
mount @ framework.dart:4729
inflateWidget @ framework.dart:3790
updateChild @ framework.dart:3540
performRebuild @ framework.dart:4780
rebuild @ framework.dart:4477
[_firstBuild] @ framework.dart:4735
mount @ framework.dart:4729
inflateWidget @ framework.dart:3790
updateChild @ framework.dart:3540
mount @ framework.dart:6284
inflateWidget @ framework.dart:3790
updateChild @ framework.dart:3540
performRebuild @ framework.dart:4780
rebuild @ framework.dart:4477
[_firstBuild] @ framework.dart:4735
mount @ framework.dart:4729
inflateWidget @ framework.dart:3790
updateChild @ framework.dart:3540
performRebuild @ framework.dart:4780
rebuild @ framework.dart:4477
[_firstBuild] @ framework.dart:4735
mount @ framework.dart:4729
inflateWidget @ framework.dart:3790
updateChild @ framework.dart:3540
performRebuild @ framework.dart:4780
rebuild @ framework.dart:4477
[_firstBuild] @ framework.dart:4735
mount @ framework.dart:4729
inflateWidget @ framework.dart:3790
updateChild @ framework.dart:3540
performRebuild @ framework.dart:4780
rebuild @ framework.dart:4477
[_firstBuild] @ framework.dart:4735
mount @ framework.dart:4729
inflateWidget @ framework.dart:3790
updateChild @ framework.dart:3540
performRebuild @ framework.dart:4780
rebuild @ framework.dart:4477
[_firstBuild] @ framework.dart:4735
mount @ framework.dart:4729
inflateWidget @ framework.dart:3790
updateChild @ framework.dart:3540
mount @ framework.dart:6284
inflateWidget @ framework.dart:3790
updateChild @ framework.dart:3540
performRebuild @ framework.dart:4780
performRebuild @ framework.dart:4928
rebuild @ framework.dart:4477
[_firstBuild] @ framework.dart:4735
[_firstBuild] @ framework.dart:4919
mount @ framework.dart:4729
inflateWidget @ framework.dart:3790
updateChild @ framework.dart:3540
performRebuild @ framework.dart:4780
rebuild @ framework.dart:4477
[_firstBuild] @ framework.dart:4735
mount @ framework.dart:4729
inflateWidget @ framework.dart:3790
updateChild @ framework.dart:3540
performRebuild @ framework.dart:4780
performRebuild @ framework.dart:4928
rebuild @ framework.dart:4477
[_firstBuild] @ framework.dart:4735
[_firstBuild] @ framework.dart:4919
mount @ framework.dart:4729
inflateWidget @ framework.dart:3790
updateChild @ framework.dart:3540
performRebuild @ framework.dart:4780
rebuild @ framework.dart:4477
[_firstBuild] @ framework.dart:4735
mount @ framework.dart:4729
inflateWidget @ framework.dart:3790
updateChild @ framework.dart:3540
performRebuild @ framework.dart:4780
performRebuild @ framework.dart:4928
rebuild @ framework.dart:4477
[_firstBuild] @ framework.dart:4735
[_firstBuild] @ framework.dart:4919
mount @ framework.dart:4729
inflateWidget @ framework.dart:3790
updateChild @ framework.dart:3540
performRebuild @ framework.dart:4780
rebuild @ framework.dart:4477
[_firstBuild] @ framework.dart:4735
mount @ framework.dart:4729
inflateWidget @ framework.dart:3790
updateChild @ framework.dart:3540
performRebuild @ framework.dart:4780
performRebuild @ framework.dart:4928
rebuild @ framework.dart:4477
[_firstBuild] @ framework.dart:4735
[_firstBuild] @ framework.dart:4919
mount @ framework.dart:4729
inflateWidget @ framework.dart:3790
updateChild @ framework.dart:3540
performRebuild @ framework.dart:4780
rebuild @ framework.dart:4477
[_firstBuild] @ framework.dart:4735
mount @ framework.dart:4729
inflateWidget @ framework.dart:3790
updateChild @ framework.dart:3540
performRebuild @ framework.dart:4780
performRebuild @ framework.dart:4928
rebuild @ framework.dart:4477
[_firstBuild] @ framework.dart:4735
[_firstBuild] @ framework.dart:4919
setTimeout (async)
_isolate_helper.TimerImpl.new @ isolate_helper.dart:55
_createTimer @ async_patch.dart:186
createTimer @ zone.dart:1709
new @ timer.dart:51
run @ timer.dart:110
scheduleAttachRootWidget @ binding.dart:923
(anonymous) @ binding.dart:1036
runApp @ binding.dart:1037
main$ @ main.dart:9
main @ web_entrypoint.dart:16
(anonymous) @ async_patch.dart:45
runUnary @ zone.dart:1685
handleValue @ future_impl.dart:159
handleValueCallback @ future_impl.dart:766
_propagateToListeners @ future_impl.dart:795
[_completeWithValue] @ future_impl.dart:601
(anonymous) @ future.dart:479
runUnary @ zone.dart:1685
handleValue @ future_impl.dart:159
handleValueCallback @ future_impl.dart:766
_propagateToListeners @ future_impl.dart:795
[_completeWithValue] @ future_impl.dart:601
(anonymous) @ future_impl.dart:639
_microtaskLoop @ schedule_microtask.dart:40
_startMicrotaskLoop @ schedule_microtask.dart:49
(anonymous) @ async_patch.dart:166
Promise.then (async)
_scheduleImmediateWithPromise @ async_patch.dart:164
_scheduleImmediate @ async_patch.dart:136
_scheduleAsyncCallback @ schedule_microtask.dart:69
_rootScheduleMicrotask @ zone.dart:1493
scheduleMicrotask @ zone.dart:1705
[_asyncCompleteWithValue] @ future_impl.dart:638
[_asyncComplete] @ future_impl.dart:633
complete @ future_impl.dart:45
(anonymous) @ js_util.dart:259
Promise.then (async)
promiseToFuture @ js_util.dart:271
[dartx.arrayBuffer] @ html_dart2js.dart:1682
[_getArrayBuffer] @ fonts.dart:176
runUnary @ zone.dart:1685
handleValue @ future_impl.dart:159
handleValueCallback @ future_impl.dart:766
_propagateToListeners @ future_impl.dart:795
[_completeWithValue] @ future_impl.dart:601
(anonymous) @ future_impl.dart:639
_microtaskLoop @ schedule_microtask.dart:40
_startMicrotaskLoop @ schedule_microtask.dart:49
(anonymous) @ async_patch.dart:166
Promise.then (async)
_scheduleImmediateWithPromise @ async_patch.dart:164
_scheduleImmediate @ async_patch.dart:136
_scheduleAsyncCallback @ schedule_microtask.dart:69
_rootScheduleMicrotask @ zone.dart:1493
scheduleMicrotask @ zone.dart:1705
[_asyncCompleteWithValue] @ future_impl.dart:638
[_asyncComplete] @ future_impl.dart:633
complete @ future_impl.dart:45
(anonymous) @ js_util.dart:259
Promise.then (async)
promiseToFuture @ js_util.dart:271
[dartx.fetch] @ html_dart2js.dart:32948
httpFetch @ util.dart:562
runBody @ async_patch.dart:84
_async @ async_patch.dart:123
httpFetch @ util.dart:561
_registerFont @ fonts.dart:148
runBody @ async_patch.dart:84
_async @ async_patch.dart:123
[_registerFont] @ fonts.dart:145
registerFonts @ fonts.dart:127
(anonymous) @ async_patch.dart:45
runUnary @ zone.dart:1685
handleValue @ future_impl.dart:159
handleValueCallback @ future_impl.dart:766
_propagateToListeners @ future_impl.dart:795
[_completeWithValue] @ future_impl.dart:601
(anonymous) @ future_impl.dart:639
_microtaskLoop @ schedule_microtask.dart:40
_startMicrotaskLoop @ schedule_microtask.dart:49
(anonymous) @ async_patch.dart:166
Promise.then (async)
_scheduleImmediateWithPromise @ async_patch.dart:164
_scheduleImmediate @ async_patch.dart:136
_scheduleAsyncCallback @ schedule_microtask.dart:69
_rootScheduleMicrotask @ zone.dart:1493
scheduleMicrotask @ zone.dart:1705
[_asyncCompleteWithValue] @ future_impl.dart:638
[_asyncComplete] @ future_impl.dart:633
complete @ future_impl.dart:45
(anonymous) @ html_dart2js.dart:18226
_checkAndCall @ operations.dart:334
dcall @ operations.dart:339
(anonymous) @ html_dart2js.dart:37277
load (async)
[_addEventListener] @ html_dart2js.dart:15853
[dartx.addEventListener] @ html_dart2js.dart:15841
[_tryResume] @ html_dart2js.dart:37331
_EventStreamSubscription.new @ html_dart2js.dart:37278
listen @ html_dart2js.dart:37178
request @ html_dart2js.dart:18213
load @ assets.dart:58
runBody @ async_patch.dart:84
_async @ async_patch.dart:123
load @ assets.dart:54
registerFonts @ fonts.dart:95
runBody @ async_patch.dart:84
_async @ async_patch.dart:123
registerFonts @ fonts.dart:91
webOnlySetAssetManager @ initialization.dart:68
runBody @ async_patch.dart:84
_async @ async_patch.dart:123
webOnlySetAssetManager @ initialization.dart:49
_initializePlatform @ initialization.dart:33
(anonymous) @ async_patch.dart:45
runUnary @ zone.dart:1685
handleValue @ future_impl.dart:159
handleValueCallback @ future_impl.dart:766
_propagateToListeners @ future_impl.dart:795
[_completeWithValue] @ future_impl.dart:601
(anonymous) @ future_impl.dart:639
_microtaskLoop @ schedule_microtask.dart:40
_startMicrotaskLoop @ schedule_microtask.dart:49
(anonymous) @ async_patch.dart:166
Promise.then (async)
_scheduleImmediateWithPromise @ async_patch.dart:164
_scheduleImmediate @ async_patch.dart:136
_scheduleAsyncCallback @ schedule_microtask.dart:69
_rootScheduleMicrotask @ zone.dart:1493
scheduleMicrotask @ zone.dart:1705
[_asyncCompleteWithValue] @ future_impl.dart:638
[_asyncComplete] @ future_impl.dart:633
complete @ future_impl.dart:45
(anonymous) @ initialization.dart:57
_checkAndCall @ operations.dart:334
dcall @ operations.dart:339
ret @ js_patch.dart:413
Promise.then (async)
(anonymous) @ initialization.dart:54
runUnary @ zone.dart:1685
handleValue @ future_impl.dart:159
handleValueCallback @ future_impl.dart:766
_propagateToListeners @ future_impl.dart:795
[_completeWithValue] @ future_impl.dart:601
(anonymous) @ future_impl.dart:639
_microtaskLoop @ schedule_microtask.dart:40
_startMicrotaskLoop @ schedule_microtask.dart:49
(anonymous) @ async_patch.dart:166
Promise.then (async)
_scheduleImmediateWithPromise @ async_patch.dart:164
_scheduleImmediate @ async_patch.dart:136
_scheduleAsyncCallback @ schedule_microtask.dart:69
_rootScheduleMicrotask @ zone.dart:1493
scheduleMicrotask @ zone.dart:1705
[_asyncCompleteWithValue] @ future_impl.dart:638
[_asyncComplete] @ future_impl.dart:633
_Future.immediate @ future_impl.dart:282
value @ future.dart:334
(anonymous) @ internal.dart:142
run @ zone.dart:1679
get nullFuture @ internal.dart:142
desc.get @ operations.dart:839
cancel @ html_dart2js.dart:37288
(anonymous) @ initialization.dart:86
_checkAndCall @ operations.dart:334
dcall @ operations.dart:339
(anonymous) @ html_dart2js.dart:37277
load (async)
[_addEventListener] @ html_dart2js.dart:15853
[dartx.addEventListener] @ html_dart2js.dart:15841
[_tryResume] @ html_dart2js.dart:37331
_EventStreamSubscription.new @ html_dart2js.dart:37278
listen @ html_dart2js.dart:37178
_startDownloadingCanvasKit @ initialization.dart:85
initializeCanvasKit @ initialization.dart:47
_initializePlatform @ initialization.dart:29
runBody @ async_patch.dart:84
_async @ async_patch.dart:123
_initializePlatform @ initialization.dart:21
webOnlyInitializePlatform @ initialization.dart:11
main @ web_entrypoint.dart:12
runBody @ async_patch.dart:84
_async @ async_patch.dart:123
main$ @ web_entrypoint.dart:11
(anonymous) @ main_module.bootstrap.js:19
window.$dartRunMain @ main_module.bootstrap.js:18
(anonymous) @ VM536:1
runMain @ client.js:8707
(anonymous) @ client.js:23873
(anonymous) @ client.js:3487
call$2 @ client.js:11518
_asyncStartSync @ client.js:3451
$call$body$main__closure @ client.js:23885
call$1 @ client.js:23812
_rootRunUnary @ client.js:3849
runUnary$2$2 @ client.js:12877
runUnaryGuarded$1$2 @ client.js:12813
_sendData$1 @ client.js:12403
_add$1 @ client.js:12349
_add$1 @ client.js:12682
_handleData$2 @ client.js:12743
_handleData$1 @ client.js:12708
(anonymous) @ client.js:1392
_rootRunUnary @ client.js:3849
runUnary$2$2 @ client.js:12877
runUnaryGuarded$1$2 @ client.js:12813
_sendData$1 @ client.js:12403
_add$1 @ client.js:12349
_sendData$1 @ client.js:12197
add$1 @ client.js:12078
(anonymous) @ client.js:1450
_rootRunUnary @ client.js:3849
runUnary$2$2 @ client.js:12877
runUnaryGuarded$1$2 @ client.js:12813
_sendData$1 @ client.js:12403
_add$1 @ client.js:12349
_sendData$1 @ client.js:12197
add$1 @ client.js:12078
add$1 @ client.js:23352
call$1 @ client.js:23637
call$1 @ client.js:17865
_rootRunUnary @ client.js:3855
runUnary$2$2 @ client.js:12877
runUnaryGuarded$1$2 @ client.js:12813
call$1 @ client.js:13014
invokeClosure @ client.js:1281
(anonymous) @ client.js:1300
js_primitives.dart:30 {location: Berlin, flag: germany.jpg, time: could not get time data}
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3540:18 updateChild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4780:16 performRebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4477:5 rebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4735:5 [_firstBuild]
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4729:5 mount
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3790:13 inflateWidget
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3540:18 updateChild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4780:16 performRebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4477:5 rebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4735:5 [_firstBuild]
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4729:5 mount
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3790:13 inflateWidget
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3540:18 updateChild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4780:16 performRebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4928:11 performRebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4477:5 rebuild
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4735:5 [_firstBuild]
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4919:11 [_firstBuild]
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 4729:5 mount
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3790:13 inflateWidget
js_primitives.dart:30 packages/flutter/src/widgets/framework.dart 3540:18 updateChild

Could not get the time on production

Hi,
Thanks for this tutorial.
I have tested the application on my device and it works fine , but when I deploy it in install it in my mobile phone I can navigate to locations interface but when I choose a location I get this error "Could not get the time", why ?

Lesson 34 "Unable to load assets"

This happened the last time I used the CircleAvatar widget backgroundImage. I pulled the flag images into the assets folder but they are not working. I updated the dependencies. The day and night images are working fine but none of the flag images are.

NULL is not subtype of type 'Map<dynamic, dynamic> in type cast (Lesson #30)

======== Exception caught by widgets library =======================================================
The following _CastError was thrown building Home(dirty, dependencies: [_ModalScopeStatus], state: _HomeState#30fff):
type 'Null' is not a subtype of type 'Map<dynamic, dynamic>' in type cast

The relevant error-causing widget was:
Home Home:file:///D:/world-clock/worldclock/lib/main.dart:12:29
When the exception was thrown, this was the stack:
#0 _HomeState.build (package:worldclock/pages/home.dart:18:59)
#1 StatefulElement.build (package:flutter/src/widgets/framework.dart:4992:27)
#2 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4878:15)
#3 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#4 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#5 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4859:5)
#6 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5041:11)
#7 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4853:5)
... Normal element mounting (275 frames)
#282 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3863:16)
#283 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6435:36)
#284 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6447:32)
... Normal element mounting (416 frames)
#700 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3863:16)
#701 Element.updateChild (package:flutter/src/widgets/framework.dart:3592:18)
#702 RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:1195:16)
#703 RenderObjectToWidgetElement.mount (package:flutter/src/widgets/binding.dart:1164:5)
#704 RenderObjectToWidgetAdapter.attachToRenderTree. (package:flutter/src/widgets/binding.dart:1111:18)
#705 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2605:19)
#706 RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:1110:13)
#707 WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:945:7)
#708 WidgetsBinding.scheduleAttachRootWidget. (package:flutter/src/widgets/binding.dart:925:7)
(elided 4 frames from class _RawReceivePortImpl, class _Timer, and dart:async-patch)

======== Exception caught by widgets library =======================================================
The following _CastError was thrown building Home(dirty, dependencies: [_ModalScopeStatus], state: _HomeState#30fff):
type 'Null' is not a subtype of type 'Map<dynamic, dynamic>' in type cast

The relevant error-causing widget was:
Home Home:file:///D:/world-clock/worldclock/lib/main.dart:12:29
When the exception was thrown, this was the stack:
#0 _HomeState.build (package:worldclock/pages/home.dart:18:59)
#1 StatefulElement.build (package:flutter/src/widgets/framework.dart:4992:27)
#2 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4878:15)
#3 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#4 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#5 StatefulElement.update (package:flutter/src/widgets/framework.dart:5082:5)
#6 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#7 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6307:14)
#8 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#9 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#10 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#11 StatelessElement.update (package:flutter/src/widgets/framework.dart:4956:5)
#12 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#13 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6307:14)
#14 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#15 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6307:14)
#16 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#17 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#18 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#19 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#20 StatefulElement.update (package:flutter/src/widgets/framework.dart:5082:5)
#21 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#22 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6307:14)
#23 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#24 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#25 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#26 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#27 StatefulElement.update (package:flutter/src/widgets/framework.dart:5082:5)
#28 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#29 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6307:14)
#30 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#31 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#32 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#33 StatelessElement.update (package:flutter/src/widgets/framework.dart:4956:5)
#34 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#35 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6307:14)
#36 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#37 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#38 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#39 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#40 StatefulElement.update (package:flutter/src/widgets/framework.dart:5082:5)
#41 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#42 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6307:14)
#43 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#44 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6307:14)
#45 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#46 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#47 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#48 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#49 StatefulElement.update (package:flutter/src/widgets/framework.dart:5082:5)
#50 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#51 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#52 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#53 StatelessElement.update (package:flutter/src/widgets/framework.dart:4956:5)
#54 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#55 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#56 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#57 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#58 StatefulElement.update (package:flutter/src/widgets/framework.dart:5082:5)
#59 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#60 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6307:14)
#61 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#62 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#63 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#64 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#65 StatefulElement.update (package:flutter/src/widgets/framework.dart:5082:5)
#66 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#67 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6307:14)
#68 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#69 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#70 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#71 StatelessElement.update (package:flutter/src/widgets/framework.dart:4956:5)
#72 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#73 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6307:14)
#74 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#75 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#76 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#77 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#78 StatefulElement.update (package:flutter/src/widgets/framework.dart:5082:5)
#79 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#80 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6307:14)
#81 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#82 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6307:14)
#83 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#84 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#85 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#86 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#87 StatefulElement.update (package:flutter/src/widgets/framework.dart:5082:5)
#88 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#89 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#90 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#91 StatelessElement.update (package:flutter/src/widgets/framework.dart:4956:5)
#92 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#93 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#94 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#95 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#96 StatefulElement.update (package:flutter/src/widgets/framework.dart:5082:5)
#97 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#98 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#99 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#100 StatelessElement.update (package:flutter/src/widgets/framework.dart:4956:5)
#101 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#102 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#103 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#104 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#105 StatefulElement.update (package:flutter/src/widgets/framework.dart:5082:5)
#106 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#107 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6307:14)
#108 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#109 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6307:14)
#110 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#111 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#112 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#113 ProxyElement.update (package:flutter/src/widgets/framework.dart:5228:5)
#114 _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:107:11)
#115 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#116 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6307:14)
#117 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#118 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#119 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#120 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#121 StatefulElement.update (package:flutter/src/widgets/framework.dart:5082:5)
#122 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#123 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#124 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#125 ProxyElement.update (package:flutter/src/widgets/framework.dart:5228:5)
#126 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#127 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#128 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#129 ProxyElement.update (package:flutter/src/widgets/framework.dart:5228:5)
#130 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#131 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#132 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#133 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#134 StatefulElement.update (package:flutter/src/widgets/framework.dart:5082:5)
#135 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#136 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#137 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#138 StatelessElement.update (package:flutter/src/widgets/framework.dart:4956:5)
#139 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#140 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#141 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#142 StatelessElement.update (package:flutter/src/widgets/framework.dart:4956:5)
#143 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#144 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6307:14)
#145 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#146 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#147 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#148 ProxyElement.update (package:flutter/src/widgets/framework.dart:5228:5)
#149 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#150 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#151 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#152 ProxyElement.update (package:flutter/src/widgets/framework.dart:5228:5)
#153 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#154 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#155 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#156 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#157 StatefulElement.update (package:flutter/src/widgets/framework.dart:5082:5)
#158 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#159 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#160 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#161 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#162 StatefulElement.update (package:flutter/src/widgets/framework.dart:5082:5)
#163 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#164 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#165 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#166 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#167 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2667:19)
#168 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:882:21)
#169 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:378:5)
#170 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1175:15)
#171 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1104:9)
#172 SchedulerBinding.scheduleWarmUpFrame. (package:flutter/src/scheduler/binding.dart:881:7)
(elided 4 frames from class _RawReceivePortImpl, class _Timer, and dart:async-patch)

Updating Time every minute

Time will need to update itself every minute. How do u do that in flutter ? Is there a lifecycle for it?

isDaytime cannot be null - uncaught exception is thrown when user has no internet connection

from lesson 33

when setting up the background image using the ternary operator, if a user does not have an internet connection it causes the app to crash instead of displaying the info 'Could not get time data'. Although a try and catch block was added to the world_time.dart class to prevent the app from crashing when it fails to fetch json data, the boolean variable which is 'isDaytime' would be null because it would skip the try block and when it is being called in the loading.dart file it would have a value of null which would cause another exception in the home.dart file when setting the bgImage variable which depends on the isDaytime variable.


The code below should be added to home.dart file just above the scaffold widget
String bgImage;
//isDayTime can be null if time data is not found (no internet connection)
if(data['isDayTime'] != null){
//set background image
bgImage = data['isDayTime'] ? 'day.png' : 'night.png';
}else{
//set the bgImage to 'day.png'
bgImage = 'day.png';
}

the named parameter 'onpressed' is required

Hey, I am trying to just get to know the scaffold widget, while giving the floatactionbutton widget I am getting this error:
The named parameter onPressed is required, but there is no corresponding argument
If I have to just add a onPressed action for the widget, then how is that the method followed in the Youtube video is not getting the same error? Can someone tell me if I have done something wrong?(Screenshot below for reference)

image

URL parameter recognition issues

Hi, Shaun.

I have started a new project on building an app on iOS and Android using Flutter recently. Since I was new to Flutter I was looking for some videos where I can learn about it and I found your videos. I really love them and I find them very helpful, but I just have one concern regarding getting information from the web.

In building the world time app, I was trying to get the API from the web and my Android Studio seems like it cannot recognize the JSON URL as a URL, but as a String. I have been looking for solutions on the web, but since Flutter is relatively new, I couldn't solve my issue. I would be really grateful If you could help. The bottom is the screenshot of it.

Thank you in advance.

Flutter issue

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.