Skip to content

Instantly share code, notes, and snippets.

View JEuler's full-sized avatar
🍉

Ivan Terekhin JEuler

🍉
View GitHub Profile
@JEuler
JEuler / web_service.dart
Created April 1, 2020 15:47
WebService example
import 'dart:async';
import 'dart:io';
import 'package:built_collection/built_collection.dart';
import 'package:chopper/chopper.dart';
import 'package:flutter_translate/flutter_translate.dart';
import 'package:get/get.dart' as get_lib;
import 'package:http/io_client.dart' as http;
import '../model/user.dart';
@JEuler
JEuler / storage_service_impl.dart
Created March 15, 2020 20:19
Hive StorageService implementation example
import 'package:hive/hive.dart';
import '../model/local/db_user.dart';
import '../model/user.dart';
import 'storage_service.dart';
/// Implementation of StorageService using Hive Key-Value DB
class StorageServiceImpl implements StorageService {
@override
Future saveUser(User user) async {
@JEuler
JEuler / db_user.dart
Created March 15, 2020 19:58
Hive class of User model
import 'package:hive/hive.dart';
part 'db_user.g.dart';
// ignore_for_file: public_member_api_docs
@HiveType(typeId: 1)
class DBUser {
DBUser(this.id, this.name);
@JEuler
JEuler / user.dart
Created March 15, 2020 19:56
BuiltValue User model example
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
import 'user_with_relations.dart';
part 'user.g.dart';
// ignore_for_file: public_member_api_docs
abstract class User implements Built<User, UserBuilder> {
@JEuler
JEuler / queuelist.dart
Created March 15, 2020 12:56
Basic queue in Dart
import 'dart:collection';
/// Basic Queue (LIFO)
class QueueList<T> {
final ListQueue<T> _list = ListQueue();
/// Is empty?
bool get isEmpty => _list.isEmpty;
/// Not empty?
@JEuler
JEuler / stacklist.dart
Created March 11, 2020 14:09
Basic stack in Dart
import 'dart:collection';
/// Basic Stack (FIFO)
class StackList<T> {
final ListQueue<T> _list = ListQueue();
/// Is empty?
bool get isEmpty => _list.isEmpty;
/// Not empty?
@JEuler
JEuler / dot_divider.dart
Last active April 6, 2020 09:54
DotDivider widget for Flutter
import 'package:flutter/material.dart';
/// Dot divider for Calendar
class DotDivider extends StatelessWidget {
/// Constructor
const DotDivider(
{this.height = 1, this.color = Colors.black, this.countCoeff = 3});
/// Color of divider
final Color color;
@JEuler
JEuler / mime_to_extension.dart
Created February 9, 2020 07:39
MIME type to extension (dart) (media)
String mimeToExtension(String mime) {
switch (mime.toLowerCase()) {
case 'image/apng':
return 'apng';
case 'image/bmp':
return 'bmp';
case 'image/gif':
return 'gif';
case 'image/x-icon':
return 'ico';
/// Implementation of StorageService using Hive Key-Value DB
class StorageServiceImpl implements StorageService {
@override
Future saveUser(User user) async {
final userToSave = DBUser(
user.id,
user.name,
user.avatar);
final usersBox = await Hive.openBox('user');
abstract class StorageService {
/// Save user to D
void saveUser(User user);
/// Get user from DB
Future<DBUser> getUser();
/// Stop all operations
void stop();
}