<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Rajjan Sharma</title>
    <description>The latest articles on DEV Community by Rajjan Sharma (@sharma69).</description>
    <link>https://dev.to/sharma69</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1067303%2Fb8e04479-2a83-4cf3-ae5d-9cc5c15ba9c2.jpeg</url>
      <title>DEV Community: Rajjan Sharma</title>
      <link>https://dev.to/sharma69</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sharma69"/>
    <language>en</language>
    <item>
      <title>Spreading: AI-Powered Knowledge Base Platform for Developers</title>
      <dc:creator>Rajjan Sharma</dc:creator>
      <pubDate>Tue, 14 Nov 2023 10:40:27 +0000</pubDate>
      <link>https://dev.to/sharma69/spreading-ai-powered-knowledge-base-platform-for-developers-3oa1</link>
      <guid>https://dev.to/sharma69/spreading-ai-powered-knowledge-base-platform-for-developers-3oa1</guid>
      <description>&lt;p&gt;&lt;strong&gt;In this article we will see Best AI website for easy Knowledge base creation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In this era of technology , we are interacting with new softwares and tech everyday. So you know what exactly makes a software executable ? &lt;strong&gt;A Proper Documentation&lt;/strong&gt;    because see if any Complex code is really good but developers do not know how to implement it , That's a problem . Here comes &lt;strong&gt;&lt;a href="https://www.spreading.ai/"&gt;SPREADING.AI&lt;/a&gt;&lt;/strong&gt; ,It is an AI website which helps you to convert your code in Documentation in seconds&lt;/p&gt;

&lt;h2&gt;
  
  
  Generate Doc From code
&lt;/h2&gt;

&lt;p&gt;This feature is the best part of this website because Developers only need to enter code and then choose language and AI will do the rest work , isn't Awesome. It will also explain the methods , functions and variables used inside the code .&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NcyWfEi3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6r8zacejr8133cig3qca.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NcyWfEi3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6r8zacejr8133cig3qca.png" alt="Image description" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Code with AI
&lt;/h2&gt;

&lt;p&gt;Effortlessly clean and translate code , generate vivid description . Simplify product explanation and make your work more effective with less time invested&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OR0Q1L_z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/43rww38zhqdmx8y97kuv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OR0Q1L_z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/43rww38zhqdmx8y97kuv.png" alt="Image description" width="800" height="376"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Improved writing
&lt;/h2&gt;

&lt;p&gt;For generating Effective documentation you do not need to be professional writer , Spreading helps you correct , abbreviate , expand and refine content , transforming your code into skilled documents &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dEgjPNgE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l7woismlfqu0tykwgm5h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dEgjPNgE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l7woismlfqu0tykwgm5h.png" alt="Image description" width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Collaboration And Team Building
&lt;/h2&gt;

&lt;p&gt;Spreading also focuses on Team collaboration because creating a good project is not a individuals work, but a teams effort . Whether you're a developer, technical writer, or manager, the platform places a strong emphasis on cross-team collaboration. Spreading offers shared workspaces that enables communication and collaboration between team members.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mNLryeBm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lek7e1ut462hk2j4gcsh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mNLryeBm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lek7e1ut462hk2j4gcsh.png" alt="Image description" width="636" height="239"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Document Management
&lt;/h2&gt;

&lt;p&gt;Not just writing, Spreading ensures that managing documentation is hassle-free. With features like version control, automated saving, and central storage, keeping everything organized has never been easier .Spreading keeps everything in one place, accessible to all.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--V8As9_P9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dyg5k5r4tsp2zo5t6e7v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--V8As9_P9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dyg5k5r4tsp2zo5t6e7v.png" alt="Image description" width="800" height="370"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Publish Sites
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Publish Impressive Docs Sites with One Click&lt;/strong&gt;&lt;br&gt;
Launch well-branded doc sites in minutes. Spreading ready-made themes and templates are here for you, making your work effortless. Just configure logos and domains, and your sites are set. We handle optimizations for responsiveness, mobile-friendliness and SEO automatically.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ki48WyK5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xylcl118ry3h92o9v6rv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ki48WyK5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xylcl118ry3h92o9v6rv.png" alt="Image description" width="501" height="429"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Spreading top features
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Easy-to-use Editor for Everyone&lt;/li&gt;
&lt;li&gt;Accelerate Cross-Team Collaboration&lt;/li&gt;
&lt;li&gt;Hassle-Free Doc Management to Keep Things Organized&lt;/li&gt;
&lt;li&gt;Publish Impressive Docs Sites with One Click&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Spreading offers different categories&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Overview&lt;/li&gt;
&lt;li&gt; Quick start&lt;/li&gt;
&lt;li&gt; User guide&lt;/li&gt;
&lt;li&gt; Tutorial&lt;/li&gt;
&lt;li&gt; API Documentation &lt;/li&gt;
&lt;li&gt; Others&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--I4kUsI1U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/010j0vc56uz314cjlxdx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--I4kUsI1U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/010j0vc56uz314cjlxdx.png" alt="Image description" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Given Outline generated this document&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wmbsanyR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1zncgnk3fijew88kq1wk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wmbsanyR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1zncgnk3fijew88kq1wk.png" alt="Image description" width="800" height="717"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0rI6xOgP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tt5xedjru6wjxjxhbaz4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0rI6xOgP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tt5xedjru6wjxjxhbaz4.png" alt="Image description" width="677" height="774"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kJDgF1Sp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fs8afsbv0xuu07gslue9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kJDgF1Sp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fs8afsbv0xuu07gslue9.png" alt="Image description" width="642" height="773"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's see another Example&lt;/strong&gt;&lt;br&gt;
Here is a part of code&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;new CountDownTimer(50000, 1000) {
    public void onTick(long millisUntilFinished) {
        // Used for formatting digit to be in 2 digits only
        NumberFormat f = new DecimalFormat("00");
        long hour = (millisUntilFinished / 3600000) % 24;
        long min = (millisUntilFinished / 60000) % 60;
        long sec = (millisUntilFinished / 1000) % 60;
        textView.setText(f.format(hour) + ":" + f.format(min) + ":" + f.format(sec));
    }
    // When the task is over it will print 00:00:00 there
    public void onFinish() {
        textView.setText("00:00:00");
    }
}.start();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ewhNGsw3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0qdxsiil16neq55mk880.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ewhNGsw3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0qdxsiil16neq55mk880.png" alt="Image description" width="800" height="485"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Spreading generated Documentation:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Nl_UtCRR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hnixr65jwkx5pqk8mi0z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Nl_UtCRR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hnixr65jwkx5pqk8mi0z.png" alt="Image description" width="800" height="532"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wWwcZC_H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bi8zcr2xj99zbovez3ot.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wWwcZC_H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bi8zcr2xj99zbovez3ot.png" alt="Image description" width="800" height="478"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--trukawE9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k0ng14k6imllwunihjwq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--trukawE9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k0ng14k6imllwunihjwq.png" alt="Image description" width="800" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And this complete process took seconds , so now I hope you guys understood how useful this website it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Another useful feature is Team projects.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Wlkl92EP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f7reghi89fxblnsn0j55.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Wlkl92EP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f7reghi89fxblnsn0j55.png" alt="Image description" width="660" height="314"&gt;&lt;/a&gt;&lt;br&gt;
This feature enables users to create a project and then you can work with your team members.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion - Spreading.AI is Future of Documentation
&lt;/h2&gt;

&lt;p&gt;Spreading is not just a tool but it is also a complete package for Knowledge base creation with the help of AI it becomes very fast and simple , which can help developer to create a easy executable Documentation of their project , which will help other developers to use their Documentation and implement the functionality.&lt;br&gt;
And check its pricing ! &lt;a href="https://www.spreading.ai/"&gt;Try now&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AZl1pCUv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bd85asf85wughh70sxn6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AZl1pCUv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bd85asf85wughh70sxn6.jpg" alt="Image description" width="800" height="279"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>free</category>
      <category>tools</category>
    </item>
    <item>
      <title>Build an Encrypted chatting app with Java</title>
      <dc:creator>Rajjan Sharma</dc:creator>
      <pubDate>Wed, 19 Apr 2023 12:32:18 +0000</pubDate>
      <link>https://dev.to/sharma69/build-an-encrypted-chatting-app-with-java-85k</link>
      <guid>https://dev.to/sharma69/build-an-encrypted-chatting-app-with-java-85k</guid>
      <description>&lt;p&gt;In this article, we will learn how can we Integrate &lt;a href="https://www.zegocloud.com/product/in-app-chat"&gt;In-app Chat&lt;/a&gt; in android app with few lines of code.Let's suppose you have a startup and you don't have a team to work on your technical background ,  so you have to  manage everything by your own , so this can be very stressful and exhausting. So guys the solution of this problem is ZegoCloud its an audio and &lt;a href="https://www.zegocloud.com/product/video-call"&gt;video API &lt;/a&gt;provider which offers you so many exciting features and SDk that you can integrate inside your application and the best part is , managing your backend is quite easy if you are using &lt;a href="https://www.zegocloud.com"&gt;ZEGOCLOUD&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In modern applications , chatting is a very important feature that users want , so they can communicate with each other . When you create this type of feature so you have to manage everything , here ZEGOCLOUD comes to make it possible and easy .&lt;/p&gt;

&lt;p&gt;The best part is, whatever I am showing in this tutorial can be integrated without paying anything , just visit their website and create an account and you are ready to go &amp;gt;&amp;gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to integrate In-app chatting functionality in android app.&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Once you will create account so you will see Dashboard , where you have to click on project &amp;gt;&amp;gt;&amp;gt; Create .&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---t1gDjBj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mh4hkx1cqaryh34qpmg5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---t1gDjBj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mh4hkx1cqaryh34qpmg5.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then you must specify use case we want to use , in this we will cover In-app chat.&lt;/p&gt;

&lt;p&gt;Then you must add a name .&lt;/p&gt;

&lt;p&gt;Then we have to two options to choose , &lt;a href="https://docs.zegocloud.com/article/15652?isFrom=%7B&amp;amp;quot%3Bfunctional&amp;amp;quot%3B%3Atrue,&amp;amp;quot%3B%3Atrue,&amp;amp;quot%3Badvertising&amp;amp;quot%3Banalysis&amp;amp;quot%3B%3Atrue%7D"&gt;Uikits&lt;/a&gt;  and SDK .The advantage of UI kits is , it have everything you need to implement.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--n3us1zq4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k2azhxx6ndtys4cikidp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--n3us1zq4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k2azhxx6ndtys4cikidp.png" alt="Image description" width="800" height="486"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the In-app Chat Kit&lt;/strong&gt;&lt;br&gt;
In-app Chat Kit is a UI component library based on the In-app Chat SDK. It provides general UI components, such as the chat list, one-on-one chat, and group chat. You can use the In-app Chat Kit to quickly build custom IM applications based on actual business requirements.&lt;/p&gt;

&lt;p&gt;You have to select any one option for proceeding, Once project is created .&lt;br&gt;
we will choose "for android" option.&lt;/p&gt;

&lt;p&gt;Now click on "Save &amp;amp; Start to integrate": &lt;/p&gt;

&lt;p&gt;After the project creation we need two values AppSign and AppId for connecting our app with zego porject.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Building In-app chat&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now open your IDE in which you wanna work , I will be using Android studio.&lt;/p&gt;

&lt;p&gt;So create  a project in android studio.&lt;/p&gt;

&lt;p&gt;Add this dependency inside build.gradle level&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;android {
   ...
   buildFeatures {
        dataBinding true
    }
}

dependencies {
    ...
    implementation 'com.github.ZEGOCLOUD:zego_inapp_chat_uikit_android:+'    // add this line in your module-level build.gradle file's dependencies, usually named [app].
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open build.gradle (module level) add these line of code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
android {
    buildToolsVersion "30.0.3"
    compileSdkVersion 31
    defaultConfig {
        applicationId "im.zego.zimexample"
        targetSdkVersion 31
        minSdk 24

        versionCode 1
        versionName "1.0"

        ndk {
            abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86', 'x86_64'
        }
    }

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add these lines in build.gradle as well&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;buildscript {
    repositories {
        maven { url 'https://www.jitpack.io' } //Add this line.
        ....
    }
}

allprojects {
    repositories {
        maven { url 'https://www.jitpack.io' }//Add this line.
        ...
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check your project root directory's gradle.properties file, and add the following configuration to the file if it's missing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Indicates AndroidX is enabled for the current project.
android.useAndroidX=true
// Migrates the dependency to AndroidX, converting the support library from third-party libraries used in the project to an AndroidX library.
android.enableJetifier=true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then we must add permissions that we need in order to make the app working , &lt;br&gt;
open manifest tag , inside Android manifest.xml .&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; &amp;lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&amp;gt;
    &amp;lt;uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /&amp;gt;
    &amp;lt;uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /&amp;gt;
    &amp;lt;uses-permission android:name="android.permission.RECORD_AUDIO" /&amp;gt;
    &amp;lt;uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /&amp;gt;
    &amp;lt;uses-permission android:name="android.permission.INTERNET" /&amp;gt;
    &amp;lt;uses-permission android:name="android.permission.BLUETOOTH" /&amp;gt;
    &amp;lt;uses-permission android:name="android.permission.CAMERA" /&amp;gt;
    &amp;lt;uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" /&amp;gt;
    &amp;lt;uses-permission android:name="android.permission.READ_PHONE_STATE" /&amp;gt;
    &amp;lt;uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&amp;gt;
    &amp;lt;uses-permission android:name="android.permission.READ_LOGS" /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Integrate In-app Chat Kit into the project.&lt;/p&gt;

&lt;p&gt;Now we will call init method to intialize In-app chat kit.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
import android.app.Application;

import com.zegocloud.zimkit.services.ZIMKit;

public class MyApplication extends Application {
    public static MyApplication sInstance;

    @Override
    public void onCreate() {
        super.onCreate();
        sInstance = this;
        Long appId = ;    // The AppID you get from ZEGOCLOUD Admin Console.
        String appSign = ;    // The App Sign you get from ZEGOCLOUD Admin Console.
        ZIMKit.initWith(this,appId,appSign);
        // Online notification for the initialization (use the following code if this is needed).
        ZIMKit.initNotifications();
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After intialization , call the connectUser method with your user info to log in to In-app Chat Kit.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
import android.content.Intent;
import android.os.Bundle;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import im.zego.zim.enums.ZIMErrorCode;
import com.zegocloud.zimkit.services.ZIMKit;

public class MyZIMKitActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    public void buttonClick() {
        // userId and userName: 1 to 32 characters, can only contain digits, letters, and the following special characters: '~', '!', '@', '#', '$', '%', '^', '&amp;amp;', '*', '(', ')', '_', '+', '=', '-', '`', ';', '’', ',', '.', '&amp;lt;', '&amp;gt;', '/', '\'
        String userId = ; // Your ID as a user.
        String userName = ; // You name as a user.
        String userAvatar = ; // The image you set as the user avatar must be network image. e.g., https://storage.zego.im/IMKit/avatar/avatar-0.png
        connectUser(userId, userName,userAvatar); 
    }

    public void connectUser(String userId, String userName,String userAvatar) {
        // Logs in.
        ZIMKit.connectUser(userId,userName,userAvatar, errorInfo -&amp;gt; {
            if (errorInfo.code == ZIMErrorCode.SUCCESS) {
                // Operation after successful login. You will be redirected to other modules only after successful login. In this sample code, you will be redirected to the conversation module.
                toConversationActivity();
            } else {

            }
        });
    }

    // Integrate the conversation list into your Activity as a Fragment 
    private void toConversationActivity() {
      // Redirect to the conversation list (Activity) you created. 
      Intent intent = new Intent(this,ConversationActivity.class);
      startActivity(intent);
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now we will display conversation component.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; public class ConversationActivity extends AppCompatActivity {

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_conversation);
    }

}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The layout of the ConversationActivity is &lt;strong&gt;activity_conversation.xml&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;
&amp;lt;androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"&amp;gt;

    &amp;lt;fragment
        android:id="@+id/frag_conversation_list"
        android:name="com.zegocloud.zimkit.components.conversation.ui.ZIMKitConversationFragment"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toTopOf="parent" /&amp;gt;

&amp;lt;/androidx.constraintlayout.widget.ConstraintLayout&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;By this point your app will look like this-&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zY7oqklm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vimpnarwu2nj5dx2g9ck.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zY7oqklm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vimpnarwu2nj5dx2g9ck.jpeg" alt="Image description" width="800" height="1778"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now we will focus on one-to-one chat -&lt;br&gt;
Get the userId that is generated using your own business logic. (the userId here refers to the peer user you want to chat with.)&lt;br&gt;
Fill in the userId parameter and run the following code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  private void startSingleChat(String userId){
         ZIMKitRouter.toMessageActivity(this, userId,ZIMKitConversationType.ZIMKitConversationTypePeer);
    }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
So guys you can see that Building a chat app is so easy with &lt;a href="https://www.zegocloud.com/"&gt;ZegoCloud &lt;/a&gt;  In-app chat &lt;a href="https://www.zegocloud.com/product/in-app-chat"&gt;SDK &lt;/a&gt;Thanks to ZEGOCLOUD for sponsoring this article, don't forget to visit their website to get more information about their products and services.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
