Keep your conversation longer and interesting with modern-build MightChat online messaging app.
With Google and Email sign in, you can start talking to connections right away. MightChat is inspired
from WhatsApp,
Signal and WeChat-like app to offer even better user interface.
The high quality chat screen and video call function makes each conversation more bright and lively.
MightyChat uses Agora Library for Video calls.
Prerequisite
Android Studio: 4.1.2
Flutter: 2.0.0
Must follow this
Danger
To set up the Firebase app, you must first add the Google JSON file by following the
steps below, or else the app will not work.
Setup Firebase
For Firebase setup, you just need to change the
android/app/google-services.json
file.
Create a new firebase account, register your application with your package
name.
Now download the google-services.json file and replace with current.
Mighty Chat project structure and short description for each of them is as follow:
assets: images as well as appIcon are stored here.
lib: Application main file and folder are located here.
component: All the Widgets except for screen will be declared here.
models: A base class that holds some data and allows other classes to listen to
changes to that data.
services: All Firebase Services are configurations are located here.
screens: FileName contents Screen at the end of name eg. DashboardScreen.
store: It is used for State management technique MOBX.
utils: Basic ready made widgets are located here.
appColors.dart: Application colors are declared here.
appCommon.dart: Commmon functions are declared here.
appConstants.dart: All the constant values are declared here.
pubspec.yaml: Application name and other project dependencies can be found here.
User App Feature
Sign in/ Sign Up
Sign in with Google / Apple / Mobile OTP
Chat History
Group Chat
Share Media
Audio/ Video Calling
Emoji Gallery
Block/ Unblock User
Push Notification
Clear Chat
Delete Chat
Read/Unread message
Status Story
Manage Setting
Call History
Search Users
Change Font Size
Admob Integration
Change Wallpaper
Dark Mode/ Light Mode
Multi-language Support
Introduction to Flutter
Flutter is Google’s UI toolkit for building beautiful, natively compiled
applications for MOBILE, WEB, and DESKTOP from a
single codebase. It is
very
easy to learn and currently it is getting more and more popular. With this blog
post, you will learn some basic stuff about Flutter and after reading it, you
will be able to create a simple application using this technology.
Click here to check out more details about
flutter.
1 Download the following installation bundle to get the latest stable release of
the Flutter SDK:
2 Extract the zip file and place the contained flutter in the desired
installation location for the Flutter SDK (for example, C:\src\flutter; do not
install Flutter in a directory like C:\Program Files\ that requires elevated
privileges).
Step 2 : Update your path
If you wish to run Flutter commands in the regular Windows console, take these
steps to add Flutter to the PATH environment variable:
From the Start search bar, enter ‘env’ and select Edit environment variables
for your account.
Under User variables check if there is an entry called Path:
If the entry exists, append the full path to flutter\bin using ; as a
separator from existing values.
If the entry doesn’t exist, create a new user variable named Path with the
full path to flutter\bin as its value.
Info
Note that you have to close and reopen any existing console windows for these
changes to take effect.
You are now ready to run Flutter commands in the Flutter Console!
Step 3 : Run flutter doctor
From a console window that has the Flutter directory in the path (see above), run
the following command to see if there are any platform dependencies you need to
complete the setup:
c:\src\flutter>flutter doctor
If you find any issue during environment setup, please go online Click
here
Download the following installation bundle to get the latest stable release
of the Flutter SDK:
Download SDK and extract downloaded file, just double click on that. and
just copy extracted folder and paste it to your desired location (for
example, Documents\flutter).
Step 2 : Update your path
Warning
Path variable needs to be updated to access “flutter” command from terminal. you
can just update path variable for current terminal window only. and if you want
to access flutter commands from anywhere in terminal, we need to update SDK path
permanently.
To update PATH variable, we need to open terminal.
To update PATH variable for current terminal window only, then enter this command
"export PATH="$PATH:`pwd`/flutter/bin"" and hit enter key.
To update PATH variable permanently, then Open or create .bash_profile
file. to open or create that file, then enter "sudo open -e
$HOME/.bash_profile" and hit enter key.
Append below line to bash_profile file at bottom of all other content. "export
PATH="$PATH:[PATH_TO_FLUTTER_GIT_DIRECTORY]/flutter/bin"" as
[PATH_TO_FLUTTER_GIT_DIRECTORY] is actual path of SDK folder.
Run this command on terminal "source $HOME/.bash_profile" to refresh PATH
variables.
Then check whether our SDK is successfully installed or not.
You are now ready to run Flutter commands in the Flutter Console!
Run "flutter doctor" into terminal, If you are getting check list of
flutter sdk requirements, it means SDK is successfully installed on your
machine. and you can start building flutter apps on your machine.
If you find any issue during environment setup in macos, please go online Click
here
Download the following installation bundle to get the latest stable release
of the Flutter SDK:
Download SDK and extract downloaded file, just double click on that. and
just copy extracted folder and paste it to your desired location (for
example, Documents\flutter).
Step 2 : Update your path
Warning
Path variable needs to be updated to access “flutter” command from terminal. you
can just update path variable for current terminal window only. and if you want
to access flutter commands from anywhere in terminal, we need to update SDK path
permanently.
You’ll probably want to update this variable permanently, so you can
run flutter commands in any terminal session. To update PATH variable, we need
to open terminal.
Run source $HOME/.
to refresh the current window, or open a new terminal window to
automatically source the file.
Verify that the flutter/bin
directory is now in your PATH by running:
echo $PATH
Verify that the flutter
command is available by running:
which flutter
You are now ready to run Flutter commands in the Flutter Console!
Getting Started (Build & Run)
Warning
All below steps are must be followed to build and run application
Download Project
Download and find the your project folder, use your preferred IDE
(Android Studio / Visual Studio Code / IntelliJ IDEA) to run
the project.
Get Dependencies
After you loaded project successfully, run the following command in the terminal
to install all the dependencies listed in the pubspec.yaml
file in the project's
root directory or just click on Pub get
in pubspec.yaml fileif you don't
want to use command.
flutter pub get
Warning
All below steps are must be followed to build and run application
Build and Run App
Locate the main Android Studio toolbar.
In the target
selector, select an Android
device for running the app. If none are listed as available, select
Tools >
Android > AVD Manager and
create one there. For details, see Managing
AVDs.
Click the run icon in the toolbar, or invoke the menu item Run > Run.
After the app build completes, you’ll see the app on your device.
If you don’t use Android Studio or IntelliJ you can use the command line to run
your application using the following command
Warning
Below step requires flutter path to be set in your Environment variables. See
https://flutter.dev/docs/get-started/install/windows
flutter run
You will see below like screen after you have build your app successfully
Try hot reload
Flutter offers a fast development cycle with Stateful Hot Reload, the ability to
reload the code of a live running app without restarting or losing app state.
Make a change to app source, tell your IDE or command-line tool that you want to
hot reload, and see the change in your simulator, emulator, or device.
If you want add/change android code, click on Tools->Flutter->Open Android module in Android Studio Or File->Open ->open android
module inside your project
Important
Don't change package name inside android/app/src/main/AndroidManifest.xml file
Setup Firebase
For Firebase setup, you just need to change the
android/app/google-services.json
file.
Create a new firebase account, register your application with your package
name.
Now download the google-services.json file and replace with current.
For AdMob setup, you just need to change the app id in android/app/src/main/AndroidManifest.xml file
For that, you have to create a firebase account and create a new application
in AdMob. and then you will get application id.
Now, replace ca-app-pub-1399327544318575~7586962359 with your new generated application id.
Now run the application. your ads are now live.
Open Android module in Android Studio
Open Android Studio.
Select Open an existing Android Studio Project.
Open the android directory within your app.
Wait until the project has been synced successfully. (This happens
automatically once you open the project, but if it doesn’t, select Sync
Project with Gradle Files from the File menu).
Now, click on Run button.
Change Application Name
You must want to change your application name. This is how you can do.
Follow the below step.
Open /android/app/src/main/AndroidManifest.xml and specify your application
name.
Go to your project -> Tools -> Flutter -> Open for Editing in Android Studio as shown below
Open Project in New Window
Wait for while until project synchronization. After that Go to Build -> GenerateSigned
Bundle/APK...
Select Android App Bundle or APK Option as per your need. (Android App Bundle is best solution)
and click Next button.
Select Create new.. option to generate new Signed key (When you release your app First Time) and
Fill all options. Refer this link
Click Next button and you will get following screen...
Select Build variants - release and Signature versions both V1 and V2 respectively as shown above
screen shot and click Finish button.
Wait for a while until Gradle Build Running process complete.and finally you will get the
Generate Signed APK : (APKs) generated successfully . from that click on Locate option to get
Location of your Generate Signed APK Key.
Configuration & Customization Admim Panel
Create Firebase Web app
1. for firebase configuration goto ->web ->index.html
2. goto lib/main.dart line no 32 to 41 (firebaseoptions) replace with your firebase data.
Change App Name
Please go to lib -> utils -> config.dart and change the below data.
Change your app name
const appName = 'YOUR APP NAME';
Add Admin
Please go to lib -> utils -> config.dart and change the below data.
const NAME = '';
const EMAIL = ';
const CONTACT_NUMBER = '';
const PASSWORD = '';
Change Fev Icon
Please goto -> web -> replace favicon.png with your favicon.
Steps For hosting Admin on Firebase
FOLLOW BELOS STEP FOR A HOSTING ADMIN PANEL ON THE FIREBASE
1. npm install -g firebase-tools
2. if firebase is not login with your terminal then firebase login
3. firebase init
- are you ready to proceed - > y
- select section to arrow down up and for select Use SPACEBAR to select features and enter
- build/web
- rewrite index file -> y
- auto builds and deploy github->n
- overwites-> y
4. flutter build web --no-tree-shake-icons
5. firebase deploy
You got your hosting url
iOS Configuration
Open Project in Xcode
Open Xcode.
Select Open another Project.
Open the iOS directory within your app.
Now, click on Done button.
Change Bundle Name
Select your project file icon in Group and files panel.
Then Select Target -> Info Tab.
At last change Bundle Name.
Change Bundle Identifier.
Bundle Id is a unique Identifier of your of app on iOS and MacOS. iOS and MacOS
use it to recognise updates to your app. The identifier must be unique for your
app.
Select your project file icon in Group and files panel.
Select General Tab.
After Select General tab you can see the details of your application.
In Identity section, rename your Bundle identifier.
Change App Icons
see How to Generate App Icons?
In Group and files panel find “Assets.xcassets” folder.
In Assets.xcassets folder replace AppIcon.
Change Admob App Id
Open Xcode,Select the Info.plist from the file Manager.
Change the GADApplicationIdentifier value.
<key>GADApplicationIdentifier</key>
<string>Add your Admob appId</string>
Google SignIn:-
In iOS Integration
First register your application.
Make sure the file you download in steps 1 is name
GoogleService-Info.plist.
Move or Copy the GoogleService-Info.plist into the " [My_project]
/ ios / Runner".
Open Xcode, the right-click on the Runner directory and select Add
files into Runner.
Select the GoogleService-Info.plist from the file Manager.
A Dialog will show up and ask you to select the targets, select the
Runner.
Then add the CFBundleURLTypes attritubes below into the "
[My_project] / ios / Runner/ Info.plist " file.
Then Run your Project.
Open Xcode and then open Info.plist file.
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
< TODO Replace this value:>
< Copied from GoogleService-Info.plist key REVERSED_CLIENT_ID>
<string>"Enter your REVERSED_CLIENT_ID"</string>
</array>
</dict>
</array>
Apple SignIn:-
Open your project in Xcode.
Goto the Project Editor choose your target then Open the Signing &
capabillitties panel
Click the Library button (+) to open the Capabilities library (or choose
Editor > Sign in with Apple).
Then Run your Project.
Firebase Configuration
Create a Firebase project
Before you can add Firebase to your Flutter app, you need to create a Firebase
project to connect to your app. Visit Understand Firebase Projects to learn more about Firebase
projects.
Warning
If you're releasing your Flutter app on both iOS and Android, register both the
iOS and Android versions of your app with the same Firebase project.
Enter your app's package name in the Android package name field.
Warning
Make sure that you enter the ID that your app is actually using. You cannot
add or modify this value after you register your app with your Firebase
project. Both applicationId should be matched.
Click Register app.
Add a Firebase configuration file
Click Download google-services.json to obtain your Firebase Android config
file (google-services.json).
Move your config file into the android/app directory of your Flutter app.
Follow the instruction for enabling Firebase services in your Android app here
Enable the Google, Phone and Apple SignIn
In Firebase console, open the Authentication section.
On the Sign-in Method tab, enable the Google Sign method and click save same
as Apple and Phone signIn method.
Add your debug and release SHA1 Key. Follow this link .
Create an Agora Account and Obtain an App ID
1. Create a developer account at agora.io. Once you
finish the sign-up process, you are redirected to the dashboard.
2. Navigate in the dashboard tree on the left to Projects > Project List.
3. Copy the app ID that you obtain from the dashboard into a text file. You will use this when you
launch the app
Update Id in application
4. Change the agoraVideoCallId in lib/utils/AppConstants.dart to the new app id you
copied.
5. run the application
How to Make admin
Step 1 : Register yourself using your email address and a password from the user app.
Danger
To gain admin access, you must first register with your email address. Google Sign will not
function.
Step 2 : After successfully creating the user, navigate to the firebase console and
locate your document in the user collection. Change the value of userRole to admin in that
document.
Info
If you want to create a user for testing purposes, set the isTester property to true in
that user document.
Step 3 : Now, open the admin panel and sign in with your admin credentials.
Flutter Configuration
Setup AdMob
For AdMob setup, you just need to change the app id, banner id and
interstitial id.
For that, you have to create a firebase account and create a new application
in AdMob. and then create two ad unit.
And replace mAdMobAppId,
mAdMobBannerId,
mAdMobInterstitialId ids
Now run the application. your ads are now live.
Change App Color
Please go to lib/utils/AppColors.dart file change value primaryColor at line no.3
Setup OneSignal
1. Create a OneSignal Account
One Signal is used for send the push notification into mobile or web. for more detail about
OneSignal Documentation.
Follow below steps
Click in to New App/Website button.
Enter the App/website name in AppName Field.
Select one platform configure, for Example(iOS,Android,Web push).
After Select Any One platform to configure. we can get Firebase Server Key and Firebase Sender
Id. If you can select iOS platform then you can required the production Push Certificate.(.p12
Certificate) and then get Firebase server Key. Then Click on Save Button.
After get Firebase Server key and Sender ID. Goto the firebase app and in left
side you see Project overview and settings click on it and select Project Settings. and In
Setting. select Cloud messaging. and Enter Server Key and Sender ID and at the end Click into
Save Button.
2. Configure OneSignal on App
We have already added code for SDK and other configuration for oneSignal
push notification.
Open lib/utils/AppConstants.dart file and your
OneSignal app ID.
For Android and iOS:-
Follow instruction for OneSignal Configure Here.
3. Admin configration
Step 1. Locate the constant file (i.e. lib->utils->AppConstants.dart) file.
Step 2. Find adminEmail and enter your admin email id you are using.
Step 3. Restart the app.
Update the existing code with new release
Special Notes
As per envato policy installation, setup and configurations or modification are not included
in free
support. Free support is only for any bug/ error in original code. we do not provide
installation
and customization support in FREE SUPPORT.
Still, We are providing steps for How to update future release code to existing source code
for your
knowledge purpose.
PLEASE DO NOT CREATE TICKETS IF YOU FACE ANY ISSUE DURING UPDATE YOUR CODE. WE WILL NOT
PROVIDE ANY
SUPPORT ON THAT.
How to update future release code to existing source code
If you want which file changes are on the latest updated version then you have to manage the git
repository by yourself.
For First time: Initial project downloaded from codecanyon server.
In your dashboard, click the green New project button or use the plus icon in the navigation
bar. This opens the New project page.
On the New project page -> Create a blank project.
Step 3: Clone your project to your local system
1. Once project is created on your gitlab server. You have to clone the project to your local
system. You can clone it with the command line.
2. git clone “repository path”
3. Copy your project url and clone into your exiting system
4. Once successfully clone then system will create a folder on your system
Step 4: Download project from codecanyon serverStep 5: Copy/paste your initial downloaded project to clone directories.
Once successfully downloaded project from codecanyon, copy/paste your downloaded project into clone
directories
Note
Only orignal source code is put here.
Step 6: Commit and push to gitlab server
Onces copy/paste your changes to clone directres, you have to push all files to your gitlab server.
For that use the following commands.
Before commit to server directores, you have to remove below folder from your project
1. build
2. .idea
3. .gradle
After That follow below steps
1. Goto inside your clone directory project
2. Add your all files with “git add .” command
3. Now commit your changes with below command
4. git commit -m ‘initial commit’
Note
Write your latest version message instead of “initial commit”.
5. Push your changes to server with below command
“git push” And provide you gitlab credential details
6. Check your all changes to gitlab server
For Update existing code (If Already have old version of project)
Note
If you remove the project from the local system then clone the project again from your
gitlab server. Follow the same above Step 3: Clone your project to your local system
Step 1: Download the latest version from codecanyon server.
Once you will received mail for updates. Just download latest code from codecanyon server.
Step 2: Copy/paste your initial downloaded project to clone directories.
Once successfully downloaded project from codecanyon, copy/paste your downloaded project into clone
directories
Note
Only orignal source code is put here.
Step 3: Commit and push to gitlab server
Follow same Step 6: Commit and push to gitlab server
Step 4: Check updated files
After committing your latest changes. Goto the gitlab project dashboard and click on the commit link.
Click on link which you have commit message on above steps 3
Now check the all changed file.
Click on “XYZ changed file” to see which file has been changed.
No matching client found for package name
The error is "package_name" in google-services.json is not matching with your
"applicationId" in app gradle.
Just make sure the package_name and applicationId both
are
same.
You can also Download any version(including
older)
from here (For Mac, Windows, Linux)
Use the SDK path in your future projects
Dependency Error
When you run the application and you see error like this
Running "flutter pub upgrade" in chat...
The current Flutter SDK version is 1.17.5.
Because chat depends on flutter_svg >=0.18.0 which requires Flutter SDK version
>=1.18.0-6.0.pre <2.0.0, version solving failed. pub upgrade failed (1; Because
chat depends on flutter_svg >=0.18.0 which requires Flutter SDK version
>=1.18.0-6.0.pre <2.0.0, version solving failed.) Process finished with exit code 1
Error Possibilities:
Generally, this error occurs when
Error Possibilities
Generally, this error occurs when
one of your third party package version is not supported.
your Flutter SDK version not matched with one of your third party packages.
for
ex, your current Flutter SDK version is 1.20.0 and third party package
targets
Flutter SDK version 1.17.0.
or upgrade your flutter version if you don't have the latest with
flutter
upgrade command.
After implementing the above solution, run the below command in the terminal.
flutter pub get
Unsupported gradle version 7.*.*
Message: Unsupported gradle version 7.*.*
Solution:
1. Open project_root_directory/android in Android Studio
2. Wait for indexing
3. Now run your application from android module
Unsupported Android Plugin version: 7.*.*
Message: Unsupported Android Plugin version: 7.*.* error on build
This error occurs due to android plugin version.
Solution: Open Android module -> build.gradle(project level) -> sync now
FAQ
User Change Log
Version 5.0.0 – 12 Nov 2024
Added: Flutter 3.24.3 Support
Added: Copy Text or Link Function
Added: Link Highlight and Click Functionality
Added: Delete-For-All & Delete-For-Me Options in Messages
Added: Edit Function for Text Messages
Added: Incoming Call Ringtone Player
Improved: Image Messages
Improved: Video Messages
Improved: Message Read Receipts
Updated: Support for All File Types in Document Messages
Fixed: General Bug Fixes
Version 4.6.3 – 28 Feb 2024
Added: Emoji
Added: Camera option (Story, Profile Picture, Attachments)
Added: Block list
Added: Unread chat count in group
Added: Blue tick in chat list
Added: Group notification
Added: Make Multiple admin in group
Update: Ui Enhancement
Update: Code Enhancement
Update: Migrate all dependencies to latest Flutter SDK version 3.16.5
Update: Migrade one-signal depandancy
Fixed: Location Permission
Fixed: Chat list issue
Fixed: Story view
Fixed: System default theme
17 Nov 2022
Bug Fixed
Version 4.5.1 – 16 Sep 2022
Added: Account Deletion
Fix Minor Bugs
Version 4.0.0 – 28 June 2022
Added: QR Scanner for web
Added: Message Encryption
Added: Share Voice Note
Added: Delete & Clean Group Chat
Fix Minor Bugs
Upgrade to the latest Flutter SDK 3.x
Version 3.0.2 – 11 Apr 2022
Fixed: Google playstore rejection issue
Version 3.0.0 – 22 Mar 2022
Group chat
Create Group
Add participant to group
Remove participant from group
Leave Group
Share attachment
Update group subject and group image
View group information
Share multiple attachment
Share document & current location
Upgraded dependencies
Upgraded to the Flutter 2.10 SDK
UI enhancement
Bug fixed
Version 2.4.3 – 22 Dec 2021
Upgraded to latest flutter 2.8
Bug Fixes and code enhancement
Version 2.4.1 – 07 Dec 2021
Updated to latest Gradle 7.0
Can't signup to Mighty chat without accepting Terms & Condition and Privacy Policy
Version 2.4.0 – 25 Nov 2021
New Feature: Now you can block and report user from app
Introducing Admin panel to manage reported users
UI improvements
Performance Improvement and code enhancement
Library Updated
Version 2.2.0 – 18 Nov 2021
Accept and reject user request implement
Bug Fixed
Version 2.1.0 – 2 Nov 2021
Add sticker in chat functionality
Add Story functionality
Version 2.0.2 – 10 Aug 2020
Packages Updated
Version 2.0.1 – 22 June 2020
Permission library issue fixed
Version 2.0.0 – 22 May 2020
Completed the migration to Flutter 2.0 Null Safety.
Updated Video Call Screen UI.
Sorting user chat list by most recent message.
Bug Fixes
Performance Enhancement
Version 1.2.0 – 5 May 2020
Now Supports OTP Login.
Attachment support (Audio,Video,Image).
Supports Voice Call.
Bug fixes
Added French Language
Version 1.1.0 – 30 Apr 2020
One Signal for one to one notification
Add Forgot Password feature
Support Apple Sign in
Attachment (Images upload)
Language Support
Dark Mode Issue solved
Bug Fixes
Chat Delete and clear option
Delete Log
Version 1.0 – 24 Apr 2020
Initial Release
Admin Change Log
Version 3.0.0 – 12 Nov 2024
Added: Flutter 3.24.3 Support
Version 2.0.0 – 28 Feb 2024
Added: Admin panel
Added: Add Stickers and wallepaper
Added: Configure settings
Added: Configuration Onesignal keys
Added: Configure Admob keys
Update: Ui Enhancement
Update: Code Enhancement
Update: Migrade all Dependanceis in latest Flutter SDK version 3.16.5
Version 1.0.1 – 26 Nov 2021
UI Improvements
Dark Mode bug solved
Version 1.0.0 – 25 Nov 2021
Initial Release
Sign In/ Sign Up for users
Can active and deactivate user
Change password
Forgot Password
Edit profile
MeetMighty Help & Support
We like to hear you out when you get stuck or encounter difficulty with our products. As soon as you
buy one of our products – you can open a support ticket and share your concern right away.
It is recommended that before submitting a ticket you take a close look at product documentation
(Docs folder in the
archive you have downloaded from Themeforest/Codecanyon). To get technical support and assistance,
you need to have a valid purchase code. You will find this when you SignIn your
Codecanyon/Themeforest “Download” page.
Click on the product’s download link.
Please Note:
Free support policy includes troubleshooting, technical assistance with the product only.
It does not include any customization, additional features integration or concerns about third-party
plugins compatibility.
But, support is applied to plugin(s) we have developed and integrated ourselves. We appreciate your
understanding!
If you need assistance and information on purchased product that is not covered in documentation,
post them on our support portal at https://support.meetmighty.com/
You can expect answer within 24-48 hours, usually as soon as possible in the order they were
received.
Additionally, if any support ticket has no response from the item owner for more than 7 days,
that support ticket will be closed by default. However, if you need further assistance, you can
create a new ticket.
All support requests are being processed on business days (Monday to Saturday) from 9:00 to 18:00
(GMT +05.30). We are in GMT+5:30 time zone.
We address all the support queries 6 days weekly on the first-come, first-solve basis (Sundays off).
Do you have any pre-sales questions or concerns,
please write to us via our website contact page or email us at [email protected].
We like getting positive feedback from our customers, and this is why we do our best to earn it!
Write a review: https://codecanyon.net/downloads
Change Log
Update your application to give for the best experience – check out what’s new and improved.
Thank you