Skip to content

Instantly share code, notes, and snippets.

💭
🏔🏃‍♂

Rui Peres RuiAAPeres

💭
🏔🏃‍♂
Block or report user

Report or block RuiAAPeres

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@RuiAAPeres
RuiAAPeres / NSObject+FacebookImage
Created Aug 29, 2013
Just a small piece of code to get the basic info + profile picture
View NSObject+FacebookImage
+ (void(^)())facebookImageBlockWithCompletionHandler:(void(^)(id profilePicture, id userInformation, NSError *error))completionHandler
{
void(^facebookBlock)()= ^{[FBSession openActiveSessionWithReadPermissions:@[@"basic_info", @"email"]
allowLoginUI:YES
completionHandler:^(FBSession *session,
FBSessionState status,
NSError *error)
{
if (!error)
{
View gist:7159304
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
[[UIApplication sharedApplication] setStatusBarHidden:NO];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
}
@RuiAAPeres
RuiAAPeres / gist:7379148
Last active Dec 27, 2015
Returning a Class that complies to a given protocol
View gist:7379148
Class sportsFeedManager = (Class <RPSportsBoundryProtocol>)[RPInteractor sportsFeedManager];
[sportsFeedManager yahooSportsFeedWithCompletion:^(NSArray *sportsFeeds, NSError *error)
{
if (error)
{
// TODO: Handle the error;
}
else
{
View gist:7452910
void SwizzleClassMethod(Class c, SEL orig, SEL new) {
Method origMethod = class_getClassMethod(c, orig);
Method newMethod = class_getClassMethod(c, new);
c = object_getClass((id)c);
if(class_addMethod(c, orig, method_getImplementation(newMethod), method_getTypeEncoding(newMethod)))
class_replaceMethod(c, new, method_getImplementation(origMethod), method_getTypeEncoding(origMethod));
else
@RuiAAPeres
RuiAAPeres / gist:7656683
Last active Dec 29, 2015
The parseData is the private method, where the parsing actually works (NSData => NSDictionary). The other one parseLoginData (the public method), builds the model object from the Dictionary.
View gist:7656683
+ (void)parseLoginData:(NSData *)responseData withCompletionBlock:(MJDataSourceCompletionBlock)completionBlock
{
[self parseData:responseData withCompletionBlock:^(id response, MJError *error)
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void)
{
MJLoginResponse *loginResponse = [[MJLoginResponse alloc] initWithLoginResponse:response];
dispatch_async(dispatch_get_main_queue(), ^(void)
{
@RuiAAPeres
RuiAAPeres / gist:8458663
Created Jan 16, 2014
Animating a layer with transition to the right + changing the contents
View gist:8458663
CAAnimationGroup *animationsGroup = [CAAnimationGroup animation];
CATransition *t = [CATransition animation];
t.type = kCATransitionPush;
t.subtype = kCATransitionFromRight;
t.duration = 1.0f;
id currentContents = _layer.contents;
_layer.contents = (id)([UIImage imageNamed:@"image2.jpg"].CGImage);
@RuiAAPeres
RuiAAPeres / gist:8905610
Last active Aug 29, 2015
RACSignal + Filter + Timer
View gist:8905610
// The goal is to make a server call every 5 minutes, but I want to make sure the user has at least moved 500 meters, how would go after this:
[RACObserve(self, userLocation) filter:^BOOL(CLLocation *newLocation)
{
return [newLocation distanceFromLocation:self.userLocation]>APH500Meters;
}];
// I was thinking on creating a scheduler so I got this:
RACScheduler *scheduler = [RACScheduler schedulerWithPriority:RACSchedulerPriorityDefault];
@RuiAAPeres
RuiAAPeres / gist:11190505
Created Apr 22, 2014
Swizzling valueForKey: and objectForKey:
View gist:11190505
#import <objc/runtime.h>
@implementation NSDictionary (Swizzled)
static void swizzInstance(Class class, SEL originalSel, SEL newSel)
{
Method origMethod = class_getInstanceMethod(class, originalSel);
Method newMethod = class_getInstanceMethod(class, newSel);
method_exchangeImplementations(origMethod, newMethod);
@RuiAAPeres
RuiAAPeres / gist:11353385
Created Apr 27, 2014
Draft new spec ReactiveCocoa
View gist:11353385
Pod::Spec.new do |s|
s.name = "ReactiveCocoa"
s.version = "2.3"
s.summary = "A framework for composing and transforming streams of values."
s.homepage = "https://github.com/blog/1107-reactivecocoa-is-now-open-source"
s.author = { "Josh Abernathy" => "josh@github.com" }
s.source = { :git => "https://github.com/ReactiveCocoa/ReactiveCocoa.git", :tag => "v#{s.version}" }
s.license = 'MIT'
s.description = "ReactiveCocoa (RAC) is an Objective-C framework for Functional Reactive Programming. It provides APIs for composing and transforming streams of values."
@RuiAAPeres
RuiAAPeres / gist:11402456
Last active Aug 29, 2015
Sam Page's SparkRecording Implementation with Facebook's Pop
View gist:11402456
//The calculations are coming from [here](https://gist.github.com/d-ronnqvist/11266321) (thanks David!)
- (void)updateAnimations
{
CGFloat duration = self.duration * (1.f - [[self.progressLayers firstObject] strokeEnd]);
CGFloat strokeEndFinal = 1.f;
for (CAShapeLayer *progressLayer in self.progressLayers)
{
POPBasicAnimation *popEndAnimation = [POPBasicAnimation animation];
You can’t perform that action at this time.