Skip to content

Instantly share code, notes, and snippets.

View r3dm1ke's full-sized avatar
🎯
Before software can be reusable it first has to be usable.

Michael Krasnov r3dm1ke

🎯
Before software can be reusable it first has to be usable.
View GitHub Profile
@r3dm1ke
r3dm1ke / abstract-classes.dart
Created November 25, 2019 23:47
Abstract classes in Dart
abstract class Chargeable {
charge(); // Abstract method
fastCharge() {
print('Gotta go fast');
charge(); // Call to child's implemented method
}
}
@r3dm1ke
r3dm1ke / async.dart
Created November 26, 2019 00:01
Async/await in Dart
// Creating a time duration of 1 minute
const oneMinute = Duration(minutes: 1);
// ...
Future<void> printWithDelay(String msg) async {
// Wait for one minute
await Future.delayed(oneMinute);
print(msg);
}
@r3dm1ke
r3dm1ke / task.dart
Created December 3, 2019 16:46
A Task class for TODO application in Flutter
class Task {
// Class properties
// Underscore makes them private
String _name;
bool _completed;
// Default constructor
// this syntax means that it will accept a value and set it to this.name
Task(this._name);
@r3dm1ke
r3dm1ke / main.dart
Created December 3, 2019 17:00
Hello world in Flutter
// Importing the material library with common UI components
import 'package:flutter/material.dart';
// Entry point for our application
// It tells Flutter to run the app and use TODOApp widget as the entry point
void main() => runApp(TODOApp());
// The root widget for our app
// It is stateless, that is why it expends StatelessWidget
class TODOApp extends StatelessWidget {
@r3dm1ke
r3dm1ke / main.dart
Created December 4, 2019 14:25
Rendering dummy tasks in Flutter
import 'package:flutter/material.dart';
// Importing our Task class
import 'package:todo_app/task.dart';
void main() => runApp(TODOApp());
class TODOApp extends StatelessWidget {
// Creating a list of tasks with some dummy values
final List<Task> tasks = [
@r3dm1ke
r3dm1ke / main.dart
Created December 4, 2019 14:58
Separating views into screens in Flutter
import 'package:flutter/material.dart';
import 'package:todo_app/task.dart';
void main() => runApp(TODOApp());
class TODOApp extends StatelessWidget {
final List<Task> tasks = [
Task('Do homework'),
Task('Laundry'),
@r3dm1ke
r3dm1ke / main.dart
Created December 4, 2019 16:17
Using Stateful component in Flutter
// The sole reason we keep this extra component is
// because runApp will only take a StatelessWidget as its argument
class TODOApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return TODO();
}
}
// Here we are defining a StatefulWidget
@r3dm1ke
r3dm1ke / main.dart
Created December 4, 2019 16:48
Handling user input in Flutter
import 'package:flutter/material.dart';
import 'package:todo_app/task.dart';
void main() => runApp(TODOApp());
class TODOApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return TODO();
}
@r3dm1ke
r3dm1ke / main.dart
Created December 4, 2019 17:07
Working with checkboxes in Flutter
class TODOState extends State<TODO> {
final List<Task> tasks = [];
void onTaskCreated(String name) {
setState(() {
tasks.add(Task(name));
});
}
@r3dm1ke
r3dm1ke / create.dart
Created December 5, 2019 17:42
Splitting views in Flutter
import 'package:flutter/material.dart';
import 'package:todo_app/task.dart';
class TODOList extends StatelessWidget {
final List<Task> tasks;
final onToggle;
TODOList({@required this.tasks, @required this.onToggle});