Skip to content

Instantly share code, notes, and snippets.

View RodBr's full-sized avatar
💭
Coffee time

robr RodBr

💭
Coffee time
  • Sydney, Australia
View GitHub Profile
@RodBr
RodBr / nav2.dart
Last active December 4, 2020 15:34
Navigation
import 'package:flutter/material.dart';
import 'package:get/get.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
@RodBr
RodBr / nav1.dart
Last active December 4, 2020 15:34
Navigation
import 'package:flutter/material.dart';
import 'package:get/get.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
@RodBr
RodBr / id2.dart
Created May 28, 2020 09:43
Inject Dependencies
// Production
Get.lazyPut<MyService>(() => MyServiceImpl());
// Test
Get.lazyPut<MyService>(() => MyServiceMock());
// Call - same for either Production or Test
MyService.to.multiply(count1.value, count.value);
abstract class MyService {
static MyService get to => Get.find();
@RodBr
RodBr / id1.dart
Last active November 3, 2022 09:48
Inject Dependencies
import 'package:flutter/material.dart';
import 'package:get/get.dart'; //STEP 1 - import Get
void main() {
//STEP 3 - add our services - immediate or lazy
Get.put(TestService());
Get.lazyPut<AuthService>(() => AuthService());
runApp(MyApp());
}
@RodBr
RodBr / main5.dart
Last active April 9, 2023 06:09
Themes plus persistence
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:shared_preferences/shared_preferences.dart'; //STEP 4 - Import shared_preferences
void main() {
Get.lazyPut<ThemeController>(
() => ThemeController()); //STEP 5 - lazy create ThemeController
runApp(MyApp());
}
@RodBr
RodBr / main4.dart
Last active June 6, 2020 23:55
Themes plus persistence - the controller
class ThemeController extends GetController {
static ThemeController get to => Get.find();
SharedPreferences prefs;
ThemeMode _themeMode;
ThemeMode get themeMode => _themeMode;
Future<void> setThemeMode(ThemeMode themeMode) async {
Get.changeThemeMode(themeMode);
_themeMode = themeMode;
@RodBr
RodBr / main3.dart
Last active May 18, 2020 05:52
Themes in 3 lines
class MyHomePage extends StatefulWidget {
MyHomePage({Key key}) : super(key: key);
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
ThemeMode _themeMode = ThemeMode.system;
@RodBr
RodBr / main2.dart
Created May 18, 2020 02:45
Themes in 3 lines
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
//STEP 2 - replace MaterialApp with GetMaterialApp
return GetMaterialApp(
title: 'Theme change using Get',
theme: ThemeData.light().copyWith(primaryColor: Colors.green),
darkTheme: ThemeData.dark().copyWith(primaryColor: Colors.purple),
// NOTE: Optional - use themeMode to specify the startup theme
themeMode: ThemeMode.system,
@RodBr
RodBr / main1.dart
Last active May 18, 2020 02:47
Themes in 3 lines
import 'package:flutter/material.dart';
import 'package:get/get.dart'; //STEP 1 - import Get
void main() {
runApp(MyApp());
}