Skip to content

A Flutter based client app functioning as a Real-Time News Forum viewer, using YCombinator's Hacker News API. Can work both using Firebase Cloud Features, or using a Local Hive Database, as user desires.

License

Notifications You must be signed in to change notification settings

Dhi13man/ycombinator_news_client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ycombinator_hacker_news

Codemagic build status

A Flutter based client application functioning as a Real-Time News Forum, using:

  1. Bloc pattern architecture and ChangeNotifier for State Management.
  2. Both Local Hive Database and Cloud Firebase-Authenticated, Firestore Database, as per need.
  3. 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.

Features

  1. Firebase based Google and Email Authentication, also with option to locally.
  2. Firestore or Hive based dynamic database for reservations with one tap sorting.
  3. Lazy Loading of posts and comments from API for efficiency.
  4. Storing user activity and favorite posts.
  5. Light and Dark Themes (toggleable by tapping icon)

Screenshots

Authentication Screen(Light): Authentication Screen(Dark):
Authentication Screen(Light) Authentication Screen(Dark)
News Feed Screen(Light): News Feed Screen(Dark):
News Feed Screen(Light) News Feed Screen(Dark)
View Post Screen(Light): View Post Screen(Dark):
View Post Screen(Light) View Post Screen(Dark)
Clicked Posts List Screen(Light): Clicked Posts List Screen(Dark):
Clicked Posts List Screen(Light) Clicked Posts List Screen(Dark)
Animated Post URL opening Example:
Animated Post URL opening Example

Dependencies Used

  1. material for UI

  2. cupertino and cupertino_icons for UI

  3. simple_animations for UI animations

  4. page_transition for page transition animations

  5. flutter_spinkit for better Animated Loading indicators.

  6. firebase_core and supporting Libraries for Cross Platform Authentication and Database backend

    1. firebase_auth for Firebase Authentication System interfacing
    2. cloud_firestore for Firebase Firestore interfacing
    3. google_sign_in for Google Sign in using Firebase
  7. hive for local NoSQL Database

    1. hive_flutter for initializing Hive when OS not known.
    2. sqflite just for getting default database storage location.
    3. path_provider for getting default database storage location in Desktop systems.
  8. bloc for better Architecture and State Management

    1. flutter_bloc for interfacing blocs faster and better in Flutter
    2. equatable for debugging blocs and proper state tracking
  9. provider for less intensive State Management

  10. flutter_form_builder for easily building forms for Authentication and Database editing front end

  11. flutter_signin_button for a pre-made Google sign-in button

  12. data_connection_checker for checking internet connections before making network calls, and throwing appropriate erros if no network

  13. url_launcher for launching URLs associated with posts.

  14. html for parsing comments, which are scraped with inline html.

About

A Flutter based client app functioning as a Real-Time News Forum viewer, using YCombinator's Hacker News API. Can work both using Firebase Cloud Features, or using a Local Hive Database, as user desires.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published