Skip to content

Instantly share code, notes, and snippets.

View Blackjacx's full-sized avatar
👨‍💻
Coding

Stefan Herold Blackjacx

👨‍💻
Coding
View GitHub Profile
@Blackjacx
Blackjacx / UITextField-Replace-TextTheRightWay.swift
Last active December 28, 2023 17:18
UITextField - Replace Text The Right Way
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let strippedString = <change replacements string so it fits your requirement - strip, trim, etc>
// replace current content with stripped content
if let replaceStart = textField.position(from: textField.beginningOfDocument, offset: range.location),
let replaceEnd = textField.position(from: replaceStart, offset: range.length),
let textRange = textField.textRange(from: replaceStart, to: replaceEnd) {
textField.replace(textRange, withText: strippedString)
@Blackjacx
Blackjacx / tuist-pros-cons.md
Created September 27, 2023 08:27
Tuist Pro/Con

PRO

  • Tuist own explanation of its advantages
  • Tuist is developed in Swift (no additional dependencies needed for installation)
  • Fast bug fixes since Tuist is open source and developed in a community driven way
  • Developers can write configuration files in Swift ❤️
  • Code for setting up multiple projects can be shared using Project-Description-Helpers
  • Project configuration and build settings can be documented
  • External dependencies can be integrated in an easy way. Carthage and SPM are supported too.
  • The workspace and project file can be removed from git which leads to a high reduction of merge conflicts and a smoother development process.
  • Supports the creation of release pipelines for GitHub Actions and Bitrise.
@Blackjacx
Blackjacx / Swift-Override-In-Extension.swift
Created April 5, 2023 14:57
Swift Override In Extension
extension GMSMapView {
override open func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
super.traitCollectionDidChange(previousTraitCollection)
guard traitCollection.hasDifferentColorAppearance(comparedTo: previousTraitCollection) else {
return
}
updateMapStyle()
}
}
@Blackjacx
Blackjacx / iOS-Parallax-Effect.swift
Created March 31, 2022 08:37
iOS Parallax Effect as UIView Extension
extension UIView {
func applyParallax() {
let amount = 10
let horizontal = UIInterpolatingMotionEffect(keyPath: "center.x", type: .tiltAlongHorizontalAxis)
horizontal.minimumRelativeValue = -amount
horizontal.maximumRelativeValue = amount
let vertical = UIInterpolatingMotionEffect(keyPath: "center.y", type: .tiltAlongVerticalAxis)
@Blackjacx
Blackjacx / getWWDCRessources.sh
Last active December 11, 2021 01:13
WWDC 2016 Ressource ( HD-, SD-Video, PDF ) Download Script
#!/bin/bash
#
# Bash script for downloading WWDC video and pdf ressources
# You can choose the year you're interested in by altering the variable YEAR (works only for 2014 until today).
#
# IMPORTANT
# Please install wget prior running this script since this tool is used to download the pdf's and videos. I use it
# since it is able to prevent re-downloading already existing content. So you can just run this script again and
# again and it will just download new content. This is really useful in the week of the WWDC since videos are
@Blackjacx
Blackjacx / NibLoadableView.swift
Created March 11, 2016 20:34
NibLoadableView.swift
import UIKit
class NibLoadableView: UIView {
@IBOutlet var view: UIView!
override init(frame: CGRect) {
super.init(frame: frame)
}
@Blackjacx
Blackjacx / projects.md
Last active February 11, 2021 02:22
Projects

Projects

I am the maintainer of the following open source software:

Information

  • WWDC Bullet-point summaries for the most popular WWDC session videos

Apps

  • Emojis My SwiftUI playground
@Blackjacx
Blackjacx / SoftwareStack.md
Last active May 9, 2019 21:24
My Apple Software Stack
@Blackjacx
Blackjacx / XCUIElement+ClearAndEnterText.swift
Created February 12, 2018 13:55
XCUIElement+ClearAndEnterText
extension XCUIElement {
/**
Removes any current text in the field before typing in the new value
- Parameter text: the text to enter into the field
*/
func clearAndEnterText(text: String) {
defer {
self.typeText(text)
}