Skip to content

Instantly share code, notes, and snippets.

View icatalud's full-sized avatar

Ignacio Catalán icatalud

  • Chile
View GitHub Profile
@icatalud
icatalud / example.dart
Last active January 25, 2020 16:40
Basic Floop example
class Clicker extends StatelessWidget with Floop {
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Opacity(
// opacity goes from 0 to 1 in two seconds
opacity: transition(2000),
// Text always displays the current value of floop[#clicks].
child: Text('${floop[#clicks]}'),
)
@icatalud
icatalud / set_map_benchmark.dart
Last active October 6, 2019 19:53
Set and Map add operation benchmark
import 'package:benchmark_harness/benchmark_harness.dart';
void main() {
print('Running app');
runMiscBenchmarks();
print('-----------------------------------------------------');
print('-------------END------------------------------------');
print('-----------------------------------------------------');
}
@icatalud
icatalud / color_boxes_final.dart
Last active October 4, 2019 18:42
Full refactored code of colored boxes example.
import 'dart:math';
import 'package:floop/floop.dart';
import 'package:flutter/material.dart';
void main() {
runApp(MaterialApp(title: 'Color boxes', home: ColoredGrid()));
}
class Dyn {
@icatalud
icatalud / color_boxes.dart
Last active October 4, 2019 14:03
Example dynamic widget
class ColorBox extends DynamicWidget {
final int id;
ColorBox(this.id, {Key key}) : super(key: key);
initDyn() {
dyn[#color] = randomColor();
dyn[#textColor] = contrastColor(dyn[#color]);
dyn[#clicks] = 0;
}
import 'package:flutter/material.dart';
import 'package:floop/floop.dart';
import 'package:http/http.dart' as http;
void main() {
fetchAndUpdateImage();
runApp(MaterialApp(title: 'Fetch image', home: ImageDisplay()));
}
class DynamicValues {
@icatalud
icatalud / transition_image_with_gesture.dart
Created September 6, 2019 20:41
TransitionImage class with a tap gesture.
class TransitionImage extends FloopWidget {
final Image image;
const TransitionImage(this.image);
@override
Widget build(BuildContext context) {
// Opacity transitions from 0 to 1 in 1.5 seconds.
return GestureDetector(
child: Opacity(opacity: transition(1500), child: image),
onTap: () async {
@icatalud
icatalud / dynamic_values.dart
Last active September 7, 2019 17:40
Using a static class as a port to `floop` Map
class DynamicValues {
static Widget get image => floop['image'];
static set image(Widget widget) => floop['image'] = widget;
// Here should go all the reads and writes to `floop`
}
/// It's also possible to create a local [ObservedMap].
/// `floop` is just an instance of [ObservedMap].
class DynamicValuesLocal {
static ObservedMap<String, dynamic> dyn = ObservedMap();
@icatalud
icatalud / image_fetch_transition.dart
Last active September 8, 2019 03:59
Full example of fetching and fading in an image using Flutter Loop (Floop).
import 'package:flutter/material.dart';
import 'package:floop/floop.dart';
import 'package:http/http.dart' as http;
void main() {
fetchAndUpdateImage();
runApp(MaterialApp(title: 'Fetch image', home: ImageDisplay()));
}
var _fetching = false;
@icatalud
icatalud / locked_fetch.dart
Last active September 6, 2019 17:41
Adds a lock to the fetch function.
var _fetching = false;
fetchAndUpdateImage([String url = 'https://picsum.photos/300/200']) async {
if(_fetching) {
return;
}
_fetching = true;
final response = await http.get(url);
floop['image'] = TransitionImage(Image.memory(response.bodyBytes));
_fetching = false;
@icatalud
icatalud / restart_transition.dart
Last active September 6, 2019 17:40
Add alignment transition and restart it on click
class ImageDisplay extends StatelessWidget with Floop {
@override
Widget build(BuildContext context) {
return Scaffold(
body: floop['image'] == null
? Center(
child: Text(
'Loading...',
textScaleFactor: 2,
),