sold666 / DevTalk

A messenger for developers called "DevTalk". The project developed on the "Mobile Development" program in VK Technopolis

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DevTalk DevTalk

A messenger for developers.
The project developed on the "Mobile Development" program in VK Technopolis VK

Main Idea

DevTalk is a messenger for developers that doesn't waste their time. The main feature of our messenger is that users can define their interests using tags in order to see only the chats that correspond to them in the recommendations, as well as create chats with a specific tag.

Project Requirements

The project had the following requirements:

  • Main development language - Kotlin
  • Presence of at least two localizations
  • Availability of asynchronous work
  • Availability of networking
  • Availability of non-volatile storage
  • Correct handling of errors and exceptions (including in conditions of network loss)
  • Participation in the development of each team member
  • Do not use third-party graphics engines (Unity, Unreal, etc.)
  • You need to use the standard UI Kit.
  • Correct handling of configuration change
  • Correct handling of the situation when the application is forced out by the system
  • Minimum version (minSdkVersion) API Level 24
  • Target version API Level(minSdkVersion) 33
  • Compliance with the rules of Material Design

Realization

Localization

Our application supports two languages - Russian and English.

Localization screens

Error Handling

When registering and authenticating a user, the fields are checked for validity. The uniqueness of the mail is also checked using a request in Firebase.

Errors Handling screens

Asynchronous Interaction

Asynchronous interaction in the DevTalk developer chat application is implemented using the Observer pattern. In our application, Observer monitors the update of the chat list. When a new chat is created, or a user joins the recommended one, the observer object notifies all subscribers that changes have occurred.

SharedPreferences is used to save the state of selected professions between different app launches or fragments. This allows you to restore the previous state of the selected professions if the user restarts the application, theme, or returns to this fragment.

Asynchronous Interaction screens

Networking

Network interaction in the application is carried out using Firebase and Retrofit. Firebase stores user and chat data, and retrofit is used for requests to third-party services (for example: Github and Gitlab) when adding links to them in the profile.

Networking screens Chat window screens Chats screens Checking for lack of Internet screen

Storage

Our application uses non-volatile storage to contain tag icons to display them in profiles, chats, and so on.

Icons screens Profile screens

Technologies

Firebase Retrofit Material design Picasso Figma Coroutines

  • Kotlin
  • Material design
  • Firebase
  • Figma
  • Coroutines
  • Retrofit
  • Android Jetpack's Navigation
  • Picasso

About

A messenger for developers called "DevTalk". The project developed on the "Mobile Development" program in VK Technopolis

License:MIT License


Languages

Language:Kotlin 100.0%