Kategorien-Archiv Knowledgebase DE

VonTobias Stephan

Swift 5 App im Hintergrund erkennen (app moved to background)

Mit diesen Codzeilen kann man erkennen, ob eine App in den Hintergund geschoben wird.

 override func viewDidLoad() {
        super.viewDidLoad()

        let notificationCenter = NotificationCenter.default
        notificationCenter.addObserver(self, selector: #selector(appMovedToBackground), name: UIApplication.didEnterBackgroundNotification, object: nil)


    }

    @objc func appMovedToBackground() {
        print ("App moved to Background")
    }

VonTobias Stephan

Swift 5 App im Vorderung erkennen (app moved to foreground)

Manchmal ist es sinnvoll zu erkenne, ob die eigene App in den Vordergrund geschoben wird. Mit diesen paar Codezeilen ist das leicht zu ermitteln.

   override func viewDidLoad() {
        super.viewDidLoad()
        

       

        let notificationCenter = NotificationCenter.default
        notificationCenter.addObserver(self, selector: #selector(appMovedToForeground), name: UIApplication.willEnterForegroundNotification, object: nil)


    }

    @objc func appMovedToForeground() {
        //do stuff
    }

VonTobias Stephan

Swift 5 tap gesture Geste

Diese paar Zeilen Code helfen schnell zu verstehen wie man einem Image die Tap Geste beibringt.

   
override func viewDidLoad() {
        super.viewDidLoad()



        self.imgPlacesPic.isUserInteractionEnabled = true;
        let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.tapGesture))
        imgPlacesPic.addGestureRecognizer(tapGesture)
    }

    @objc func tapGesture() {

        performSegue(withIdentifier: "FromMainToImages", sender: self)
    }
VonTobias Stephan

Swift 5 Notification Center lokale Benachrichtigung darstellen

Mit diese kurzen Sample kann man das einfach mal eben ausprobieren. Dieses Snippet unter die viewDidLoad Methode packen und von dort aus aufrufen.

 override func viewDidLoad() {
        super.viewDidLoad()

        self.SendLocalNotification(Title: "Titel der Benachrichtiung", Body: "Inhalt der Nachricht")
}

Hier einfach mal kurz zusammengefasst.

 func SendLocalNotification(Title: String,Body : String)
    {
        let center = UNUserNotificationCenter.current()
        center.requestAuthorization(options: [.alert,.sound]) { (granted, error) in
            print("...Fehler hier behandeln")

        }

        let content = UNMutableNotificationContent()
        content.title = Title
        content.body = Body
        content.sound = .default

        let date = Date().addingTimeInterval(10)
        let dateComponents = Calendar.current.dateComponents([.year,.month,.weekday, .hour,.minute,.second], from: date)
        print(date)
        let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: false)

        let uuidString = UUID().uuidString
        let request = UNNotificationRequest(identifier: uuidString, content: content, trigger: trigger)
        center.add(request) { (error) in
            if error != nil {
                print (error?.localizedDescription ?? "")

            }
        }
    }
VonTobias Stephan

Xcode code formatieren mit Shortcut

Mit der Tastenkombination

CTRL (bzw. STRG) + I

wird der markierte Textblock automatisch formatiert.

 

VonTobias Stephan

Xcode Text auskommentieren

Manchmal möchte man auch gleich mal einen ganzen Block auskommentieren, das funktioniert , indem man den Quellcode in folgende Zeichen packt: /* code */

 

 

 

 

 

 

 

Für dieses Beispiel wurde Xcode Version 11 benutzt.

VonTobias Stephan

Vortrag Amazon Suchbegriffe, Skalierbarkeit und AMZCheck in Leipzig

Am  22. August 2018 ging es in die schöne Stadt Leipzig – ähnlicher Vortrag wie in der Classic Remise, jedoch diesmal ungekürzt.
Am 23. fand der Vortrag in den Räumlichkeiten des Händlerbunds statt.

Nachtrag aus Februar 2020:
Ein neues Tools ist nun unter www.mcr-tools.de zu finden.

VonTobias Stephan

Multichannel Rockstars Vortrag zum Thema Skalierbarkeit und AMZCHECK Marktüberwachung

Michael Atug von den Multichannel Rockstars hat mir die Gelegenheit gegeben einen Vortrag zu halten. Als Thema hab ich mir mein Steckenpferd Skalierbarkeit und damit auch die Brücke zu AMZCHECK ausgesucht. Die Kernaussage zur Skalierbarkeit ist einfach. Nehmt Euch Tools für die Marküberwachung und handelt Produkte die bei steigendem Absatz nur wenig Mehraufwand bedeuten. In diesem Vortrag zeige ich das an einem konkreten Beispiel, nämlich eXODA Batteriekabel.

Der Vortrag fand im Rahmen eines Multichannel Rockstar-Stammtisches in der Classic Remise in Düsseldorf am 17.08.2018 statt.

Noch ein paar Eindrücke vom Stammtisch, auch wenn es mehr ein toller Event als ein Stammtisch war.

Eindrücke vom Multichannel Rockstars Stammtisch

 

VonTobias Stephan

SQL Abfrage nur Daten anzeigen die in anderer Tabelle nicht vorhanden sind

Beispiel für eine SQL Abfrage, die Ergebnisse ausschliesst. Hier darf der Wert aus der Tabelle1.Feld1 in der Tabelle im Feld1 nicht vorkommen.

SELECT Tabelle1.Feld1 FROM Tabelle1 
WHERE Tabelle1.Feld1 NOT IN ( SELECT DISTINCT Tabelle2.Feld1 FROM Tabelle2 )
VonTobias Stephan

Kabelrechner App Kabellänge berechnen Querschnitt und Durchmesser ermitteln iPhone IOS

iPhone IOS App installieren

Mit der LeckerStecker App kann man die benötigte Kabellänge ermitteln. Nach der Eingabe Watt und der Spannungsangabe ermittelt der LeckerStecker Kabelrechner den benötigten Kabelquerschnitt. Die App kann auf den gängigen Mobilen Geräten von Apple installiert werden.

Ausserdem hilft die App auch dabei Querschnitt in Durchmesser umzurechnen.

 

 

Hier geht es zu Webvariante zur Berechnung des Kabeldurchmessers oder des Kabeldurchschnitts.