How to Collect Feedback With Canny.io – #30DaysOfSwift | HackerNoon

Day 7: Stay in the Loop with Canny.io! 🔄

In the seventh post of the #30DaysOfSwift series, I am sharing about Canny.io—a great tool for collecting user feedback and tracking feature requests.

Here’s how you can easily add Canny.io to your app:

Steps to Integrate Canny.io:

  1. Set Up Your Canny.io Account:
  • If you haven’t already, sign up at Canny.io, and create a new board for your app to track feedback.
  • Go to Settings > Installation, and copy the Board ID you’ll need to integrate Canny.
  • Open Canny in a WebView: Since Canny operates as a web-based service, we’ll add a simple WebView to your SwiftUI app to open the feedback form.
import SwiftUI import WebKit

struct CannyView: UIViewRepresentable { let urlString: String

func makeUIView(context: Context) -> WKWebView {
    return WKWebView()
}

func updateUIView(_ uiView: WKWebView, context: Context) {
    if let url = URL(string: urlString) {
        let request = URLRequest(url: url)
        uiView.load(request)
    }
}

}

struct ContentView: View { var body: some View { NavigationView { VStack { Text("Got feedback? We’d love to hear it!") .padding()

            Button("Submit Feedback") {
                // Open the Canny feedback form
                openCannyForm()
            }
            .padding()
            .background(Color.blue)
            .foregroundColor(.white)
            .cornerRadius(10)
        }
    }
}

func openCannyForm() {
    if let window = UIApplication.shared.windows.first {
        let rootView = CannyView(urlString: "https://yourapp.canny.io/feedback") // Replace with your Canny feedback URL
        window.rootViewController = UIHostingController(rootView: rootView)
        window.makeKeyAndVisible()
    }
}

}

3. Customize Your Feedback Form:

Replace “https://yourapp.canny.io/feedback” with the actual URL of your Canny feedback board. You can also add parameters like userID and email to pre-fill information for users who are logged in.

Happy Coding!