Welcome to the Telware Cross-Platform Team's repository! This project is part of the Telware initiative to recreate the Telegram app. Our team is responsible for building the Flutter-based cross-platform implementation, ensuring seamless functionality across Android, iOS, and other supported devices.
- Project Overview
- Setup Instructions
- Project Structure
- Development Guidelines
- Testing
- Contributing
- License
- Additional Documentation
This repository contains the cross-platform codebase developed using Flutter. Our responsibilities include:
- Building the core UI and app logic.
- Ensuring feature parity across platforms (Android, iOS).
- Collaborating with Backend, Frontend, DevOps, and Testing teams.
- Delivering a high-quality, performant, and reliable application.
For a detailed understanding of the project workflow, refer to docs/PROJECT_FLOW.md.
- Flutter SDK: Version
3.24.3
(Installation Guide) - Dart SDK: Bundled with Flutter
- Development Environment:
- Android Studio (for Android builds)
- Access to Backend Services: Contact the backend team for API credentials and documentation.
-
Clone the repository:
git clone https://github.com/TelwareSW/telware_cross_platform.git cd telware_cross_platform
-
Install dependencies:
flutter pub get
-
Run the app on a connected device or emulator:
flutter run
-
To build platform-specific packages:
- Android:
flutter build apk
- iOS:
flutter build ios
- Android:
.
├── lib/ # Core application code
│ ├── core/ # Core functionality (e.g., API calls, state management)
| | ├── classes/ # Custom classes
| | ├── constants/ # App constants
│ | ├── mocks/ # Mock data for testing
│ | ├── models/ # Data models
| | ├── providers/ # State management providers
| | ├── routes/ # Navigation routes
| | ├── services/ # API services
| | ├── theme/ # App themes
| | ├── view/ # Shared UI components
│ | └── utils.dart # Utility functions
│ ├── features/ # Application features (e.g., chat, settings)
| | ├── example/ # Example feature
| | | ├── repository/ # Data repository
| | | ├── services/ # Feature-specific services
| | | ├── view/ # Feature-specific UI components
| | | └── view_model/ # Feature-specific logic
│ | └── ... # Other features
│ ├── .env.example # Example environment variables
│ ├── .env # Local environment variables
│ └── main.dart # Application entry point
├── test/ # Unit and widget tests
├── docs/ # Documentation files
├── pubspec.yaml # Flutter dependencies configuration
└── README.md # Project overview and setup
- Coding Standards: Follow the guidelines defined in docs/CODING_GUIDELINES.md.
- Branching Strategy: Use feature branches and maintain a linear Git history. Refer to docs/PROJECT_FLOW.md.
- Commit Messages: Use the Conventional Commits format.
-
Run unit tests:
flutter test
-
Run integration tests:
flutter drive --target=test_driver/app.dart
For more details, refer to docs/TESTING.md.
We welcome contributions from all team members! To contribute:
- Fork the repository.
- Create a feature branch:
git checkout -b feature/your-feature
. - Commit your changes:
git commit -m "feat: your feature description"
. - Push to your branch:
git push origin feature/your-feature
. - Submit a pull request.
Refer to docs/CONTRIBUTING.md for more information.
For questions or further assistance, feel free to reach out via the project Slack channel or raise an issue in this repository.