Skip to content

Instantly share code, notes, and snippets.

View MatthewWaller's full-sized avatar

Matthew Waller MatthewWaller

View GitHub Profile
@MatthewWaller
MatthewWaller / SwiftUI+ChatGPT.swift
Last active August 9, 2023 03:19
SwiftUI Meets ChatGPT
import SwiftUI
struct ContentView: View {
@StateObject var service = ChatGPTService()
@State var textResponse = ""
var body: some View {
VStack {
Text("Bot says: \(textResponse)")
Button {
Task {
@MatthewWaller
MatthewWaller / NavigationExample.swift
Last active January 11, 2023 05:03
An Example of NavigationStack Navigation
import SwiftUI
enum NavigationPath {
case red
case blue
case green
}
@main
struct MyApp: App {
@MatthewWaller
MatthewWaller / Drilling Down with SwiftUI and Navigation Stack
Created January 10, 2023 20:10
Drilling Down with SwiftUI and Navigation Stack
import SwiftUI
struct CarDetail: Identifiable {
var id = UUID()
var info: String
}
struct CarYear: Identifiable {
var id = UUID()
var info: String
@MatthewWaller
MatthewWaller / gist:37a3d889b684691c9f6a70d9abe76f92
Created January 27, 2022 04:35
Swift Playgrounds AR App Starter Code
import ARKit
import Combine
import RealityKit
import SwiftUI
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
import Combine
import PDFKit
import SwiftUI
struct ContentView: View {
@StateObject var manager = PDFManager()
@Binding var document: PDFTrapperDocument
@State var showScanner = false
@State var isEditing = false
var fileURL: URL?
struct QuickLookController: UIViewControllerRepresentable {
var startEditing: PassthroughSubject<Void, Never>
var url: URL
var endEditing: () -> Void
func makeUIViewController(context: Context) -> PreviewControllerHolder {
PreviewControllerHolder(url: url, startEditing: startEditing, endEditing: endEditing)
}
func updateUIViewController(_ viewController: PreviewControllerHolder, context: Context) {
import Combine
import QuickLook
class PreviewControllerHolder: UIViewController {
var cancellables = Set<AnyCancellable>()
var url: URL
var startEditing: PassthroughSubject<Void, Never>
var endEditing: () -> Void
var previewController = QLPreviewController()
struct PDFTrapperApp: App {
var body: some Scene {
DocumentGroup(newDocument: PDFTrapperDocument()) { file in
ContentView(document: file.$document, fileURL: file.fileURL)
}
}
}