Ilker Furkan Kahyalar

Ilker Furkan Kahyalar

Software Engineer







TIL - 11 January 2021

Hello everyone! Let’s take a look what I learned in 11 January 2021, shall we?

#1 - Different ways to compare string in Swift


let a = "a"
let capitalA = "A", options: .caseInsensitive) 
// ComparisonResult.orderedSame

if, options: .caseInsensitive) == .orderedSame {
    // a is equals to A

// or 

// ComparisonResult.orderedSame

#2 - Keep private information out of your logs with Swift


“This wrapper doesn’t do much: it simply makes sure that when your code is trying to print , debugPrint or dump a property, it will show --redacted-- instead of an actual value. And since virtually any existing logging system uses one of these functions, it will effectively remove any @LoggingExcluded property from our logs.”

struct LoggingExcluded<Value>: CustomStringConvertible, CustomDebugStringConvertible, CustomLeafReflectable {
    var wrappedValue: Value
    init(wrappedValue: Value) {
        self.wrappedValue = wrappedValue
    var description: String {
        return "--redacted--"
    var debugDescription: String {
        return "--redacted--"
    var customMirror: Mirror {
        return Mirror(reflecting: "--redacted--")

Example usage:

struct User {
    var identifier: String
    var handle: String
    @LoggingExcluded var name: String
    @LoggingExcluded var dateOfBirth: Date
    @LoggingExcluded var city: String

// print
User(identifier: "6EEBA88F-D397-4108-B3D9-2B60E5FB4477", handle: "swifty15", _name: --redacted--, _dateOfBirth: --redacted--, _city: --redacted--)

Other Findings

  1. Free Instruments Tutorial from Ray Wenderlich
  2. 10 Things iOS Developer Should Focus on 2021 - Donny Walls

Closing Notes

I hope you liked what you heard and I am really looking forward to seeing you in the next one!

  • Keep up to date and follow on Instagram. DMs are always welcome! 🔥

  • You can reach out to me via Contact Form, Email and social media icons in the left. 💌

Buy Me A Coffee

Until next one,