Skip to content

Remove Alamofire dependency in Moya #2349

@arturonaredo

Description

@arturonaredo

Summary
We would like to request the removal of the Alamofire dependency from the Moya library to enable the use of any network client.

Background
Our base project uses a different network client, and we have another project using Moya, that we would like to change to use our network client like Alamofire but with Moya on top to avoid major changes in the repository. Removing this dependency would significantly enhance the flexibility of Moya, allowing it to be integrated more easily with various network clients.

Proposed Changes

  • Refactor the Moya core to decouple it from Alamofire.
  • Introduce a protocol or interface that any network client can conform to, ensuring Moya's functionality remains consistent.
  • Update documentation to guide users on how to implement their preferred network client.

Benefits

  • Increased flexibility: Developers can choose their preferred network client, making Moya more adaptable to different project requirements.
  • Enhanced modularity: Decoupling Moya from Alamofire promotes a more modular and maintainable codebase.
  • Broader adoption: By supporting various network clients, Moya can attract a wider range of users and projects.

Potential Concerns

  • Compatibility: Ensuring that the refactor does not break existing functionality for current users relying on Alamofire.
  • Complexity: The implementation of a new protocol or interface must be thoroughly designed to avoid introducing unnecessary complexity.

Conclusion
We believe that removing the Alamofire dependency will make Moya a more versatile and widely-adopted library. We are open to contributing to this effort and look forward to your feedback.

Thank you for considering this request.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions