Declarative animated list

An implementation of animated list widget that will be automatically updated based on different lists snippets. Based on Android's DiffUtil with slight changes to support Flutter's declarative UI.


// Create a list tile, wrapped with an animation applying widget
Widget _buildAnimatedTile(Animation<double> animation, PresentationModel model) {
  return FadeTransition(
    opacity: animation,
    child: SizeTransition(
      sizeFactor: animation,
      child: SomeWidget(model),
    ),
  );
}

Widget _buildRemovingTile(final Animation<double> animation, final PresentationModel model) { 
  //... 
}

final declarativeList = DeclarativeList<PresentationModel>(
  items: presentationModels,
  itemBuilder: (ctx, model, index, animation) => _buildAnimatedTile(animation, model),
  removeBuilder: (ctx, model, index, animation) => _buildRemovingTile(animation, model),
);