A generic SOAP client framework for iOS, macOS, and tvOS apps to access web services.
SOAPEngine is a framework that allows iOS, macOS, and tvOS applications to act as SOAP clients for web services. It solves the problem of integrating SOAP-based APIs into Apple platform apps by handling protocol complexities, authentication, and data serialization.
Developers building iOS, macOS, or tvOS applications that need to consume SOAP web services, particularly those interfacing with enterprise systems like WCF or ASMX services.
It provides a native, feature-complete SOAP client for Apple platforms with support for multiple authentication methods, encryption, and complex data types, eliminating the need for custom SOAP implementation.
This generic SOAP client allows you to access web services using a your iOS app, Mac OS X app and AppleTV app.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports SOAP 1.1 and 1.2, ASMX, WCF, and WSDL services, handling various SOAP standards as explicitly stated in the README features list.
Includes Basic, Digest, NTLM, WS-Security, OAuth 2.0, client certificates, and encryption like AES256, detailed in the README with examples for each method.
Offers delegate, block, notification, and synchronous request patterns, providing multiple integration options as demonstrated in the usage code snippets.
Can handle user-defined objects, arrays, dictionaries, and multilevel structures with XML attributes, simplifying data integration for complex SOAP payloads.
The README admits WSDL requests are slow and only basic http bindings for WCF are supported, with recommendations to avoid WSDL for better performance.
Known issues with Swift 4 require manual settings like 'Swift 3 @objc Inference' and code changes such as adding @objcMembers, adding complexity for modern Swift development.
Requires additional frameworks and App Transport Security configuration in Xcode, as outlined in the security section, making initial setup more involved.