Target Audience: Beginner

Recipe: Publish Flutter application on Android and iOS platforms for development(dev) and production (prod) environments.

Check out the companion video tutorial:

In this article, I will give an overview of the process of publishing Flutter applications on Android and iOS platforms in multiple environments. In the real-world applications development process, there are multiple environments and/or stages an application is released in. During the development stage, you may want to share your app with internal testers with a backend configured for development but not ready for production purposes. …


Target Audience: Beginner

Recipe: Learn to use the Expanded layout widget to create responsive layouts for Flutter applications.

Focus Widget: Expanded

The Expanded widget is a single child layout widget which means it can have only one child assigned to it. In this example, the Row widget has three children built using childWidget(). Each of the children is wrapped in the Expanded widget. All children expand themselves in the direction of the main-axis, which is horizontal in this case. However, when a value for flex the property can be provided to resolve any competition for space. …


Target Audience: Beginner

Recipe: Learn to use the FittedBox layout widget to create responsive layouts for Flutter applications.

Focus Widget: FittedBox

The FittedBox widget is a single child layout widget which means it can have only one child assigned to it. In this example, the Row widget is added as a child to FittedBox widget. The Row widget has two Image widgets as its children. Normally, the second child of Row widget will overflow to right when it renders its children on a screen size which is not sufficient to accommodate all of its children. However, with FittedBox this problem…


Target Audience: Beginner

Recipe: Implement uploading image to Firebase Storage on Flutter Native.

Goal: In this code recipe, we’ll pick an image from the device camera or gallery and upload it to the Firebase Storage. I’ll be using an Android emulator to demonstrate this code recipe. The camera functionality doesn’t work in the iOS simulator. You need an iOS device to use a camera.

Pick Image


Target Audience: Beginner

Recipe: Implement Navigation from one page to another page using three different techniques.

Focus Widget: Navigator Widget

Goals: We’ll implement navigation from the homepage’s list item to its detailed view. In this recipe, we’ll do two things:

  • User Interface:: Create a homepage, PageListing - consists of three items. Another page, PageDetails to display details for each item. Clicking on an item on PageListing page will open the detailed view - PageDetails for that item.
  • Navigation: Implement navigation from PageListing (homepage) to PageDetails (details page) in three different ways.
  • Sending data: Sending data from PageListing to PageDetails page…


Introduction

In Dart, functions are objects too. It’s an object of type Function. Similar to other objects, functions can be passed as arguments to other functions and can be assigned to variables as well.

A Callable class allows its instance to be called a function. This feature of Dart language is useful in making named-functions.

Check out YouTube Video

Implementing Callable Class

All Dart functions have call method. In order to make a class, the call() method needs to be implemented. Let's declare a callable class below:

class Addition {
int call(int a, int b) => a + b;
}

The above class’…


Dart generator functions are used to generate a sequence of values on-demand lazily. Such a value sequence can be generated either synchronously or asynchronously. There are two types of built-in generator functions available to support both scenarios:

Synchronous Generator: Synchronous generator function returns an Iterable object. That means first the values are generated and then returned lazily on-demand by the function.

Iterable: A collection of values, or “elements”, that can be accessed sequentially.

Asynchronous Generator: Asynchronous generator function returns a Stream object. The sequence of values is generated on demand as they become available.

Stream: A source of asynchronous data…


Target Audience: Beginner

This article is a part of three part series focused on asynchronous Programming with Dart. This article covers types of Streams in Dart to execute program asynchronously.

  • Part-1 Futures: Asynchronous Programming with Dart
  • Part-2 Streams: Asynchronous Programming with Dart
  • Part-3 (Current) Types of Streams: Asynchronous Programming with Dart

Check out the YouTube video:

Types of Streams

  1. Single subscription

Single subscription streams are meant to deliver events in order. This type of stream is used when the order of events received matters like reading a file. Such types of Streams can listen only once. …


Target Audience: Beginner

This article is a part of the three-part series focused on asynchronous Programming with Dart. This article covers Streams in Dart to execute the program asynchronously.

  • Part-1 Futures: Asynchronous Programming with Dart
  • Part-2 (Current) Streams: Asynchronous Programming with Dart
  • Part-3 Types of Streams: Asynchronous Programming with Dart

Check out the YouTube video:

A Stream is a sequence of asynchronous events. Streams are useful in providing an asynchronous sequence of data.

Key Terms

Stream: A Stream is a sequence of asynchronous events. It lets you know whenever the next event is ready rather you asking for it.

Data Sequence…


Target Audience: Beginner

This article is a part of the three-part series focused on asynchronous Programming with Dart. This article covers Futures in Dart to execute the program asynchronously.

  • Part-1 (Current) Futures: Asynchronous Programming with Dart
  • Part-2 Streams: Asynchronous Programming with Dart
  • Part-3 Types of Streams: Asynchronous Programming with Dart

Check out the YouTube video:

Futures

“Futures” are Future objects that represent the results of asynchronous operations. Asynchronous operations don’t block the thread and their processing finishes at a later time. Asynchronous operations results are returned as. Functions that do expensive work should use the asynchronous model for executing their…

Priyanka Tyagi

Tech explorer | Passionate about sharing explorations around Flutter, Android and software engineering thru tech blogging.

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