Skip to content

Instantly share code, notes, and snippets.

View felixblaschke's full-sized avatar

Felix Blaschke felixblaschke

  • Frankfurt am Main, Germany
View GitHub Profile
@felixblaschke
felixblaschke / sa2-2.dart
Created April 22, 2020 19:51
sa2-2.dart
enum _AniProps { width, height, color }
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
final _tween = MultiTween<_AniProps>()
..add(_AniProps.width, 200.0.tweenTo(300.0), 1.seconds) // <-- chain the
..add(_AniProps.width, 300.0.tweenTo(100.0), 1.seconds) // <-- width property
..add(_AniProps.height, 100.0.tweenTo(200.0), 2.seconds)
..add(_AniProps.color, Colors.green.tweenTo(Colors.orange), 2.seconds);
@felixblaschke
felixblaschke / sa2-1.dart
Created April 22, 2020 19:38
sa2-1.dart
PlayAnimation<Color>( // <-- specify type of animated variable
tween: Colors.red.tweenTo(Colors.blue), // <-- define tween of colors
builder: (context, child, value) { // <-- builder function
return Container(
color: value, // <-- use animated value
width: 100,
height: 100
);
});
@felixblaschke
felixblaschke / supercharged_1.3.0_box.dart
Last active April 13, 2020 06:37
supercharged_1.3.0_box.dart
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: ControlledAnimation(
@felixblaschke
felixblaschke / date-selection.dart
Created February 29, 2020 08:58
Date Selection with supercharged
class DateSelection extends StatelessWidget {
@override
Widget build(BuildContext context) {
var chunkedDays = DateTime.now()
.until(6.days.fromNow())
.chunked(3, fill: () => null)
.toList();
return Column(
children: chunkedDays.map(buildRow).toList(),
@felixblaschke
felixblaschke / sc_sort_2.dart
Created December 28, 2019 12:22
sc_sort_2.dart
// ascending order
["house", "cat", "pineapple"].sortedByNum((s) => s.length);
["house", "cat", "pineapple"].sortedByString((s) => s);
// descending order
["house", "cat", "pineapple"].sortedByNum((s) => s.length).reversed;
["house", "cat", "pineapple"].sortedByString((s) => s).reversed;
@felixblaschke
felixblaschke / sc_sort_1.dart
Created December 28, 2019 10:16
sc_sort_1.dart
class Persons extends StatelessWidget {
@override
Widget build(BuildContext context) {
var persons = [
Person(name: "Jake", age: 21),
Person(name: "Aaron", age: 48),
Person(name: "Berry", age: 14),
Person(name: "Kyle", age: 32),
];
@felixblaschke
felixblaschke / supercharged1_3.dart
Created December 15, 2019 08:00
supercharged1_3.dart
["a", "b", "c", "d", "e"].chunked(3); // [ ["a", "b", "c"], ["d", "e"] ]
@felixblaschke
felixblaschke / supercharged1_2.dart
Created December 15, 2019 07:54
supercharged1_2.dart
var persons = [
Person(name: "John", age: 21),
Person(name: "Carl", age: 18),
Person(name: "Peter", age: 56),
Person(name: "Sarah", age: 61)
];
persons.groupBy(
(p) => p.age < 40 ? "young" : "old",
valueTransform: (p) => p.name
@felixblaschke
felixblaschke / supercharged1_1.dart
Created December 15, 2019 07:19
supercharged1_1.dart
var persons = [
Person(age: 20),
Person(age: 30),
Person(age: 40)
];
persons.sumBy((p) => p.age); // 90
persons.averageBy((p) => p.age); // 30
persons.count((p) => p.age < 35); // 2
persons.minBy((a,b) => a.age.compareTo(b.age)); // Person(age: 20)
@felixblaschke
felixblaschke / main.dart
Created November 28, 2019 17:38
Simple Animations: MultiTrackTween not refreshed after rebuild #17
import 'package:flutter/material.dart';
import 'package:simple_animations/simple_animations.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,