It has been explained in here the flutter4fun.com blog.