Quick Start
Add a feature request portal to your iOS app in 5 minutes. Your users can submit ideas, vote, and see your roadmap — all with a single line of code.
Step 1: Add the SDK
Add FeatKit to your project using Swift Package Manager.
In Xcode:
- Go to File → Add Package Dependencies
- Enter the repository URL:
https://github.com/featkit/featkit-ios
- Select Up to Next Major Version from
1.0.0
- Click Add Package
Step 2: Get your credentials
- Sign up at featkit.com
- Create a project (usually one per app)
- Go to Project Settings → API Keys
- Copy your Project ID and API Key
Initialize FeatKit when your app launches:
import FeatKit
// In AppDelegate
func application(_ application: UIApplication,
didFinishLaunchingWithOptions options: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
FeatKit.configure(projectId: "YOUR_PROJECT_ID", apiKey: "YOUR_API_KEY")
return true
}
// Or in SwiftUI App
@main
struct MyApp: App {
init() {
FeatKit.configure(projectId: "YOUR_PROJECT_ID", apiKey: "YOUR_API_KEY")
}
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
Step 4: Identify users
After a user logs in, identify them so their feedback is associated with their account:
// After user login
await FeatKit.identify(
userId: user.id,
email: user.email,
name: user.displayName
)
For apps without user accounts, use FeatKit.identifyAnonymous() instead. The SDK generates a stable device identifier.
Step 5: Open the portal
Open the feedback portal from anywhere in your app:
// That's it — one line!
try await FeatKit.openPortal()
The SDK handles authentication automatically. Users see the portal in a native Safari view and can submit feature requests, vote on ideas, and view your roadmap.
Full example
import SwiftUI
import FeatKit
struct SettingsView: View {
var body: some View {
List {
Button("Feature Requests") {
Task {
try await FeatKit.openPortal()
}
}
}
}
}
What’s included
The SDK provides much more than just opening the portal:
| Feature | Method |
|---|
| Open portal | FeatKit.openPortal() |
| Get portal URL | FeatKit.getPortalURL() |
| List features | FeatKit.getFeatures() |
| Submit feature | FeatKit.submitFeature(title:description:) |
| Vote | FeatKit.vote(featureId:) |
| Events | FeatKit.onEvent { } |
Next steps