Thank you for your interest in contributing to SUPLA iOS. This document describes the rules and guidelines for contributing code, documentation, and ideas to the project.
- Contributor License Agreement (CLA)
- Project scope and goals
- Supported environments
- Reporting issues
- Feature requests
- Development guidelines
- Pull request process
- Licensing
This project requires acceptance of a Contributor License Agreement (CLA).
Before a pull request can be merged, the CLA must be accepted by the contributor.
Pull requests with an unaccepted CLA will be blocked automatically.
supla-ios is the official iOS application for the SUPLA smart home platform.
Key goals:
- stable and predictable user experience,
- clear and maintainable architecture,
- performance, battery efficiency and system integration.
- UI/UX consistency and feature parity with the SUPLA Android app.
The iOS app is a client of the SUPLA platform. Changes should not assume a specific Cloud deployment (official vs self-hosted).
- Xcode (current stable version recommended)
- iOS versions supported by the application
Build requirements and dependencies are defined in the project configuration (Xcode project, CocoaPods).
Before opening an issue:
- Search existing issues (open and closed).
- Verify that you are using a recent app version.
When reporting a bug, please include:
- app version (App Store version, build number, or commit),
- device model and iOS version,
- steps to reproduce,
- expected vs actual behavior,
- logs if available (sanitize secrets).
If the issue depends on the backend, specify whether you use:
- the official SUPLA Cloud, or
- a self-hosted instance.
Security-related issues must not be reported via public issues.
See SECURITY.md.
Feature requests are welcome.
Please describe:
- the problem you are trying to solve,
- why existing functionality is insufficient,
- any UI/UX expectations,
- whether the change depends on SUPLA Cloud / API behavior.
Large changes should be discussed in an issue before implementation.
- Keep changes small and focused.
- Follow existing app architecture and iOS best practices.
- Maintain UX consistency with the existing application.
- Be mindful of performance, battery usage and background behavior.
- Avoid breaking compatibility without prior discussion.
- Fork the repository and create a feature branch.
- Make small, focused commits with clear commit messages.
- Ensure the application builds successfully.
- Open a pull request using the provided template.
- Ensure the CLA check passes.
Each pull request should:
- address a single issue or feature,
- include a clear description of the changes,
- reference related issues if applicable.
By contributing to this repository, you agree that your contributions will be licensed under the same license as the project.
Any third-party code must use a compatible license and be clearly documented.