Introduction
FoxTalk is a Flutter client built on top of TangSengDaoDao. From the chat list to audio/video calls, everything is rewritten in Flutter with pixel-perfect parity to the original iOS app.
TangSengDaoDao ships separate iOS (Objective-C) and Android (Java) implementations. FoxTalk chose to rewrite in Flutter because one Dart codebase delivers a native-grade experience on both iOS and Android, letting us focus on the IM product itself rather than maintaining two UI codebases.
Architecture
On the client side FoxTalk uses a three-layer architecture, top to bottom:
Core design principle: the UI layer never calls the SDK directly — it always goes through an app-layer service. This keeps things testable and makes swapping the IM protocol or adding mocks easy later.