OpenAI AsyncImage SwiftUI
SwiftUI view that asynchronously loads and displays an OpenAI image from open API
Features
- Multiplatform iOS and macOS
- Customizable in term of SwiftUI Image specs [renderingMode, resizable, antialiased…]
- Customizable in term of the transport layer [Loader]
- Based on interfaces not implementations
How to use
1. Get your API key from OpenAI
Where do I find my Secret API Key?
2. Override the default loader at Environment with you apiKey
@Environment(\.openAIDefaultLoader) var loader : OpenAIDefaultLoader
let apiKey = "*******************"
let endpoint = OpenAIImageEndpoint.get(with: apiKey)
let loader = OpenAIDefaultLoader(endpoint: endpoint)
ContentView()
.environment(\.openAIDefaultLoader, loader)
3. Add OpenAIAsyncImage to your code
OpenAIAsyncImage(prompt: .constant("sun"))
.frame(width: 125, height: 125)
or with custom ViewBuilder
OpenAIAsyncImage(prompt: $imageText, size: .dpi1024){ state in
switch state{
case .loaded(let image) :
image
.resizable()
.scaledToFill()
case .loadError(let error) : Text(error.localizedDescription)
case .loading : ProgressView()
}
}
Param | Description |
---|---|
prompt | A text description of the desired image(s). The maximum length is 1000 characters |
size | The size of the generated images. Must be one of 256×256, 512×512, or 1024×1024 |
tpl | Custom view builder tpl |
loader | Custom loader if you need something specific |
Documentation(API)
- You need to have Xcode 13 installed in order to have access to Documentation Compiler (DocC)
- Go to Product > Build Documentation or โโงโ D
SwiftUI example for the package
OpenAI AsyncImage SwiftUI example