Internship project - Flutter - April 2021
The main goal of this project was to provide users a way to sign up, sign in to the application, see the list of news, open and read news, browse news by date, categories, sources, keywords, etc., save favorite ones and see them later.
Used News API for fetching news and Firebase for authentication.
Support mobile (Android & IOS), web, and desktop (macOS) app.
-
Clone the repo
$ git clone https://github.com/Vukan-Markovic/news9.git $ cd news9
-
Setup Firebase app
-
You'll need to create a Firebase instance. Follow the instructions at Firebase console.
-
Once your Firebase instance is created, you'll need to enable Google and Email/Password authentication:
- Go to the Firebase Console for your new instance
- Click "Authentication" in the left-hand menu
- Click the "Sign-in method" tab
- Click "Google" and enable it
- Click "Email/Password" and enable it.
-
For Android:
-
Create an app within your Firebase instance for Android, with same package name as this app.
-
Run the following command to get your SHA-1 key:
keytool -exportcert -list -v \ -alias androiddebugkey -keystore ~/.android/debug.keystore
-
In the Firebase console, in the settings of your Android app, add your SHA-1 key by clicking "Add Fingerprint".
-
Follow instructions to download
google-services.json
. -
Place
google-services.json
intonews9/android/app/
.
-
-
-
For IOS:
-
Create an app within your Firebase instance for iOS, with same package name as this app.
-
Follow instructions to download
GoogleService-Info.plist
, and place it intonews9/ios/Runner
in XCode. -
Open
news9/ios/Runner/Info.plist
. Locate the second CFBundleURLSchemes key. The item in the array value of this key is specific to the Firebase instance. Replace it with the value for REVERSED_CLIENT_ID fromGoogleService-Info.plist
.
-
-
For macOS:
- Place same
GoogleService-Info.plist
intonews9/macos/Runner
in XCode.
- Place same
-
For Web:
-
Create an app within your Firebase instance for web, with same package name as this app.
-
Create file
firebase_config.js
atnews9/web
and follow instructions to initialize firebase config variable for the web here.
-
-
-
Run the app
$ flutter run