Skip to content

Instantly share code, notes, and snippets.

View jtlapp's full-sized avatar

Joe Lapp jtlapp

View GitHub Profile
@jtlapp
jtlapp / MainApi1-no-type-checking.ts
Last active March 23, 2022 02:09
Example main API without type checking
export class MainApi1 {
methodA(arg1: string, arg2: number): Promise<void> {
// code for methodA
}
methodB(): Promise<number> {
// code for methodB
}
}
@jtlapp
jtlapp / counter_app_complex.dart
Last active September 30, 2019 03:28
Counter app with provider - complex version
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider<Counter>( // <=== PROVIDER
builder: (context) => Counter(),
@jtlapp
jtlapp / counter_app_compact.dart
Last active October 19, 2021 17:39
Counter app with provider - compact version
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider<Counter>( // <=== PROVIDER
builder: (context) => Counter(),
@jtlapp
jtlapp / valuelistenerprovider_example.dart
Created September 19, 2019 04:23
ValueListenerProvider example
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
void main() => runApp(MyApp());
class CountDown extends ValueNotifier<int> {
CountDown(int downFrom) : super(downFrom) {
scheduleDecrement();
}
@jtlapp
jtlapp / provider_state_counter.dart
Created September 18, 2019 13:53
Counter app implemented with provider and StatefulWidget
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
@jtlapp
jtlapp / streamprovider_example.dart
Created September 18, 2019 05:05
StreamProvider example
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
const appTitle = 'StreamProvider Demo';
@jtlapp
jtlapp / futureprovider_example.dart
Created September 18, 2019 04:07
FutureProvider example
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
const appTitle = 'FutureProvider Demo';
@jtlapp
jtlapp / default_flutter_app.dart
Created September 14, 2019 03:33
Default increment app that the Flutter plugin generates
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) {
return MaterialApp(
title: 'Flutter Demo',
@jtlapp
jtlapp / changenotifierprovider_counter.dart
Last active December 3, 2022 15:32
Counter app implemented with ChangeNotifierProvider
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
@jtlapp
jtlapp / inherited_counter.dart
Last active February 12, 2021 13:31
Counter app implemented with InheritedWidget
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
home: MyHomePage(),