See places from all over the world. A simple app built with Flutter.
Key Features • How To Use • Download • Credits • Related • License
- The Places App is a simple application built with Flutter, that showcases different places from all over the world, lets you pick your favorites and see them later (in offline mode too!).
- Dark/Light mode (Coming Soon)
- Cross platform (Web, iOS, Android and Linux)
Note: Screenshots are somewhat outdated due to the recent changes in design. Getting udpated soon.
You can download this repository and use it free for your own purposes.
- Flutter SDK: >2.0
- Dart SDK: >2.12
- Firebase Setup
- Facebook Login Setup
- [Make sure you have Flutter SDK >2.0 and Null Safety enabled]
- [Download the dependencies and place your Firebase config files in place]
- [Done]
This software uses the following API and packages:
- Locations API
- HTTP
- Provider (For State Management)
- Cached Network Image
- Cupurtino Icons
- Equatable
- Dartz (For Functional Programming Based Error Management)
- Hive (As a Local Database)
- Firebase Core
- Firebase Auth
- Google Sign In (Interface for Google Sign In API)
- Flutter Facebook Auth (As a Interface for Facebook Sign In API)
- URL Launcher (For launching urls into external apps)
- Palette Generator
- Build Runner (Dev Dependency)
- Hive Generator (Dev Dependency)
- Mockito (Dev Dependency)
- Added some extra stuff as below
- Interactive Fullscreen Image Viewer: Opens image in a interactive (zoom and pan gestures) image viewer
- Profile Details Dialog: A popup dialog that display user's name, email and profie avatar with an option to signout
- Details view that shows details of the page on a dedicated screen
- Option to Sign in as a guest: Allows user to sign in without any identification, this has no limitation on features
- Integrated a NoSQL local database (Hive) for storing user and favorite place details
- The pictures for places are not actual ones and are taken from a randome pictures API (https://picsum.photos/) which returns random picture of given size everytime
- These pictures are cached with a unique key, making a place to always have a specific image once cached
- Favorite places feature uses Local Database only (the data stored is associated with the local device only and not the cloud)
- Local database coded to be wiped out completely on sign out (making the favorite places to vanish)
- App supports three ways of signing in, two social sign ins (using Google and Facebook) and and a Guest sign in.
- 'Sign in as a Guest' option to allows user to sign in without any identification, this has no limitation on features
- Instead of being in End Drawer, the 'Signout' option is placed in the profile details popup (I thought it is better suitable place for it)
- The end drawer shows list of favorite places, each list tile is dismissable. (user can swipe it east-west to remove a place from favorites)
- Home screen shows vertically stacked list of cards containing place details from API
- Swiping west-east on a card marks it as favorite and removes it from the list, while swiping the other way just removes the card from stack
- These cards need to swiped atleast ~80% off the screen to be considered for an event, if left before reaching the threshold, the card regains its position in the stack
- Cards on home screen have two buttons (favorite and maps) as shown in the screenshots provided. Map button opens the location in google maps and favorite button marks the page as favorites and removes from the list
- The views are designed considering only the portrait mode and touch enabled devices (not for pointer or keyboard driven devices)
- The details screen has icon that shows in Pink color if place is a favorite
- Details screen also has map and wiki button
- Clicking on the picture on details screen opens the picture in interactive full screen preview
- To Team Flutter
- Google and Facebook for providing us with easy Sign In APIs
- To all developers for creating the various usefull dependencies and libraries used in this project
- The Hive Word API
- Lorem Picsum API for their great free service
- Github for the free Git platform
Coming Soon
- Covid-19 Tracker App
- The Movies App
- Word Match App
- More coming Soon
NA
GitHub @AjinkyaASK · CodePen @ajinkya-karanjikar LinkedIn @ajinkyakaranjikar