{"id":22690020,"url":"https://github.com/yahoojapan/appfeedback-ios","last_synced_at":"2025-04-12T22:07:58.496Z","repository":{"id":47262061,"uuid":"163118691","full_name":"yahoojapan/AppFeedback-ios","owner":"yahoojapan","description":"📸 You can post feedback messages and screenshots to Slack from your iOS app!   🎥","archived":false,"fork":false,"pushed_at":"2021-09-06T08:13:06.000Z","size":3934,"stargazers_count":40,"open_issues_count":9,"forks_count":8,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-12T22:07:41.376Z","etag":null,"topics":["ios","ios-sdk"],"latest_commit_sha":null,"homepage":"","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yahoojapan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-12-26T00:06:11.000Z","updated_at":"2025-01-16T10:27:54.000Z","dependencies_parsed_at":"2022-09-07T11:41:15.407Z","dependency_job_id":null,"html_url":"https://github.com/yahoojapan/AppFeedback-ios","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yahoojapan%2FAppFeedback-ios","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yahoojapan%2FAppFeedback-ios/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yahoojapan%2FAppFeedback-ios/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yahoojapan%2FAppFeedback-ios/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yahoojapan","download_url":"https://codeload.github.com/yahoojapan/AppFeedback-ios/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248637769,"owners_count":21137538,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ios","ios-sdk"],"created_at":"2024-12-10T00:25:09.593Z","updated_at":"2025-04-12T22:07:58.458Z","avatar_url":"https://github.com/yahoojapan.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"![](./assets/Logo.png)\n\n[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)\n[![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat-square)](./LICENSE)\n![Platform](https://img.shields.io/badge/platforms-iOS%209.0+-333332.svg)\n[![Build Status](https://travis-ci.org/yahoojapan/AppFeedback-ios.svg?branch=master)](https://travis-ci.org/yahoojapan/AppFeedback)\n\n\n# AppFeedback\nYou can post feedback messages and screenshots to Slack from your iOS app!\n\n![](./assets/demo.gif)\n\nIt is very useful for internal test!\n\n## How to feedback\n\nIntroducing this SDK, a floating icon of feedback is displayed. Tapping it, a feedback dialog is displayed.\n\n## Feature\n\n- Show feedback button\n- Two fingers long press to show feedback dialog\n- Take a screenshot \u0026 Record screen\n\n## Requirements\n\n- iOS 9+\n\n## Usage\n\nSwift\n\n### 1. Incorporate SDK with Carthage\n\n[Carthage](https://github.com/Carthage/Carthage)\n```\ngithub \"https://github.com/yahoojapan/AppFeedback-ios\"\n```\n\nIf you do not want to include SDK framework binaries in your application, please remove it from Copy Frameworks by looking at the configuration for the following.\n\n![](./assets/CopyFrameworks.png)\n\n### 2. import header\n\nimport [Bridging Header](https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html)\n```\n#import \u003cAppFeedback/AppFeedback.h\u003e\n```\n\n### 3. Flag definition in configuration to enable SDK\n\n**Please control so that it applies only to internal distribution so that it will not be effective in production application**\n\nFirst define flags in target configuration\n\n![](./assets/CompilationFlags.png)\n\n### 4.  Describe SDK initialization process to didFinishLaunchingWithOptions\n\nDescribe initialization processing of SDK to \"Describe SDK initialization process to didFinishLaunchingWithOptionsdidFinishLaunchingWithOptions\"\n\nInitialize the SDK when launching the application. Make sure it is enabled only when the flag you set above is defined.\n\n```swift\nfunc application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -\u003e Bool {\n    // ……\n    \n    #if ENABLE_APP_FEEDBACK\n        AppFeedback.configure(withSlackToken:\"\u003cyour token\u003e\", slackChannel:\"\u003cslack channel id\u003e\")\n    #endif\n\n    // ……\n}\n```\n\nTo hide the feedback icon, please support display with gesture.\n```\n        AppFeedback.readyFeedbackGesture()     // Display feedback dialog with two fingers long tap\n        AppFeedback.readyScreenShot()          // Display feedback dialog when shooting screenshot\n```\n\n### 5. Add action to set SDK to Fastfile\n\nWrite [setup_app_feedback_sdk](https://github.com/yahoojapan/fastlane-plugin-setup_app_feedback_sdk) in the fastlane build before build_app. Please specify project, scheme, configuration to use for build.\n\nThis action writes the slack api token and channel id to your Info.plist.\n\n```ruby\n    setup_app_feedback_sdk(\n      project: 'MyApp.xcodeproj',\n      scheme: 'MyApp',\n      configuration: 'AppFeedback',\n      slack_api_token: 'your-slack-token', # Preferably configure as ENV['SLACK_API_TOKEN']\n      slack_channel: 'your-slack-channel-id'\n    )\n\n    build_app(...)\n    run_tests(...)\n```\n\n### 6. Build with Screwdriver\n\nThe SDK is built in the application for internal distribution built with Screwdriver.\n\n\n## API\n\n### AppFeedback\n#### func readyFeedbackGesture()\n\nDisplay a feedback dialog with two finger long press gestures.\n\n#### func readyScreenShot()\n\nDisplay a feedback dialog when shooting screenshots.\n\n#### func startRecording()\n\nStart screen recording (movie capture).\n\n#### func endRecording()\n\nEnd screen recording (movie capture).\n\n#### var isHidden: Bool { get set }\n\n\nBoolean value as to whether to display the feedback button. Default is true.\n\n*It is always invisible because there is a problem with the display of buttons under iOS 9.\n\n#### func showFeedbackDialog()\n\nDisplay the feedback dialog immediately.\n\nPlease use this method when displaying feedback dialog by custom gesture etc created by yourself.\n\n```swift\nfunc yourLongPressedGesture(sender: UILongPressGestureRecognizer) {\n    AppFeedback.showFeedbackDialog()    \n}\n```\n\n#### func configure(withSlackToken:slackChannel:)\n\nSet your slack token and channel.\n\n#### func configure(withSlackChannel)\n\nSet your slack channel. Please set the slack token with fastlane [setup_app_feedback_sdk](https://github.com/yahoojapan/fastlane-plugin-setup_app_feedback_sdk) action.\n\n#### var feedbackCategories: [String] { get set }\n\nList of feedback categories.\n\nThe default is \"Bug\" \"Request\" \"Question\" \"Design\" \"Others\".\n\n#### var slackApiUrl: String { get set }\n\nSlack API URL (default: https://slack.com/api)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyahoojapan%2Fappfeedback-ios","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyahoojapan%2Fappfeedback-ios","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyahoojapan%2Fappfeedback-ios/lists"}