Skip to content

Instantly share code, notes, and snippets.

View DanielCardonaRojas's full-sized avatar

Daniel Cardona Rojas DanielCardonaRojas

View GitHub Profile
extension TimeInterval {
var milliseconds: Int {
return Int((truncatingRemainder(dividingBy: 1)) * 1000)
}
var seconds: Int {
return Int(self) % 60
}
var minutes: Int {
@DanielCardonaRojas
DanielCardonaRojas / circular_progress_border.dart
Created November 26, 2020 15:51
CircularProgressBorder flutter widget
import 'package:flutter/material.dart';
import 'dart:math';
class CircularProgressBorder extends StatelessWidget {
final Color backgroundColor;
final Color progressColor;
final Color unfilledColor;
final double progress;
final double thickness;
final double offset;
@DanielCardonaRojas
DanielCardonaRojas / dialog_controller.dart
Last active October 23, 2020 13:40
Flutter DialogController #flutter
import 'dart:async';
import 'package:flutter/material.dart' as material;
import 'package:flutter/material.dart' show BuildContext, Widget, Navigator;
class DialogController {
final BuildContext context;
final Widget Function(BuildContext) builder;
Future<dynamic> value;
@DanielCardonaRojas
DanielCardonaRojas / MockURLProtocol.swift
Created July 31, 2020 13:47
MockURLProtocol useful for mocking URLSession #URLSession #Mock
//
// MockURLProtocol.swift
// APIClientTests
//
// Created by Daniel Cardona Rojas on 31/07/20.
// Copyright © 2020 Daniel Cardona Rojas. All rights reserved.
//
import Foundation
@DanielCardonaRojas
DanielCardonaRojas / EZAction.swift
Created July 28, 2020 14:45
Add closure targets to UIControl subclasses.
import UIKit
public typealias Action = (UIControl) -> Void
extension NSObject {
var uniqueId: String {
return String(describing: self)
}
}
@DanielCardonaRojas
DanielCardonaRojas / UIApplication+Extensions.swift
Created July 24, 2020 15:32
UIApplication extensions. Bundle marketing and build versions
extension UIApplication {
static var appVersion: String? {
return Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String
}
static var buildVersion: String? {
return Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as? String
}
static var fullVersion: String? {
@DanielCardonaRojas
DanielCardonaRojas / gen_ios_imgs.sh
Created July 16, 2020 14:09
Generate ios images from svg #svg #ios #png #images
# gen_ios_icons.sh
# Params: (filename) (width 1x) (height 1x)
# Get filename without an extension
filename=$1
filename_length=${#1}
name_length=$((filename_length-4))
name=${filename:0:$name_length}
mkdir $name
rsvg-convert -w $2 -h $3 $filename > $name/$name.png
rsvg-convert -w $((2*$2)) -h $((2*$3)) $filename > $name/$name@2x.png
@DanielCardonaRojas
DanielCardonaRojas / UIColor+Extension.swift
Created July 14, 2020 20:11
UIColor+Extensions #ios #swift #UIColor
extension UIColor {
public convenience init?(hex: String) {
let r: CGFloat
let g: CGFloat
let b: CGFloat
let a: CGFloat
let start = hex.index(hex.startIndex, offsetBy: hex.hasPrefix("#") ? 1 : 0)
var hexColor = String(hex[start...])
if hexColor.count == 6 { hexColor += "FF" }
@DanielCardonaRojas
DanielCardonaRojas / generate_text_resource_class
Created July 9, 2020 15:07
Generate type safe class for localized strings #awk #iOS #Localized Strings
#! /usr/bin/awk -f
BEGIN {
print "\
// This file is autogenerated do not modify\
\
import Foundation\
";
print "public struct TextResource {"
}
@DanielCardonaRojas
DanielCardonaRojas / git_log_format.awk
Last active August 5, 2020 23:31
git release notes #git #awk #release #notes
#! /usr/bin/awk -f
BEGIN {
FS="\][ ]*[-]*[ ]*"
}
/^\[.*\]/ {
sub(/\[/, "", $1)
if (NR == 1) {
previous_commit_tag = $1
commit_message = "\t- " $2