Skip to content

Instantly share code, notes, and snippets.

@rodydavis
rodydavis / gemini_dart_function_calling.dart
Last active April 25, 2024 23:26
Gemini Tasks (Function Calling)
// Copyright 2024 the Dart project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file.
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import 'package:google_generative_ai/google_generative_ai.dart';
import 'package:url_launcher/link.dart';
@rodydavis
rodydavis / main.dart
Last active April 25, 2024 21:38
Ask the Menu
// Copyright 2024 the Dart project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file.
import 'dart:async';
import 'dart:typed_data';
import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import 'package:google_generative_ai/google_generative_ai.dart';
@rodydavis
rodydavis / dart_web_pick_file.dart
Created April 23, 2024 20:06
How to pick a file with package:web
Future<Uint8List?> pickFile() async {
final el = html.document.createElement('input') as html.HTMLInputElement;
el.type = 'file';
el.accept = 'image/*';
el.click();
final completer = Completer<Uri?>();
el.onchange = (html.Event e) {
final files = el.files;
if (files != null && files.length != 0) {
final file = files.item(0);
@rodydavis
rodydavis / flutter_infinite_canvas.dart
Last active April 9, 2024 15:04
Flutter infinite canvas with InteractiveViewer + CustomMultiChildLayout
import 'package:flutter/material.dart';
import 'package:vector_math/vector_math_64.dart' hide Colors;
void main() {
final controller = WidgetCanvasController([
WidgetCanvasChild(
key: UniqueKey(),
offset: Offset.zero,
size: const Size(400, 800),
child: Scaffold(
import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
class ChatBubble extends StatelessWidget {
const ChatBubble({
super.key,
this.child,
this.text,
required this.isUser,
});
@rodydavis
rodydavis / podcast_rss_feed.xml
Created April 27, 2020 22:22
Podcast RSS Feed Example
<?xml version="1.0" encoding="UTF-8" ?>
<rss xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:rawvoice="http://www.rawvoice.com/rawvoiceRssModule/" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
<channel>
<title>Creative Engineering</title>
<googleplay:author>Rody Davis, Norbert Kozsir</googleplay:author>
<rawvoice:rating>TV-G</rawvoice:rating>
<rawvoice:location>San Francisco, California</rawvoice:location>
<rawvoice:frequency>Weekly</rawvoice:frequency>
<author>Rody Davis, Norbert Kozsir</author>
<itunes:author>Rody Davis, Norbert Kozsir</itunes:author>
@rodydavis
rodydavis / VCF_Card_Flutter.dart
Created January 11, 2019 13:19
Share a VCF Card in Flutter using the Native Share Sheet
import 'dart:io';
import 'package:contacts_service/contacts_service.dart';
import 'package:flutter/material.dart';
import 'package:path_provider/path_provider.dart';
import 'package:share_extend/share_extend.dart';
/// Share a VCF Card from a Contact Object
void shareVCFCard(BuildContext context, {Contact contact}) async {
final Contact _info = contact;
@rodydavis
rodydavis / json_canvas.dart
Created March 22, 2024 19:34
Dart classes for JsonCanvas schema
import 'package:dart_mappable/dart_mappable.dart';
part 'schema.mapper.dart';
@MappableClass()
class JsonCanvas with JsonCanvasMappable {
List<JsonCanvasNode> nodes;
List<JsonCanvasEdge> edges;
JsonCanvas({
@rodydavis
rodydavis / main.dart
Created March 6, 2024 23:49
How to Print Multiple Objects to the Console with print()
void main() {
final number = 1;
final str = 'Hello World';
print((number, str));
print((DateTime.now(), str));
print((DateTime.now(), count: number, description: str));
@rodydavis
rodydavis / main.dart
Created March 6, 2024 21:16
Dart method calling
void main() {
myFunction(1, 2, c: 3, d: 4);
myFunction(1, c: 3, d: 4, 2);
myFunction(c: 3, d: 4, 1, 2);
myFunction(c: 3, 1, 2, d: 4);
myFunction.call(1, 2, c: 3, d: 4);
Function.apply(myFunction, [1, 2], {#c: 3, #d: 4});
}
void myFunction(int a, int b, {int? c, int? d}) {