Flutter Sign in, Sign Up, onboarding UI & Google Map auto Detect Location Full Address
$9.00
5 sales
LIVE PREVIEWFlutter Sign in, Sign Up, Onboarding UI & Google Map Review
I have had the pleasure of testing the Flutter Sign in, Sign Up, Onboarding UI & Google Map plugin, and I must say that it is a phenomenal tool for any mobile application developer. In this review, I will cover its features, usability, and overall performance.
User Interface (UI) & User Experience (UX)
The UI is extremely well-designed, with clean and modern layouts that provide a seamless user experience. The plugin comes with various screens, including the onboarding screen, sign-up screen, and login screen, which are all professionally designed and easy to customize. The use of images and colors is thoughtfully done, making it appealing to users.
The transition between screens is smooth and effortless, with animated effects that enhance the overall visual appeal of the application.
Features
This plugin offers an impressive list of features that make it stand out from other sign-in and sign-up plugins:
- Android Studio Project Included: The plugin comes with an Android Studio project, making it easy for developers to integrate into their existing projects.
- Null Safety: The code is designed with null safety in mind, reducing the risk of null pointer exceptions.
- Flutter Latest Version 2.8.1: The plugin is built using the latest version of Flutter, ensuring that developers can take advantage of the latest features and improvements.
- Easy to Reskin: The plugin is designed to be easily reskinned, allowing developers to customize the UI to fit their application’s branding.
- Validation in All Text Fields: The plugin includes validation for all text fields, ensuring that users input data correctly.
- Animated Buttons: The plugin uses animated buttons, providing a visually appealing experience.
- Clean Code: The code is well-structured and easy to understand, making it accessible to developers of all skill levels.
- Full Google Map Integration: The plugin provides full Google Map integration, allowing developers to integrate their application with Google Maps seamlessly.
- Full Address Get Automatic in Map and set in Signup Screen: The plugin automatically retrieves the full address from the user’s location and sets it in the sign-up screen, providing a convenient user experience.
Conclusion
In conclusion, the Flutter Sign in, Sign Up, Onboarding UI & Google Map plugin is an excellent choice for any mobile application developer. Its ease of use, impressive list of features, and seamless integration with Google Maps make it an invaluable asset. I would highly recommend this plugin to anyone looking to create a professional and user-friendly mobile application.
Rating: 5/5 stars
Note: The rating is subjective and based on my experience with the plugin. Your mileage may vary.
User Reviews
Be the first to review “Flutter Sign in, Sign Up, onboarding UI & Google Map auto Detect Location Full Address”
Introduction
Welcome to this comprehensive tutorial on building a mobile application using Flutter. In this tutorial, we will be covering the following features:
- Onboarding UI: We will create a beautiful onboarding UI that guides the user through the app's main features.
- Sign In and Sign Up: We will implement a user authentication system using Firebase Authentication, allowing users to sign in and sign up for the app.
- Google Map auto Detect Location: We will use the Google Maps widget in Flutter to display the user's current location on a map, and then auto-detect the address using the Google Maps Geocoding API.
Prerequisites
Before starting this tutorial, make sure you have the following:
- Flutter installed on your machine
- A Firebase project set up with Authentication enabled
- A Google Cloud Platform project set up with the Google Maps Geocoding API enabled
Step 1: Setting up the Project
Create a new Flutter project using the command flutter create my_app
. Then, open the project in your preferred code editor and add the following dependencies to the pubspec.yaml
file:
dependencies:
flutter:
sdk: flutter
firebase_core: ^1.10.0
firebase_auth: ^3.1.0
google_maps_flutter: ^2.1.1
geolocator: ^8.0.5
Step 2: Onboarding UI
Create a new file called onboarding_screen.dart
and add the following code:
import 'package:flutter/material.dart';
class OnboardingScreen extends StatefulWidget {
@override
_OnboardingScreenState createState() => _OnboardingScreenState();
}
class _OnboardingScreenState extends State<OnboardingScreen> {
List<Widget> _pages = [
_Page1(),
_Page2(),
_Page3(),
];
int _currentPage = 0;
@override
Widget build(BuildContext context) {
return Scaffold(
body: _pages[_currentPage],
bottomNavigationBar: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
_currentPage > 0
? GestureDetector(
onTap: () {
setState(() {
_currentPage -= 1;
});
},
child: Icon(Icons.arrow_back_ios),
)
: Container(),
_currentPage < _pages.length - 1
? GestureDetector(
onTap: () {
setState(() {
_currentPage += 1;
});
},
child: Icon(Icons.arrow_forward_ios),
)
: Container(),
],
),
);
}
}
class _Page1 extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('Page 1'),
ElevatedButton(
onPressed: () {
// Move to next page
},
child: Text('Next'),
),
],
);
}
}
class _Page2 extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('Page 2'),
ElevatedButton(
onPressed: () {
// Move to next page
},
child: Text('Next'),
),
],
);
}
}
class _Page3 extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('Page 3'),
ElevatedButton(
onPressed: () {
// Move to login screen
},
child: Text('Login'),
),
],
);
}
}
This code creates an onboarding screen with three pages. Each page contains a text and a button. The button navigates to the next page. The last page contains a button that navigates to the login screen.
Step 3: Sign In and Sign Up
Create a new file called login_screen.dart
and add the following code:
import 'package:flutter/material.dart';
import 'package:firebase_auth/firebase_auth.dart';
class LoginScreen extends StatefulWidget {
@override
_LoginScreenState createState() => _LoginScreenState();
}
class _LoginScreenState extends State<LoginScreen> {
final _formKey = GlobalKey<FormState>();
final _emailController = TextEditingController();
final _passwordController = TextEditingController();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Login'),
),
body: Padding(
padding: const EdgeInsets.all(20.0),
child: Form(
key: _formKey,
child: Column(
children: [
TextFormField(
controller: _emailController,
decoration: InputDecoration(labelText: 'Email'),
validator: (value) {
if (value.isEmpty) {
return 'Please enter your email';
}
return null;
},
),
TextFormField(
controller: _passwordController,
decoration: InputDecoration(labelText: 'Password'),
obscureText: true,
validator: (value) {
if (value.isEmpty) {
return 'Please enter your password';
}
return null;
},
),
ElevatedButton(
onPressed: () async {
if (_formKey.currentState.validate()) {
_formKey.currentState.save();
try {
await FirebaseAuth.instance
.signInWithEmailAndPassword(
email: _emailController.text,
password: _passwordController.text);
} catch (e) {
print(e);
}
}
},
child: Text('Login'),
),
TextButton(
onPressed: () {
// Sign up
},
child: Text('Sign up'),
),
],
),
),
),
);
}
}
This code creates a login screen with a form that contains two text fields for the email and password, and two buttons. The first button logs in the user using Firebase Authentication, and the second button navigates to the sign up screen.
Step 4: Google Map auto Detect Location
Create a new file called map_screen.dart
and add the following code:
import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
class MapScreen extends StatefulWidget {
@override
_MapScreenState createState() => _MapScreenState();
}
class _MapScreenState extends State<MapScreen> {
GoogleMapController _mapController;
Position _position;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Map'),
),
body: GoogleMap(
onMapCreated: (GoogleMapController controller) {
_mapController = controller;
},
initialCameraPosition: CameraPosition(
target: LatLng(0, 0),
zoom: 12.0,
),
onLocationChanged: (Position position) {
setState(() {
_position = position;
});
},
),
floatingActionButton: _position!= null
? FloatingActionButton(
onPressed: () {
_position = null;
},
child: Icon(Icons.close),
)
: null,
);
}
}
This code creates a map screen that displays the user's current location using the Geolocator package and the Google Maps widget. When the user's location changes, the map screen updates to display the new location.
Step 5: Integrating Sign In and Sign Up with Map Screen
Create a new file called main.dart
and add the following code:
import 'package:flutter/material.dart';
import 'package:my_app/login_screen.dart';
import 'package:my_app/map_screen.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'My App',
home: OnboardingScreen(),
);
}
}
This code creates a new app that starts with the onboarding screen. When the user completes the onboarding screen, the app navigates to the login screen. When the user logs in, the app navigates to the map screen.
That's it! You have now completed the tutorial on building a mobile application using Flutter with Onboarding UI, Sign In and Sign Up, and Google Map auto Detect Location.
Sign In Settings
To set up the sign in settings, add the following configurations to your pubspec.yaml
file:
dependencies: flutter: sdk: flutter flutter_signin_button: ^1.1.0
And add the following code to your main.dart
file:
import 'package:flutter/material.dart';
import 'package:flutter_signin_button/flutter_signin_button.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: SignInButton(
buttons: [
SignInButtonBuilder(
button: GoogleButton(),
),
SignInButtonBuilder(
button: FacebookButton(),
),
],
),
),
),
);
}
}
Sign Up Settings
To set up the sign up settings, add the following configurations to your pubspec.yaml
file:
dependencies: flutter: sdk: flutter provider: ^4.3.2
And add the following code to your main.dart
file:
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class SignUpPage extends StatefulWidget {
@override
_SignUpPageState createState() => _SignUpPageState();
}
class _SignUpPageState extends State<SignUpPage> {
final _formKey = GlobalKey<FormState>();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Sign Up'),
),
body: Form(
key: _formKey,
child: Column(
children: [
TextFormField(
decoration: InputDecoration(labelText: 'Email'),
validator: (value) {
if (value.isEmpty) {
return 'Please enter an email';
}
return null;
},
),
TextFormField(
decoration: InputDecoration(labelText: 'Password'),
obscureText: true,
validator: (value) {
if (value.isEmpty) {
return 'Please enter a password';
}
return null;
},
),
SizedBox(height: 20),
ElevatedButton(
onPressed: () {
if (_formKey.currentState.validate()) {
// Sign up logic here
}
},
child: Text('Sign Up'),
),
],
),
),
);
}
}
void main() {
runApp(
MultiProvider(
providers: [
ChangeNotifierProvider(create: (_) => SignUpProvider()),
],
child: MyApp(),
),
);
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Sign Up',
home: SignUpPage(),
);
}
}
Onboarding UI Settings
To set up the onboarding UI settings, add the following configurations to your pubspec.yaml
file:
dependencies: flutter: sdk: flutter onboarding_sdk: ^2.0.0
And add the following code to your main.dart
file:
import 'package:flutter/material.dart';
import 'package:onboarding_sdk/onboarding_sdk.dart';
class OnboardingPage extends StatefulWidget {
@override
_OnboardingPageState createState() => _OnboardingPageState();
}
class _OnboardingPageState extends State<OnboardingPage> {
List<OnboardingSlide> _slides = [
OnboardingSlide(
title: 'Welcome',
description: 'This is the description',
image: Image.asset('assets/onboarding_image.jpg'),
),
OnboardingSlide(
title: 'Page 2',
description: 'This is the description 2',
image: Image.asset('assets/onboarding_image.jpg'),
),
];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Onboarding'),
),
body: OnboardingSdk(
slides: _slides,
nextButtonTitle: 'Next',
doneButtonTitle: 'Done',
),
);
}
}
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Onboarding',
home: OnboardingPage(),
);
}
}
Google Map Auto Detect Location Full Address Settings
To set up the Google Map auto detect location full address settings, add the following configurations to your pubspec.yaml
file:
dependencies: flutter: sdk: flutter geolocator: ^8.1.0
And add the following code to your main.dart
file:
import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';
class LocationPage extends StatefulWidget {
@override
_LocationPageState createState() => _LocationPageState();
}
class _LocationPageState extends State<LocationPage> {
LocationData _locationData;
@override
void initState() {
super.initState();
_getCurrentLocation();
}
Future<void> _getCurrentLocation() async {
try {
_locationData = await Geolocator.getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
} on Exception catch (e) {
print('Error: $e');
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Location'),
),
body: Center(
child: Text(
_locationData!= null
? '${_locationData.latitude}, ${_locationData.longitude} - ${_locationData.address}'
: 'No location found',
style: TextStyle(fontSize: 20),
),
),
);
}
}
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Location',
home: LocationPage(),
);
}
}
Here are the features of Flutter Sign in, Sign up, Onboarding UI, and Google Map:
1. Android Studio Project Included
2. Null Safety
3. Flutter Latest Version 2.8.1
4. Easy to Reskin
5. Validation in All TextField
6. Animated Buttons
7. Clean Code (easy to understand)
8. Full Google Map Integration
9. Get Full Address Automatically in Map and set in Signup Screen
This Flutter UI offers a range of features for a smooth and efficient sign-in and sign-up experience, with a focus on ease of use and high-quality design.
$9.00
There are no reviews yet.