// Local import 'package:com_hyperling_buddy_website/secrets.dart'; // Flutter / Dart import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; import 'dart:convert'; void main() { runApp(const MainApp()); } final String loadText = "Loading..."; class MainApp extends StatefulWidget { const MainApp({super.key}); @override State createState() => _MainAppState(); } class _MainAppState extends State { String weather = loadText; bool keepLoading = false; @override void initState() { super.initState(); _callOpenWeather(); } @override void dispose() { weather = loadText; super.dispose(); } @override Widget build(BuildContext context) { if (weather == loadText) { Future.delayed(Duration(seconds: 1), () { setState(() { keepLoading = true; }); }); } return MaterialApp( home: Scaffold( body: Center( child: Column(children: [Text('Hello World!'), Text(weather)]), ), ), ); } // How to guide: // https://openweathermap.org/current#zip Future _hitOpenWeather(String zipCode, String? countryCode) async { countryCode ??= "US"; http.Response response = await http.get( Uri.parse( 'https://api.openweathermap.org/data/2.5/forecast' '?zip=$zipCode,$countryCode' '&units=imperial' '&appid=$openWeatherKey', ), ); String data = ""; if (response.statusCode == 200) { data = response.body; var decodedData = jsonDecode(data); print(decodedData); data = decodedData.toString(); } else { print(response.statusCode); } return data; } _callOpenWeather() async { weather = await _hitOpenWeather("47630", "US"); } }