Giter Club home page Giter Club logo

tattle-ui-ios's Introduction

Tattle-UI-iOS


Why do you need Tattle-UI

As a developer, we struggle to understand and reproduce few UI bugs reported by the tester. In tester's point of view, tester writes paragraphs to explain a simple UI misalignment when they test.

Tattle-UI solves this problem by providing a simple mechanism to get UI feedback from testers.

What do you see on your app

After integration, Tattle-UI library adds a floating button on every screen. Tester can click on this button whenever he sees some issue with the UI. Tattle-UI library takes the snapshot of the current screen and allow the tester to mark problematic section using scribbles. Tester may wish to add a audio note along with this. Tattle-UI provides tester to send them in Email. We use anypic app to demo this control.

Integration steps

From github

  • Download the code from github and include the files into your project.
  • Include following frameworks
 OpenGLES.framework
 QuartzCore.framework
 AVFoundation.framework
 CoreGraphics.framework
 MessageUI.framework
 ImageIO.framework  
  • Import "UIController+SnapShotButton.h" file into App-Prefix.pch file. #import "UIController+SnapShotButton.h"
  • Enable Tattle-UI control by adding below line in "AppDelegate.m". #import "TattleControl.h"
  • Invoke enableTattleToWindow: method, after main window creation.
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
[[TattleControl sharedControl] enableTattleToWindow:self.window]; 

From Cocoapods

  • Podfile
platform :ios, '6.0'
pod 'Tattle-UI-iOS', '~> 1.0.2'
  • Enable Tattle-UI control by adding below line in "AppDelegate.m". #import "TattleControl.h"
  • Invoke enableTattleToWindow: method, after main window creation.
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
[[TattleControl sharedControl] enableTattleToWindow:self.window];

From github

  • Download the code from github and include the files into your project.
  • Include following header files into AppModule-Bridging-Header.h
#import "MovableEditorView.h"
#import "Scribble.h"
#import "ScribbleEraseView.h"
#import "ScribblePathPoint.h"
#import "CommonMacro.h"
#import "ScribCapControl.h"
#import "SnapShotView.h"
#import "TattleControl.h"
#import "TAudioManager.h"
#import "TConstants.h"
#import "TFileManager.h"
#import "TPopupView.h"
#import "UIController+SnapShotButton.h"
#import "UIImage+GiffAnimation.h"
  • Invoke enableTattleToWindow: method, after main window creation.
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
TattleControl.sharedControl().enableTattleToWindow(self.window)

From Cocoapods

  • Podfile
platform :ios, '6.0'
pod 'Tattle-UI-iOS', '~> 1.0.2'
  • Include following header files into AppModule-Bridging-Header.h
#import "MovableEditorView.h"
#import "Scribble.h"
#import "ScribbleEraseView.h"
#import "ScribblePathPoint.h"
#import "CommonMacro.h"
#import "ScribCapControl.h"
#import "SnapShotView.h"
#import "TattleControl.h"
#import "TAudioManager.h"
#import "TConstants.h"
#import "TFileManager.h"
#import "TPopupView.h"
#import "UIController+SnapShotButton.h"
#import "UIImage+GiffAnimation.h"
  • Invoke enableTattleToWindow: method, after main window creation.
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
TattleControl.sharedControl().enableTattleToWindow(self.window)

Note:

Requirement

  • Minimum ios target : iOS 6
  • Minimum xcode : Xcode 5.0
  • All IOS devices.
  • Only compatible with ARC.

Limitation

  • Only supported for portrait orientation.
  • Audio recording supports only 2 minutes.

Optional Configuration

Objective-C

  • Change scribble color (default black)
[[TattleControl sharedControl] setScribbleColor:YOUR_Color];
  • Change color of floating button
[[TattleControl sharedControl] changeSpotImageColor:YOUR_Color];

We could also insert our own image too instead spot icon.

[[TattleControl sharedControl] setSpotButtonImage:YOUR_Image];
  • Change background color of floating control
[[TattleControl sharedControl] setMovableControlBackgroundColor:YOUR_Color];
[[TattleControl sharedControl] setMovableControlBackgroundColor:YOUR_Color withAlpha:alpha];
  • Set recipients email
[[TattleControl sharedControl] assignRecipientEmailId:@"YOUR_EMAIL_HERE" withCCId:@"YOUR_EMAIL_HERE" emailSubject:@"UI Bug using Tattle UI"];
  • Add more Recipient
[[TattleControl sharedControl] addRecipientMailId:@"YOUR_EMAIL_HERE"];
  • Add more CC
[[TattleControl sharedControl] addCCMailId:@"YOUR_EMAIL_HERE"];

Swift

  • Change scribble color (default black)
TattleControl.sharedControl().setScribbleColor(YOUR_Color)
  • Change color of floating button
TattleControl.sharedControl().changeSpotImageColor(YOUR_Color)

We could also insert our own image too instead spot icon.

TattleControl.sharedControl().setSpotButtonImage(YOUR_Image)
  • Change background color of floating control
TattleControl.sharedControl().setMovableControlBackgroundColor(YOUR_Color)
TattleControl.sharedControl().setMovableControlBackgroundColor(YOUR_Color, withAlpha: alpha)
  • Set recipients email
TattleControl.sharedControl().assignRecipientEmailId("YOUR_EMAIL_HERE", withCCId: "YOUR_EMAIL_HERE", emailSubject: "Bugs")
  • Add more Recipient
TattleControl.sharedControl().addRecipientMailId("YOUR_EMAIL_HERE")
  • Add more CC
TattleControl.sharedControl().addCCMailId("YOUR_EMAIL_HERE")

License

This code is distributed under the terms and conditions of the MIT license.

tattle-ui-ios's People

Contributors

justinjiadev avatar maninp avatar npctech avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.