Dart Masterclass Programming Course: iOS/Android Bible
3.1 (152 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
18,147 students enrolled

Dart Masterclass Programming Course: iOS/Android Bible

Dart is a very powerful language. The future of iOS & Android is Dart. Powers the ultimate mobile framework Flutter.
3.1 (152 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
18,147 students enrolled
Created by Frahaan Hussain
Last updated 2/2019
English [Auto]
Current price: $139.99 Original price: $199.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 4 hours on-demand video
  • 4 articles
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Dart programming
  • Android programming
  • iOS programming
  • Mobile development
  • Application programming
  • Mobile design
  • Semantics of general programming
  • The format of coding applications
  • All the functions of Dart programming
  • Application programming
  • Mobile programming
Course content
Expand all 73 lectures 04:08:30
+ Introduction
2 lectures 04:24

Introduction to this Dart programming course

Preview 02:15

You will learn about running code on any computer.

Preview 02:09
+ Basics
17 lectures 01:20:30

This lesson will teach you how to print information to the console.

Preview 01:28

Learn how to combine variables inside of strings.

Print Variables Inside Of A String

In computer programming, a comment is a programmer-readable explanation or annotation in the source code of a computer program. They are added with the purpose of making the source code easier for humans to understand, and are generally ignored by compilers and interpreters.

Preview 04:44

In programming, a variable is a value that can change, depending on conditions or on information passed to the program. Typically, a program consists of instruction s that tell the computer what to do and data that the program uses when it is running.

Preview 04:23

A console refers to an interface through which users communicate with system programs of the operating system or with other console applications. The interactions consist of input operations from standard input device like keyboard and the text display on standard output (usually on computer screen).

Console Input

In computer programming, a static variable is a variable that has been allocated "statically", meaning that its lifetime (or "extent") is the entire run of the program.

Static vs Dynamic Variables

"final" means single-assignment: a final variable or field must have an initializer. Once assigned a value, a final variable's value cannot be changed. final modifies variables.

"const" has a meaning that's a bit more complex and subtle in Dart. const modifies values. You can use it when creating collections, like const [1, 2, 3], and when constructing objects (instead of new) like const Point(2, 3). Here, const means that the object's entire deep state can be determined entirely at compile time and that the object will be frozen and completely immutable.

Final & Constant Variables

In computer science and computer programming, a data type or simply type is an attribute of data which tells the compiler or interpreter how the programmer intends to use the data. Most programming languages support common data types of real, integer and boolean.

Data Types

You will learn about representing numerical values.


In computer science, the Boolean data type is a data type that has one of two possible values (usually denoted true and false), intended to represent the two truth values of logic and Boolean algebra. It is named after George Boole, who first defined an algebraic system of logic in the mid 19th century.


In computer programming, a string is traditionally a sequence of characters, either as a literal constant or as some kind of variable. The latter may allow its elements to be mutated and the length changed, or it may be fixed (after creation).


Arithmetic operators take numerical values (either literals or variables) as their operands and return a single numerical value. The standard arithmetic operatorsare addition (+), subtraction (-), multiplication (*), and division (/).

Arithmetic Operators

In computer science, a relational operator is a programming language construct or operator that tests or defines some kind of relation between two entities. These include numerical equality (e.g., 5 = 5) and inequalities (e.g., 4 ≥ 3). ... Relational operators can be seen as special cases of logical predicates.

Relational Operators

Learn how to check the data type of a variable.

Type Test Operators

The basic assignment operator is equal ( = ), which assigns the value of its right operand to its left operand. That is, x = y assigns the value of y to x . The other assignment operators are usually shorthand for standard operations, as shown in the following definitions and examples.

Assignment Operators

Logical operators. There are three logical operators in JavaScript: (OR), && (AND), ! (NOT). Although they are called “logical”, they can be applied to values of any type, not only boolean.

Preview 04:02

Bitwise operators are operators (just like +, *, &&, etc.) that operate on ints and uints at the binary level. This means they look directly at the binary digits or bits of an integer. This all sounds scary, but in truth bitwise operators are quite easy to use and also quite useful!

Bitwise Operators

Time for you to test your Dart Basics skills

Quiz 1 - Basics
5 questions
+ Control Flow
10 lectures 33:17

In computer science, conditional statements, conditional expressions and conditional constructs are features of a programming language, which perform different computations or actions depending on whether a programmer-specified boolean condition evaluates to true or false.

Conditional Expressions

The if/else statement executes a block of code if a specified condition is true. If the condition is false, another block of code can be executed. The if/else statement is a part of JavaScript's "Conditional" Statements, which are used to perform different actions based on different conditions.

Preview 04:16

In computer programming languages, a switch statement is a type of selection control mechanism used to allow the value of a variable or expression to change the control flow of program execution via search and map.

Switch Statement

In computer science, a for-loop (or simply for loop) is a control flow statement for specifying iteration, which allows code to be executed repeatedly. 

for Loop

The for/in statement loops through the properties of an object.

Preview 01:53

In most computer programming languages, a while loop is a control flow statement that allows code to be executed repeatedly based on a given Boolean condition. The while loop can be thought of as a repeating if statement.

while Loop

In most computer programming languages, a do while loop is a control flow statement that executes a block of code at least once, and then repeatedly executes the block, or not, depending on a given boolean condition at the end of the block.

do while Loop

The break statement in C programming has the following two usages − When a break statement is encountered inside a loop, the loop is immediately terminated and the program control resumes at the next statement following the loop. It can be used to terminate a case in the switch statement.

Break Statement

The continue statement is used inside loops. When a continue statement is encountered inside a loop, control jumps to the beginning of the loop for next iteration, skipping the execution of statements inside the body of loop for the current iteration.

Preview 01:53

Label (computer science) A label in a programming language is a sequence of characters that identifies a location within source code. In most languages labels take the form of an identifier, often followed by a punctuation character (e.g., a colon).


Time for you to test your control flow knowledge in Dart

Quiz 2 - Control Flow
5 questions
+ Functions
8 lectures 23:58

In programming, a named section of a program that performs a specific task. In this sense, a function is a type of procedure or routine. Some programming languages make a distinction between a function, which returns a value, and a procedure, which performs some operation but does not return a value.

Basic Function

The term parameter (sometimes called formal parameter) is often used to refer to the variable as found in the function definition, while argument (sometimes called actual parameter) refers to the actual input supplied at function call.

Function Parameters

Optional positional parameters. Square brackets [] can be used to specify optional positional parameters. If optional positional parameters are defined, function calls may specify a variable number of arguments.

Function Optional Positional Parameter

If the parameters are wrapped in curly braces, it means they are still optional, but they are now named parameters.

Preview 02:44

It's often useful to set a different default value. This is where default parameters can help. In the past, the general strategy for setting defaults was to test parameter values in the function body and assign a value if they are undefined.

Preview 01:11

return is a value that a function returns to the calling script or function when it completes its task. A return value can be any one of the four variable types: handle, integer, object, or string.

Preview 03:46

recursive function is a function which either calls itself or is in a potential cycle of function calls. As the definition specifies, there are two types of recursive functions. Consider a function which calls itself: we call this type of recursion immediate recursion.

Function Recursion

In computer programming, an anonymous function(function literal, lambda abstraction, or lambda expression) is a function definition that is not bound to an identifier.

Lambda Function

Time to test your skills on functions in Dart

Quiz 3 - Functions
4 questions
+ Error/Exception Handling
6 lectures 18:34

"Try" and "catch" are keywords that represent the handling of exceptions due to data or coding errors during program execution. A try block is the block of code in which exceptions occur. A catch block catches and handles try block exceptions.

Try Catch Block

The try block contains set of statements where an exception can occur. A try block is always followed by a catch block, which handles the exception that occurs in associated try block. A try block must be followed by catch blocks or finally block or both.

Preview 02:45

The try block contains set of statements where an exception can occur. A try block is always followed by a catch block, which handles the exception that occurs in associated try block. A try block must be followed by catch blocks or finally block or both.

Preview 04:33

Java finally block is a block that is used to execute important code such as closing connection, stream etc. Java finally block is always executed whether exception is handled or not. Java finally block follows try or catch block.

Finally Block

You will learn how to throw an exception manually.

Manually Throw An Exception

If you are creating your own Exception that is known as custom exception or user-defined exceptionCustom exceptions are used to customise the exception according to user need. By the help of custom exception, you can have your own exception and message.

Custom Exception

Time to test your error/exception handling knowledge

Quiz 4 - Error/Exception Handling
4 questions
+ Collections
9 lectures 29:44

list is a number of items in an ordered or unordered structure. A list can be used for a numerous number of things like storing items or deleting and adding items. But for the programmer to perform the different tasks for the list, the program must have enough memory to keep up with changes done to the list.


In many programming languages, map is the name of a higher-order function that applies a given function to each element of a functor, e.g. a list, returning a list of results in the same order.


In computer programming, an enumerated type is a data type consisting of a set of named values called elements, members, enumeral, or enumerators of the type.

Preview 03:28

A collection that contains no duplicate elements. More formally, sets contain no pair of elements e1 and e2 such that e1.equals(e2), and at most one null element. As implied by its name, this interface models the mathematical set abstraction.


HashMap is a Map based collection class that is used for storing Key & value pairs, it is denoted asHashMap<Key, Value> or HashMap<K, V>. This class makes no guarantees as to the order of the map. It is similar to the Hashtable class except that it is unsynchronised and permits nulls(null values and null key).


HashSet is an unordered collection. It does not maintain the order in which the elements are inserted.HashSet internally uses a HashMap to store its elements. HashSet is not thread-safe. If multiple threads try to modify a HashSet at the same time, then the final outcome is not-deterministic.


In programming, a queue is a data structure in which elements are removed in the same order they were entered. This is often referred to as FIFO (first in, first out). In contrast, a stack is a data structure in which elements are removed in the reverse order from which they were entered.

Preview 03:20

Generic programming is a style of computer programming in which algorithms are written in terms of types to-be-specified-later that are then instantiated when needed for specific types provided as parameters.


Iteration, in the context of computer programming, is a process wherein a set of instructions or structures are repeated in a sequence a specified number of times or until a condition is met. When the first set of instructions is executed again, it is called an iteration.

Preview 02:45

Time to test your knowledge on collections.

Quiz 5 - Collections
5 questions
+ Classes & Objects
12 lectures 37:40

Class (computer programming) In object-oriented programming, a class is an extensible program-code-template for creating objects, providing initial values for state (member variables) and implementations of behaviour (member functions or methods).

Basic Example

In class-based object-oriented programming, a constructor (abbreviation: ctor) is a special type of subroutine called to create an object. It prepares the new object for use, often accepting arguments that the constructor uses to set required member variables.

Preview 03:27

With the Named Constructor Idiom, you declare all the class's constructors in the private or protected sections, and you provide public static methods that return an object. These static methods are the so-called "Named Constructors."

Named Constructors

Getters and setters encapsulate the fields of a class by making them accessible only through its public methods and keep the values themselves private. That is considered a good OO principle.

Custom Getters & Setters

In object-oriented programming, inheritance enables new objects to take on the properties of existing objects. A class that is used as the basis for inheritance is called a superclass or base class. A class that inherits from a superclass is called a subclass or derived class.


Method overriding, in object-oriented programming, is a language feature that allows a subclass or child class to provide a specific implementation of a method that is already provided by one of its superclasses or parent classes.

Preview 02:07

An abstract class is a class that is declared abstract —it may or may not include abstract methods. Abstract classes cannot be instantiated, but they can be subclassed.

Abstract Classes and Implements Keyword

Single − Every class can at the most extend from one parent class. Multiple − A class can inherit from multiple classes. Dart doesn't support multiple inheritance. Multi-level − A class can inherit from another child class.

Multiple Class Inheritance

this keyword in Dart can be used inside the Method or constructor of Class. It(this) works as a reference to the current Object, whose Method or constructor is being invoked. This keyword can be used to refer to any member of the current object from within an instance Method or a constructor.

this Keyword

The static keyword in Java means that the variable or function is shared between all instances of that class as it belongs to the type, not the actual objects themselves. So if you have a variable: private static int i = 0; and you increment it ( i++ ) in one instance, the change will be reflected in all instances.

Static Keyword

super is a keyword. It is used inside a sub-class method definition to call a method defined in the super class. Private methods of the super-class cannot be called. Only public and protected methods can be called by the super keyword. It is also used by class constructors to invoke constructors of its parent class.

Super Keyword

The idea of a cascaded method invocation originates in Smalltalk, and has been proposed for Dart. The motivation is to make it easier to write more fluent interfaces.

Cascade Operator

Time to test your knowledge in classes objects

Quiz 6 - Classes & Objects
5 questions
+ Extras
5 lectures 20:22

Runes are the UTF-32 code points of a string.

Unicode defines a unique numeric value for each letter, digit, and symbol used in all of the world’s writing systems. Because a Dart string is a sequence of UTF-16 code units, expressing 32-bit Unicode values within a string requires special syntax.


Debugging is the process of finding and resolving defects or problems within a computer program that prevent correct operation of computer software or a system.


It is used to create an alias name for another data type. As such, it is often used to simplify the syntax of declaring complex data structures consisting of struct and union types, but is just as common in providing specific descriptive type names for integer data types of varying lengths.


Dart programs rely on libraries. Several common libraries are provided for you. For example, dart:core provides a small but critical set of built-in functionality, such as numbers, collections, and strings. Another essential library is dart:async, which supports asynchronous programming with classes like Future and Stream. You can get additional libraries by importing them from packages.


Simply described, it's when you are doing more than one thing at the same time. Not to be confused with parallelism, concurrency is when multiple sequences of operations are run in overlapping periods of time. In the realm of programming, concurrency is a pretty complex subject.

+ Extra Learning Resources
4 lectures 00:01

Dart Tutorials

Dart Tutorials



Dart Academy

Dart Academy

Simple Programmer

Simple Programmer
  • Passion for learning Dart
  • Basic computer knowledge and skills
  • Passion for programming
  • Basic knowledge of computer science is optional
  • Passion for mobile development

Learn about everything there is to know about Dart Applications and How To Program Them. A step by step process is used to show explain every facet of these topics.

NOTE: This course includes information on iOS and Android!

Gain a good understanding of the following concepts with this course:

  1. What Dart is?

  2. Dart Certifications

  3. How to program in the Dart language

  4. Features of the Dart programming language

  5. Coding semantics

  6. Mobile programming

  7. Design practises of applications

  8. Application programming

  9. Network programming

Dart is one of the most popular programming languages for Android in the world that is requested by all companies such as Google, Facebook and Microsoft for mobile development. This course will ensure you are not left out as more and more companies request this awesome language. This course will teach you everything about programming Dart applications.

You will receive all the knowledge to use and leverage the powerful technology behind these amazing and wonderful platforms.

Over 310,000 students have enrolled on my courses and all of them are extremely satisfied. You will also be satisfied with this course. If you do not like the course, remember that within 30 days you can request a full refundI guarantee you satisfaction.

If you have any questions regarding the topics covered in this course, please feel free to ask. I'm always happy to help those who want to learn.

To summarise this is what you get:

• Lifetime access to HD quality videos. No monthly subscription. Learn at your own pace, whenever you want.

• All videos are downloadable. Learn wherever you want, even without an internet connection!

• Downloadable starter code and final code for each section.

• Free helpful support in the course Q&A when you have questions or get stuck.

• Multiple coding challenges to practice your new skills (solutions included).

Sounds great? Then start this adventure today by clicking the “Take this course" button, and join me in the only Dart course that you will need!

Who this course is for:
  • Anyone looking to learn about Dart
  • Developers looking to learn the skills needed to utilise Dart features
  • Mobile developers
  • People looking to learn about programming
  • Those seeking to understand how Dart works
  • People seeking guidance on how to create Dart based programs
  • Beginners and experts in this field
  • People seeking more knowledge on the various features of the Dart programming language
  • People with a desire to improve their programming knowledge
  • Mobile developers