Skip to content

Instantly share code, notes, and snippets.

View celian-m's full-sized avatar

celian celian-m

  • MyStudioFactory
  • Paris
View GitHub Profile
@celian-m
celian-m / SessionDelegate.swift
Created January 13, 2017 16:33
Perform client side certificate check
import Foundation
public struct IdentityAndTrust {
public var identityRef:SecIdentity
public var trust:SecTrust
public var certArray:NSArray
}
public func extractIdentity(certData:NSData, certPassword:String) -> IdentityAndTrust {

Create an Alias for your host adress (on your mac)

sudo ifconfig lo0 alias 10.254.254.254

Create a Launch Configuration for VS Code

{
    "name": "Listen for Xdebug",
    "type": "php",
 "request": "launch",
@celian-m
celian-m / UIScrollViewDelegate.swift
Created March 21, 2019 09:21
Add custom page size to UIScrollview
func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
// Page width used for estimating and calculating paging.
let pageWidth = (self.frame.width) - interIntemMargin
// Make an estimation of the current page position.
let approximatePage = scrollView.contentOffset.x/pageWidth
// Determine the current page based on velocity.
let currentPage = (velocity.x < 0.0) ? floor(approximatePage) : ceil(approximatePage)
@celian-m
celian-m / LeftAlignedCollectionViewFlowLayout.swift
Created March 19, 2019 08:56
Left Align cells for UICollection View
import UIKit
class LeftAlignedCollectionViewFlowLayout: UICollectionViewFlowLayout {
override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
guard let superArray = super.layoutAttributesForElements(in: rect),
let attributes = NSArray(array: superArray, copyItems: true) as? [UICollectionViewLayoutAttributes] else { return nil }
var leftMargin = sectionInset.left
var maxY: CGFloat = -1.0
@celian-m
celian-m / RxUseCase.swift
Created December 20, 2018 09:13
Rx variation for UseCase declaration
import Foundation
import RxSwift
enum Either<T> {
case success(T)
case error(Swift.Error)
var successResult: T? {
switch self {
case .success(let result):
import Foundation
enum Either<T> {
case success(T)
case error(Swift.Error)
var successResult: T? {
switch self {
case .success(let result):
return result
case .error(_):
@celian-m
celian-m / Twitter.md
Last active February 28, 2018 13:09
Generate Twitter Bearer Token

Generate a Bearer token to access Twitter REST API

- (void) generateAPIKeyWithCompletionBlock:(void (^)(BOOL success, NSString* twitterOAuthToken, NSString *error))completion {
    //Network tasks should be in background thread
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
        
        //Generate Bearer Token according to Twitter Documentation
        NSString* bearerToken = [NSString stringWithFormat:@"%@:%@", TWITTER_API_KEY , TWITTER_API_SECRET];
        bearerToken = [[bearerToken dataUsingEncoding:NSUTF8StringEncoding] base64EncodedStringWithOptions:0];
@celian-m
celian-m / Git.sh
Last active January 3, 2018 15:13
Git commands
#Merge using strategie
git checkout --ours ( --theirs ) filename
#Restart merge
git checkout -m FILE
@celian-m
celian-m / generate_package.md
Last active September 6, 2017 07:58
Generate a Swift project

Create directory

$mkdir myProject

Go in

$cd myProject

Init the project

@celian-m
celian-m / Readme.md
Created July 3, 2017 12:20
IOS Usefull Links