Skip to content

Instantly share code, notes, and snippets.

View bunopus's full-sized avatar

Evgeny Kot bunopus

View GitHub Profile
analyzer:
strong-mode:
implicit-casts: false
implicit-dynamic: false
exclude:
errors:
always_declare_return_types: error
always_put_control_body_on_new_line: error
always_put_required_named_parameters_first: error
@bunopus
bunopus / tab_bar_view.dart
Created June 30, 2018 13:22 — forked from letsar/tab_bar_view.dart
How to use a SliverStickyHeader inside a TabBarView
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_sticky_header/flutter_sticky_header.dart';
class _Page {
const _Page(
this.id,
this.title,
this.color,
@bunopus
bunopus / TCXX-example.md
Created May 18, 2018 11:22
Example for HolyJS TCXX

Add 🐈(cat) prefix to functions

Motivation

Functions or methods, marked with 🐈 do not throw exceptions. In case of error - 🐈 will be thrown.

function 🐈myFunction()
main(List<String> arguments) {
var myBuilder = new MyBuilder();
var buildActions = [new BuildAction(myBuilder, 'some package', inputs: ['.dart'], excludes: excludes, isOptional: isOptional)]
final buildResult = await build_runner.build(buildActions, //....);
}
class MyBuilder implements Builder {
MyBuilder();
@bunopus
bunopus / task.md
Last active November 16, 2017 15:36

Реализовать на языке Dart библиотеку (пакет). Она должна содержать внешний контракт со следующими сущностями:
Contact - readonly примитив для контакта. Поля: [id, firstName, lastName]. Для того, чтобы отредактировать контакт необходимо применить паттерн builder
ContactManager - менеджер контактов. Singletone. Позволяет:

  • получить контакт по id
  • создать новый контакт (как с пустыми полями, так и с предзаполненными). Считаем, что id генерируется самим менеджером
  • сохранить изменённый контакт

Данные ContactManager хранит и берёт из какого-то хранилища, для задания это будет локальный json. При этом ContactManager периодически должен синхронизировать данные с хранилищем (раз в 30сек). Путь может быть захардкожен. Но стоит предполагать, что в дальнейшем работа будет переведена на БД.

Angular 2 events (close) uses round braces notation
<div class="widget-list">
<someWidget
[ngClass]="{isBlue: true}"
*ngFor="let model of models"
*ngIf="isLoaded"
[model]="model"
(close)="onClose($event, model)"
></someWidget>
</div>
[
{
"id": "573f358cbd70b5b843a2d624",
"name": "Mendez",
"age": 30,
"gender": "male",
"department": "Backend",
"address": {
"city": "Moscow",
"street": "Fayette Street 923"