SuggestionsBox helps you build better a product trough your user suggestions. Written in Swift. 🗳
Switch branches/tags
Nothing to show
Clone or download
Latest commit d9c4b6e Feb 3, 2017
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Example Updated Swift version to 3.0 Sep 26, 2016
Images Release 1.1.1. Jun 3, 2016
SuggestionsBox Updated Swift version to 3.0 Sep 26, 2016
.gitignore Initial commit Jun 3, 2016
.travis.yml Update .travis.yml Feb 3, 2017
LICENSE Initial commit Jun 3, 2016
README.md Update README.md Feb 3, 2017
SuggestionsBox.podspec Updated podspec to version 1.5 Sep 26, 2016
_Pods.xcodeproj Initial commit Jun 3, 2016

README.md

SuggestionsBox

BuddyBuild Version Carthage compatible License Platform Language

An iOS library to aggregate users feedback about suggestions, features or comments in order to help you build a better product.

Swift Versions

Why SuggestionsBox?

  • Aggregates customer feedback
  • Let your customer decide
  • Build the most voted suggestion
  • Build a better product

Features

  • List and add new suggestions
  • Comment and vote other suggestions
  • Search inside Titles and Descriptions
  • Customizable colors and strings
  • Localizable

Demo App

Run the demo app and play with it! Demo App

Demo Project

To run the example project, clone the repo, and run pod install from the Example directory first.

Getting Started

Requirements

Requires iOS SDK version > 8.0

Requires Swift 3.0

Installation with CocoaPods

CocoaPods is a 3rd-party dependency manager for Swift and Objective-C projects. For more information, refer to the CocoaPods Getting Started Guide. Otherwise, you can install CocoaPods with the following command:

$ gem install cocoapods

Podfile

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

source 'https://github.com/CocoaPods/Specs.git'
pod 'SuggestionsBox'

Then, run the following command:

$ pod install

Installation Manually

To integrate SuggestionsBox into your Xcode project manually, just include the filest from /Pod/Classes/ folder in your App’s Xcode project.

Then, import the following file your classes:

import SuggestionsBox

Quick Guide

Usage

1. Import class
import SuggestionsBox
2. Add Delegate protocol.
class ViewController: UIViewController, SuggestionsBoxDelegate {
}
3. Create, initialize and add SuggestionsBox.
let suggestionsBox = SuggestionsBox()
suggestionsBox.delegate = self
SuggestionsBoxTheme.user = "Manuel"
SuggestionsBoxTheme.appName = "SuggestionsBox"
SuggestionsBoxTheme.title = "SuggestionsBox"
SuggestionsBoxTheme.headerText = "Suggest a new feature, tweak, improvement... We'd love to hear your sugestions!"
SuggestionsBoxTheme.footerText = "Powered by SuggestionsBox"
SuggestionsBoxTheme.newSuggestionFooterText = "Powered by SuggestionsBox"
SuggestionsBoxTheme.newCommentFooterText = "Powered by SuggestionsBox"
SuggestionsBoxTheme.navigationBarHeartColor = UIColor.redColor()
SuggestionsBoxTheme.tableSeparatorColor = UIColor.groupTableViewBackgroundColor()
SuggestionsBoxTheme.tableCellBackgroundColor = UIColor.whiteColor()
SuggestionsBoxTheme.tableCellTitleTextColor = UIColor.blackColor()
SuggestionsBoxTheme.tableCellDescriptionTextColor = UIColor.lightGrayColor()

let navigationBar = UINavigationController.init(rootViewController: suggestionsBox)
self.presentViewController(navigationBar, animated: true, completion: nil)
4. Implement Delegate Methods
// MARK : SuggestionsBoxDelegate Methods
  
func suggestions() -> Array<Suggestion> {
    return self.featureRequests
}

func commentsForSuggestion(suggestion: Suggestion) -> Array<Comment> {
    return self.comments.filter({ $0.suggestionId == suggestion.suggestionId })
}

func newSuggestionAdded(newSuggestion: Suggestion) {
    // Refresh online data
    self.featureRequests.append(newSuggestion)
}

func newCommentForSuggestionAdded(suggestion: Suggestion, newComment: Comment) {
    // Refresh online data
    self.comments.append(newComment)
}

func suggestionFavorited(suggestion: Suggestion) {
    // Refresh online data

    // Refresh local data
    let index = self.featureRequests.indexOf(suggestion)
    self.featureRequests[index!] = suggestion
}

func suggestionUnFavorited(suggestion: Suggestion) {
    // Refresh online data

    // Refresh local data
    let index = self.featureRequests.indexOf(suggestion)
    self.featureRequests[index!] = suggestion
}

Roadmap

  • CocoaPods support
  • Carthage support
  • Tests

Apps using this library

Author

License

SuggestionsBox is available under the MIT license. See the LICENSE.md file for more info.