Introduction
What Is a Smartphone?
The term smartphone refers to a handheld electronic device that provides a connection to a
cellular network. Smartphones were introduced to the world in 1994 by IBM but have since
expanded to include companies like Apple and Samsung.
Although they were originally meant to allow individuals to communicate via phone and email,
smartphones now allow people to access the internet, play games, and send text messages in
addition to making phone calls and sending emails.
Phones In the past
One of the greatest
Inventions in the past
Century
Old Phone: main
Purpose is for
Communication
Older people still view/use phones as a tool for communication only ( making phone calls)
Modern Phone
Modern Phones provide many more services like:
Communication
Texting
Internet Browsing
Purchasing goods and services
Location Based Services
And many more
Mobile Ecosystem
The mobile ecosystem is like Internet: a complex
ecosystem that is made up of many parts that must
all work together seamlessly.
Mobile ecosystem is better viewed as a system of
layers where each layer is reliant on the others.
The Layers of the mobile ecosystem
Cellular Network
Base stations transmit to and receive from mobiles at
the assigned spectrum
Multiple base stations use the same spectrum
(spectral reuse)
The service area of each base station is called a cell
Each mobile terminal is typically served by the
‘closest’ base stations
Operators
Go by different Names: Services providers, operators,
carriers (ex. AT&T, Verizon,Zain,Orange)
Install cell towers, maintain the cell networks,
maintain relationship with customers (billing,
accounts)
Competition ( WiFi, WiMax,Ultra-wide broad band)
Flutter
Flutter is an open source framework to create high quality, high performance mobile
applications across mobile operating systems - Android and iOS. It provides a simple, powerful,
efficient and easy to understand SDK to write mobile application in Google’s own language, Dart.
In this course we walks through the basics of Flutter framework, installation of Flutter SDK,
setting up Android Studio to develop Flutter based application, architecture of Flutter
framework and developing all type of mobile applications using Flutter framework.
Features of Flutter:
Modern and reactive framework.
Uses Dart programming language and it is very easy to learn.
Fast development.
Beautiful and fluid user interfaces.
Huge widget catalog.
Runs same UI for multiple platforms.
High performance application.
Dart Windows Installation
Download Dart SDK from here.
Copy dart-sdk folder to your C drive.
Add C:\dart-sdk\bin to your environment variable. Watch the video below to be more clear.
Open the command prompt and type dart --version to check it.
Install Android studio and Add Dart Extension.
Flutter Windows Installation
Step 1: Download Flutter SDK
Download the Flutter SDK package
Step 2: Extract the Files
Step 3: Update Path Variable for Windows PowerShell
Flutter Windows Installation
Step 4: Confirm Installed Tools for Running Flutter
In CMD, run the flutter doctor command to confirm the installed tools along with brief
descriptions.
flutter doctor
Step 5: Download and Install Android Studio
Install Android studio
Afterward, run the flutter doctor command in CMD to confirm the Android Studio installation.
Step 6: Android Studio was successfully installed, however, it finds an issue with Android
licenses. This issue is fairly common and is mitigated by running the following command in CMD.
flutter doctor --android-licenses
What Are Flutter Widgets?
At its simplest, think of Flutter widgets as the building blocks of your app's user interface. Much
like how bricks come together to form a house, widgets are the essential components that shape
the look and feel of a Flutter app.
A Flutter widget is essentially a piece of reusable code. It dictates a certain part of your app's
user interface - how it should look and behave. It's this modularity and reusability that make
widgets in Flutter so powerful and developer-friendly.
Stateful vs. Stateless Widgets:
Flutter widgets is generally divided into two categories: stateful and stateless
Stateless widgets are the simple ones. They display information based on what's fed to them
and don't retain any memory of user interactions or changes in data. Think of elements like
buttons, labels, or icons - they do their job without any fuss.
Stateful widgets, on the other hand, are the more dynamic ones. They remember. Whether it's
user interactions, like filling out a form or changes in data, these widgets adjust and rebuild
themselves accordingly. They have an internal memory.
Understanding this distinction is key. While stateless widgets form the static parts of your app's
user interface, stateful widgets are responsible for the dynamic and interactive elements.
life cycle of stateless widgets
The life cycle of stateless widgets is simple; there’s only one stage: the build method. As soon as
the widget gets built, the build method gets automatically called where you are supposed to
create whatever appearance you want to add up in your application.
life cycle of stateful widgets
the main stages in the lifecycle of a stateful widget:
init State (): The init State gets triggered implicitly as soon as the State initially get initialized. It
is used when we want something to happen the moment our stateful widget is created.
build (): The build method gets triggered when the widgets are constructed and appear on the
screen. It is used when we want something to happen every single time when our stateful
widget gets rebuild.
deactivate(): Deactivate method gets called when the stateful widget gets destroyed ( just like
destructor). It is used when we want something to happen just before our stateful widget gets
destroyed.
life cycle of stateful widgets