Skip to content

Instantly share code, notes, and snippets.

@suragch
suragch / my_server.dart
Last active December 18, 2023 19:08
Routing HTTP requests in a Dart server
import 'dart:convert';
import 'dart:io';
Future<void> main() async {
final server = await createServer();
print('Server started: ${server.address} port ${server.port}');
await handleRequests(server);
}
Future<HttpServer> createServer() async {
@suragch
suragch / my_server.dart
Created July 22, 2021 09:06
Email notifications from a Dart server
import 'dart:convert';
import 'dart:io';
import 'package:mailer/mailer.dart';
import 'package:mailer/smtp_server.dart';
Future<void> main() async {
final server = await createServer();
print('Server started: ${server.address} port ${server.port}');
await _handleRequests(server);
}
@suragch
suragch / main.dart
Last active May 31, 2023 19:33
Custom In-App Keyboard in Flutter
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: KeyboardDemo(),
);
@suragch
suragch / home_screen_manager.dart
Created January 25, 2023 08:34
Show error message
class HomeScreenManager {
void Function(String message)? onError;
Future<void> trySomething() async {
await Future.delayed(const Duration(milliseconds: 200));
onError?.call('Sorry, there was an error.');
}
}
@suragch
suragch / main.dart
Last active January 21, 2023 09:06
Find unique words in text
import 'package:flutter/material.dart';
void main() => runApp(const MyApp());
List<String> findUniqueWords(String text) {
final uniqueWords = <String>{};
final wordMatch = RegExp(
r'([\p{Letter}\u202f\u180B\u180C\u180D\u180E-]+)',
unicode: true,
);
@suragch
suragch / main.dart
Last active January 9, 2023 07:13
Flutter PageView Widget article
import 'package:flutter/material.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(
@suragch
suragch / main.dart
Last active December 15, 2022 08:32
Supplemental file for setting up SQFlite
import 'package:flutter/material.dart';
import 'database_helper.dart';
// Here we are using a global variable. You can use something like
// get_it in a production app.
final dbHelper = DatabaseHelper();
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
// initialize the database
@suragch
suragch / database_helper.dart
Last active December 15, 2022 08:31
Supplemental file for setting up SQFlite
import 'package:path/path.dart';
import 'package:sqflite/sqflite.dart';
import 'package:path_provider/path_provider.dart';
class DatabaseHelper {
static const _databaseName = "MyDatabase.db";
static const _databaseVersion = 1;
static const table = 'my_table';
@suragch
suragch / main.dart
Created October 12, 2020 07:17
Riverpod counter app tutorial - Building the layout
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
@suragch
suragch / pubspec.yaml
Last active November 11, 2022 08:42
Flutter download progress demo
name: download_progress_demo
description: Flutter download progress demo
publish_to: 'none'
version: 1.0.0+1
environment:
sdk: '>=2.18.4 <3.0.0'
dependencies:
flutter: