Functions are first-class objects in Dart and can be passed as parameters to other functions. We pass a function to a widget essentially saying, invoke this function when something happens . Callbacks using interfaces like Android have too much boilerplate code for a simple callback.