Contributing to Maltex
April 26, 2026 ยท View on GitHub
First off, thank you for considering contributing to Maltex! It's people like you that make Maltex a great tool for everyone.
This project is a native macOS download manager built with SwiftUI and powered by the aria2 engine.
Code of Conduct
By participating in this project, you are expected to uphold our Code of Conduct.
How Can I Contribute?
Reporting Bugs
- Check if the bug has already been reported by searching on the GitHub Issues page.
- If you can't find an open issue addressing the problem, open a new one.
- Use a clear and descriptive title.
- Describe the exact steps which reproduce the problem in as many details as possible.
Suggesting Enhancements
- Check if the enhancement has already been suggested.
- Open a new issue and describe the enhancement you would like to see, and why it would be useful.
Pull Requests
- Fork the repository and create your branch from
master. - If you've added code that should be tested, add tests.
- Ensure the test suite passes.
- Make sure your code lints and follows the existing project style.
- Issue that pull request!
Local Development Setup
Prerequisites
- macOS 14.0+
- Xcode 15.0+
- XcodeGen (
brew install xcodegen)
Getting Started
-
Clone the repository:
git clone https://github.com/SteveShi/Maltex.git cd Maltex -
Generate the Xcode Project: Maltex uses
XcodeGento manage the project file. Do not commit.xcodeprojfiles if they are generated locally.xcodegen generate -
Open the project:
open Maltex.xcodeproj
Coding Standards
- We use Swift 6.
- Follow the Swift API Design Guidelines.
- Use 4 spaces for indentation (as configured in
project.yml). - Keep UI components small and reusable.
Project Structure
Maltex/: Main application source code.MaltexExtension/: Safari Web Extension source code.extra/: Bundledaria2cbinaries and default configurations.project.yml: XcodeGen project specification.
Translation
Maltex aims to be accessible to everyone. Translations are managed via .xcstrings files in the Xcode project. Contributions to localizations are highly appreciated!
Happy Coding!