├── .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 | 
8 |
9 | ### Custom Widget
10 | 
11 |
12 | ### Url image
13 | 
14 |
15 | ### IconData
16 | 
17 |
18 | ### Or just change PageTransition and/or SplashTransition
19 | 
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 |
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 |
--------------------------------------------------------------------------------