dhuma1981 / fluttergram

A working Instagram clone written in Flutter using Firebase / Firestore

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Fluttergram

A working Instagram clone written in Flutter using Firebase / Firestore

Demo

Download the release APK to try out Fluttergram

Features

  • Custom photo feed based on who you follow (using firebase cloud functions)
  • Post photo posts from camera or gallery
    • Like posts
    • Comment on posts
      • View all comments on a post
  • Search for users
  • Profile Pages
    • Follow / Unfollow Users
    • Change image view from grid layout to feed layout
    • Add your own bio
  • Activity Feed showing recent likes / comments of your posts + new followers

Screenshots

feed example upload photo example go to a profile from feed edit profile example comment and activity feed example

Dependencies

Getting started

2. Clone the repo

$ git clone https://github.com/mdanics/fluttergram.git
$ cd fluttergram/

3. Setup the firebase app

  1. You'll need to create a Firebase instance. Follow the instructions at https://console.firebase.google.com.
  2. Once your Firebase instance is created, you'll need to enable anonymous 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
  1. Create Cloud Functions (to make the Feed work)
  • Create cloud functions in your firebase console and push the function getFeed.
  • Replace the url in the _getFeed function in upload_page.dart with your cloud function url.
  1. (skip if not running on Android)
  • Create an app within your Firebase instance for Android, with package name com.yourcompany.news
  • 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 into /android/app/.
  1. (skip if not running on iOS)
  • Create an app within your Firebase instance for iOS, with your app package name
  • Follow instructions to download GoogleService-Info.plist, and place it into /ios/Runner in XCode
  • Open /ios/Runner/Info.plist. Locate the CFBundleURLSchemes key. The second item in the array value of this key is specific to the Firebase instance. Replace it with the value for REVERSED_CLIENT_ID from GoogleService-Info.plist

Double check install instructions for both

What's Next?

  • Improve Caching of Profiles, Images, Etc.
  • Better post creation, add filters to your image
  • Custom Camera Implementation
  • Animations (heart when liking image)
  • Firebase Security Rules
  • Delete Posts
  • Registration without Google SignIn
  • Direct Messaging
  • Stories
  • Clean up code

About

A working Instagram clone written in Flutter using Firebase / Firestore


Languages

Language:Dart 92.6%Language:Ruby 3.3%Language:TypeScript 2.3%Language:Objective-C 1.1%Language:Java 0.6%