Complete Flutter Programs
6th - Weather App
import 'dart:convert';
import 'package:flutter/[Link]';
import 'package:http/[Link]' as http;
void main() => runApp(const MaterialApp(home: Weather()));
class Weather extends StatefulWidget {
const Weather({[Link]});
@override
State<Weather> createState() => _WeatherState();
}
class _WeatherState extends State<Weather> {
TextEditingController c = TextEditingController();
String city = "", temp = "";
String key = "YOUR_API_KEY";
getData(String name) async {
var r = await [Link]([Link](
"[Link]
q=$name&appid=$key&units=metric"));
var d = jsonDecode([Link]);
setState(() {
city = d['name'];
temp = "${d['main']['temp']} °C";
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text("Weather App")),
body: Padding(
padding: const [Link](20),
child: Column(
children: [
TextField(
controller: c,
decoration: InputDecoration(
hintText: "Enter City",
suffixIcon: IconButton(
icon: const Icon([Link]),
onPressed: () => getData([Link]),
),
),
),
const SizedBox(height: 40),
Text(city, style: const TextStyle(fontSize: 30)),
Text(temp, style: const TextStyle(fontSize: 40)),
],
),
),
);
}
}
7th - Stopwatch App
import 'dart:async';
import 'package:flutter/[Link]';
void main() {
runApp(const MaterialApp(home: Watch()));
}
class Watch extends StatefulWidget {
const Watch({[Link]});
@override
State<Watch> createState() => _WatchState();
}
class _WatchState extends State<Watch> {
Stopwatch s = Stopwatch();
late Timer t;
String time = "00:00:00";
List lap = [];
void start() {
if ([Link]) {
[Link]();
[Link]();
} else {
[Link]();
t = [Link](const Duration(seconds: 1), (_) {
setState(() {
time =
"${[Link]().padLeft(2, '0')}:"
"${([Link] % 60).toString().padLeft(2, '0')}:"
"${([Link] % 60).toString().padLeft(2, '0')}";
});
});
}
}
void reset() {
[Link]();
[Link]();
setState(() => time = "00:00:00");
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text("Stopwatch")),
body: Column(
mainAxisAlignment: [Link],
children: [
Text(time, style: const TextStyle(fontSize: 40)),
Row(
mainAxisAlignment: [Link],
children: [
ElevatedButton(
onPressed: start,
child: Text([Link] ? "Stop" : "Start"),
),
ElevatedButton(
onPressed: reset,
child: const Text("Reset"),
),
ElevatedButton(
onPressed: () => setState(() => [Link](time)),
child: const Text("Lap"),
),
],
),
Expanded(
child: [Link](
itemCount: [Link],
itemBuilder: (c, i) =>
Text("Lap ${i + 1} : ${lap[i]}"),
),
),
],
),
);
}
}
8th - Navigation App
import 'package:flutter/[Link]';
void main() => runApp(MaterialApp(home: App(), debugShowCheckedModeBanner:
false));
class App extends StatefulWidget {
@override
State<App> createState() => _AppState();
}
class _AppState extends State<App> {
int i = 0;
@override
Widget build(BuildContext context) {
return Scaffold(
body: i == 0
? Center(
child: ElevatedButton(
child: Text("Go Details"),
onPressed: () => [Link](
context,
MaterialPageRoute(builder: (_) => Details("Phone")),
),
),
)
: Center(child: Text("Profile", style: TextStyle(fontSize: 22))),
bottomNavigationBar: BottomNavigationBar(
currentIndex: i,
onTap: (v) => setState(() => i = v),
items: [
BottomNavigationBarItem(icon: Icon([Link]), label: "Home"),
BottomNavigationBarItem(icon: Icon([Link]), label: "Profile"),
],
),
);
}
}
class Details extends StatelessWidget {
final String name;
Details([Link]);
@override
Widget build(BuildContext context) => Scaffold(
appBar: AppBar(title: Text("Details")),
body: Center(
child: Column(
mainAxisAlignment: [Link],
children: [
Text("Product: $name"),
ElevatedButton(
child: Text("Back"),
onPressed: () => [Link](context),
)
],
),
),
);
}
9th - E-Commerce App
import 'package:flutter/[Link]';
void main() => runApp(MaterialApp(home: Home(), debugShowCheckedModeBanner:
false));
class Home extends StatelessWidget {
final p = [
{'n': 'Sneakers', 'p': 50, 'i': 'assets/[Link]'},
{'n': 'Bag', 'p': 35, 'i': 'assets/[Link]'},
{'n': 'Headphones', 'p': 80, 'i': 'assets/[Link]'},
];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("E-Commerce")),
body: [Link](
padding: [Link](10),
itemCount: [Link],
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2, crossAxisSpacing: 10, mainAxisSpacing: 10),
itemBuilder: (_, i) => GestureDetector(
onTap: () => [Link](
context,
MaterialPageRoute(builder: (_) => Details(p[i])),
),
child: Card(
child: Column(
mainAxisAlignment: [Link],
children: [
[Link](p[i]['i'], height: 80),
Text(p[i]['n'], style: TextStyle(fontWeight: [Link])),
Text("\$${p[i]['p']}", style: TextStyle(color: [Link])),
],
),
),
),
),
);
}
}
class Details extends StatelessWidget {
final Map p;
Details(this.p);
@override
Widget build(BuildContext context) => Scaffold(
appBar: AppBar(title: Text(p['n'])),
body: Column(
mainAxisAlignment: [Link],
children: [
[Link](p['i'], height: 180),
Text(p['n'], style: TextStyle(fontSize: 22, fontWeight:
[Link])),
Text("\$${p['p']}", style: TextStyle(fontSize: 18, color:
[Link])),
ElevatedButton(onPressed: () {}, child: Text("Add to Cart")),
],
),
);
}
Amazon UI App
import 'package:flutter/[Link]';
void main() {
runApp(MaterialApp(
debugShowCheckedModeBanner: false,
home: AmazonUI(),
));
}
class AmazonUI extends StatelessWidget {
final items = [
{"name": "Laptop", "price": "\$500"},
{"name": "Phone", "price": "\$300"},
{"name": "Headphones", "price": "\$80"},
{"name": "Watch", "price": "\$120"},
];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Amazon"),
backgroundColor: [Link],
),
body: [Link](
padding: [Link](10),
itemCount: [Link],
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
crossAxisSpacing: 10,
mainAxisSpacing: 10,
),
itemBuilder: (context, i) {
return Card(
elevation: 5,
child: Column(
mainAxisAlignment: [Link],
children: [
Icon(Icons.shopping_bag,
size: 60,
color: [Link]),
SizedBox(height: 10),
Text(
items[i]["name"]!,
style: TextStyle(
fontWeight: [Link],
fontSize: 18,
),
),
Text(
items[i]["price"]!,
style: TextStyle(color: [Link]),
),
SizedBox(height: 10),
ElevatedButton(
style: [Link](
backgroundColor: [Link],
),
onPressed: () {},
child: Text("Buy"),
),
],
),
);
},
),
);
}
}
10th - Splash Screen App
import 'package:flutter/[Link]';
import 'dart:async';
void main() => runApp(MaterialApp(
debugShowCheckedModeBanner: false,
home: Splash(),
));
class Splash extends StatefulWidget {
@override
State<Splash> createState() => _SplashState();
}
class _SplashState extends State<Splash> {
double o = 0;
@override
void initState() {
[Link]();
Timer(Duration(seconds: 1), () => setState(() => o = 1));
Timer(
Duration(seconds: 3),
() => [Link](
context,
MaterialPageRoute(builder: (_) => Home()),
),
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: [Link],
body: Center(
child: AnimatedOpacity(
opacity: o,
duration: Duration(seconds: 2),
child: FlutterLogo(size: 120),
),
),
);
}
}
class Home extends StatelessWidget {
@override
Widget build(BuildContext context) => Scaffold(
appBar: AppBar(title: Text("Home")),
body: Center(
child: Text(
"Welcome!",
style: TextStyle(fontSize: 25),
),
),
);
}