A Flutter based client application functioning as a Real-Time News Forum, using:
- Bloc pattern architecture and ChangeNotifier for State Management.
- Both Local Hive Database and Cloud Firebase-Authenticated, Firestore Database, as per need.
- Utilizes Material Design elements for UI building, as well as various other Open Source Packages as listed below.
Acts as a client for YcCombinator's Hacker News API.
Download the Android App .apk
directly, or compressed version from Releases Page.
- Firebase based Google and Email Authentication, also with option to locally.
- Firestore or Hive based dynamic database for reservations with one tap sorting.
- Lazy Loading of posts and comments from API for efficiency.
- Storing user activity and favorite posts.
- Light and Dark Themes (toggleable by tapping icon)
Authentication Screen(Light): | Authentication Screen(Dark): |
---|---|
News Feed Screen(Light): | News Feed Screen(Dark): |
---|---|
View Post Screen(Light): | View Post Screen(Dark): |
---|---|
Clicked Posts List Screen(Light): | Clicked Posts List Screen(Dark): |
---|---|
Animated Post URL opening Example: |
---|
-
material for UI
-
cupertino and cupertino_icons for UI
-
simple_animations for UI animations
-
page_transition for page transition animations
-
flutter_spinkit for better Animated Loading indicators.
-
firebase_core and supporting Libraries for Cross Platform Authentication and Database backend
- firebase_auth for Firebase Authentication System interfacing
- cloud_firestore for Firebase Firestore interfacing
- google_sign_in for Google Sign in using Firebase
-
hive for local NoSQL Database
- hive_flutter for initializing Hive when OS not known.
- sqflite just for getting default database storage location.
- path_provider for getting default database storage location in Desktop systems.
-
bloc for better Architecture and State Management
- flutter_bloc for interfacing blocs faster and better in Flutter
- equatable for debugging blocs and proper state tracking
-
provider for less intensive State Management
-
flutter_form_builder for easily building forms for Authentication and Database editing front end
-
flutter_signin_button for a pre-made Google sign-in button
-
data_connection_checker for checking internet connections before making network calls, and throwing appropriate erros if no network
-
url_launcher for launching URLs associated with posts.
-
html for parsing comments, which are scraped with inline html.