Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/algolia/algoliasearch-client-swift
⚡️ A fully-featured and blazing-fast Swift API client to interact with Algolia.
https://github.com/algolia/algoliasearch-client-swift
algolia ios search swift
Last synced: 6 days ago
JSON representation
⚡️ A fully-featured and blazing-fast Swift API client to interact with Algolia.
- Host: GitHub
- URL: https://github.com/algolia/algoliasearch-client-swift
- Owner: algolia
- License: mit
- Created: 2015-02-11T07:30:57.000Z (almost 10 years ago)
- Default Branch: main
- Last Pushed: 2024-10-29T11:34:57.000Z (3 months ago)
- Last Synced: 2024-10-29T12:59:16.259Z (3 months ago)
- Topics: algolia, ios, search, swift
- Language: Swift
- Homepage:
- Size: 10.7 MB
- Stars: 205
- Watchers: 76
- Forks: 65
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ios - algoliasearch-client-swift - Algolia Search API Client for Swift. (SDK / Official)
- awesome-algolia - iOS
- awesome-ios-star - algoliasearch-client-swift - Algolia Search API Client for Swift. (SDK / Official)
- awesome-blazingly-fast - algoliasearch-client-swift - ⚡️ A fully-featured and blazing-fast Swift API client to interact with Algolia. (Swift)
README
The perfect starting point to integrate Algolia within your Swift project
Documentation •
Community Forum •
Stack Overflow •
Report a bug •
FAQ •
Support## ✨ Features
- Pure cross-platform Swift client
- Typed requests and responses
- Widespread use of `Result` type
- Uses the power of `Codable` protocol for easy integration of your domain models
- Thread-safe clients
- Detailed logging
- Injectable HTTP client## 💡 Getting Started
### Swift Package Manager
The Swift Package Manager is a tool for managing the distribution of Swift code. It’s integrated with the Swift build system to automate the process of downloading, compiling, and linking dependencies.
Since the release of Swift 5 and Xcode 11, SPM is compatible with the iOS, macOS and tvOS build systems for creating apps.To use SwiftPM, you should use Xcode 11 to open your project. Click `File` -> `Swift Packages` -> `Add Package Dependency`, enter [the client repo's URL](https://github.com/algolia/algoliasearch-client-swift).
If you're a framework author and use Swift API Client as a dependency, update your `Package.swift` file:
```swift
let package = Package(
// 9.0.0 ..< 10.0.0
dependencies: [
.package(url: "https://github.com/algolia/algoliasearch-client-swift", from: "9.0.0")
],
// ...
)
```### Cocoapods
[CocoaPods](https://cocoapods.org/) is a dependency manager for Cocoa projects.
To install Algolia Swift Client, simply add the following line to your Podfile:
```ruby
pod 'AlgoliaSearchClient', '~> 9.0.0'
# pod 'InstantSearchClient', '~> 7.0' // Swift 5.9 NOT YET RELEASED
```Then, run the following command:
```bash
$ pod update
```### Carthage
[Carthage](https://github.com/Carthage/Carthage) is a simple, decentralized dependency manager for Cocoa.
- To install InstantSearch, simply add the following line to your Cartfile:
```ruby
github "algolia/algoliasearch-client-swift" ~> 9.0.0
```- Launch the following commands from the project directory (for v.8.0+)
```shell
carthage update
./Carthage/Checkouts/algoliasearch-client-swift/carthage-prebuild
carthage build
```If this is your first time using Carthage in the project, you'll need to go through some additional steps as explained [over at Carthage](https://github.com/Carthage/Carthage#adding-frameworks-to-an-application).
You can now import the Algolia API client in your project and play with it.
> Import the Core package and the required client package to your source code files:
```swift
#if canImport(Core)
import Core
#endif
import Searchlet client = try SearchClient(appID: "YOUR_APP_ID", apiKey: "YOUR_API_KEY")
// Add a new record to your Algolia index
let response = try await client.saveObject(
indexName: "",
body: ["objectID": "id", "test": "val"]
)// Poll the task status to know when it has been indexed
try await client.waitForTask(with: response.taskID, in: "")// Fetch search results, with typo tolerance
let response: SearchResponses = try await client
.search(searchMethodParams: SearchMethodParams(requests: [SearchQuery.searchForHits(SearchForHits(
query: "",
hitsPerPage: 50,
indexName: ""
))]))
```For full documentation, visit the **[Algolia Swift API Client](https://www.algolia.com/doc/libraries/swift/)**.
## Notes
### Objective-C support
The Swift API client is compatible with Objective-C up to version 7.0.5. Please use this version of the client if you're working with an Objective-C project.
### Swift 3
You can use this library with Swift by one of the following ways:
- `pod 'AlgoliaSearch-Client-Swift', '~> 4.8.1'`
- `pod 'AlgoliaSearch-Client-Swift', :git => 'https://github.com/algolia/algoliasearch-client-swift.git', :branch => 'swift-3'`### Swift 4
You can use the old library with Swift by one of the following ways:
- `pod 'AlgoliaSearch-Client-Swift', '~> 8.19'`
- `pod 'AlgoliaSearch-Client-Swift', :git => 'https://github.com/algolia/algoliasearch-client-swift.git', :branch => 'swift-4'`## ❓ Troubleshooting
Encountering an issue? Before reaching out to support, we recommend heading to our [FAQ](https://www.algolia.com/doc/api-client/troubleshooting/faq/swift/) where you will find answers for the most common issues and gotchas with the client. You can also open [a GitHub issue](https://github.com/algolia/api-clients-automation/issues/new?assignees=&labels=&projects=&template=Bug_report.md)
## Contributing
This repository hosts the code of the generated Algolia API client for Swift, if you'd like to contribute, head over to the [main repository](https://github.com/algolia/api-clients-automation). You can also find contributing guides on [our documentation website](https://api-clients-automation.netlify.app/docs/introduction).
## 📄 License
The Algolia Swift API Client is an open-sourced software licensed under the [MIT license](LICENSE).