Skip to content

Instantly share code, notes, and snippets.

@flar
flar / cached_frosted_backdrop.dart
Created January 4, 2020 04:23
Blurring a background with either a cached BackdropFilter or an ImageFiltered widget for comparison.
import 'dart:ui' as ui;
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter/services.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
@flar
flar / main.dart
Created January 9, 2020 03:51
Animated matrix-style BackdropFilter
import 'dart:ui';
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
@flar
flar / main.dart
Last active June 22, 2020 19:47
Flutter app to demonstrate performance value of ImageFiltered over BackdropFilter. On a Moto G4 the app runs at about 29ms/frame with the BackdropFilter and around 6ms/frame with the ImageFiltered widget.
import 'dart:ui';
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
@flar
flar / main.dart
Last active March 11, 2020 00:20
Demonstration of using Transform vs ImageFiltered
import 'dart:math';
import 'dart:ui';
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@flar
flar / main.dart
Created March 10, 2020 23:37
Using Transform vs ImageFiltered to rotate widget
import 'dart:math';
import 'dart:ui';
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@flar
flar / main.dart
Created April 7, 2020 22:25
complex render benchmark for testing animations
import 'dart:math';
import 'dart:ui';
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@flar
flar / gist:5f34fff7bea958ca1175d196de0fe617
Last active June 30, 2020 23:35
Variation of image animation benchmark used in https://github.com/nazarcybulskij/UI_benchmark. This version uses RepaintBoundary widgets around the Image assets to avoid reconstructing and repainting them on every frame.
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
@flar
flar / main.dart
Last active July 10, 2020 19:11
Using ImageFiltered instead of BackdropFilter to blur text
import 'dart:ui';
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
builder: (_, __) => Scaffold(
@flar
flar / main.dart
Created July 11, 2020 00:45
Effect of filtering an image with different BoxFit settings
import 'dart:ui';
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
@flar
flar / main.dart
Created October 17, 2020 02:38
Testing 3 ways to animate a transform on a widget: Transform(), FilteredWidget(), and Transform(cacheTransform: ...)
import 'dart:math';
import 'dart:ui';
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {