Skip to content

Instantly share code, notes, and snippets.

View olexale's full-sized avatar
🎯
Focusing

Oleksandr Leushchenko olexale

🎯
Focusing
View GitHub Profile
[assembly: ExportRenderer(typeof(NavigationPage), typeof(AnimationNavigationRenderer))]
namespace BeatlesApp.iOS
{
public class AnimationNavigationRenderer : Xamarin.Forms.Platform.iOS.NavigationRenderer
{
private AnimationNavigationControllerDelegate _delegate;
public override void ViewDidLoad()
{
base.ViewDidLoad();
namespace BeatlesApp
{
public class TagEffect : RoutingEffect
{
public TagEffect() : base("BeatlesApp.TagEffect") {}
public static readonly BindableProperty TagProperty =
BindableProperty.CreateAttached("Tag", typeof(int), typeof(TagEffect), 0, propertyChanged: OnTagChanged);
public static int GetTag(BindableObject view)
public class AnimationNavigationControllerDelegate : UINavigationControllerDelegate
{
private TransitionAnimator _animator = new TransitionAnimator();
private int _id;
public override IUIViewControllerAnimatedTransitioning GetAnimationControllerForOperation(UINavigationController navigationController, UINavigationControllerOperation operation, UIViewController fromViewController, UIViewController toViewController)
{
if (operation == UINavigationControllerOperation.Push)
{
var image = fromViewController.View.ViewWithTag(_id);
private Task OpenDetails(BeatleModel beatle)
{
MessagingCenter.Send<object, int>(this, "TransitionId", beatle.Id);
...
}
public class TransitionAnimator : UIViewControllerAnimatedTransitioning
{
private const double _duration = 0.5;
public CGRect ThumbnailFrame { get; set; }
public UINavigationControllerOperation Operation { get; set; }
public override void AnimateTransition(IUIViewControllerContextTransitioning transitionContext)
{
var presenting = Operation == UINavigationControllerOperation.Push;
public interface IProfileApi
{
 Task<Profile> GetProfile(int id);
 Task<Profile> GetMyProfile();
 Task UpdateMyProfile(Profile profile);
 Task<IEnumerable<Post>> GetPosts(int profile);
}
@olexale
olexale / counter.feature
Created February 28, 2021 10:10
BDD in Flutter article feature file
Feature: Counter
Scenario: Initial counter value is 0
Given the app is running
Then I see {'0'} text
@olexale
olexale / code_generation.sh
Last active February 28, 2021 11:11
BDD in Flutter article code generation commands
flutter pub run build_runner build - delete-conflicting-outputs
# or
flutter pub run build_runner watch - delete-conflicting-outputs
@olexale
olexale / counter_test.dart
Last active February 28, 2021 10:17
BDD in Flutter article code generated files
// GENERATED CODE - DO NOT MODIFY BY HAND
// ignore_for_file: unused_import, directives_ordering
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import './step/the_app_is_running.dart';
import './step/i_see_text.dart';
void main() {
@olexale
olexale / counter.feature
Created February 28, 2021 10:30
BDD in Flutter article updated feature file
Feature: Counter
Scenario: Initial counter value is 0
Given the app is running
Then I see {'0'} text
Scenario: Tap the Plus icon increments the counter
Given the app is running
When I tap {Icons.add} icon
Then I see {'1'} text