├── .gitignore ├── .metadata ├── CHANGELOG.md ├── LICENSE ├── README.md ├── example └── main.dart ├── lib └── animated_splash_screen.dart ├── pubspec.lock └── pubspec.yaml /.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | 12 | # IntelliJ related 13 | *.iml 14 | *.ipr 15 | *.iws 16 | .idea/ 17 | 18 | # The .vscode folder contains launch configuration and tasks you configure in 19 | # VS Code which you may wish to be included in version control, so this line 20 | # is commented out by default. 21 | #.vscode/ 22 | 23 | # Flutter/Dart/Pub related 24 | **/doc/api/ 25 | .dart_tool/ 26 | .flutter-plugins 27 | .flutter-plugins-dependencies 28 | .packages 29 | .pub-cache/ 30 | .pub/ 31 | build/ 32 | 33 | # Android related 34 | **/android/**/gradle-wrapper.jar 35 | **/android/.gradle 36 | **/android/captures/ 37 | **/android/gradlew 38 | **/android/gradlew.bat 39 | **/android/local.properties 40 | **/android/**/GeneratedPluginRegistrant.java 41 | 42 | # iOS/XCode related 43 | **/ios/**/*.mode1v3 44 | **/ios/**/*.mode2v3 45 | **/ios/**/*.moved-aside 46 | **/ios/**/*.pbxuser 47 | **/ios/**/*.perspectivev3 48 | **/ios/**/*sync/ 49 | **/ios/**/.sconsign.dblite 50 | **/ios/**/.tags* 51 | **/ios/**/.vagrant/ 52 | **/ios/**/DerivedData/ 53 | **/ios/**/Icon? 54 | **/ios/**/Pods/ 55 | **/ios/**/.symlinks/ 56 | **/ios/**/profile 57 | **/ios/**/xcuserdata 58 | **/ios/.generated/ 59 | **/ios/Flutter/App.framework 60 | **/ios/Flutter/Flutter.framework 61 | **/ios/Flutter/Flutter.podspec 62 | **/ios/Flutter/Generated.xcconfig 63 | **/ios/Flutter/app.flx 64 | **/ios/Flutter/app.zip 65 | **/ios/Flutter/flutter_assets/ 66 | **/ios/Flutter/flutter_export_environment.sh 67 | **/ios/ServiceDefinitions.json 68 | **/ios/Runner/GeneratedPluginRegistrant.* 69 | 70 | # Exceptions to above rules. 71 | !**/ios/**/default.mode1v3 72 | !**/ios/**/default.mode2v3 73 | !**/ios/**/default.pbxuser 74 | !**/ios/**/default.perspectivev3 75 | !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages 76 | -------------------------------------------------------------------------------- /.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: 2738a1148ba6c9a6114df62358109407c3ef2553 8 | channel: beta 9 | 10 | project_type: package 11 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## [1.3.0] - Add feature 2 | * Added possibility to pass a route instead of a widget. 3 | 4 | ## [1.2.0] - Update Dependencies 5 | 6 | ## [1.0.1+2] - Fix 7 | * Fix "Pass static analysis" issues 8 | 9 | ## [1.0.1] - Add features 10 | * Editable icon splash size; 11 | * Editable duration of animation; 12 | 13 | ## [1.0.0+1] - Fix Bugs 14 | 15 | * Fix error in dispose method. 16 | 17 | ## [1.0.0] - TODO: Add release date. 18 | 19 | * TODO: Describe initial release. 20 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Clean Code 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Animated Splash Screen 2 | Check it out at [Pub.Dev](https://pub.dev/packages/animated_splash_screen) 3 | 4 | ## Do it your way 5 | 6 | ### Assets image 7 | ![ezgif com-video-to-gif (1)](https://user-images.githubusercontent.com/22732544/83060360-b3e21000-a031-11ea-9666-834f08e43045.gif) 8 | 9 | ### Custom Widget 10 | ![ezgif com-video-to-gif (4)](https://user-images.githubusercontent.com/22732544/83060348-ad539880-a031-11ea-875b-7a5d055e7659.gif) 11 | 12 | ### Url image 13 | ![ezgif com-video-to-gif (3)](https://user-images.githubusercontent.com/22732544/83060353-af1d5c00-a031-11ea-8ba1-3361057610d7.gif) 14 | 15 | ### IconData 16 | ![ezgif com-video-to-gif (2)](https://user-images.githubusercontent.com/22732544/83060355-b2184c80-a031-11ea-8ae2-d274b957eae5.gif) 17 | 18 | ### Or just change PageTransition and/or SplashTransition 19 | ![ezgif com-video-to-gif (5)](https://user-images.githubusercontent.com/22732544/83060336-a75db780-a031-11ea-99d3-856fa9326b28.gif) 20 | 21 | ## Help Maintenance 22 | 23 | I've been maintaining quite many repos these days and burning out slowly. If you could help me cheer up, buying me a cup of coffee will make my life really happy and get much energy out of it. 24 | 25 | Buy Me A Coffee 26 | 27 | ## Getting Started 28 | To use is simple, just do this: 29 | 30 | @override 31 | Widget build(BuildContext context) { 32 | return AnimatedSplashScreen( 33 | splash: 'images/splash.png', 34 | nextScreen: MainScreen(), 35 | splashTransition: SplashTransition.rotationTransition, 36 | pageTransitionType: PageTransitionType.scale, 37 | ); 38 | } 39 | 40 | ### Splash Parameter 41 | Here, you can pass: 42 | * String with assets route; 43 | * String with your url Image, don't forget of pass tag like this "[n]www.my-url.com/my-image.png"; 44 | * IconData; 45 | * Widget; 46 | 47 | ### SplashTransition 48 | enum SplashTransition { 49 | slideTransition, 50 | scaleTransition, 51 | rotationTransition, 52 | sizeTransition, 53 | fadeTransition, 54 | decoratedBoxTransition 55 | } 56 | 57 | ### PageTransitionType 58 | enum PageTransitionType { 59 | fade, 60 | rightToLeft, 61 | leftToRight, 62 | upToDown, 63 | downToUp, 64 | scale, 65 | rotate, 66 | size, 67 | rightToLeftWithFade, 68 | leftToRightWithFade, 69 | } 70 | 71 | ### Others: 72 | AnimatedSplashScreen({ 73 | Curve curve = Curves.easeInCirc, 74 | Future Function() function, // Here you can make something before change of screen 75 | int duration = 2500, 76 | @required dynamic splash, 77 | @required Widget nextScreen, 78 | Color backgroundColor = Colors.white, 79 | Animatable customTween, 80 | bool centered = true, 81 | SplashTransition splashTransition = SplashTransition.fadeTransition, 82 | PageTransitionType pageTransitionType = PageTransitionType.downToUp, 83 | }) 84 | 85 | ## With Future Screen 86 | Here you can do something that will return your next screen, ex: 87 | 88 | AnimatedSplashScreen.withScreenFunction( 89 | splash: 'images/splash.png', 90 | screenFunction: () async{ 91 | return MainScreen(); 92 | }, 93 | splashTransition: SplashTransition.rotationTransition, 94 | pageTransitionType: PageTransitionType.scale, 95 | ) -------------------------------------------------------------------------------- /example/main.dart: -------------------------------------------------------------------------------- 1 | import 'package:animated_splash_screen/animated_splash_screen.dart'; 2 | import 'package:flutter/material.dart'; 3 | import 'package:page_transition/page_transition.dart'; 4 | 5 | void main() => runApp(MyApp()); 6 | 7 | class MyApp extends StatelessWidget { 8 | @override 9 | Widget build(BuildContext context) { 10 | return MaterialApp( 11 | title: 'Clean Code', 12 | home: AnimatedSplashScreen( 13 | duration: 3000, 14 | splash: Icons.home, 15 | nextScreen: MainScreen(), 16 | splashTransition: SplashTransition.fadeTransition, 17 | pageTransitionType: PageTransitionType.scale, 18 | backgroundColor: Colors.blue)); 19 | } 20 | } 21 | 22 | class MainScreen extends StatelessWidget { 23 | @override 24 | Widget build(BuildContext context) { 25 | return Container( 26 | color: Colors.redAccent, 27 | ); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /lib/animated_splash_screen.dart: -------------------------------------------------------------------------------- 1 | library animated_splash_screen; 2 | 3 | import 'package:flutter/material.dart'; 4 | import 'package:page_transition/page_transition.dart'; 5 | 6 | enum SplashType { simpleSplash, backgroundScreenReturn } 7 | 8 | enum SplashTransition { 9 | slideTransition, 10 | scaleTransition, 11 | rotationTransition, 12 | 13 | sizeTransition, 14 | fadeTransition, 15 | decoratedBoxTransition 16 | } 17 | 18 | class AnimatedSplashScreen extends StatefulWidget { 19 | /// Type of page transition 20 | final PageTransitionType transitionType; 21 | 22 | /// Type of splash transition 23 | final SplashTransition splashTransition; 24 | 25 | /// Only required while using [AnimatedSplashScreen.withScreenFunction] 26 | /// here you pass your function that needs to be called before jumping 27 | /// on to the next screen 28 | final Future Function()? function; 29 | 30 | /// Custom animation to icon of splash 31 | final Animatable? customAnimation; 32 | 33 | /// Background color 34 | final Color backgroundColor; 35 | 36 | /// Compulsory in default constructor. 37 | /// Here you pass your widget that will be browsed 38 | final Widget? nextScreen; 39 | 40 | /// Type of AnimatedSplashScreen 41 | final SplashType type; 42 | 43 | /// to make the icon in [Center] of splash 44 | final bool centered; 45 | 46 | /// If you want to implement the navigation to the next page yourself. 47 | /// By default this is [false], the widget will call Navigator.of(_context).pushReplacement() 48 | /// using PageTransition with [transitionType] after [duration] to [nextScreen] 49 | final bool disableNavigation; 50 | 51 | /// It can be string for [Image.asserts], normal [Widget] or you can user tags 52 | /// to choose which one you image type, for example: 53 | /// * '[n]www.my-site.com/my-image.png' to [Image.network] 54 | final dynamic splash; 55 | 56 | /// Time in milliseconds after splash animation to jump to next screen 57 | /// Default is [milliseconds: 2500], minimum is [milliseconds: 100] 58 | final int duration; 59 | 60 | /// Curve of splash animation 61 | final Curve curve; 62 | 63 | /// Splash animation duration, default is [milliseconds: 800] 64 | final Duration? animationDuration; 65 | 66 | /// Size of an icon in splash screen 67 | final double? splashIconSize; 68 | 69 | /// Here you pass your route that will be browsed 70 | final String? nextRoute; 71 | 72 | factory AnimatedSplashScreen( 73 | {Curve curve = Curves.easeInCirc, 74 | Future Function()? function, 75 | int duration = 2500, 76 | required dynamic splash, 77 | required Widget nextScreen, 78 | Color backgroundColor = Colors.white, 79 | Animatable? customTween, 80 | bool centered = true, 81 | bool disableNavigation = false, 82 | SplashTransition? splashTransition, 83 | PageTransitionType? pageTransitionType, 84 | Duration? animationDuration, 85 | double? splashIconSize, 86 | String? nextRoute}) { 87 | return AnimatedSplashScreen._internal( 88 | backgroundColor: backgroundColor, 89 | animationDuration: animationDuration, 90 | transitionType: pageTransitionType ?? PageTransitionType.bottomToTop, 91 | splashTransition: splashTransition ?? SplashTransition.fadeTransition, 92 | splashIconSize: splashIconSize, 93 | customAnimation: customTween, 94 | function: function, 95 | nextRoute: nextRoute, 96 | duration: duration, 97 | centered: centered, 98 | disableNavigation: disableNavigation, 99 | splash: splash, 100 | type: SplashType.simpleSplash, 101 | nextScreen: nextScreen, 102 | curve: curve, 103 | ); 104 | } 105 | 106 | factory AnimatedSplashScreen.withScreenFunction({ 107 | Curve curve = Curves.easeInCirc, 108 | bool centered = true, 109 | bool disableNavigation = false, 110 | int duration = 2500, 111 | required dynamic splash, 112 | required Future Function() screenFunction, 113 | Animatable? customTween, 114 | Color backgroundColor = Colors.white, 115 | SplashTransition? splashTransition, 116 | PageTransitionType? pageTransitionType, 117 | Duration? animationDuration, 118 | double? splashIconSize, 119 | }) { 120 | return AnimatedSplashScreen._internal( 121 | type: SplashType.backgroundScreenReturn, 122 | animationDuration: animationDuration, 123 | transitionType: pageTransitionType ?? PageTransitionType.bottomToTop, 124 | splashTransition: splashTransition ?? SplashTransition.fadeTransition, 125 | backgroundColor: backgroundColor, 126 | splashIconSize: splashIconSize, 127 | customAnimation: customTween, 128 | function: screenFunction, 129 | duration: duration, 130 | centered: centered, 131 | disableNavigation: disableNavigation, 132 | nextRoute: null, 133 | nextScreen: null, 134 | splash: splash, 135 | curve: curve, 136 | ); 137 | } 138 | 139 | factory AnimatedSplashScreen.withScreenRouteFunction({ 140 | Curve curve = Curves.easeInCirc, 141 | bool centered = true, 142 | bool disableNavigation = false, 143 | int duration = 2500, 144 | required dynamic splash, 145 | required Future Function() screenRouteFunction, 146 | Animatable? customTween, 147 | Color backgroundColor = Colors.white, 148 | SplashTransition? splashTransition, 149 | PageTransitionType? pageTransitionType, 150 | Duration? animationDuration, 151 | double? splashIconSize, 152 | }) { 153 | return AnimatedSplashScreen._internal( 154 | type: SplashType.backgroundScreenReturn, 155 | animationDuration: animationDuration, 156 | transitionType: pageTransitionType ?? PageTransitionType.bottomToTop, 157 | splashTransition: splashTransition ?? SplashTransition.fadeTransition, 158 | backgroundColor: backgroundColor, 159 | splashIconSize: splashIconSize, 160 | customAnimation: customTween, 161 | function: screenRouteFunction, 162 | duration: duration, 163 | centered: centered, 164 | disableNavigation: disableNavigation, 165 | nextRoute: null, 166 | nextScreen: null, 167 | splash: splash, 168 | curve: curve, 169 | ); 170 | } 171 | 172 | AnimatedSplashScreen._internal( 173 | {required this.animationDuration, 174 | required this.splashTransition, 175 | required this.customAnimation, 176 | required this.backgroundColor, 177 | required this.transitionType, 178 | required this.splashIconSize, 179 | required this.nextScreen, 180 | required this.function, 181 | required this.duration, 182 | required this.centered, 183 | required this.disableNavigation, 184 | required this.splash, 185 | required this.curve, 186 | required this.type, 187 | required this.nextRoute}); 188 | 189 | @override 190 | _AnimatedSplashScreenState createState() => _AnimatedSplashScreenState(); 191 | } 192 | 193 | class _AnimatedSplashScreenState extends State 194 | with SingleTickerProviderStateMixin { 195 | late AnimationController _animationController; 196 | static late BuildContext _context; 197 | late Animation _animation; 198 | 199 | AnimatedSplashScreen get w => widget; 200 | 201 | @override 202 | void initState() { 203 | super.initState(); 204 | 205 | _animationController = new AnimationController( 206 | duration: w.animationDuration ?? Duration(milliseconds: 800), 207 | vsync: this); 208 | 209 | Animatable animation = w.customAnimation ?? 210 | () { 211 | switch (w.splashTransition) { 212 | case SplashTransition.slideTransition: 213 | return Tween( 214 | end: Offset.zero, 215 | begin: Offset(1, 0), 216 | ); 217 | 218 | case SplashTransition.decoratedBoxTransition: 219 | return DecorationTween( 220 | end: BoxDecoration(color: Colors.black87), 221 | begin: BoxDecoration(color: Colors.redAccent)); 222 | 223 | default: 224 | return Tween(begin: 0.0, end: 1.0); 225 | } 226 | }() as Animatable; 227 | 228 | _animation = animation 229 | .animate(CurvedAnimation(parent: _animationController, curve: w.curve)); 230 | _animationController.forward().then((value) => doTransition()); 231 | } 232 | 233 | /// call function case needed and then jump to next screen 234 | doTransition() async { 235 | if (w.type == SplashType.backgroundScreenReturn) 236 | navigator(await w.function!()); 237 | else if (!w.disableNavigation) navigator(w.nextRoute ?? w.nextScreen); 238 | } 239 | 240 | @override 241 | void dispose() { 242 | _animationController.reset(); 243 | _animationController.dispose(); 244 | super.dispose(); 245 | } 246 | 247 | navigator(screen) { 248 | Future.delayed(Duration(milliseconds: w.duration < 100 ? 100 : w.duration)) 249 | .then((_) { 250 | try { 251 | if (screen is String) { 252 | Navigator.of(_context).pushReplacementNamed(screen); 253 | } else { 254 | Navigator.of(_context).pushReplacement(PageTransition( 255 | type: w.transitionType, 256 | child: screen, 257 | alignment: Alignment.topCenter)); 258 | } 259 | } catch (msg) { 260 | print('AnimatedSplashScreen -> ' 261 | 'error in jump to next screen, probably ' 262 | 'this run is in hot reload: $msg'); 263 | } 264 | }); 265 | } 266 | 267 | /// Return icon of splash screen 268 | Widget getSplash() { 269 | final size = 270 | w.splashIconSize ?? MediaQuery.of(context).size.shortestSide * 0.2; 271 | 272 | Widget main({required Widget child}) => 273 | w.centered ? Center(child: child) : child; 274 | 275 | return getTransition( 276 | child: main( 277 | child: SizedBox( 278 | height: size, 279 | child: w.splash is String 280 | ? () { 281 | if (w.splash.toString().contains('[n]')) 282 | return Image.network( 283 | w.splash.toString().replaceAll('[n]', '')); 284 | else 285 | return Image.asset(w.splash); 286 | }() 287 | : (w.splash is IconData 288 | ? Icon(w.splash, size: size) 289 | : w.splash)))); 290 | } 291 | 292 | /// return transtion 293 | Widget getTransition({required Widget child}) { 294 | switch (w.splashTransition) { 295 | case SplashTransition.slideTransition: 296 | return SlideTransition( 297 | position: (_animation as Animation), child: child); 298 | 299 | case SplashTransition.scaleTransition: 300 | return ScaleTransition( 301 | scale: (_animation as Animation), child: child); 302 | 303 | case SplashTransition.rotationTransition: 304 | return RotationTransition( 305 | turns: (_animation as Animation), child: child); 306 | 307 | case SplashTransition.sizeTransition: 308 | return SizeTransition( 309 | sizeFactor: (_animation as Animation), child: child); 310 | 311 | case SplashTransition.fadeTransition: 312 | return FadeTransition( 313 | opacity: (_animation as Animation), child: child); 314 | 315 | case SplashTransition.decoratedBoxTransition: 316 | return DecoratedBoxTransition( 317 | decoration: (_animation as Animation), child: child); 318 | 319 | default: 320 | return FadeTransition( 321 | opacity: (_animation as Animation), child: child); 322 | } 323 | } 324 | 325 | @override 326 | Widget build(BuildContext context) { 327 | _context = context; 328 | 329 | return Scaffold(backgroundColor: w.backgroundColor, body: getSplash()); 330 | } 331 | } 332 | -------------------------------------------------------------------------------- /pubspec.lock: -------------------------------------------------------------------------------- 1 | # Generated by pub 2 | # See https://dart.dev/tools/pub/glossary#lockfile 3 | packages: 4 | async: 5 | dependency: transitive 6 | description: 7 | name: async 8 | url: "https://pub.dartlang.org" 9 | source: hosted 10 | version: "2.8.2" 11 | boolean_selector: 12 | dependency: transitive 13 | description: 14 | name: boolean_selector 15 | url: "https://pub.dartlang.org" 16 | source: hosted 17 | version: "2.1.0" 18 | characters: 19 | dependency: transitive 20 | description: 21 | name: characters 22 | url: "https://pub.dartlang.org" 23 | source: hosted 24 | version: "1.2.0" 25 | charcode: 26 | dependency: transitive 27 | description: 28 | name: charcode 29 | url: "https://pub.dartlang.org" 30 | source: hosted 31 | version: "1.3.1" 32 | clock: 33 | dependency: transitive 34 | description: 35 | name: clock 36 | url: "https://pub.dartlang.org" 37 | source: hosted 38 | version: "1.1.0" 39 | collection: 40 | dependency: transitive 41 | description: 42 | name: collection 43 | url: "https://pub.dartlang.org" 44 | source: hosted 45 | version: "1.15.0" 46 | fake_async: 47 | dependency: transitive 48 | description: 49 | name: fake_async 50 | url: "https://pub.dartlang.org" 51 | source: hosted 52 | version: "1.2.0" 53 | flutter: 54 | dependency: "direct main" 55 | description: flutter 56 | source: sdk 57 | version: "0.0.0" 58 | flutter_test: 59 | dependency: "direct dev" 60 | description: flutter 61 | source: sdk 62 | version: "0.0.0" 63 | matcher: 64 | dependency: transitive 65 | description: 66 | name: matcher 67 | url: "https://pub.dartlang.org" 68 | source: hosted 69 | version: "0.12.11" 70 | material_color_utilities: 71 | dependency: transitive 72 | description: 73 | name: material_color_utilities 74 | url: "https://pub.dartlang.org" 75 | source: hosted 76 | version: "0.1.3" 77 | meta: 78 | dependency: transitive 79 | description: 80 | name: meta 81 | url: "https://pub.dartlang.org" 82 | source: hosted 83 | version: "1.7.0" 84 | page_transition: 85 | dependency: "direct main" 86 | description: 87 | name: page_transition 88 | url: "https://pub.dartlang.org" 89 | source: hosted 90 | version: "2.0.9" 91 | path: 92 | dependency: transitive 93 | description: 94 | name: path 95 | url: "https://pub.dartlang.org" 96 | source: hosted 97 | version: "1.8.0" 98 | pedantic: 99 | dependency: "direct dev" 100 | description: 101 | name: pedantic 102 | url: "https://pub.dartlang.org" 103 | source: hosted 104 | version: "1.9.0" 105 | sky_engine: 106 | dependency: transitive 107 | description: flutter 108 | source: sdk 109 | version: "0.0.99" 110 | source_span: 111 | dependency: transitive 112 | description: 113 | name: source_span 114 | url: "https://pub.dartlang.org" 115 | source: hosted 116 | version: "1.8.1" 117 | stack_trace: 118 | dependency: transitive 119 | description: 120 | name: stack_trace 121 | url: "https://pub.dartlang.org" 122 | source: hosted 123 | version: "1.10.0" 124 | stream_channel: 125 | dependency: transitive 126 | description: 127 | name: stream_channel 128 | url: "https://pub.dartlang.org" 129 | source: hosted 130 | version: "2.1.0" 131 | string_scanner: 132 | dependency: transitive 133 | description: 134 | name: string_scanner 135 | url: "https://pub.dartlang.org" 136 | source: hosted 137 | version: "1.1.0" 138 | term_glyph: 139 | dependency: transitive 140 | description: 141 | name: term_glyph 142 | url: "https://pub.dartlang.org" 143 | source: hosted 144 | version: "1.2.0" 145 | test_api: 146 | dependency: transitive 147 | description: 148 | name: test_api 149 | url: "https://pub.dartlang.org" 150 | source: hosted 151 | version: "0.4.8" 152 | typed_data: 153 | dependency: transitive 154 | description: 155 | name: typed_data 156 | url: "https://pub.dartlang.org" 157 | source: hosted 158 | version: "1.3.0" 159 | vector_math: 160 | dependency: transitive 161 | description: 162 | name: vector_math 163 | url: "https://pub.dartlang.org" 164 | source: hosted 165 | version: "2.1.1" 166 | sdks: 167 | dart: ">=2.14.0 <3.0.0" 168 | -------------------------------------------------------------------------------- /pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: animated_splash_screen 2 | description: The easiest way to create your animated splash screen in a fully customizable way. 3 | version: 1.3.0 4 | homepage: https://github.com/clean-code-dev/animated_splash_screen 5 | 6 | environment: 7 | sdk: '>=2.12.0 <3.0.0' 8 | 9 | dependencies: 10 | flutter: 11 | sdk: flutter 12 | page_transition: ^2.0.9 13 | 14 | dev_dependencies: 15 | pedantic: ^1.9.0 16 | flutter_test: 17 | sdk: flutter 18 | 19 | # For information on the generic Dart part of this file, see the 20 | # following page: https://dart.dev/tools/pub/pubspec 21 | 22 | # The following section is specific to Flutter. 23 | flutter: 24 | 25 | # To add assets to your package, add an assets section, like this: 26 | # assets: 27 | # - images/a_dot_burr.jpeg 28 | # - images/a_dot_ham.jpeg 29 | # 30 | # For details regarding assets in packages, see 31 | # https://flutter.dev/assets-and-images/#from-packages 32 | # 33 | # An image asset can refer to one or more resolution-specific "variants", see 34 | # https://flutter.dev/assets-and-images/#resolution-aware. 35 | 36 | # To add custom fonts to your package, add a fonts section here, 37 | # in this "flutter" section. Each entry in this list should have a 38 | # "family" key with the font family name, and a "fonts" key with a 39 | # list giving the asset and other descriptors for the font. For 40 | # example: 41 | # fonts: 42 | # - family: Schyler 43 | # fonts: 44 | # - asset: fonts/Schyler-Regular.ttf 45 | # - asset: fonts/Schyler-Italic.ttf 46 | # style: italic 47 | # - family: Trajan Pro 48 | # fonts: 49 | # - asset: fonts/TrajanPro.ttf 50 | # - asset: fonts/TrajanPro_Bold.ttf 51 | # weight: 700 52 | # 53 | # For details regarding fonts in packages, see 54 | # https://flutter.dev/custom-fonts/#from-packages 55 | --------------------------------------------------------------------------------