IOS Survey SDK

Qwary iOS SDK enables you to collect feedback from your mobile app. Embed the surveys in your iOS application seamlessly with few lines of code.

Find Github Project Here : QwarySurvey


  1. Full screen feedback

  2. Embedded-screen feedback

  3. Scheduled Surveys one-time or recurring feedbacks.



CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:

$ gem install cocoapods

To integrate QWarySurveySDK into your Xcode project using CocoaPods, specify it in your Podfile:

source ''
platform :ios, '9.0'

target '<Your Target Name>' do
pod 'QWarySurveySDK'

Then, run the following command:

$ pod install


Full-screen feedback

Take feedback using our pre-build QWSurveyViewController and get the response after submission by implementing the QWSurveyDelegate protocol.

Import framework

import QWarySurveySDK

Create a QWSurveyViewController

Create a QWSurveyViewController with QWSurveyRequest and QWSurveyDelegate

var urlQueryParams = [String:String]()
urlQueryParams["email"] = ""
urlQueryParams["planId"] = "trial2"
let request = QWSurveyRequest(scheme: "https", host: "", path: "/form/S_wSzSPnasH9Wc_FT15X0J1BuEcPl5gIZ99rQiotQa8=", params: urlQueryParams)
let qwSurveyViewController = QWSurveyViewController(request: request, delegate: self)
present(qwSurveyViewController, animated: true, completion: nil)

Embed survey

Embed the feedback experience using the QWSurveyView.

Add QWSurveyView

Add a UIView to storyboard and change the Class to QWSurveyView under Identity Inspector and also make sure that the Module is QWarySurveySDK.

Now connect the QWSurveyView as an IBOutlet

@IBOutlet weak var qwSurveyView: QWSurveyView!

Then call loadSurvey(request: QWSurveyRequest, delegate: QWSurveyDelegate?) on the qwSurveyView to load the survey

let request = QWSurveyRequest(scheme: "https", host: "", path: "/form/S_wSzSPnasH9Wc_FT15X0J1BuEcPl5gIZ99rQiotQa8=", params: [String:String]())
qwSurveyView.loadSurvey(request: request, delegate: self)

Handle response

Implement QWSurveyDelegate protocol to handle responses.

Schedule Surveys

Ask the user to take a feedback survey when they open your app or a screen after specified time. Local notifications are also scheduled for next prompt date/time if the survey has repeatSurvey:true in QWScheduleConfigurations.

Override viewDidAppear method and create a QWSurvey object with QWSurveyRequest, QWSurveyDelegate and QWScheduleConfigurations. Then call scheduleSurvey method on the QWSurvey object by passing the parent ViewController reference to schedule the survey.

override func viewDidAppear(_ animated: Bool) {
    let qwSurvey = QWSurvey(request: request, delegate: self, configurations: QWScheduleConfigurations.testConfigs)
    qwSurvey.scheduleSurvey(parent: self)

Schedule Configurations


startDate: String

Survey is allowed to be shown to user at this date.

repeatSurvey: Bool

After survey completion, if user should be asked for same survey again. If this property is set true then make sure you set a value of repeatInterval as well.

repeatInterval: TimeInterval

Time interval for survey to be shown to user after last attempt. This property should always have a value when repeatSurvey is set true

Handle response

Implement QWSurveyDelegate protocol to handle responses.


QWarySurveySDK is licensed under the Apache License 2.0.

For more details visit

Last updated