A flutter project with Implementation of a Contacts app in 4 ways (API, Custom, Preferences and Sqflite). It consist some common operations like create, edit , search and view operations on Contacts. Contacts in this project are not linked with the contacts stored in your Smart phone.
- App Logo Created Using Material Design Icons
- For Hosting used Hostinger
- Flutter - Cross Platform App Development Framework
-
Host the sample included inside phpbackend on preferred web hosting
-
Create Tables inside your database using contacts.sql
-
If you are using your own website with the steps mentioned above edit the following constant inside constants.dart
static const String _CONTACT_API_BASE_URL = "https://hafinse.pe.hu/contact/";
-
Make sure to edit DatabaseConnection.php and change following things If you are using the files available in phpbackend-
private $host = "your_host"; private $db_name = "your_database_name"; private $username = "your_user_name"; private $password = "your_password";
-
Make Sure to Use your own Google Place Search API key edit the following constant inside constants.dart
const String GOOGLE_PLACE_API_KEY = "REPLACE_IT_WITH_YOUR_OWN_API_KEY";
Not Interested in doing above steps just clone this repo and use it as it is already hosted on Free Web Host Hostinger hafinse
- Hero Animation from a Contact List Item to Contact Detail.
- Google Place Search.
- Right Swipe to Edit a Contact and Right Swipe to Delete a Contact.
- Regular Expressions.
- Form validations.
- Multiple Floating Action Button on Single Page.
- Starting a Page for Result.
- Conversion from Base64 String to Image and Image to Base64 String.
- Image Picking from Gallery and Camera.
- Call Intent Launching from Contact Details.
- Mail Intent Launching from Contact Details.
- Map Intent Launching from Contact Details
- Store and Retrieve values from APIs.
- Store and Retrieve values from Shared Preference.
- Store and Retrieve values from SQLite Database.
- Store and Retrieve values from temporary Objects.
- Navigation Drawer.
- Navigation Drawer with Multiple Type Of Views.
- Navigation Between Pages.
- Performing Operations in Background Thread.
- Background Operations Chaining.
- Integration of Rest APIs.
- Creation of REST APIs in PHP
- Serialization and DesSerialization of JSON.
- ProgressDialogs and SnackBar.
- Custom Progress Dialog & Custom Views.
- App is Working on Android and Ios Platforms.
- App Implemented in 4 Ways For all the Operations Available in the App
-> API = Integrate REST APIs Created In PHP Postman Collection Link for REST APIs
-> Custom = Used Classes and Objects
-> Preferences = Used Shared Preferences
-> Sqflite = Used Sqlite Database - Rest APIs in PHP
- Splash
- Navigation Drawer
- Contacts List
- Deleted Contacts List
- Logs
- Create Contact
- Contact Details
- Edit Contact
- Search Contacts
- Floating Action Button
- Hero Animation
- Google Place Search
Check out the repo make a pull request, raise issues and give a star if it's helpful.
Its Android CounterPart Click Here
If you are aware of Postman you can use Postman Collection for Rest API used in this repo
- https://randomuser.me/ for Contact Avatars used in the project.
- https://flutter.io/
- https://pub.dartlang.org/packages/flutter_launcher_icons
- https://pub.dartlang.org/packages/shared_preferences
- https://pub.dartlang.org/packages/http
- https://pub.dartlang.org/packages/json_annotation
- https://pub.dartlang.org/packages/path_provider
- https://pub.dartlang.org/packages/url_launcher
- https://pub.dartlang.org/packages/image_picker
- https://pub.dartlang.org/packages/json_serializable
- https://pub.dartlang.org/packages/sqflite
- https://libraries.io/pub/intl
- https://flutter.io/animations/hero-animations/
- https://flutter.io/cookbook/design/drawer/
- https://flutter.io/json/#creating-model-classes-the-json_serializable-way
- https://flutter.io/json/
- https://flutter.io/cookbook/networking/fetch-data/
- https://flutter.io/cookbook/
If you found this project useful, then please consider giving it a ⭐ on Github and sharing it with your friends via social media.
There are still some things which are pending in this project make a pull request to improve this project or suggest an idea to improve this project further by raising issues.
I welcome and encourage all pull requests. It usually will take me within 24-48 hours to respond to any issue or request. Here are some basic rules to follow to ensure timely addition of your request:
- Match coding style (braces, spacing, etc.) This is best achieved using
Reformat Code
feature of Android StudioCMD
+Option
+L
on Mac andCTRL
+ALT
+L
on Linux + Windows . - If its a feature, bugfix, or anything please only change code to what you specify.
- Please keep PR titles easy to read and descriptive of changes, this will make them easier to merge :)
- Pull requests must be made against
develop
branch. Any other branch (unless specified by the maintainers) will get rejected. - Check for existing issues first, before filing an issue.
- Make sure you follow the set standard as all other projects in this repo do
- Have fun!
Android Developer
Copyright 2018 Harsh Sharma
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.