├── .gitignore ├── AlertsPage.dart ├── DrawerPage.dart ├── FavoritesPage.dart ├── HomePage.dart ├── README.md ├── RainsPage.dart ├── SearchPage.dart ├── Spartan.otf ├── getLocation.dart ├── ic_launcher.png ├── ic_launcher_foreground.png ├── ic_launcher_round.png ├── location.jpg ├── main.dart ├── photo.jpg └── pubspec.yaml /.gitignore: -------------------------------------------------------------------------------- 1 | # Gradle files 2 | .gradle/ 3 | build/ 4 | 5 | # Local configuration file (sdk path, etc) 6 | local.properties 7 | 8 | # Log/OS Files 9 | *.log 10 | 11 | # Android Studio generated files and folders 12 | captures/ 13 | .externalNativeBuild/ 14 | .cxx/ 15 | *.apk 16 | output.json 17 | 18 | # IntelliJ 19 | *.iml 20 | .idea/ 21 | misc.xml 22 | deploymentTargetDropDown.xml 23 | render.experimental.xml 24 | 25 | # Keystore files 26 | *.jks 27 | *.keystore 28 | 29 | # Google Services (e.g. APIs or Firebase) 30 | google-services.json 31 | 32 | # Android Profiling 33 | *.hprof 34 | -------------------------------------------------------------------------------- /AlertsPage.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class AlertsPage extends StatefulWidget { 4 | @override 5 | State createState() => _AlertsPageState(); 6 | } 7 | 8 | class _AlertsPageState extends State { 9 | @override 10 | Widget build(BuildContext context) { 11 | return Scaffold( 12 | appBar: AppBar(), 13 | body: Center( 14 | child: Container( 15 | height: 100, 16 | width: 100, 17 | color: Colors.yellowAccent, 18 | child: Text( 19 | 'Alerts Page', 20 | style: TextStyle( 21 | color: Colors.black, 22 | fontSize: 20, 23 | fontWeight: FontWeight.bold, 24 | ), 25 | ), 26 | ), 27 | ), 28 | ); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /DrawerPage.dart: -------------------------------------------------------------------------------- 1 | // ignore_for_file: prefer_const_constructors, sort_child_properties_last 2 | 3 | import 'package:flutter/cupertino.dart'; 4 | import 'package:flutter/material.dart'; 5 | import 'getLocation.dart'; 6 | import 'package:http/http.dart'; 7 | 8 | Location location = Location(); 9 | 10 | class DrawerPage extends StatefulWidget { 11 | @override 12 | State createState() => DrawerPageState(); 13 | } 14 | 15 | class DrawerPageState extends State { 16 | @override 17 | Widget build(BuildContext context) { 18 | return Scaffold( 19 | backgroundColor: Colors.black, 20 | body: ListView( 21 | children: [ 22 | UserAccountsDrawerHeader( 23 | accountName: Text('Aakash Agarwal'), 24 | accountEmail: Text('agarwal7409@gmail.com'), 25 | currentAccountPicture: CircleAvatar( 26 | foregroundImage: AssetImage('images/photo.jpg'), 27 | ), 28 | // decoration: (), 29 | ), 30 | // DrawerHeader( 31 | // padding: EdgeInsets.fromLTRB(0, 0, 0, 0), 32 | // child: Container( 33 | // margin: EdgeInsets.all(0), 34 | // color: Colors.yellow, 35 | // ), 36 | // ), 37 | FloatingActionButton.extended( 38 | heroTag: null, 39 | backgroundColor: Colors.white, 40 | splashColor: Colors.black, 41 | shape: RoundedRectangleBorder( 42 | borderRadius: BorderRadius.circular(90), 43 | ), 44 | icon: Icon( 45 | Icons.circle_outlined, 46 | color: Colors.red, 47 | ), 48 | label: Text( 49 | 'Locate', 50 | style: TextStyle( 51 | color: Colors.black, 52 | fontWeight: FontWeight.bold, 53 | ), 54 | ), 55 | onPressed: () async { 56 | print('button pressed'); 57 | await location.getCurrentLocation(); 58 | setState(() {}); 59 | }, 60 | ), 61 | ], 62 | ), 63 | ); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /FavoritesPage.dart: -------------------------------------------------------------------------------- 1 | // ignore_for_file: prefer_const_constructors, prefer_const_literals_to_create_immutables 2 | 3 | import 'package:flutter/material.dart'; 4 | 5 | class FavoritesPage extends StatefulWidget { 6 | @override 7 | State createState() => _FavoritesPageState(); 8 | } 9 | 10 | class _FavoritesPageState extends State { 11 | bool favorite1 = false, favorite2 = false; 12 | @override 13 | Widget build(BuildContext context) { 14 | return Scaffold( 15 | appBar: AppBar(), 16 | body: Center( 17 | child: ListView( 18 | children: [ 19 | ListTile( 20 | titleAlignment: ListTileTitleAlignment.center, 21 | title: Text( 22 | 'Dehradun', 23 | textAlign: TextAlign.center, 24 | style: TextStyle( 25 | fontWeight: FontWeight.bold, 26 | color: Colors.black, 27 | ), 28 | ), 29 | subtitle: Text( 30 | 'hill station', 31 | textAlign: TextAlign.center, 32 | ), 33 | trailing: IconButton( 34 | icon: favorite1 35 | ? Icon( 36 | Icons.favorite, 37 | color: Colors.red, 38 | ) 39 | : Icon( 40 | Icons.favorite_border_outlined, 41 | color: Colors.red, 42 | ), 43 | onPressed: () { 44 | setState(() { 45 | favorite1 = !favorite1; 46 | }); 47 | }), 48 | ), 49 | ListTile( 50 | titleAlignment: ListTileTitleAlignment.center, 51 | title: Text( 52 | 'New Delhi', 53 | textAlign: TextAlign.center, 54 | style: TextStyle( 55 | fontWeight: FontWeight.bold, 56 | color: Colors.black, 57 | ), 58 | ), 59 | subtitle: Text( 60 | 'capital city', 61 | textAlign: TextAlign.center, 62 | ), 63 | trailing: IconButton( 64 | icon: favorite2 65 | ? Icon( 66 | Icons.favorite, 67 | color: Colors.red, 68 | ) 69 | : Icon( 70 | Icons.favorite_border_outlined, 71 | color: Colors.red, 72 | ), 73 | onPressed: () { 74 | setState(() { 75 | favorite2 = !favorite2; 76 | }); 77 | }, 78 | ), 79 | ), 80 | ], 81 | ), 82 | ), 83 | ); 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /HomePage.dart: -------------------------------------------------------------------------------- 1 | // ignore_for_file: prefer_const_constructors 2 | 3 | import 'package:flutter/material.dart'; 4 | 5 | class HomePage extends StatefulWidget { 6 | @override 7 | State createState() => _HomePageState(); 8 | } 9 | 10 | class _HomePageState extends State { 11 | bool l = false; 12 | List cities = [ 13 | 'Dehradun', 14 | 'New Delhi', 15 | 'Prayagraj', 16 | 'Bareilly', 17 | 'Azamgarh', 18 | 'Mumbai', 19 | 'Amritsar', 20 | 'Katra', 21 | 'Kolkata', 22 | 'Haridwar', 23 | 'Pondicherry', 24 | 'Chennai', 25 | 'Pune', 26 | 'Hyderabad', 27 | 'Bengaluru', 28 | 'Gangtok', 29 | 'Raipur', 30 | 'Lucknow', 31 | 'Noida', 32 | 'Gaziabad', 33 | 'Gurgaon', 34 | 'Amdavad', 35 | 'Surat', 36 | 'Vadodara', 37 | 'Gandhinagar', 38 | 'Chandigarh', 39 | 'Shimla', 40 | 'Srinagar', 41 | 'Mussorie', 42 | ]; 43 | 44 | @override 45 | Widget build(BuildContext context) { 46 | return columnTrial(); 47 | } 48 | 49 | dynamic columnTrial() { 50 | return Column( 51 | mainAxisAlignment: MainAxisAlignment.center, 52 | crossAxisAlignment: CrossAxisAlignment.center, 53 | children: [ 54 | Expanded( 55 | child: ListView.builder( 56 | itemCount: cities.length, 57 | itemBuilder: (context, index) { 58 | return Text(cities[index]); 59 | } 60 | // child: ListView( 61 | // // itemExtent: 2, 62 | // children: [ 63 | // ListTile( 64 | // leading: CircleAvatar( 65 | // backgroundColor: Colors.black, 66 | // child: IconButton( 67 | // onPressed: () {}, 68 | // icon: Icon( 69 | // Icons.add, 70 | // color: Colors.white, 71 | // ), 72 | // ), 73 | // ), 74 | // title: Text( 75 | // cities[1].toString(), 76 | // ), 77 | // subtitle: Text('hill station'), 78 | // trailing: Text('sunny'), 79 | // onTap: () {}, 80 | // tileColor: Colors.yellowAccent, 81 | // ), 82 | // //MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM 83 | // ], 84 | // ), 85 | ), 86 | ), 87 | Row( 88 | mainAxisAlignment: MainAxisAlignment.end, 89 | crossAxisAlignment: CrossAxisAlignment.end, 90 | children: [ 91 | // Padding( 92 | // padding: const EdgeInsets.all(8), 93 | // child: SizedBox( 94 | // height: 45, 95 | // width: 100, 96 | // child: FloatingActionButton.extended( 97 | // heroTag: null, 98 | // backgroundColor: Colors.black, 99 | // shape: RoundedRectangleBorder( 100 | // borderRadius: BorderRadius.circular(90), 101 | // ), 102 | // label: Text( 103 | // 'trial', 104 | // style: TextStyle( 105 | // color: Colors.white, 106 | // fontWeight: FontWeight.bold, 107 | // ), 108 | // ), 109 | // onPressed: () { 110 | // Navigator.of(context).push( 111 | // MaterialPageRoute( 112 | // builder: (BuildContext context) { 113 | // return RainsPage(); 114 | // }, 115 | // ), 116 | // ); 117 | // }, 118 | // ), 119 | // ), 120 | // ), 121 | Padding( 122 | padding: const EdgeInsets.all(8), 123 | child: l == false 124 | ? SizedBox( 125 | height: 45, 126 | width: 100, 127 | child: FloatingActionButton.extended( 128 | heroTag: null, 129 | backgroundColor: Colors.black, 130 | splashColor: Colors.red, 131 | shape: RoundedRectangleBorder( 132 | borderRadius: BorderRadius.circular(90), 133 | ), 134 | icon: Icon( 135 | Icons.circle_outlined, 136 | color: Colors.red, 137 | size: 15, 138 | ), 139 | label: Text( 140 | ' LIVE', 141 | style: TextStyle( 142 | color: Colors.white, 143 | fontWeight: FontWeight.bold, 144 | ), 145 | ), 146 | onPressed: () { 147 | setState(() { 148 | l = true; 149 | print('5'); 150 | }); 151 | }, 152 | ), 153 | ) 154 | : SizedBox( 155 | height: 45, 156 | width: 100, 157 | child: FloatingActionButton.extended( 158 | heroTag: null, 159 | backgroundColor: Colors.black, 160 | splashColor: Colors.red, 161 | shape: RoundedRectangleBorder( 162 | borderRadius: BorderRadius.circular(90), 163 | ), 164 | icon: Icon( 165 | Icons.circle, 166 | color: Colors.red, 167 | size: 15, 168 | ), 169 | label: Text( 170 | ' LIVE', 171 | style: TextStyle( 172 | color: Colors.white, 173 | fontWeight: FontWeight.bold, 174 | ), 175 | ), 176 | onPressed: () { 177 | setState(() { 178 | l = false; 179 | print('0'); 180 | }); 181 | }, 182 | ), 183 | ), 184 | ), 185 | ], 186 | ), 187 | ], 188 | ); 189 | } 190 | } 191 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Clima_App -------------------------------------------------------------------------------- /RainsPage.dart: -------------------------------------------------------------------------------- 1 | // ignore_for_file: prefer_const_constructors, sized_box_for_whitespace 2 | 3 | import 'package:clima/getLocation.dart'; 4 | import 'package:flutter/material.dart'; 5 | import 'package:flutter_spinkit/flutter_spinkit.dart'; 6 | 7 | class RainsPage extends StatefulWidget { 8 | @override 9 | State createState() => _RainsPageState(); 10 | } 11 | 12 | class _RainsPageState extends State { 13 | @override 14 | Widget build(BuildContext context) { 15 | return Scaffold( 16 | appBar: AppBar(), 17 | body: true 18 | ? Center( 19 | child: SpinKitRotatingCircle( 20 | color: Colors.white, 21 | size: 50.0, 22 | ), 23 | ) 24 | : Center( 25 | child: Container( 26 | height: 100, 27 | width: 100, 28 | color: Colors.yellowAccent, 29 | child: Text( 30 | 'Rains Page', 31 | style: TextStyle( 32 | color: Colors.black, 33 | fontSize: 20, 34 | fontWeight: FontWeight.bold, 35 | ), 36 | ), 37 | ), 38 | ), 39 | ); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /SearchPage.dart: -------------------------------------------------------------------------------- 1 | // ignore_for_file: prefer_const_constructors 2 | 3 | import 'package:flutter/material.dart'; 4 | 5 | class SearchPage extends StatefulWidget { 6 | @override 7 | State createState() => _SearchPageState(); 8 | } 9 | 10 | class _SearchPageState extends State { 11 | @override 12 | Widget build(BuildContext context) { 13 | return Scaffold( 14 | appBar: AppBar(), 15 | body: Center( 16 | child: Container( 17 | height: 100, 18 | width: 100, 19 | color: Colors.yellowAccent, 20 | child: Text( 21 | 'Search Page', 22 | style: TextStyle( 23 | color: Colors.black, 24 | fontSize: 20, 25 | fontWeight: FontWeight.bold, 26 | ), 27 | ), 28 | ), 29 | ), 30 | ); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Spartan.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/instrik/Clima_App/a16ed83b54c33a62b0ce0b356bce4c2cbcf7fd7b/Spartan.otf -------------------------------------------------------------------------------- /getLocation.dart: -------------------------------------------------------------------------------- 1 | // ignore_for_file: prefer_const_constructors 2 | 3 | import 'package:clima/DrawerPage.dart'; 4 | import 'package:flutter/material.dart'; 5 | import 'package:geolocator/geolocator.dart'; 6 | import 'package:http/http.dart' as http; 7 | import 'dart:convert'; 8 | import 'package:flutter_spinkit/flutter_spinkit.dart'; 9 | 10 | class Location { 11 | static double latitude = 0, longitude = 0; 12 | final String key = 'b88705431322742c3310ab889a1501ae'; 13 | Future getCurrentLocation() async { 14 | Position? position; 15 | try { 16 | position = await Geolocator.getCurrentPosition( 17 | desiredAccuracy: LocationAccuracy.high, 18 | ); 19 | } catch (e) { 20 | print('error in getting the position co-ordinates'); 21 | } 22 | print(position); 23 | latitude = position?.latitude ?? 0; 24 | longitude = position?.longitude ?? 0; 25 | print(latitude); 26 | print(longitude); 27 | } 28 | 29 | void getData() async { 30 | http.Response response = await http.get( 31 | Uri.parse( 32 | 'https://api.openweathermap.org/data/2.5/weather?lat=$latitude&lon=$longitude&appid=$key', // assign variables to key, lat, lon 33 | ), 34 | ); 35 | if (response.statusCode == 200) { 36 | var decodedData = jsonDecode(response.body); 37 | // var weatherDescription = 38 | // jsonDecode(response.body)['weather'][0]['description']; 39 | var weatherDescription = decodedData['weather'][0]['description']; 40 | print(weatherDescription); 41 | 42 | // print(response.body); 43 | } else { 44 | print(response.statusCode); 45 | } 46 | } 47 | } 48 | 49 | class Animation extends StatefulWidget { 50 | @override 51 | State createState() => _AnimationState(); 52 | } 53 | 54 | class _AnimationState extends State { 55 | var spinkit; 56 | @override 57 | Widget build(BuildContext context) { 58 | return Scaffold( 59 | body: Center( 60 | child: SpinKitRotatingCircle( 61 | color: Colors.white, 62 | size: 50.0, 63 | ), 64 | ), 65 | ); 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/instrik/Clima_App/a16ed83b54c33a62b0ce0b356bce4c2cbcf7fd7b/ic_launcher.png -------------------------------------------------------------------------------- /ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/instrik/Clima_App/a16ed83b54c33a62b0ce0b356bce4c2cbcf7fd7b/ic_launcher_foreground.png -------------------------------------------------------------------------------- /ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/instrik/Clima_App/a16ed83b54c33a62b0ce0b356bce4c2cbcf7fd7b/ic_launcher_round.png -------------------------------------------------------------------------------- /location.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/instrik/Clima_App/a16ed83b54c33a62b0ce0b356bce4c2cbcf7fd7b/location.jpg -------------------------------------------------------------------------------- /main.dart: -------------------------------------------------------------------------------- 1 | // ignore_for_file: prefer_const_constructors, prefer_const_literals_to_create_immutables 2 | import 'package:flutter/cupertino.dart'; 3 | import 'package:flutter/material.dart'; 4 | import 'HomePage.dart'; 5 | import 'RainsPage.dart'; 6 | import 'AlertsPage.dart'; 7 | import 'FavoritesPage.dart'; 8 | import 'DrawerPage.dart'; 9 | import 'SearchPage.dart'; 10 | import 'package:geolocator/geolocator.dart'; 11 | import 'package:http/http.dart'; 12 | import 'getLocation.dart'; 13 | import 'package:flutter_spinkit/flutter_spinkit.dart'; 14 | 15 | // trial comment 16 | 17 | void main() { 18 | runApp(AppBase()); 19 | } 20 | 21 | class AppBase extends StatelessWidget { 22 | @override 23 | Widget build(BuildContext context) { 24 | return MaterialApp( 25 | debugShowCheckedModeBanner: false, 26 | home: Clima(), 27 | ); 28 | } 29 | } 30 | 31 | class Clima extends StatefulWidget { 32 | @override 33 | State createState() => _ClimaState(); 34 | } 35 | 36 | class _ClimaState extends State { 37 | int i = 0; 38 | @override 39 | void initState() { 40 | super.initState(); 41 | Location().getCurrentLocation(); 42 | } 43 | 44 | @override 45 | Widget build(BuildContext context) { 46 | List pages = [ 47 | HomePage(), 48 | FavoritesPage(), 49 | SearchPage(), 50 | AlertsPage(), 51 | RainsPage(), 52 | ]; 53 | Location().getData(); 54 | return Scaffold( 55 | backgroundColor: Colors.white, 56 | appBar: AppBar( 57 | backgroundColor: Colors.black, 58 | shape: RoundedRectangleBorder( 59 | borderRadius: BorderRadius.vertical( 60 | bottom: Radius.circular(20), 61 | ), 62 | ), 63 | leading: IconButton( 64 | onPressed: () {}, 65 | color: Colors.white, 66 | icon: Icon( 67 | Icons.menu, 68 | color: Colors.white, 69 | ), 70 | ), 71 | title: Center( 72 | child: Text( 73 | 'Clima', 74 | textAlign: TextAlign.center, 75 | style: TextStyle( 76 | fontSize: 20, 77 | color: Colors.white, 78 | ), 79 | ), 80 | ), 81 | actions: [ 82 | IconButton( 83 | onPressed: () {}, 84 | color: Colors.white, 85 | icon: Icon( 86 | Icons.add, 87 | color: Colors.white, 88 | ), 89 | ), 90 | IconButton( 91 | onPressed: () {}, 92 | icon: Icon( 93 | Icons.search, 94 | color: Colors.white, 95 | ), 96 | ), 97 | ], 98 | ), 99 | drawer: Drawer( 100 | child: DrawerPage(), 101 | ), 102 | body: pages[i], 103 | bottomNavigationBar: BottomNavigationBar( 104 | useLegacyColorScheme: false, 105 | showSelectedLabels: true, 106 | showUnselectedLabels: true, 107 | selectedLabelStyle: TextStyle(color: Colors.black), 108 | unselectedLabelStyle: TextStyle(color: Colors.black), 109 | items: [ 110 | BottomNavigationBarItem( 111 | label: 'Home', 112 | icon: Icon( 113 | Icons.home_filled, 114 | color: Colors.black, 115 | ), 116 | ), 117 | BottomNavigationBarItem( 118 | label: 'Favorites', 119 | icon: Icon( 120 | Icons.favorite_border_outlined, 121 | color: Colors.black, 122 | ), 123 | ), 124 | BottomNavigationBarItem( 125 | label: 'Search', 126 | icon: Icon( 127 | Icons.search, 128 | color: Colors.black, 129 | ), 130 | ), 131 | BottomNavigationBarItem( 132 | label: 'Alerts', 133 | icon: Icon( 134 | Icons.add_alert, 135 | color: Colors.black, 136 | ), 137 | ), 138 | BottomNavigationBarItem( 139 | // Container( 140 | // child: GestureDetector(d), 141 | // ), 142 | label: 'Rains', 143 | icon: Icon( 144 | // child: InkWell( 145 | // onTap: () {}, 146 | // ), 147 | Icons.beach_access, 148 | color: Colors.black, 149 | ), 150 | ), 151 | ], 152 | currentIndex: i, 153 | onTap: (int j) { 154 | setState(() { 155 | i = j; 156 | }); 157 | }, 158 | ), 159 | ); 160 | } 161 | } 162 | -------------------------------------------------------------------------------- /photo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/instrik/Clima_App/a16ed83b54c33a62b0ce0b356bce4c2cbcf7fd7b/photo.jpg -------------------------------------------------------------------------------- /pubspec.yaml: -------------------------------------------------------------------------------- 1 | #file: noinspection SpellCheckingInspection 2 | name: clima 3 | description: "A new Flutter project." 4 | # The following line prevents the package from being accidentally published to 5 | # pub.dev using `flutter pub publish`. This is preferred for private packages. 6 | publish_to: 'none' # Remove this line if you wish to publish to pub.dev 7 | 8 | # The following defines the version and build number for your application. 9 | # A version number is three numbers separated by dots, like 1.2.43 10 | # followed by an optional build number separated by a +. 11 | # Both the version and the builder number may be overridden in flutter 12 | # build by specifying --build-name and --build-number, respectively. 13 | # In Android, build-name is used as versionName while build-number used as versionCode. 14 | # Read more about Android versioning at https://developer.android.com/studio/publish/versioning 15 | # In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. 16 | # Read more about iOS versioning at 17 | # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html 18 | # In Windows, build-name is used as the major, minor, and patch parts 19 | # of the product and file versions while build-number is used as the build suffix. 20 | version: 1.0.0+1 21 | 22 | environment: 23 | sdk: '>=3.2.6 <4.0.0' 24 | 25 | # Dependencies specify other packages that your package needs in order to work. 26 | # To automatically upgrade your package dependencies to the latest versions 27 | # consider running `flutter pub upgrade --major-versions`. Alternatively, 28 | # dependencies can be manually updated by changing the version numbers below to 29 | # the latest version available on pub.dev. To see which dependencies have newer 30 | # versions available, run `flutter pub outdated`. 31 | dependencies: 32 | flutter: 33 | sdk: flutter 34 | geolocator: ^11.0.0 35 | http: ^1.2.1 36 | flutter_spinkit: ^5.2.0 37 | 38 | # The following adds the Cupertino Icons font to your application. 39 | # Use with the CupertinoIcons class for iOS style icons. 40 | cupertino_icons: ^1.0.2 41 | 42 | 43 | dev_dependencies: 44 | flutter_test: 45 | sdk: flutter 46 | 47 | # The "flutter_lints" package below contains a set of recommended lints to 48 | # encourage good coding practices. The lint set provided by the package is 49 | # activated in the `analysis_options.yaml` file located at the root of your 50 | # package. See that file for information about deactivating specific lint 51 | # rules and activating additional ones. 52 | flutter_lints: ^2.0.0 53 | 54 | # For information on the generic Dart part of this file, see the 55 | # following page: https://dart.dev/tools/pub/pubspec 56 | 57 | # The following section is specific to Flutter packages. 58 | flutter: 59 | 60 | # The following line ensures that the Material Icons font is 61 | # included with your application, so that you can use the icons in 62 | # the material Icons class. 63 | uses-material-design: true 64 | 65 | # To add assets to your application, add an assets section, like this: 66 | assets: 67 | - images/ 68 | - fonts/ 69 | # An image asset can refer to one or more resolution-specific "variants", see 70 | # https://flutter.dev/assets-and-images/#resolution-aware 71 | 72 | # For details regarding adding assets from package dependencies, see 73 | # https://flutter.dev/assets-and-images/#from-packages 74 | 75 | # To add custom fonts to your application, add a fonts section here, 76 | # in this "flutter" section. Each entry in this list should have a 77 | # "family" key with the font family name, and a "fonts" key with a 78 | # list giving the asset and other descriptors for the font. For 79 | # example: 80 | # fonts: 81 | # - family: Schyler 82 | # fonts: 83 | # - asset: fonts/Schyler-Regular.ttf 84 | # - asset: fonts/Schyler-Italic.ttf 85 | # style: italic 86 | # - family: Trajan Pro 87 | # fonts: 88 | # - asset: fonts/TrajanPro.ttf 89 | # - asset: fonts/TrajanPro_Bold.ttf 90 | # weight: 700 91 | # 92 | # For details regarding fonts from package dependencies, 93 | # see https://flutter.dev/custom-fonts/#from-packages 94 | --------------------------------------------------------------------------------