Skip to content

Instantly share code, notes, and snippets.

View roipeker's full-sized avatar
🏠
Working from home

Roi Peker roipeker

🏠
Working from home
View GitHub Profile
@roipeker
roipeker / gradient_input_border.dart
Last active August 13, 2021 17:06
concept for Gradient input border for TextFields
import 'dart:math' as math;
import 'dart:ui';
import 'package:flutter/material.dart';
/// Gradient Shader in outline input borders.
/// Doesn't merge solid color BorderSide and GradientBorderSide.
class OutlineInputBorderShader extends OutlineInputBorder {
const OutlineInputBorderShader({
GradientBorderSide borderSide = const GradientBorderSide(),
@roipeker
roipeker / main.dart
Last active August 11, 2021 03:18
Canvas drawArc slices
import 'dart:math' as math;
import 'package:flutter/material.dart';
double deg2rad(double deg) => deg * math.pi / 180;
void main() {
runApp(MyApp());
}
@roipeker
roipeker / box_data.dart
Last active August 6, 2021 02:09
graphx falling boxes (burn background)
import 'package:flutter/material.dart';
import 'package:graphx/graphx.dart';
abstract class SampleData {
static Future<void> cacheSvgData() async {
for (var string in boxIcons) {
final result = await SvgUtils.svgDataFromString(string);
boxSvgs.add(result);
}
}
@roipeker
roipeker / main.dart
Created July 14, 2021 20:30
GetX/Material issue with locales
import 'package:flutter/material.dart';
import 'package:get/get.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
@roipeker
roipeker / levenshtein.dart
Created June 24, 2021 23:20
basic Dart's Levenshtein distance.
import 'dart:math' as math;
/// see https://en.wikipedia.org/wiki/Levenshtein_distance
void main() {
/// terms distance can be used as threshold value when you filter similar results.
/// if the number of "editions" is low, you can suppose a typo and provide the "similar"
/// result (maybe using the `int` distance as a sorting method).
print(levenshtein('sittin', 'sitting'));
print(levenshtein('casa', 'calle'));
}
@roipeker
roipeker / custom_dropdown.dart
Last active June 23, 2021 18:55
Flutter's CustomDropdownButton. Exposes some extra params for fine tunning the UI.
/// new "custom" parameters:
/// -menuRadius: menu corner radius [BorderRadius]
/// -menuDecoration: background [BoxDecoration]
/// -menuPadding: menu vertical padding [EdgeInsets]
/// -menuClip: To clip (mask) menu's content [Clip.none]
/// -itemPadding: item's horizontal padding [EdgeInsets]
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
@roipeker
roipeker / main.dart
Created June 4, 2021 19:54
GraphX issue #19: simpler gesture transform (zoom, drag, rotate)
/// live demo: https://graphx-gesture-simple.surge.sh
import 'package:flutter/material.dart';
import 'package:graphx/graphx.dart';
import 'package:graphx_zoompan/simple_zoom.dart';
void main() {
runApp(AppSimpleZoom());
}
@roipeker
roipeker / main.dart
Created June 4, 2021 16:38
GraphX issue #19: gesture detector sample (zoom/pan/rotation with easing)
import 'package:flutter/material.dart';
import 'package:graphx/graphx.dart';
import 'zoom_scene.dart';
/// Live demo:
/// https://graphx-gesture-sample.surge.sh
///
void main() {
@roipeker
roipeker / issue1481.dart
Created May 28, 2021 01:27
Getx Issue 1481 (same Type Controllers in multipage navigation).
/// Note:
/// A simple fix for this case scenario of local controller lifecycle, might be
/// to separate the `global:false` logic here:
/// https://github.com/jonataslaw/getx/blob/07ad5d7f9e726f181800359d0218b44e5967ccf8/lib/get_state_manager/src/simple/get_state.dart#L177
// ...
// if (_isCreator! || widget.assignId) {
// if (widget.autoRemove) {
// /// if the Controller is flagged as "local", run manually `onClose()`.
// if( !widget.global ){
@roipeker
roipeker / main.dart
Created May 27, 2021 04:48
Simple image capture + color picker demo (uiGradients)
///
/// Live demo at:
///
/// https://roi-gradient-picker.surge.sh/
///
///
import 'dart:ui';
import 'package:flutter/material.dart' hide Image;
import 'package:flutter/rendering.dart';