11 Apr 2013
iOS UI that shines forever with UIAppearance and Core Graphic

iOS UI that shines forever with UIAppearance and Core Graphic

Traditionally, developers build UI relying on resources included within the application package with a huge part of it as images, sprites, backgrounds and then by using built in API present the complex graphical interface on the screen. 

Since iOS 5 developers can finally change the tint and outlook most of elements without much trouble. The UIAppearance protocol was added to simplify custom styling of iOS application UI elements and the classes that support the UIAppearance protocol have access to an appearance selector. This selector returns the appearance proxy for the receiver. With this proxy you can call selectors like setTintColor:, setBackgroundImage:forBarMetrics:, etc.

An example below shows how to set background images for UIButton and UINavigationBar:

[[UIButton appearance] setBackgroundImage:[[UIImage imageNamed:@"metalBlack"] 
resizableImageWithCapInsets:UIEdgeInsetsMake(4.0, 4.0, 4.0, 4.0)]
forState:UIControlStateNormal]; UIImage *textureImage = [[UIImage imageNamed:@"gray_texture"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)]; [[UINavigationBar appearance] setBackgroundImage:textureImage
forBarMetrics:UIBarMetricsDefault];

You can go even farther and make more out of UIAppearance with pacing UI_APPEARANCE_SELECTOR in your own custom subclasses to access visual elements that are not in the standard set of appearance selectors. As an example if you have a concrete UIView subclass that should be styled but it does not have a needed method then to avoid hard coding parameters into a view subclass or setting parameters for every its instance you can flag your property with UI_APPEARANCE_SELECTOR in the custom class and set it up with an appearance proxy latter.

Define the interface CustomAppearanceView that has a method definition with a special flag:

@interfaceCustomAppearanceView : UIView

@property (nonatomic, retain) UIColor *backgroundColor UI_APPEARANCE_SELECTOR;

@end

add implementation of the inteface:

@implementationCustomAppearanceView

@dynamic backgroundColor;

-(void)setBackgroundColor:(UIColor *)backgroundColor {
    [super setBackgroundColor:backgroundColor];
}

-(UIColor *)backgroundColor {
    return [super backgroundColor];
}

@end

to use place the following code in your UIApplicationDelegate delegate implementation into didFinishLaunchingWithOptions method: 

[[CustomAppearanceView appearance] setBackgroundColor:[UIColor blueColor]];

It is all as good as it gets but still to make a shiny application with that eye-catching outlook we need icons and images that are still depended on the device resolution and event interface orientation sometime.

The problem is that we need to create additional sets of graphical resources for all available screed resolutions with a substantial increase in the size of the application package and probably latter deal with post release maintenance implications (just may be retina v2 around the corner). The process demands a lot of attention and sometime gets tedious in the case amount of graphical elements is quite big especially when we need localize some of it. 
To make it in a way “written once works everywhere” at least on the same iOS platform we should crate images with system provided drawing functionality and in our case it is Core Graphic (Quartz 2D) framework. In the sample below we create an image for the button with a simple text label inside of it.

- (UIImage*) imageForButton{
    CGSize buttonSize = CGSizeMake(85.0, 38.0);
    UIGraphicsBeginImageContextWithOptions(buttonSize, NO, 0.0f);
    
    [self drawButton:buttonSize];
    
    UIImage* result = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    
    return result;
}


- (void)drawButton: (CGSize) size{

    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
    CGContextRef context = UIGraphicsGetCurrentContext();

    UIColor* selectedKnobColor = [UIColor colorWithRed: 0.4 green: 0.4 blue: 0.6 alpha: 1];
    UIColor* gradientColor = [UIColor colorWithRed: 0.85 green: 0.85 blue: 0.85 alpha: 1];

    NSArray* gradientColors = [NSArray arrayWithObjects: 
        (id)gradientColor.CGColor, 
        (id)[UIColor whiteColor].CGColor, nil];
    CGFloat gradientLocations[] = {0, 1};
    CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, 
(CFArrayRef)gradientColors, gradientLocations); UIColor* shadow = gradientColor; CGSize shadowOffset = CGSizeMake(0.1, 3.1); CGFloat shadowBlurRadius = 5; NSString* buttonLabelContent = @"Button"; { UIBezierPath* buttonRectanglePath = [UIBezierPath bezierPathWithRoundedRect:
CGRectMake(0.5, 0.5, size.width, size.height) cornerRadius: 4]; CGContextSaveGState(context); CGContextSetShadowWithColor(context, shadowOffset,
shadowBlurRadius, shadow.CGColor); CGContextBeginTransparencyLayer(context, NULL); [buttonRectanglePath addClip]; CGContextDrawLinearGradient(context, gradient, CGPointMake(43, 38.5),
CGPointMake(43, 0.5), 0); CGContextEndTransparencyLayer(context); CGContextRestoreGState(context); [[UIColor lightGrayColor] setStroke]; buttonRectanglePath.lineWidth = 1; [buttonRectanglePath stroke]; CGRect buttonLabelRect = CGRectMake(1, 12, 85, 18); [selectedKnobColor setFill]; [buttonLabelContent drawInRect: buttonLabelRect
withFont: [UIFont fontWithName: @"Helvetica" size: 12]
lineBreakMode: UILineBreakModeWordWrap
alignment: UITextAlignmentCenter]; } CGGradientRelease(gradient); CGColorSpaceRelease(colorSpace); }

As a result of imageForButton we will have an image like shown below:


The code inside of drawButton method is a quite long one and making it just by typing all code on the keyboard definitely is not the way any one is looking for. 

That's where, accounting on to all said above, a very useful tool called PaintCode comes to guarantee that you do not need to spend the rest of your weekends with a some fancy icon and its Bezie curves. We are going to write a little more about PaintCode tool quite soon.
As a summary we probably need to mention that the best approach to go with is a reasonable combination of static resources and code-drawn UI elements. Since some resources like the application’s icons, launch images and iTunes resources cannot be replaces with anything else at all, therefor the common way cannot be avoided totally, but having an alternative probably may help to go over some problems. As a sample when the size of application should be significantly reduced or resource localization should be simplified.

Similar posts:


  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz -1 OR 2+656-656-1=0+0+0+1 --
    555

  • 09-02-2022 wUmrLVWz -1 OR 2+820-820-1=0+0+0+1
    555

  • 09-02-2022 wUmrLVWz -1' OR 2+825-825-1=0+0+0+1 --
    555

  • 09-02-2022 wUmrLVWz -1' OR 2+799-799-1=0+0+0+1 or 'qUpLNouW'='
    555

  • 09-02-2022 wUmrLVWz -1" OR 2+207-207-1=0+0+0+1 --
    555

  • 09-02-2022 wUmrLVWz if(now()=sysdate(),sleep(15),0)
    555

  • 09-02-2022 wUmrLVWz 0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
    555

  • 09-02-2022 wUmrLVWz 0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
    555

  • 09-02-2022 wUmrLVWz (select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/
    555

  • 09-02-2022 wUmrLVWz -1; waitfor delay '0:0:15' --
    555

  • 09-02-2022 wUmrLVWz -1); waitfor delay '0:0:15' --
    555

  • 09-02-2022 wUmrLVWz 1 waitfor delay '0:0:15' --
    555

  • 09-02-2022 wUmrLVWz XOwZLDrg'; waitfor delay '0:0:15' --
    555

  • 09-02-2022 wUmrLVWz -5 OR 296=(SELECT 296 FROM PG_SLEEP(15))--
    555

  • 09-02-2022 wUmrLVWz -5) OR 210=(SELECT 210 FROM PG_SLEEP(15))--
    555

  • 09-02-2022 wUmrLVWz -1)) OR 549=(SELECT 549 FROM PG_SLEEP(15))--
    555

  • 09-02-2022 wUmrLVWz 6uw3uU38' OR 466=(SELECT 466 FROM PG_SLEEP(15))--
    555

  • 09-02-2022 wUmrLVWz WKA65Nrk') OR 556=(SELECT 556 FROM PG_SLEEP(15))--
    555

  • 09-02-2022 wUmrLVWz 92UrWzQ5')) OR 805=(SELECT 805 FROM PG_SLEEP(15))--
    555

  • 09-02-2022 wUmrLVWz 1*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
    555

  • 09-02-2022 wUmrLVWz 1'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
    555

  • 09-02-2022 wUmrLVWz 1'"
    555

  • 09-02-2022 wUmrLVWz @@Zx1G9
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    -1 OR 2+323-323-1=0+0+0+1 --

  • 09-02-2022 wUmrLVWz 1
    -1 OR 2+417-417-1=0+0+0+1

  • 09-02-2022 wUmrLVWz 1
    -1' OR 2+277-277-1=0+0+0+1 --

  • 09-02-2022 wUmrLVWz 1
    -1' OR 2+422-422-1=0+0+0+1 or 'BKlgji12'='

  • 09-02-2022 wUmrLVWz 1
    -1" OR 2+675-675-1=0+0+0+1 --

  • 09-02-2022 wUmrLVWz 1
    if(now()=sysdate(),sleep(15),0)

  • 09-02-2022 wUmrLVWz 1
    0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z

  • 09-02-2022 wUmrLVWz 1
    0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z

  • 09-02-2022 wUmrLVWz 1
    (select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/

  • 09-02-2022 wUmrLVWz 1
    -1; waitfor delay '0:0:15' --

  • 09-02-2022 wUmrLVWz 1
    -1); waitfor delay '0:0:15' --

  • 09-02-2022 wUmrLVWz 1
    1 waitfor delay '0:0:15' --

  • 09-02-2022 wUmrLVWz 1
    jXnm5HSy'; waitfor delay '0:0:15' --

  • 09-02-2022 wUmrLVWz 1
    -5 OR 573=(SELECT 573 FROM PG_SLEEP(15))--

  • 09-02-2022 wUmrLVWz 1
    -5) OR 625=(SELECT 625 FROM PG_SLEEP(15))--

  • 09-02-2022 wUmrLVWz 1
    -1)) OR 724=(SELECT 724 FROM PG_SLEEP(15))--

  • 09-02-2022 wUmrLVWz 1
    bfsPkX4J' OR 624=(SELECT 624 FROM PG_SLEEP(15))--

  • 09-02-2022 wUmrLVWz 1
    jSEIVH9r') OR 892=(SELECT 892 FROM PG_SLEEP(15))--

  • 09-02-2022 wUmrLVWz 1
    mDfN8cnu')) OR 63=(SELECT 63 FROM PG_SLEEP(15))--

  • 09-02-2022 wUmrLVWz 1
    555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)

  • 09-02-2022 wUmrLVWz 1
    555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'

  • 09-02-2022 wUmrLVWz 1
    1'"

  • 09-02-2022 wUmrLVWz 1
    @@j05Ea

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 -1 OR 2+309-309-1=0+0+0+1 -- 1
    555

  • 09-02-2022 -1 OR 2+135-135-1=0+0+0+1 1
    555

  • 09-02-2022 -1' OR 2+475-475-1=0+0+0+1 -- 1
    555

  • 09-02-2022 -1' OR 2+254-254-1=0+0+0+1 or 'IVoCd3eJ'=' 1
    555

  • 09-02-2022 -1" OR 2+852-852-1=0+0+0+1 -- 1
    555

  • 09-02-2022 if(now()=sysdate(),sleep(15),0) 1
    555

  • 09-02-2022 0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z 1
    555

  • 09-02-2022 0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z 1
    555

  • 09-02-2022 (select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/ 1
    555

  • 09-02-2022 1 waitfor delay '0:0:15' -- 1
    555

  • 09-02-2022 damJHIwc'; waitfor delay '0:0:15' -- 1
    555

  • 09-02-2022 8DmM2t9O' OR 785=(SELECT 785 FROM PG_SLEEP(15))-- 1
    555

  • 09-02-2022 vYHaAO5U') OR 12=(SELECT 12 FROM PG_SLEEP(15))-- 1
    555

  • 09-02-2022 akI7uMuj')) OR 679=(SELECT 679 FROM PG_SLEEP(15))-- 1
    555

  • 09-02-2022 wUmrLVWz'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||' 1
    555

  • 09-02-2022 1'" 1
    555

  • 09-02-2022 @@4IsEg 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 09-02-2022 wUmrLVWz 1
    555

  • 10-02-2022 wUmrLVWz 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza -1 OR 2+565-565-1=0+0+0+1 --
    555

  • 28-06-2022 ZMskyuza -1 OR 2+55-55-1=0+0+0+1
    555

  • 28-06-2022 ZMskyuza -1' OR 2+394-394-1=0+0+0+1 --
    555

  • 28-06-2022 ZMskyuza -1' OR 2+883-883-1=0+0+0+1 or 'L9lo7STJ'='
    555

  • 28-06-2022 ZMskyuza -1" OR 2+213-213-1=0+0+0+1 --
    555

  • 28-06-2022 ZMskyuza if(now()=sysdate(),sleep(15),0)
    555

  • 28-06-2022 ZMskyuza 0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
    555

  • 28-06-2022 ZMskyuza 0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
    555

  • 28-06-2022 ZMskyuza (select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/
    555

  • 28-06-2022 ZMskyuza -1; waitfor delay '0:0:15' --
    555

  • 28-06-2022 ZMskyuza -1); waitfor delay '0:0:15' --
    555

  • 28-06-2022 ZMskyuza 1 waitfor delay '0:0:15' --
    555

  • 28-06-2022 ZMskyuza IeuqFE6e'; waitfor delay '0:0:15' --
    555

  • 28-06-2022 ZMskyuza -5 OR 754=(SELECT 754 FROM PG_SLEEP(15))--
    555

  • 28-06-2022 ZMskyuza -5) OR 683=(SELECT 683 FROM PG_SLEEP(15))--
    555

  • 28-06-2022 ZMskyuza -1)) OR 86=(SELECT 86 FROM PG_SLEEP(15))--
    555

  • 28-06-2022 ZMskyuza QqN8nwVh' OR 607=(SELECT 607 FROM PG_SLEEP(15))--
    555

  • 28-06-2022 ZMskyuza gm3hiemG') OR 468=(SELECT 468 FROM PG_SLEEP(15))--
    555

  • 28-06-2022 ZMskyuza ieL6YuOv')) OR 517=(SELECT 517 FROM PG_SLEEP(15))--
    555

  • 28-06-2022 ZMskyuza 1*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
    555

  • 28-06-2022 ZMskyuza 1'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
    555

  • 28-06-2022 ZMskyuza 1'"
    555

  • 28-06-2022 ZMskyuza @@WlppK
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    -1 OR 2+390-390-1=0+0+0+1 --

  • 28-06-2022 ZMskyuza 1
    -1 OR 2+650-650-1=0+0+0+1

  • 28-06-2022 ZMskyuza 1
    -1' OR 2+75-75-1=0+0+0+1 --

  • 28-06-2022 ZMskyuza 1
    -1' OR 2+361-361-1=0+0+0+1 or 'go3ONRpf'='

  • 28-06-2022 ZMskyuza 1
    -1" OR 2+100-100-1=0+0+0+1 --

  • 28-06-2022 ZMskyuza 1
    if(now()=sysdate(),sleep(15),0)

  • 28-06-2022 ZMskyuza 1
    0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z

  • 28-06-2022 ZMskyuza 1
    0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z

  • 28-06-2022 ZMskyuza 1
    (select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/

  • 28-06-2022 ZMskyuza 1
    -1; waitfor delay '0:0:15' --

  • 28-06-2022 ZMskyuza 1
    -1); waitfor delay '0:0:15' --

  • 28-06-2022 ZMskyuza 1
    1 waitfor delay '0:0:15' --

  • 28-06-2022 ZMskyuza 1
    gwGppa7G'; waitfor delay '0:0:15' --

  • 28-06-2022 ZMskyuza 1
    -5 OR 760=(SELECT 760 FROM PG_SLEEP(15))--

  • 28-06-2022 ZMskyuza 1
    -5) OR 555=(SELECT 555 FROM PG_SLEEP(15))--

  • 28-06-2022 ZMskyuza 1
    -1)) OR 598=(SELECT 598 FROM PG_SLEEP(15))--

  • 28-06-2022 ZMskyuza 1
    Amn3f5lF' OR 31=(SELECT 31 FROM PG_SLEEP(15))--

  • 28-06-2022 ZMskyuza 1
    7LfSBnfq') OR 570=(SELECT 570 FROM PG_SLEEP(15))--

  • 28-06-2022 ZMskyuza 1
    5tLVgaTr')) OR 623=(SELECT 623 FROM PG_SLEEP(15))--

  • 28-06-2022 ZMskyuza 1
    555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)

  • 28-06-2022 ZMskyuza 1
    555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'

  • 28-06-2022 ZMskyuza 1
    1'"

  • 28-06-2022 ZMskyuza 1
    @@fnQaP

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 -1 OR 2+626-626-1=0+0+0+1 -- 1
    555

  • 28-06-2022 -1 OR 2+303-303-1=0+0+0+1 1
    555

  • 28-06-2022 -1' OR 2+600-600-1=0+0+0+1 -- 1
    555

  • 28-06-2022 -1' OR 2+787-787-1=0+0+0+1 or 'C1aBkhwg'=' 1
    555

  • 28-06-2022 -1" OR 2+682-682-1=0+0+0+1 -- 1
    555

  • 28-06-2022 if(now()=sysdate(),sleep(15),0) 1
    555

  • 28-06-2022 0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z 1
    555

  • 28-06-2022 0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z 1
    555

  • 28-06-2022 (select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/ 1
    555

  • 28-06-2022 1 waitfor delay '0:0:15' -- 1
    555

  • 28-06-2022 tgbYrE1Q'; waitfor delay '0:0:15' -- 1
    555

  • 28-06-2022 Lp6nLwtM' OR 773=(SELECT 773 FROM PG_SLEEP(15))-- 1
    555

  • 28-06-2022 XCEhcxRL') OR 723=(SELECT 723 FROM PG_SLEEP(15))-- 1
    555

  • 28-06-2022 QhRCUo73')) OR 644=(SELECT 644 FROM PG_SLEEP(15))-- 1
    555

  • 28-06-2022 ZMskyuza'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||' 1
    555

  • 28-06-2022 1'" 1
    555

  • 28-06-2022 @@eWwvL 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

  • 28-06-2022 ZMskyuza 1
    555

Favourite posts

What it Takes to Get an e-Commerce Site Online

Getting an e-Commerce website online might sound like a huge undertaking,...

WebView Interactions with JavaScript

WebView displays web pages. But we are interested not only in web-content...

Google Maps API for Android

Google Maps is a very famous and helpful service, which firmly entrenched...

Unit Testing with RSpec

RSpec is an integral part of Test Drive Development (TDD) and its main id...

Client side JavaScript: Knockout in practice

When developing a web application that extensively works with user input ...

Accessing Field Configurations in JIRA for changing field description

Field configuration defines behavior of all standart (system) fields and ...

A Guide for Upgrading to Ruby on Rails 4.2.0

As you might have already heard, the latest stuff for upgrading rails was...