Posts

Manage Firebase storage using flutter

Image
To upload and download any image, pdf, doc file in cloud then firebase is best option. More about firebase storage follow link Add Following dependecies inside pubspec.yaml file dependencies : flutter : sdk : flutter cloud_firestore : ^2.2.0 firebase_storage : ^8.1.0 You have to set rules inside your firestore to access files rules_version = '2'; service firebase.storage { match /b/{bucket}/o { match /{allPaths=**} { allow read, write } } } Now  inside your firebase storage create folder whatever you want right now we are using "uploads/ " First you have install firestore inside your flutter project. flutter pub add firebase_storage Once done with that rebuild your project. flutter run Now initialize firebase inside initState() Firebase. initializeApp (); Once initilize completed create reference of fireStore Reference firebaseStorageRef = FirebaseStorage. instance .ref().child( 'uploads/ $fileName ' ); Below code is for upl

Load more pagination in Listview flutter

  Inside Listview use Load more for pagination Add loadmore dependencies inside pubspec.yaml loadmore : ^2.0.1 Now we need to manage page count use loadMoreCount here. initialy loadMore is 0 int loadMoreCount = 0 ; Now use LoadMore Widget inside your body. body: LoadMore ( isFinish: loadMoreCount >= 5 , onLoadMore: _loadMore, child: ListView ( children: <Widget>[ Container ( color: Colors. red , child: Container ( decoration: BoxDecoration ( color: Colors. white , borderRadius: BorderRadius . circular ( 5 )), margin: const EdgeInsets . all ( 8.0 ), padding: const EdgeInsets . only (left: 8.0 ), child: TextField ( decoration: InputDecoration ( fillColor: Colors. red , icon: Icon ( Icons. search , color: Colors. black , ), border: InputBorder. none , hint

Firebase + Flutter integration

Image
Firebase made easy for flutter developer to manage server side APis. Lets start with creating flutter project in firebase console. Follow below link for how to create new project in firebase. Goolge Firebase Setup Once you finish with integrating firebase in flutter follow below steps for development. How my database in firebase looks like check below, Step 1: Add below dependecies inside your pubspec.yaml   cloud_firestore: ^2.2.0   firebase_storage: ^8.1.0 Step 2: Initialize firebase     Firebase.initializeApp(); @override void initState() { // TODO: implement initState print( "init" ); Firebase. initializeApp (); _accessDatabase(); super .initState(); }       Step 3: Start writing insert, update, delete functions of firebase.     Future<List<Product>> getProduct( String categoryId, String subCategoryId) async { List<Product> productList = new List <Product>(); await FirebaseFirestore. instance .collection( "Product"

Flutter Bloc Pattern 8.0.0 Call API

Image
 Let's Learn how to call API/Webservices using bloc pattern of flutter What is bloc?  So as per official site of Bloc .  The goal of this package is to make it easy to implement the   BLoC   Design Pattern (Business Logic Component). This design pattern helps to separate  presentation  from  business logic . Following the BLoC pattern facilitates testability and reusability. This package abstracts reactive aspects of the pattern allowing developers to focus on writing the business logic. Bloc  A  Bloc  is a more advanced class which relies on  events  to trigger  state  changes rather than functions.  Bloc  also extends  BlocBase  which means it has a similar public API as  Cubit . However, rather than calling a  function  on a  Bloc  and directly emitting a new  state ,  Blocs  receive  events  and convert the incoming  events  into outgoing  states . Lets Start with code.  Create your own Bloc class class APIBloc extends Bloc<APIEvents, APIState> { // final APIRepo apiR

Learn SQLite using flutter

Image
What Is SQLite SQLite is an open source relational database, it is used to create a database, perform different operation like add, delete and remove data. SQLite setup Add the required dependencies. For this article, you’ll need the  sqflite package  for using the SQLite database. Open a simulator device or connect a real device to your system and start the app using the following command: flutter run Add your SQLite file which you want to read and write. Place your file under assets folder like below image Create DBQueries and DBProvider. DBProvider is require to connect your app with database. import 'dart:io' ; import 'package:flutter/services.dart' ; import 'package:path_provider/path_provider.dart' ; import 'package:sqflite/sqflite.dart' ; import 'package:path/path.dart' ; class DBProvider { static final DBProvider _instance = new DBProvider . internal (); factory DBProvider() => _instance ; static Database _database ; Future<

Dynamic and responsive ListView in flutter

How to create responsive and dynamic Listview? Step 1: Create Listview builder ListView.builder( physics: ScrollPhysics(parent: AlwaysScrollableScrollPhysics()), itemCount: allBillList[ 0 ].data!.length, scrollDirection: Axis.vertical, itemBuilder: (c, index1) { String data = mainList![index1]; return ListItem(data); }) Step 2: Create separate ListItem.dart file import 'package:flutter/cupertino.dart' ; import 'package:flutter/material.dart' ; class ListItem extends StatefulWidget { ListItem({ this .data}); final String? data; @override _ListItemState createState() => _ListItemState(); } class _ListItemState extends State<ListItem> { @override Widget build(BuildContext context) { // TODO: implement build return Column( children: [ Container(margin: const EdgeInsets.all( 16.0 ), child:Text(data)), BasicWidget.getDivider(), ], ); } } So if you want to delete or add items in main

Search by character in flutter

Search on type in listview in flutter  Declare 2 List one is new search result list and other is existing list. List searchresult = []; List<String> allBillList = List . empty (); initialte TextField for search in container and assign controller late TabController _tabController ; initialize controller inside init @override void initState() { _tabController = new TabController (length: 4 , vsync: this ); super .initState(); } Container ( child: Visibility ( visible: isSearching , child: Container ( height: 60.0 , padding: const EdgeInsets . all ( 8.0 ), child: TextField ( textAlign: TextAlign. left , controller: _controller , style: new TextStyle (), decoration: new InputDecoration ( border: OutlineInputBorder ( borderRadius: BorderRadius . circular ( 20.0 ), ), prefixIcon: new Icon (Icons. search , color: Colors.