Fwitter – Twitter clone in flutter
A working Twitter clone written in Flutter using Firebase auth,realtime,firestore database and storage.
Download App
Features
- App features is mentioned at project section Click here
- Messaging chat section status can be seen at here
? Fwitter app now uses both firebase realtime
and firestore
database.?
- In branch firetore Fwitter uses
Firestore
database for app. - In branch Master and realtime_db Fwitter uses
Firebase Realtime
database for app.
Dependencies
Click to expand
Screenshots
Welcome Page | Login Page | Signup Page | Forgot Password Page |
---|---|---|---|
Home Page Sidebaar | Home Page | Home Page | Home Page |
---|---|---|---|
Compose Tweet Page | Reply To Tweet | Reply to Tweet | Compose Retweet with comment |
---|---|---|---|
Tweet Detail Page | Tweet Thread | Nested Tweet Thread | Tweet options |
---|---|---|---|
Notification Page | Notification Page | Notification Page | Notification Setting Page |
---|---|---|---|
Profile Page | Profile Page | Profile Page | Profile Page |
---|---|---|---|
Select User Page | Chat Page | Chat Users List | Conversation Info Page |
---|---|---|---|
Search Page | Search Setting Page | Tweet Options – 1 | Tweet Options – 2 |
---|---|---|---|
Setting Page | Account Setting Page | Privacy Setting Page | Privacy Settings Page |
---|---|---|---|
Content Prefrences Page | Display Setting Page | Data Settings Page | Accessibility Settings |
---|---|---|---|
Users who likes Tweet | About Setting Page | Licenses Settings | Settings |
---|---|---|---|
Getting started
- Project setup instructions are given at Wiki section.
Directory Structure
Click to expand
|-- lib
| |-- helper
| | |-- constant.dart
| | |-- customRoute.dart
| | |-- enum.dart
| | |-- routes.dart
| | |-- theme.dart
| | |-- utility.dart
| | '-- validator.dart
| |-- main.dart
| |-- model
| | |-- chatModel.dart
| | |-- feedModel.dart
| | |-- notificationModel.dart
| | '-- user.dart
| |-- page
| | |-- Auth
| | | |-- forgetPasswordPage.dart
| | | |-- selectAuthMethod.dart
| | | |-- signin.dart
| | | |-- signup.dart
| | | |-- verifyEmail.dart
| | | '-- widget
| | | '-- googleLoginButton.dart
| | |-- common
| | | |-- sidebar.dart
| | | |-- splash.dart
| | | |-- usersListPage.dart
| | | '-- widget
| | | '-- userListWidget.dart
| | |-- feed
| | | |-- composeTweet
| | | | |-- composeTweet.dart
| | | | |-- state
| | | | | '-- composeTweetState.dart
| | | | '-- widget
| | | | |-- composeBottomIconWidget.dart
| | | | |-- composeTweetImage.dart
| | | | '-- widgetView.dart
| | | |-- feedPage.dart
| | | |-- feedPostDetail.dart
| | | '-- imageViewPage.dart
| | |-- homePage.dart
| | |-- message
| | | |-- chatListPage.dart
| | | |-- chatScreenPage.dart
| | | |-- conversationInformation
| | | | '-- conversationInformation.dart
| | | '-- newMessagePage.dart
| | |-- notification
| | | '-- notificationPage.dart
| | |-- profile
| | | |-- EditProfilePage.dart
| | | |-- follow
| | | | |-- followerListPage.dart
| | | | '-- followingListPage.dart
| | | |-- profileImageView.dart
| | | |-- profilePage.dart
| | | '-- widgets
| | | '-- tabPainter.dart
| | |-- search
| | | '-- SearchPage.dart
| | '-- settings
| | |-- accountSettings
| | | |-- about
| | | | '-- aboutTwitter.dart
| | | |-- accessibility
| | | | '-- accessibility.dart
| | | |-- accountSettingsPage.dart
| | | |-- contentPrefrences
| | | | |-- contentPreference.dart
| | | | '-- trends
| | | | '-- trendsPage.dart
| | | |-- dataUsage
| | | | '-- dataUsagePage.dart
| | | |-- displaySettings
| | | | '-- displayAndSoundPage.dart
| | | |-- notifications
| | | | '-- notificationPage.dart
| | | |-- privacyAndSafety
| | | | |-- directMessage
| | | | | '-- directMessage.dart
| | | | '-- privacyAndSafetyPage.dart
| | | '-- proxy
| | | '-- proxyPage.dart
| | |-- settingsAndPrivacyPage.dart
| | '-- widgets
| | |-- headerWidget.dart
| | |-- settingsAppbar.dart
| | '-- settingsRowWidget.dart
| |-- state
| | |-- appState.dart
| | |-- authState.dart
| | |-- chats
| | | '-- chatState.dart
| | |-- feedState.dart
| | |-- notificationState.dart
| | '-- searchState.dart
| '-- widgets
| |-- bottomMenuBar
| | |-- HalfPainter.dart
| | |-- bottomMenuBar.dart
| | '-- tabItem.dart
| |-- customAppBar.dart
| |-- customWidgets.dart
| |-- newWidget
| | |-- customClipper.dart
| | |-- customLoader.dart
| | |-- customProgressbar.dart
| | |-- customUrlText.dart
| | |-- emptyList.dart
| | |-- rippleButton.dart
| | '-- title_text.dart
| '-- tweet
| |-- tweet.dart
| '-- widgets
| |-- parentTweet.dart
| |-- retweetWidget.dart
| |-- tweetBottomSheet.dart
| |-- tweetIconsRow.dart
| |-- tweetImage.dart
| '-- unavailableTweet.dart
|-- pubspec.yaml
Contributing
If you wish to contribute a change to any of the existing feature or add new in this repo,
please review our contribution guide,
and send a pull request. I welcome and encourage all pull requests. It usually will take me within 24-48 hours to respond to any issue or request.
Created & Maintained By
Sonu Sharma (Twitter) (Youtube) (Insta) (Dev.to)
If you found this project helpful or you learned something from the source code and want to thank me, consider buying me a cup of ☕
You can also nominate me for Github Star developer program
https://stars.github.com/nominate