• natrosoft

Create an iOS in-app survey for free using Google Forms

Updated: Feb 21, 2020

Rather than integrating a 3rd party solution that costs money, here is a quick, easy, and FREE way to display a Google Form in your mobile iOS app to gather feedback.

There are quite a few companies out there that let you create surveys for your customers, but few of them offer an iOS SDK to make in-app surveys quick and easy. A few options are: Survicate, Survey Monkey, and Instabug.

Survicate has a limited feature free plan, but then goes to $79/mo. Survey Monkey also has a limited feature free plan for personal use, but then the cheapest option is $32/mo...but that is billed annually. $99/mo is their standard monthly plan. Instabug charges an astronomical $208/mo! It's just a survey! We can get free in-app analytics and crash reporting tools, but asking our customers a few questions costs more per user than a G-Suite subscription?! This seems 🦇💩 crazy to me.

That's why recently (for Tagubl Picture Notes) I got scrappy and decided to use Google Forms. It's familiar. No SDK. No added binary size. Zero learning curve. 100% free. Formats itself nicely on mobile...I just needed to figure out how to cleanly present it inside a web view and detect a form submission. Turns out, it's pretty simple. Here's how:

  1. Create your form on Google Docs

  2. Make a UIViewController subclass that displays a WKWebView

  3. Present the view controller at the right time.

Create your form on Google Docs

Here's a copy of the survey I'm presenting to users in Tagubl Picture Notes. I customized the theme color to match my app.

When you make your form, I also recommend turning off Collect email addresses and Requires Sign in. You do not want any friction for users to submit feedback. Also, try to keep the form short. Don't overwhelm your users.

Make a UIViewController subclass that displays a WKWebView

Here's my form view controller.

When the logic in your app dictates, present this view controller with the appropriate form url. Upon submission, it detects that the form was submitted by inspecting the url, displays a thank you message using SVProgressHUD, and then dismisses itself and calls the completion closure.

Present the view controller at the right time.

Here's what the flow looks like in Tagubl Picture Notes

  1. First I have a threshold of user activity before I display the non-intrusive message in the toolbar.

  2. When the user taps the toolbar icon, I present a custom popup before presenting the survey.

  3. If the user selects Yes, I simply modally present the GoogleWebFormViewController (fullscreen). If you allow the iOS 13 standard form sheet, then the user can dismiss by swiping down. Fullscreen forces the user to hit submit to exit the screen. I do make all the questions optional to reduce friction.

  4. Once the user clicks submit, the view dismisses and I record in user defaults that the user filled out the form. (Note: I also record the form version and timestamp so that I can present other forms in the future. I also record some basic analytics on this user interaction using Flurry)

  5. Form view is dismissed and the completion code removes the toolbar message icon.


This is a great quick/easy/free way to get feedback from your users without dealing with yet another 3rd party tool and SDK. It's not scalable if you have thousands of DAU, but if your budget is $0, this is a scrappy solution. If you do outgrow Google Forms, out of everything I've seen, Survicate appears to give the best bang for the buck. Thanks for reading and stay scrappy my fellow iOS devs!

138 views0 comments

© 2020 Nātrosoft LLC

Greater New York City Area

  • Twitter Clean Grey
  • LinkedIn Clean Grey