Sign in

An Android/Flutter engineer at Line Corporation.

Build your apps by drag-and-drop interface

Image from

Take a look at Dart null safety and learn how to migrate your Flutter project to it.

Table of contents

  1. Overview: Sound null safety
  2. Migrating your…

RefreshIndicator comes to help!

Table of Contents

  1. Implement RefreshIndicator in ListView.
  2. Implement RefreshIndicator in CustomScrollView.
  3. Cupertino style of refresh indicator in iOS.
  4. Known issues with WebView.

Implement RefreshIndicator in ListView

How to make a spread-out and shrink-in ripple page transition?

Table of Contents

  1. Default page transition
  2. Replace the MaterialPageRoute with a custom fade-in/fade-out PageRouteBuilder
  3. Get the FAB button position/size to mock a ripple widget on it after tapping the FAB
  4. Create a spreading-out ripple effect when entering page B
  5. Create a…

How to implement a fantastic shimmer effect like Facebook?

How to achieve fast nested scrolling effects with Slivers?

Table of Contents

  1. What are Slivers?
  2. Know about CustomScrollView and Slivers
  3. Basic Slivers introduction

1. What are Slivers?

A sliver is a portion of a scrollable area. You can use slivers to achieve custom scrolling effects.

How to wait for your async tasks before building widgets?

image from
I/flutter (13420): Step 1, fetch data
I/flutter (13420): Step 2, hasData: true

Table of contents

  1. Drawing-based animations or…

How to test our coroutines in a correct way?

  1. There is a high coupling in my code.
  2. I don’t really know how to write unit tests of my production…

Evan Fang

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store