{"id":2640,"date":"2023-03-01T02:23:19","date_gmt":"2023-03-01T08:23:19","guid":{"rendered":"https:\/\/www.armia.com\/blog\/?p=2640"},"modified":"2025-05-12T04:18:11","modified_gmt":"2025-05-12T10:18:11","slug":"react-native-chatsdk-for-web-mobile-application","status":"publish","type":"post","link":"https:\/\/www.armia.com\/blog\/react-native-chatsdk-for-web-mobile-application\/","title":{"rendered":"React Native Chat SDK For Web and Mobile Application"},"content":{"rendered":"\r\n<h2><b>What is React-Native Armia Chat-SDK<\/b><\/h2>\r\n<p><span style=\"font-weight: 400;\">The React Native<\/span><a href=\"https:\/\/www.armia.com\/chatsdk.php\"> <span style=\"font-weight: 400;\">Chat SDK<\/span><\/a><span style=\"font-weight: 400;\"> makes it easy to build in-app chat like WhatsApp, Facebook messenger, Signal app, which can easily be done through Chat SDK. Users can easily add chat functionality on their mobile as well as on desktop. The react native armia chat SDK library includes components you need to build a functioning chat user experience in React with one-to-one and group chat support.<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">Users can send audio and video messages, exchange photos and files. It uses Firebase as the backend service. You can download the FREE SDK to save months of development time from your project using the Chat SDK. If you are hosting in your own infra, there is no cost. If you want to host it in our infrastructure, there would be a hosting cost for more than 1000 chats per month. <\/span><a href=\"https:\/\/www.armia.com\/blog\/how-sdk-is-different-from-an-api\/\"><span style=\"font-weight: 400;\">How does SDK work<\/span><\/a><span style=\"font-weight: 400;\"> within a mobile app?<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">The SDK takes care of the basic functionality requirements for any chat application.<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">In this project, We have used the following Firebase services.<\/span><\/p>\r\n<ul>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Firebase Authentication: For authentication user by phone number<\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Firebase RealTime Database: That&#8217;s we for handle real-time chat<\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Firebase Storage: That&#8217;s we use to store user profile image<\/span><\/li>\r\n<\/ul>\r\n<p><b>How To Start?<\/b><\/p>\r\n<p><span style=\"font-weight: 400;\">Integrating the <a href=\"https:\/\/go.armia.com\/react_native_chat_sdk\">react-native armia chat-SDK<\/a> library into your app is a simple process. To smoothen your development, we&#8217;ve attempted to create very clear, concise documentation of react-native Armia chat-SDK. Before we start, this tutorial assumes that you have the following things installed and configured on your machine:<\/span><\/p>\r\n<ul>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Visual studio code<\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Node<\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Android Studio<\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">XCode<\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Firebase Setup<\/span><\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">For Firebase setup, you need to follow these <\/span><a href=\"https:\/\/firebase.google.com\/docs\/android\/setup\"><span style=\"font-weight: 400;\">instructions<\/span><\/a><\/p>\r\n<h4><b>Benefits<\/b><\/h4>\r\n<ul>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Free to download and Use<\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">React Native SDK<\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Lightweight Chat SDK<\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">User to user chat<\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Group chat<\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Audio and Video messaging<\/span><\/li>\r\n<\/ul>\r\n<h3><b>Quickstart with react-native Armia chat-SDK<\/b><\/h3>\r\n<p><span style=\"font-weight: 400;\">STEP 1 &#8211; Creating a new Armia application\u00a0<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">STEP 2 &#8211; Installing the <a href=\"https:\/\/go.armia.com\/react_native_chat_sdk\">Armia Chat SDK<\/a><\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">STEP 3 &#8211; Initializing the Armia Chat SDK<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">STEP 4 &#8211; Connecting to the Database<\/span><\/p>\r\n<p><b>Setting up a sample application<\/b><\/p>\r\n<ul>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Firebase setup<\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Application setup<\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Using components and functions<\/span><\/li>\r\n<\/ul>\r\n<p><b>Advanced<\/b><\/p>\r\n<p><b><i>Folder structure\u00a0<\/i><\/b><\/p>\r\n<p><span style=\"font-weight: 400;\">All the strings, colors, fonts, async storage, utility functions are declared under the utils folder.<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">Common styles are declared under the theme folder. MobX is used for state management. The DB communication functions are under the store folder. Screens,Images,navigation functions,components,chat components are separately arranged into folders.<\/span><\/p>\r\n<p><b>Steps to be followed<\/b><\/p>\r\n<ol>\r\n<li><span style=\"font-weight: 400;\"> The directory structure should be followed and Each file should be kept in the corresponding directory only.<\/span><\/li>\r\n<li><span style=\"font-weight: 400;\"> Files should be correctly named. Some of the name formats are mandatory, while others are for better readability and cleanliness.<\/span><\/li>\r\n<li><span style=\"font-weight: 400;\"> JavaScript code should be written in .js files.<\/span><\/li>\r\n<li><span style=\"font-weight: 400;\"> Common JS logic can be written in app.js, whereas page-specific JS can be in separate JS files.<\/span><\/li>\r\n<li><span style=\"font-weight: 400;\"> All styles should be written in .css files and kept in the styles folder in the project directory.<\/span><\/li>\r\n<\/ol>\r\n<h2><b>React Native Chat SDK Features<\/b><\/h2>\r\n<p><span style=\"font-weight: 400;\">The react-native chat-SDK library provides many features like\u00a0<\/span><\/p>\r\n<ul>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Login<\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Signup<\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Profile<\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Search users<\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Thread List<\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Thread Details<\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Create group<\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Group details<\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Edit group<\/span><\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">Thread List, Thread details, Single contact list items are designed as components. It can be applied to your projects. The functions for login,signup,search,listing,create group,group details etc are also provided.<\/span><\/p>\r\n<p><b><i>ChatWithMe\u00a0<\/i><\/b><\/p>\r\n<p><span style=\"font-weight: 400;\">ChatWithMe is a simple one-to-one and group chat application. The application starts with a login page.<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">You can sign up\/log in to the application using your email and password. The home page contains a chat list, options to view profiles, search users, create groups.<\/span><\/p>\r\n<p><b><i>One to one chat<\/i><\/b><\/p>\r\n<p><span style=\"font-weight: 400;\">We can search for users and chat with them. Once the user started chatting, it will be added to the home page list.<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">The list will show profile image, name, unread count, online status, last message,<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">last message time. We can go to a details page. It contains profile image, name, last seen, messages, message bar to send messages, etc.<\/span><\/p>\r\n<p><b><i>Group chat<\/i><\/b><\/p>\r\n<p><span style=\"font-weight: 400;\">We can create a group using the option provided on the home page. Group name, image, and at least one member are mandatory. Admin will be the person who created the group. The group will be added to the home page list. It contains profile image, name, last seen, messages, message bar to send messages, etc. We can see the group info by clicking on the title bar. We can edit the group info if we have created the group.\u00a0<\/span><\/p>\r\n<p><b><i>Requirements<\/i><\/b><\/p>\r\n<p><span style=\"font-weight: 400;\">The backend service used is Firebase. So firebase configuration should be done. You can follow this <\/span><a href=\"https:\/\/firebase.google.com\/docs\/android\/setup\"><span style=\"font-weight: 400;\">instruction<\/span><\/a><\/p>\r\n<p><span style=\"font-weight: 400;\">for integration.<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">Steps to be followed<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">If you want to make changes to the SDK in node modules, you have to make changes to the SDK project and publish it to NPM as armia systems. If you are integrated the SDK as a module, you can directly make changes to the<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">file.<\/span><\/p>\r\n<p><b>Features<\/b><\/p>\r\n<p><span style=\"font-weight: 400;\">The ChatWithMe app provides some features like\u00a0<\/span><\/p>\r\n<ul>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><i><span style=\"font-weight: 400;\">Login<\/span><\/i><span style=\"font-weight: 400;\">\u00a0<\/span><\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">Email and password are required to log in to the app. After login, it will proceed to the home page.<\/span><\/p>\r\n<ul>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><i><span style=\"font-weight: 400;\">Signup<\/span><\/i><\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">Email and password are required to sign up for the app. After sign up, it will proceed to the home page.<\/span><\/p>\r\n<ul>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Profile and edit profile<\/span><\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">Image, name can be viewed and edited through profile view<\/span><\/p>\r\n<ul>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><i><span style=\"font-weight: 400;\">Search users<\/span><\/i><\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">We can search users through the search bar provided. Matching search results will be listed upon typing in the search bar.<\/span><\/p>\r\n<ul>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><i><span style=\"font-weight: 400;\">Thread List<\/span><\/i><\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">Contain profile image, name, unread count, online status, last message, and time<\/span><\/p>\r\n<ul>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><i><span style=\"font-weight: 400;\">Thread Details<\/span><\/i><\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">Contain profile image, name, last seen, messages with time, message bar to send message<\/span><\/p>\r\n<ul>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><i><span style=\"font-weight: 400;\">Create group<\/span><\/i><\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">Group name, image, at least one member is mandatory to create a group<\/span><\/p>\r\n<ul>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><i><span style=\"font-weight: 400;\">Group details<\/span><\/i><\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">Group name, image, members<\/span><\/p>\r\n<ul>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><i><span style=\"font-weight: 400;\">Edit group\u00a0<\/span><\/i><\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">Only created person(Admin) can edit the group. Admin can edit Group name, image and members.<\/span><\/p>\r\n<h3><b>Why to Choose React Native For Chat App Development?<\/b><\/h3>\r\n<ul>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Availability of Developers If you require it<\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Lower Development Cost<\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Reusable UI Components<\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Compatibility to Cross-Platform<\/span><\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">React Native is a technology focused solely on building mobile apps using the platform node.js, Android Studio\/ Expo Client App. React Native uses ReactJS as the JavaScript library, which enables it users to have all its advantages.\u00a0 To build a<\/span><a href=\"https:\/\/www.armia.com\/blog\/develop-mobile-applications-using-react-native\/\"> <span style=\"font-weight: 400;\">cross-platform app with React Native<\/span><\/a><span style=\"font-weight: 400;\">, the language of the native platform needn&#8217;t be known by developers. They should be familiar with JavaScript and be familiar with the React syntax. They can also add a native component to the code.<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">React Native requires Bridge components to be written for each platform to use them. It brings it back closer to a hybrid framework. But in the case of React Native, you needn&#8217;t be anxious about the platform specific behaviors in providing the most seamless experience for your users.<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">If you have decided to build chat functionality in the client app, then React Native is one of the most popular frameworks. Our Chat SDK allows you to configure, build, and integrate chat functionality into any web or mobile app. If you have any questions concerning how to build chat app functionality into your app, contact our business development team for a<\/span><a href=\"https:\/\/go.armia.com\/request-a-free-consultation\"> <span style=\"font-weight: 400;\">consultation<\/span><\/a><span style=\"font-weight: 400;\">. Our development team is available for integrating text, audio, video chat functionality to your mobile apps or build a new chat app using the Chat SDK.<\/span><\/p>\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1024,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.armia.com\/blog\/wp-json\/wp\/v2\/posts\/2640"}],"collection":[{"href":"https:\/\/www.armia.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.armia.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.armia.com\/blog\/wp-json\/wp\/v2\/users\/1024"}],"replies":[{"embeddable":true,"href":"https:\/\/www.armia.com\/blog\/wp-json\/wp\/v2\/comments?post=2640"}],"version-history":[{"count":3,"href":"https:\/\/www.armia.com\/blog\/wp-json\/wp\/v2\/posts\/2640\/revisions"}],"predecessor-version":[{"id":3975,"href":"https:\/\/www.armia.com\/blog\/wp-json\/wp\/v2\/posts\/2640\/revisions\/3975"}],"wp:attachment":[{"href":"https:\/\/www.armia.com\/blog\/wp-json\/wp\/v2\/media?parent=2640"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.armia.com\/blog\/wp-json\/wp\/v2\/categories?post=2640"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.armia.com\/blog\/wp-json\/wp\/v2\/tags?post=2640"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}