The project is only made to play with tcp socket connection and flutter framework. No conventions or protocols are followed during data transactions.


  • Both app(dart) and server(python3) are built with standard library. No dependencies

  • Server mimics the properties “WebSocket” (clients connect with server using tcp and the connecting is kept alive for the whole time)

  • Supports UTF-8

  • Using tunneling software like “NGROK” the server can be assessed from public network (unsafe. data over the packets are not encrypted)


During this demonstration “Flutter 3.7.7” and “Python 3.10” are used on “Ubuntu 22.10”.

  • Login

  • After Successful Connection

  • Searching for Another User By Name

  • Sending Message

  • Messaging From Both Sides

Steps To Build

  • Install Flutter.

  • Install Android Studio.

  • Install PyCharm.

  • Install plugins for android studio.

  • Create new project in both pycharm and flutter(android studio).

  • Copy codes of server.py to pycharm project and main.dart(flutter app source) to flutter project.

  • Configure android virtual devices and connect to server using IP “” if server is running on same computer. Port is 40000. User name must be unique.

  • If you want to test the app from physical android device make sure to follow this link .


View Github