Skip to content

Flutter News App with newsapi.org. Developed using the Test Driven Development.

License

Notifications You must be signed in to change notification settings

CoderJava/Flutter-News-App

Repository files navigation

Codemagic build status codecov style: effective dart License: MIT

Flutter News App

Flutter News App

News App developed with Flutter and API from News API

Versions

For Flutter News App v1, you can check this repository.

Usage

  1. Please open file constant_config.dart and change YOUR API KEY in the variable keyNewsApi with your own.
  2. In development mode, I'm used fake json server. So, the data is not realtime.
  3. Build flavor only work for Android. So, if you want to run as development mode you can use this command.
flutter run -t lib/main_development.dart --flavor development -d <device_id>

or in production mode.

flutter run --release -t lib/main_production.dart --flavor production -d <device_id>

Note: If you want to build and release this app to Play Store. Please use this command.

flutter build appbundle --release --flavor production -t lib/main_production.dart
  1. For iOS, you can use this command as development mode.
flutter run -t lib/main_development.dart -d <device_id>

or in production mode.

flutter run --release -t lib/main_production.dart -d <device_id>

For iOS, to build and release there is no configuration. Just follow the instructions from the documentation.

Feature

  • List daily news.
  • Filter daily news by category.
  • Refresh list daily news with pull to refresh style.
  • Go to detail news website.
  • Search news.
  • Dark mode support.

Technology

  1. Dio
    A powerful Http client for Dart, which supports interceptors, FormData, Request Cancellation, File Downloading, Timeout, etc.
  2. Flutter BLoC
    Flutter widgets that make it easy to implement the BLoC design pattern.
  3. Intl
    Package providers internationalization and localization facilities, including message translation, plurals and genders, date/number formatting and parsing, and bidirectional text.
  4. Url Launcher
    Flutter plugin for launching a URL in the mobile platform. Supports iOS and Android.
  5. Cached Network Image
    Flutter library to load and cache network images. Can also be used with placeholder and error widgets.
  6. Get It
    Simple direct Service Locator that allows to decouple the interface from a concrete implementation and to access the concrete implementation from everywhere in your App.
  7. Dartz
    Functional Programming in Dart. Purify your Dart code using efficient immutable data structures, monads, lenses and other FP tools.
  8. Equatable
    An abstract class that helps to implement equality without needing to explicitly override == and hashCode.
  9. Data Connection Checker
    A pure Dart library that checks for internet by opening a socket to a list of specified addresses, each with individual port and timeout.
  10. Flutter ScreenUtil
    A Flutter plugin for adapting screen and font size.
  11. Pedantic
    How to get the most value from Dart static analysis.
  12. Device Info
    Flutter plugin providing detailed information about the device (make, model, etc).
  13. Flutter SVG
    An SVG rendering and widget library for Flutter, which allows painting and displaying Scalable Vector Graphics 1.1 files.
  14. Build Runner
    Tools to write binaries that run builders.
  15. Mockito
    A mock framework inspired by Mockito.
  16. Bloc Test
    A testing library which makes it easy to test blocs.
  17. JSON Serializable
    Automatically generate code for converting to and from JSON by annotating Dart classes.
  18. Hive
    Lightweight and blazing fast key-value database written in pure Dart.