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 / clicker_counter.dart
Last active September 13, 2019 19:00
Clicker example 1
import 'package:flutter/material.dart';
import 'package:floop/floop.dart';
main() {
floop['clicks'] = 0; //initialize 'clicks'
runApp(MaterialApp(title: 'Clicker', home: Clicker()));
}
class Clicker extends StatelessWidget with Floop {
@override
@icatalud
icatalud / clicker_image.dart
Last active September 8, 2019 03:56
Fetches an image and displays it
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()));
}
fetchAndUpdateImage([String url = 'https://picsum.photos/300/200']) async {
@icatalud
icatalud / transition_image.dart
Last active September 8, 2019 03:57
TransitionImage class and fetchImage function added
fetchAndUpdateImage([String url = 'https://picsum.photos/300/200']) async {
final response = await http.get(url);
floop['image'] = TransitionImage(Image.memory(response.bodyBytes));
}
class TransitionImage extends FloopWidget {
final Image image;
const TransitionImage(this.image);
@override
@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,
),
@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 / 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 / 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 / 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 {
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 / 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;
}