This is a flutter Swipe Tabs tutorial.

We will have 6 Tabs in our application. The Tabs will be arranged beautifully in our appBar just below the title.

Each tab will have the tab title and icon. You can then click the tab or swipe it either from left to right or right to left.

Our TabViews will have Cards.Each Card will have an image and text.

Dart is a general purpose, open-source, developer-friendly programming language for creating structured applications.

Dart was first announced as a public preview on October 10, 2011.

Dart v1.0, the first production release, came out on November 14, 2013.

Not only is Dart a language but a...

Dart is designed to allow write modular programs.This makes Dart programs maintainable as well as shareable with other developers.

Dart provides two directives that allow us achieve this: import and library.

Libraries in Dart due to the two main functions they perform :

  1. Provision of APIs....

This is a flutter GridView tutorial.

A GridView is a scrollable, 2D array of widgets.

The main axis direction of a grid is the direction in which it scrolls (the scrollDirection).

The most commonly used grid layouts are GridView.count, which creates a layout with a fixed number of tiles in the cross axis, andGridView.extent, which creates a layout with tiles that have a maximum cross-axis extent. A custom SliverGridDelegate can produce an arbitrary 2D arrangement of children, including arrangements that are unaligned or overlapping.

To create a grid with a large (or infinite) number of children, use the GridView.builder constructor with either a SliverGridDelegateWithFixedCrossAxisCount or a SliverGridDelegateWithMaxCrossAxisExtent for the gridDelegate.

To use a custom SliverChildDelegate, use GridView.custom.

To create a linear array of children, use a ListView.

To control the initial scroll offset of the scroll view, provide a controller with its ScrollController.initialScrollOffset property set.

new GridView.count(
  primary: false,
  padding: const EdgeInsets.all(20.0),
  crossAxisSpacing: 10.0,
  crossAxisCount: 2,
  children: <Widget>[
    const Text('He\'d have you all unravel at the'),
    const Text('Heed not the rabble'),
    const Text('Sound of screams but the'),
    const Text('Who scream'),
    const Text('Revolution is coming...'),
    const Text('Revolution, they...'),

A highly flexible set of lovely looking views that provides functionality of preferences.

MaterialPreferences is a set of VIEWS (not Preferences) and is aimed to solve this problems:

  1. Preferences look ugly on pre-lollipop.
  2. Preferences are not flexible. For example, it can be problematic to embed them to another screen (especially for fragment-haters).
  3. Preferences don't allow you to show custom selection dialogs.

XML in full is eXtensible Markup Language.

By definition it is a metalanguage for defining custom markup languages, otherwise known as vocabularies. A metalanguage is a language we use for defining other languages.

XML is very important and popular to the computer science field and this ability to define vocabularies is the key.

So Applications use XML documents to:

  1. Store Data.
  2. Exchange data.

Through XML we can define rules for encoding documents that is both human readable and machine-readable.

There are many XML vocabularies but the most common one is the HTML.

XML documents are text-based and comprise markup and content. A markup is the encoded descriptions of a document's logical structure. The content is the document text that is not interpreted as markup.

An ArrayList is a Resizable-array implementation of the List interface.

This class is one of the most commonly used collection in the java environment. It's so flexible and easy to use and powerful. It's power and flexibility come from the fact that ArrayList implements all optional list operati...

In Java List is an interface representing an ordered collection (also known as a sequence).

As an interface you cannot directly instantiate List<E>, instead it is there to be implemented by classes, which may then be instantiated.

And infact many important classes like the ArrayList either directly or indirectly implement this interface.

Then those implementers get precise control over which position an element is inserted. Afterwards you can access elements by their integer index (position in the list), and also search for elements in the list.

Lists can allow duplicate elements. If you don't want duplicates then it is recommended you use Set.

The List interface places additional stipulations, beyond those specified in the Collection interface, on the contracts of the iterator, add, remove, equals, and hashCode methods. Declarations for other inherited methods are also included here for convenience.

The List interface provides four methods for positional (indexed) access to list elements. Lists (like Java arrays) are zero based. Note that these operations may execute in time proportional to the index value for some implementations (the LinkedList class, for example). Thus, iterating over the elements in a list is typically preferable to indexing through it if the caller does not know the implementation.

The List interface provides a special iterator, called a ListIterator, that allows element insertion and replacement, and bidirectional access in addition to the normal operations that the Iterator interface provides. A method is provided to obtain a list iterator that starts at a specified position in the list.

The List interface provides two methods to search for a specified object. From a performance standpoint, these methods should be used with caution. In many implementations they will perform costly linear searches.

The List interface provides two methods to efficiently insert and remove multiple elements at an arbitrary point in the list.

CupertinoAlertDialog An iOS-style alert dialog.

Generally we utilize an alert dialog to tell the user about situations that need user attention or acknowledgement.

AlertDialogs can have the following:

  1. Title(Optional) - displayed above content
  2. Content(Optional) - displayed between content and list of actions.
  3. List of actions(Optional) - displayed below the content
  4. The title is displayed above the content and the actions are displayed below the content.

CupertinoAlertDialogs do style their titles and content (typically a message) to match the standard iOS title and message dialog text style.

However you can overridde these by explicitly defining TextStyles for Text widgets that are part of the title or content.

To display action buttons that look like standard iOS dialog buttons, provide CupertinoDialogActions for the actions given to this dialog.

CupertinoAlertDialog is typically passed as the child widget to showDialog, which displays the dialog.

Flutter AlertDialog Tutorial and example.

An alert dialog informs the user about situations that require acknowledgement.