Skip to content

chrisdhaan/CDYelpFusionKit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

126 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CDYelpFusionKit

CI Status GitHub Release Swift Versions Platforms CocoaPods Compatible SPM Compatible License


A comprehensive Swift wrapper for the Yelp Fusion REST API with full support for all endpoints, async/await concurrency, and cross-platform deployment.

Features

  • Complete Yelp Fusion API coverage (search, business details, reviews, events, categories, autocomplete, AI chat, engagement metrics, service offerings, business insights, review highlights, home services, reservations)
  • Async/await support (iOS 13+, macOS 10.15+, tvOS 13+, watchOS 6+)
  • Traditional completion handler API for backward compatibility
  • Event monitoring and request adapters for logging, metrics, and header injection
  • Built-in response caching with configurable TTL
  • Automatic retry with exponential backoff
  • Customizable JSON decoding strategies
  • Mock networking utilities for unit testing (CDYelpMockURLProtocol, CDYelpMockClientFactory)
  • Full Swift concurrency support with @unchecked Sendable conformance
  • Privacy manifest for App Store compliance
  • Comprehensive unit test suite (Swift Testing framework, 193 tests)
  • Multi-platform support (iOS, macOS, tvOS, watchOS, visionOS)

Quick Start

import CDYelpFusionKit

let client = CDYelpAPIClient(apiKey: "your-api-key")

Task {
    do {
        let response = try await client.searchBusinesses(
            byTerm: "coffee",
            location: "San Francisco",
            latitude: nil,
            longitude: nil,
            radius: nil,
            categories: nil,
            locale: nil,
            limit: 10,
            offset: nil,
            sortBy: .bestMatch,
            priceTiers: nil,
            openNow: nil,
            openAt: nil,
            attributes: nil
        )
        print("Found \(response.businesses?.count ?? 0) businesses")
    } catch {
        print("Search failed: \(error)")
    }
}

Requirements

Platform Minimum Version
iOS 12.0
macOS 11.0
tvOS 12.0
watchOS 4.0
visionOS 1.0

Installation

Swift Package Manager

Add CDYelpFusionKit to your Package.swift:

dependencies: [
    .package(url: "https://github.com/chrisdhaan/CDYelpFusionKit.git", .upToNextMajor(from: "5.1.0"))
]

Or in Xcode: File → Add Packages and enter the repository URL.

CocoaPods

Add to your Podfile:

pod 'CDYelpFusionKit', '~> 5.1'

Then run pod install.

Documentation

Author

Christopher de Haan (@chrisdhaan)

License

CDYelpFusionKit is released under the MIT license. See LICENSE for details.

Packages

 
 
 

Contributors

Languages