Skip to content

Instantly share code, notes, and snippets.

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

Christian Findlay MelbourneDeveloper

🏠
Working from home
View GitHub Profile
@MelbourneDeveloper
MelbourneDeveloper / .editorconfig
Last active January 31, 2024 22:43
Directory.Build.props Enable All Errors
[*.{cs,vb}]
dotnet_diagnostic.CA1062.severity = none
# IDE0022: Use block body for method
csharp_style_expression_bodied_methods = true
# IDE0032: Use auto property
dotnet_style_prefer_auto_properties = true
#CSharpier Incompatible Rules
@MelbourneDeveloper
MelbourneDeveloper / mostchanged.sh
Created December 20, 2023 09:17
Get Most Changed Files
#!/bin/bash
# This script finds the files with the most changes in a Git repository, tracking renames and excluding binary files and files with zero changes
# Check for the presence of a Git repository
if ! git rev-parse --is-inside-work-tree > /dev/null 2>&1; then
echo "This script must be run inside a Git repository."
exit 1
fi
@MelbourneDeveloper
MelbourneDeveloper / main.dart
Created November 30, 2023 02:03
Rx Example - Riverpod
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
void main() => runApp(const ProviderScope(child: MyApp()));
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) => const MaterialApp(
@MelbourneDeveloper
MelbourneDeveloper / main.dart
Created November 30, 2023 01:58
Rx Example - RxDart
import 'package:flutter/material.dart';
import 'package:rxdart/rxdart.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) => const MaterialApp(
@MelbourneDeveloper
MelbourneDeveloper / main.dart
Last active November 29, 2023 23:59
Rx Example - ChangeNotifier
import 'package:flutter/material.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) => const MaterialApp(
debugShowCheckedModeBanner: false,
@MelbourneDeveloper
MelbourneDeveloper / main.dart
Created November 29, 2023 23:54
Rx Example - ValueNotifier
import 'package:flutter/material.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) => const MaterialApp(
debugShowCheckedModeBanner: false,
@MelbourneDeveloper
MelbourneDeveloper / main.dart
Created November 28, 2023 02:47
Spacer as Named Constant
import 'package:flutter/material.dart';
void main() => runApp(const MyApp());
// Declares the SizedBox as a named constant
const SizedBox mySpacer = SizedBox(height: 20);
class MyApp extends StatelessWidget {
const MyApp({super.key});
@MelbourneDeveloper
MelbourneDeveloper / main.dart
Created October 28, 2023 09:12
Flutter Fake HttpClient
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'package:flutter/material.dart';
void main() => HttpOverrides.runWithHttpOverrides(
() => runApp(
const MainApp(),
),
FakeHttpOverrides(),
@MelbourneDeveloper
MelbourneDeveloper / unit_test.dart
Created September 30, 2023 20:43
Keyed Services with ioc_container
import 'package:ioc_container/ioc_container.dart';
import 'package:test/test.dart';
///Example service
class BigService {
final String name;
BigService(this.name);
Future<void> callApi() => Future<void>.delayed(Duration(seconds: 1));
@MelbourneDeveloper
MelbourneDeveloper / Tests.fs
Created September 26, 2023 10:30
F# Factory With Type Inference
module Tests
open Xunit
type Factory<'T> = unit -> 'T
let factoryFunction<'T> () : 'T =
if typeof<'T> = typeof<string> then "String" :> obj
elif typeof<'T> = typeof<int> then 1 :> obj
else failwith "Unsupported type"