Portfolio Implementation using Flutter Web and Firebase
Last Updated :
23 Jul, 2025
In this article, we’ll guide you through building a Custom Linktree-style Portfolio using Flutter Web and deploying it on Firebase. A Linktree is a powerful tool to showcase your online presence - social media, projects, or professional links - all in one sleek, responsive page. With Flutter Web, you can design a visually stunning portfolio that works seamlessly across devices, while Firebase makes deployment and updates effortless.
Step-by-Step Implementation
Step 1: Create a new Flutter Application
Create a new Flutter application using the command Prompt. To create a new app, write the following command and run it.
flutter create app_name
To know more about it refer this article: Creating a Simple Application in Flutter
Step 2: Adding the Dependency
To add the dependency to the pubspec.yaml file, add url_launcher as a dependency in the dependencies part of the pubspec.yaml file, as shown below:
Dart
dependencies:
flutter:
sdk: flutter
url_launcher: ^6.3.1
Now, run the command below in the terminal.
flutter pub get
Or
Run the command below in the terminal.
flutter pub add url_launcher
Step 3: Import dependencies
To use libraries, import all of them in the respective .dart file.
import 'package:url_launcher/url_launcher.dart';
- Collect Assets
After that, we need to collect all the necessary images and icons that will be used in our Flutter app. You can find all the required social media icons in the GitHub repository if you wish to use the same ones as me. Additionally, you will need to upload a single image of yourself to be displayed in the app.
You should also make the necessary changes to the project's 'pubspec.yaml' file to ensure these assets are recognizable. You need to add or uncomment the lines below:
assets:
- assets/
Make sure to use proper indentation.
Step 4: Start Coding
Now we will start coding our web app. In the main.dart file the imports necessary dependencies, including the HomePage screen. The MyApp class, as the app's root, configures the app's title and theme. The theme's primary color is set to deep purple. The app's structure is defined using the MaterialApp widget, with a title and theme. The home screen is set to MyHomePage. This code showcases the fundamental setup of a Flutter web app, with a customized theme and a designated home page.
main.dart:
Dart
import 'package:flutter/material.dart';
import 'Screens/home_page.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Your Name',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const MyHomePage(),
);
}
}
Now we will code the home page of our application. First, we'll create a 'MyHomePage' widget, which is a 'StatefulWidget'. Inside its state, we define the layout and components of our home page.
There are some points to understand for this application:
- For responsive design, we detect whether the screen width is greater than 800 pixels to determine if it's a desktop layout.
- The 'Scaffold' widget serves as the main container. Within it, we place a 'Container' that covers the entire screen with a gradient background.
- Inside the 'Container', we use a 'Stack' to layer the content. The 'Stack' contains a 'Column' that holds the upper and lower sections of the page.
- The upper section features an 'Expanded' widget for flexible sizing. It contains a 'Center' widget with a 'Column' of elements: a circular avatar, the developer's name, and a short bio. These elements are styled using various font sizes and weights.
- The lower section is also wrapped in an 'Expanded' widget. It's a 'Container' with a colored background, rounded top corners, and a vertical layout. Inside it, we have a 'SingleChildScrollView' that contains a 'Column' of social media links and icons. Depending on the screen size, either a 'RowView' or 'ColumnView' layout is used.
- The 'ColumnView' function returns a vertical arrangement of social media icons, with spacing adjusted for responsiveness.
- The 'RowView' function returns a horizontal arrangement of social media icons divided into two columns. Each column holds various social media links.
- The 'geeksforgeeks' is a placeholder for functions or widgets that represent individual social media icons.
- Finally, the 'Footer' widget is placed at the bottom of the page, offering additional information or navigation.
This comprehensive code snippet constructs a responsive Flutter web page with a visually appealing layout and interactive social media links, tailored to desktop and mobile devices.
home_page.dart:
Dart
import 'package:flutter/material.dart';
import 'package:web_links/widgets/animated_container.dart';
import 'package:web_links/widgets/footer.dart';
import 'package:web_links/widgets/socialCards.dart';
class MyHomePage extends StatefulWidget {
const MyHomePage({Key? key}) : super(key: key);
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
bool isDesktop = MediaQuery.of(context).size.width > 800;
return Scaffold(
body: Container(
// 100% of height
height: MediaQuery.of(context).size.height,
// 100% of width
width: MediaQuery.of(context).size.width,
decoration: const BoxDecoration(
gradient: LinearGradient(
colors: [Color(0xff9dc9e9), Color(0xff2059ff)],
),
),
child: Stack(
children: [
Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Expanded(
child: Padding(
padding: const EdgeInsets.only(top: 20.0),
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: const [
CircleAvatar(
radius: 80,
backgroundImage: AssetImage('assets/ankit.png'),
),
SizedBox(
height: 5,
),
Text(
// Your Name
'Ankit Kumar',
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 28,
),
),
SizedBox(
height: 5,
),
Text(
// Your short bio (optional)
'Passionate Flutter Developer',
style: TextStyle(
fontWeight: FontWeight.w400,
fontStyle: FontStyle.italic,
fontSize: 20,
),
),
],
),
),
),
),
const SizedBox(
height: 10,
),
Expanded(
child: Container(
// height: 490,
width: MediaQuery.of(context).size.width,
decoration: const BoxDecoration(
color: Color(0xff171430),
shape: BoxShape.rectangle,
borderRadius: BorderRadius.vertical(
top: Radius.circular(50.0),
),
),
child: SingleChildScrollView(
child: Column(
children: [
Center(
child: isDesktop ? RowView() : ColumnView(),
),
Footer(),
],
),
),
),
),
],
),
],
),
),
);
}
Column ColumnView() {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
SizedBox(height: MediaQuery.of(context).size.height * 0.06),
codewars(),
geeksforgeeks(),
github(),
gmail(),
hashnode(),
instagram(),
playstore(),
portfolio(),
resume(),
twitter(),
whatsapp(),
youtube(),
SizedBox(height: MediaQuery.of(context).size.height * 0.05),
],
);
}
Row RowView() {
return Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Column(
children: [
SizedBox(
height: MediaQuery.of(context).size.height * 0.05,
),
codewars(),
geeksforgeeks(),
github(),
gmail(),
hashnode(),
instagram(),
],
),
SizedBox(width: MediaQuery.of(context).size.width * 0.05),
Column(
children: [
SizedBox(
height: MediaQuery.of(context).size.height * 0.05,
),
playstore(),
portfolio(),
resume(),
twitter(),
whatsapp(),
youtube(),
],
),
// Instagram
],
);
}
}
The following functions efficiently create social media cards using the 'CustomAnimatedContainer' widget :
- Resume: This orange card features a resume image with a direct link to the Google Drive resume.
- Portfolio: A deep purple card showcases a portfolio image, linking seamlessly to the developer's website.
- Twitter: The light blue card prominently displays a Twitter image and connects to the developer's Twitter account.
- GitHub: This dark gray card represents GitHub, providing a link to the developer's repository.
- LinkedIn: A blue card features a LinkedIn image, linking directly to the developer's LinkedIn page.
- Instagram: The pink card highlights Instagram, linking to the developer's account with ease.
- YouTube: A striking red card showcases the YouTube branding, linking straight to the developer's channel.
- Gmail: A red accent card features a Gmail image, linking to compose an email effortlessly.
- GeeksForGeeks: This green card highlights GeeksForGeeks, linking to the developer's articles effectively.
- PlayStore: A light blue accent card showcases the Play Store image, linking to the developer's app with precision.
- WhatsApp: The green card prominently features WhatsApp branding, linking directly to the developer's contact.
These functions create impactful, reusable, and visually appealing social media cards for a Flutter web app.
socialCards.dart:
Dart
import 'package:flutter/material.dart';
import 'package:geeks_for_geeks/animated_container.dart';
// Resume container with a button
// linking to the latest resume
CustomAnimatedContainer resume() {
return CustomAnimatedContainer(
// Yellow color theme
containerColor: Color.fromARGB(255, 245, 176, 3),
borderColor: Color.fromARGB(255, 245, 176, 3),
imagePath: 'assets/resume.png',
text: 'Latest Resume',
// Add your resume link here
linkUrl: '',
);
}
// Portfolio container with a button
// linking to the portfolio
CustomAnimatedContainer portfolio() {
return CustomAnimatedContainer(
// Purple theme for portfolio
containerColor: Colors.deepPurpleAccent,
borderColor: Colors.deepPurpleAccent,
imagePath: 'assets/portfolio.png',
text: 'Portfolio',
// Add your portfolio link here
linkUrl: '',
);
}
// Twitter container with a button
// linking to Twitter profile
CustomAnimatedContainer twitter() {
return CustomAnimatedContainer(
// Blue theme for Twitter
containerColor: Colors.lightBlue,
borderColor: Colors.lightBlue,
imagePath: 'assets/x.png',
text: 'Twitter',
// Add your Twitter profile link here
linkUrl: '',
);
}
// GitHub container with a button
// linking to GitHub profile
CustomAnimatedContainer github() {
return CustomAnimatedContainer(
// Dark theme for GitHub
containerColor: Colors.black38,
borderColor: Colors.black38,
imagePath: 'assets/git.png',
// Fixed typo from 'GtiHub' to 'GitHub'
text: 'GitHub',
// Add your GitHub profile link here
linkUrl: '',
);
}
// LinkedIn container with a button
// linking to LinkedIn profile
CustomAnimatedContainer linkedin() {
return CustomAnimatedContainer(
// Blue theme for LinkedIn
containerColor: Colors.blueAccent,
borderColor: Colors.blueAccent,
imagePath: 'assets/linkedin.png',
text: 'LinkedIn',
// Add your LinkedIn profile link here
linkUrl: '',
);
}
// Instagram container with a button
// linking to Instagram profile
CustomAnimatedContainer instagram() {
return CustomAnimatedContainer(
// Pink theme for Instagram
containerColor: Colors.pink,
borderColor: Colors.pink,
imagePath: 'assets/insta.png',
text: 'Instagram',
// Add your Instagram profile link here
linkUrl: '',
);
}
// YouTube container with a button
// linking to YouTube channel
CustomAnimatedContainer youtube() {
return CustomAnimatedContainer(
// Red theme for YouTube
containerColor: Colors.red,
borderColor: Colors.red,
imagePath: 'assets/youtube.png',
text: 'YouTube',
// Add your YouTube channel link here
linkUrl: '',
);
}
// Gmail container with a button
// linking to an email address
CustomAnimatedContainer gmail() {
return CustomAnimatedContainer(
// Red theme for Gmail
containerColor: Colors.redAccent,
borderColor: Colors.redAccent,
imagePath: 'assets/mail.png',
text: 'Gmail',
// Add your email address here
linkUrl: 'mailto:[email protected]',
);
}
// GeeksForGeeks container with a button
// linking to GeeksForGeeks website
CustomAnimatedContainer geeksforgeeks() {
return CustomAnimatedContainer(
// Green theme for GeeksForGeeks
containerColor: Colors.green,
borderColor: Colors.green,
imagePath: 'assets/gfg.png',
text: 'GeeksForGeeks',
// Add your GFG profile link here
linkUrl: 'https://www.geeksforgeeks.org/',
);
}
// PlayStore container with a button
// linking to Google Play Store
CustomAnimatedContainer playstore() {
return CustomAnimatedContainer(
// Blue theme for Play Store
containerColor: Colors.lightBlueAccent,
borderColor: Colors.lightBlueAccent,
imagePath: 'assets/playstore.png',
text: 'PlayStore',
// Add your Play Store app link here
linkUrl: '',
);
}
// WhatsApp container with a button
// linking to WhatsApp chat
CustomAnimatedContainer whatsapp() {
return CustomAnimatedContainer(
// Green theme for WhatsApp
containerColor: Colors.green,
borderColor: Colors.green,
imagePath: 'assets/whatsapp.png',
text: 'WhatsApp',
// Add your WhatsApp contact link here
linkUrl: '',
);
}
Now, we shall see the code for the CustomAnimatedContainer, which is the widget that is used as the instance for each social media function above. The code below defines a 'CustomAnimatedContainer' widget, which is a stateful widget. This widget is designed to create interactive animated containers representing social media links. It takes several parameters for customization: 'containerColor' (background color), 'borderColor', 'imagePath' (path to the image), 'text' (displayed text), and 'linkUrl' (URL to be opened when clicked).
- The '_CustomAnimatedContainerState' class manages the state of the widget. It has a '_isHovered' boolean variable to keep track of whether the container is being hovered over by the mouse.
- In the 'build' method, the widget renders a 'Container' that enforces minimum height and width constraints and adds a bottom margin. The 'InkWell' widget wraps the content of the container and handles the tap action to open the specified 'linkUrl' in a browser.
- Inside the 'InkWell', the 'MouseRegion' widget tracks mouse enter and exit events to update the '_isHovered' state. When the mouse enters the container, '_isHovered' is set to 'true', and when it exits, '_isHovered' is set to 'false'.
- The 'AnimatedContainer' within the 'MouseRegion' is where the visual representation of the social media link is created. It changes appearance smoothly when '_isHovered' changes. It has a dynamic width and height based on the screen size. It also has a background color defined by 'containerColor', a rounded corner, and a border that changes color based on '_isHovered'. A subtle shadow is added for depth.
The content of the container is composed of a 'Row' with three main elements:
- An 'Image.asset' widget displays the social media icon. The size of the icon is based on the screen size.
- A 'Text' widget displays the 'text' of the link, with white color, font weight, and font size based on the screen size.
- An 'AnimatedSwitcher' that shows different icons depending on '_isHovered'. It either displays a "touch" icon or an arrow icon.
The code creates a highly customizable, interactive, and visually appealing social media link container that smoothly transitions between states when hovered over or clicked, enhancing the user experience of the Flutter web app.
animated_container.dart:
Dart
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
class CustomAnimatedContainer extends StatefulWidget {
final Color containerColor;
final Color borderColor;
final String imagePath;
final String text;
final String linkUrl;
CustomAnimatedContainer({
required this.containerColor,
required this.borderColor,
required this.imagePath,
required this.text,
required this.linkUrl,
});
@override
_CustomAnimatedContainerState createState() =>
_CustomAnimatedContainerState();
}
class _CustomAnimatedContainerState extends State<CustomAnimatedContainer> {
bool _isHovered = false;
@override
Widget build(BuildContext context) {
return Container(
// constrains of min height and width
constraints: BoxConstraints(
minHeight: 50,
minWidth: 250,
),
margin:
EdgeInsets.only(bottom: MediaQuery.of(context).size.height * 0.02),
child: InkWell(
onTap: () {
// Open the link when the container is clicked
launch(widget.linkUrl);
},
child: MouseRegion(
onEnter: (_) {
setState(() {
_isHovered = true;
});
},
onExit: (_) {
setState(() {
_isHovered = false;
});
},
child: AnimatedContainer(
duration: Duration(milliseconds: 400),
height: MediaQuery.of(context).size.height * 0.063,
width: MediaQuery.of(context).size.width * 0.13,
decoration: BoxDecoration(
color: widget.containerColor,
borderRadius: BorderRadius.circular(15),
border: Border.all(
color: _isHovered ? widget.borderColor : Colors.white,
width: 2,
),
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.5),
spreadRadius: 1,
blurRadius: 5,
offset: const Offset(0, 3),
),
],
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Expanded(
flex: 3,
child: Container(
padding: EdgeInsets.all(1),
decoration: BoxDecoration(
shape: BoxShape.circle,
color: Colors.white,
),
child: Image.asset(
widget.imagePath,
height: MediaQuery.of(context).size.height * 0.04,
width: MediaQuery.of(context).size.width * 0.04,
),
),
),
SizedBox(
width: MediaQuery.of(context).size.width * 0.002,
),
Expanded(
flex: 8,
child: Text(
widget.text,
style: TextStyle(
color: Colors.white,
fontWeight: FontWeight.w500,
fontSize: MediaQuery.of(context).size.height * 0.02,
),
),
),
AnimatedSwitcher(
duration: Duration(milliseconds: 400),
child: _isHovered
? Icon(
Icons.touch_app_outlined,
key: ValueKey<bool>(_isHovered),
color: Colors.white,
)
: Icon(
Icons.arrow_forward_ios,
key: ValueKey<bool>(_isHovered),
color: Colors.white,
),
),
SizedBox(
width: MediaQuery.of(context).size.width * 0.005,
),
],
),
),
),
),
);
}
}
We also used a widget instance called Footer on our home page, so we shall see what its code looks like. The code defines a Footer widget for a Flutter web app. It features clickable icons and links. The _FooterState class manages its state, tracking hover, and containing a GitHub repository URL.
In the build method, an InkWell widget handles taps and hover events. Icons change color on hover. The footer displays "Made with" text, icons, and the developer's name.
The _launchUrl function launches URLs using url_launcher, handling launch success and errors. This interactive footer enhances user experience, providing GitHub attribution and easy URL access.
footer.dart:
Dart
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart' as url_launcher;
class Footer extends StatefulWidget {
@override
_FooterState createState() => _FooterState();
}
class _FooterState extends State<Footer> {
String url = '';
bool isHovered = false;
@override
Widget build(BuildContext context) {
return InkWell(
// Open the link when the container is clicked
onTap: () {
_launchUrl(Uri.parse(url));
},
onHover: (value) {
// Handle hover state
setState(() {
isHovered = value;
});
},
child: Container(
// color: Colors.black,
margin: EdgeInsets.only(top: 20, bottom: 20),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
_buildIcon(Icons.devices, isHovered),
SizedBox(width: 5),
Text(
'Made with',
style: TextStyle(
color: Colors.white,
fontSize: 16,
fontWeight: FontWeight.bold,
),
),
SizedBox(width: 5),
_buildIcon(Icons.star, isHovered),
SizedBox(width: 5),
Text(
'Flutter by GFG',
style: TextStyle(
color: Colors.white,
fontSize: 16,
fontWeight: FontWeight.bold,
),
),
],
),
),
);
}
Widget _buildIcon(IconData icon, bool isHovered) {
return Icon(
icon,
// Change the color based on hover state
color: isHovered ? Colors.amber : Colors.white,
);
}
void _launchUrl(Uri url) async {
if (await url_launcher.canLaunch(url.toString())) {
await url_launcher.launch(url.toString());
} else {
throw 'Could not launch $url';
}
}
}
Now that we are done we can use the command below to check our app, and before doing so select the device as Chrome or any other browser. But you can also check it on a mobile device.
flutter run
To make a build compatible with the web i.e. flutter web use the command below:
flutter build web --release -v
You can see the file in the build folder which would contain a folder named web. This is the content that will be uploaded to Firebase.
Step 5: Firebase Deployment
Here I will give a quick overview of how to deploy the app we have created on Firebase hosting. But for more details you can check out this article here: Hosting Flutter Website On Firebase For Free
1. Create a new project on the Firebase console.
2. Register the app using the preferred method. In my case, I have simply used the method of adding a script in my index.html file.
3. Install Firebase CLI using the command command:
npm install -g firebase-tools
Just make sure you have the proper version of node installed on your system.
4. Initiate Firebase by using the below command but make sure you are logged in to Firebase with the correct credentials:
// login
firebase login
// starting services
firebase init
Choose hosting with a spacebar and move forward with the project that you just created. It will ask to create a public folder and we need to put all the content of the Flutter web build in this.
And use the command below the deploy it to the firebase. When successful it would give you the URL where you can asses that!
// replace Project ID with your project ID
firebase deploy --only Project ID
It's all done! Now is the time to flaunt your newly custom-created weblinks with Flutter! Enjoy!
For the Complete Application code refer to this Link : Click Here
Similar Reads
Basics
Flutter TutorialThis Flutter Tutorial is specifically designed for beginners and experienced professionals. It covers both the basics and advanced concepts of the Flutter framework.Flutter is Googleâs mobile SDK that builds native Android and iOS apps from a single codebase. It was developed in December 2017. When
7 min read
Flutter | An introduction to the open source SDK by GoogleFlutter is Googleâs Mobile SDK to build native iOS and Android, Desktop (Windows, Linux, macOS), and Web apps from a single codebase. When building applications with Flutter, everything is Widgets â the blocks with which the flutter apps are built. They are structural elements that ship with a bunch
5 min read
Flutter - Architecture ApplicationFlutter architecture application mainly consists of: WidgetsGesturesConcept of StateLayersWidgetsWidgets are the primary component of any flutter application. It acts as a UI for the user to interact with the application. Any flutter application is itself a widget that is made up of a combination of
3 min read
Android Studio Setup for Flutter DevelopmentThis article will show how to set up Android Studio to run Flutter Applications. Android Studio is one of the popular IDE( integrated development environment  ) developed by Google itself to create cross-platform Android applications. First, you have to install Android Studio version 3.0 or later, a
3 min read
Getting Started with Cross-Platform Mobile Application using FlutterFlutter is an open-source mobile application development SDK created by Google to develop cross-platform mobile applications. Flutter makes it extremely easy and fast for even novice programmers (computer programmers who are not experienced in any programming languages) to build high-quality and res
7 min read
Flutter Development in Ubuntu 20.04In this article, let's look at how you can set up a development environment for Flutter if you're using Ubuntu 20.04. It was difficult earlier and was kind of a nightmare to get it done. But now, it has changed, and anyone can easily set up a flutter development environment on their Ubuntu system in
5 min read
Key Widgets
UI Components
Flutter - TabsTabs are the part of the UI that navigates the user through different routes(ie, pages) when clicked upon. The use of tabs in applications is standard practice. Flutter provides a simple way to create tab layouts using the material library. In this article, we will be exploring the same in detail.To
2 min read
Flutter - Horizontal ListIn Flutter there can be Two types of lists, namely, horizontal list and vertical list. Both these lists are created using the ListView constructor and assigning the scrollDirection parameter. By default, the scroll direction parameter is vertical for a vertical list but it can be overridden by passi
3 min read
Flutter - Expansion Tile CardThe Expansion Tile Card works similarly to that of the Flutter SDK's standard expansion tile. But it uses the style used by Google itself in its products to raise a tile. It can be called a better version of the Flutter's ExpansionTileCard. In this article, we will look into the process of implement
3 min read
Icon Class in FlutterIcon class in Flutter is used to show specific icons in our app. Instead of creating an image for our icon, we can simply use the Icon class for inserting an icon in our app. For using this class you must ensure that you have set uses-material-design: true in the pubsec.yaml file of your object.Synt
2 min read
Expanded Class in FlutterWhen we create any child of a row or column we provide the size of the widget according to the screen size but sometimes when we provide more size of child as compared to screen size we get a warning and our widget goes out of the screen for resolving this we put a child of a row or column in an exp
3 min read
Flutter - DialogsThe dialog is a type of widget which comes on the window or the screen which contains any critical information or can ask for any decision. When a dialog box is popped up all the other functions get disabled until you close the dialog box or provide an answer. We use a dialog box for a different typ
5 min read
Flutter - Circular & Linear Progress IndicatorsProgress Indicator in any application displays the time which is needed for some tasks to complete such as downloading, installation, uploading, file transfer, etc. This shows the progress of a task or the time to display the length of the processes.In Flutter, progress can be displayed in two ways:
4 min read
Flutter - Staggered Grid ViewStaggered Grid View is a type of layout that is used to display images and posts. As you see in various social platforms such as Pinterest, Instagram and many more. The main feature of Staggered Grid View is that it makes the layout beautiful and develop a great User Experience. Staggered Grid View
4 min read
Design & Animations
Customizing Fonts in FlutterCustomization is everywhere, from documents to apps, we can customize everything as we want to. The power of customization is humongous, and it has revolutionized the way we look at technology in this world. Just like how printing "Hello World", is the basic step towards learning a new programming l
4 min read
Flutter - Skeleton TextIn Flutter, the skeleton_text library is used to easily implement skeleton text loading animation. Its main application in a flutter app is to assure its users that the servers are working but running slow, but the content will eventually load. It also enhances the User Interface if the user connect
3 min read
Flutter - ThemesThemes are an integral part of UI for any application. Themes are used to design the fonts and colors of an application to make it more presentable. In Flutter, the Theme widget is used to add themes to an application. One can use it either for a particular part of the application like buttons and n
3 min read
Flutter - Lazy LoaderThe Lazy loader is a wrapper to the ScrollView that enables lazy loading. It is very useful in situations where the application's intent is to show endless content in a ListView. For instance, Instagram, Facebook, Youtube and most social networking platforms use them to deliver an endless stream of
5 min read
Flutter - UI OrientationAll applications should be able to adjust their User Interface (UI) based on the orientation of the phone. By orientation, we implicate the portrait and landscape mode in smartphones rather the physical orientation. In, Flutter it is done so by using the OrientationBuilder, which determines the app'
2 min read
Flutter - Animation in Route TransitionRoutes are simply Pages in Flutter applications. An application often needs to move from one page to another. However, animations can be used to make these transitions smoother. These animations can be used to curve or tween the Animation object of the PageRouteBuilder class to alter the transition
3 min read
Flutter - Physics Simulation in AnimationPhysics simulation in Flutter is a beautiful way to Animate components of the flutter app to make it look more realistic and interactive. These can be used to create a range of animations like falling objects due to gravity to making a container seem attached to a spring. In this article, we will ex
4 min read
Flutter - Radial Hero AnimationA Radial transformation means turning a circular shape into a square shape. In Radial Hero animation the same is done with a Hero. In Flutter, a Hero Widget is used to create a hero animation. A hero in this context refers to a widget that moves in between screens. This is one of the most fundamenta
3 min read
Flutter - Hinge AnimationAnimations are a big part of the Flutter application. It makes an app sweet to the eyes and equally user-friendly. In this article, we will discuss in detail the Hinge animations. In Flutter there are two ways to work with animations namely:A pub packageAnimated Builder WidgetIn this article, we wil
4 min read
Flutter - Lottie AnimationVisualization is an integral part of any application. Animations can highly glorify the UI of an app, but animations can be hectic to implement for an application. This is where the Lottie animation comes in. Lottie is a JSON-based animation file. It can be used both as a network asset and a static
3 min read
Forms & Gestures
Navigation & Routing
URLs in FlutterWhile surfing the net, every user will come across many buttons, text, etc., that would redirect the user to a different webpage in the same tab or in a different tab when clicked. In the same way, when a developer links a URL to a button or text in an app, the app will open the website when clicked
5 min read
Routes and Navigator in FlutterRoute: Apps are the new trend. The number of apps available in the Play Store and App Store nowadays is quite a lot. The apps display their content in a full-screen container called pages or screens. In flutter, the pages or screens are called Routes. In android, these pages/screens are referred to
4 min read
Flutter - WebSocketsWebSockets are used to connect with the server just like the http package. It supports two-way communication with a server without polling.In this article, we will explore the below-listed topics related to WebSockets in Flutter:Connecting to a WebSocket serverListen to messages from the server.Send
3 min read
Flutter - Named RoutesAn app has to display multiple screens depending upon the user's needs. A user needs to back and forth from the multiple screens to the home screen. In, Flutter this is done with the help of Navigator.Note: In Flutter, screens and pages are called routes. Steps to Implement Named Routes in FlutterSt
3 min read
Flutter - Arguments in Named RoutesNavigating between the various routes (i.e, pages) of an application in Flutter is done with the use of Navigator. The Navigator uses a common identifier to transition between routes. One can pass arguments to these routes using the arguments parameter of Navigator.pushNamed() method. Arguments can
4 min read
Multi Page Applications in FlutterApps are widely used by humans in this techie world. The number of apps in the app store is increasing day by day. Due to this competition, app developers have started to add a number of features to their apps. To reduce this complexity, the content of the app is mostly divided into various pages so
5 min read
Flutter - Updating Data on the InternetIn today's world, most applications heavily rely on fetching and updating information from the servers through the internet. In Flutter, such services are provided by the http package. In this article, we will explore the same. Let's see a sample video of what we are going to develop.Sample Video:St
5 min read
Flutter - Fetching Data From the InternetIn today's world, most applications heavily rely on fetching information from the servers through the internet. In Flutter, such services are provided by the http package. In this article, we will explore this concept.Steps to Implement Data Fetching from the InternetStep 1 : Create a new flutter ap
4 min read
Flutter - Deleting Data On The InternetIn this article, we will explore the process of deleting data on the internet. Before deleting data on the internet, we will fetch the data first and then will delete the data.Steps to implement Deleting Data on the InternetStep 1 : Create a new flutter applicationCreate a new Flutter application us
4 min read
Flutter - Sending Data To The InternetInteracting with the Internet is crucial for most apps to function. In Flutter, sending data to the internet is one of them, and the http package is used to send the data to the internet. In this article, we will explore the same topic in detail. Steps to Implement Sending Data to the InternetStep 1
5 min read
Flutter - Send Data to ScreenInteraction with the UI is an integral part of any application. But more often than not, the information needs to be sent from one screen to another. For instance, say you need to pass data regarding a selected or tapped component of the UI to another route(i.e., page). In this article, we will expl
4 min read
Hardware Interaction
Gallery Access and Camera in FlutterWe can add images from the gallery using the image_picker package in Flutter. For this, you'll need to use your real device.Steps to Implement Gallery and Camera AccessStep 1: Create a new flutter applicationCreate a new Flutter application using the command Prompt. To create a new app, write the be
3 min read
Camera Access in FlutterTo add images from the camera in Flutter, we'll use the image_picker package. For this, you'll need to use your real device.Follow the below steps to display the images from the cameraStep 1: Create a new Flutter ApplicationCreate a new Flutter application using the command Prompt. To create a new a
3 min read
Background local notifications in FlutterSometimes user wants some essential features like the latest news updates, latest articles updates, weather condition alert, complete his/her profile update, future events update and much more in his/ her Android or iOS device without opening App and if you would like to develop this kind of Android
6 min read
Restrict Landscape mode in FlutterIn this article, we'll learn how to restrict landscape mode in the flutter app. A production-ready app should be free from all sorts of bugs and errors. Mostly, we design our app for portrait orientation if we flip to landscape orientation, the UI might not be adjusted for that. So, there are two ca
2 min read
Sample Flutter Apps
Basic Quiz App In FlutterFlutter SDK is an open-source software development kit for building beautiful UI that is natively compiled. Currently, it is available as a stable version for iOS and Android OS. In this app, we are going to have the features or modules mentioned below:Five multiple-choice questions ( more questions
8 min read
A Hello World App using FlutterIn Flutter, everything is a Widget, and by using predefined widgets, one can create user-defined widgets just like using int, float, and double can create user-defined data types. In Flutter there are three types of widgetsStateless WidgetStateful WidgetInherited WidgetIn this article, we will use S
3 min read
Flutter - Simple PDF Generating AppFlutter Community has created several packages to work with PDFs in our apps. In this article, we will be creating a simple PDF-generating app. This application will convert plain text to PDF. The packages that we are going to need are listed below with their uses:pdf: It is a PDF creation library f
9 min read
Flutter - Magic 8 Ball AppWe will be building a Magic 8-Ball app that will give you the answers to all fun, tricky questions (basically, it is a fun game app that will change its state of image using Textbutton in Stateful widgets). For this, we will use Stateless and Stateful Flutter widgets and a Textbutton. Steps to build
3 min read
Advance Concepts