Autor-Archiv Tobias Stephan

VonTobias Stephan

SwiftUI IOS Zwischenablage Pasteboard

So bentutz man die Zwischenablage aus dem Code. Das auslesen der Zwischenablage ist jedoch nur möglich, wenn sich die App im Vordergrund befindet.

// write to clipboard
UIPasteboard.general.string = "Hello world"

// read from clipboard
let content = UIPasteboard.general.string
VonTobias Stephan

Swift UI Mac OS remove help menu

I now want to publish my app as a Mac OS app as well. This is now possible. During the check, however, the app was rejected because no help was stored and no help text was displayed when clicking on the Help menu. With the following addition I simply removed the superfluous menu items.

//Insert in AppDelegate.swift
override func buildMenu(with builder: UIMenuBuilder) {
        super.buildMenu(with: builder)
        /* Do something */
        builder.remove(menu: .view)
        builder.remove(menu: .format)
        builder.remove(menu: .edit)
        builder.remove(menu: .file)
        builder.remove(menu: .window)
        builder.remove(menu: .help)
}
VonTobias Stephan

SwiftUI Mac OS Menu bearbeiten entfernen

Meine App habe ich nun auch als Mac OS App veröffentlichen wollen. Das geht ja nun mittlerweile. Bei der Prüfung ist die App jedoch abgelehnt worden, weil keine Hilfe hinterlegt und beim Klick auf das Help Menu kein Hilfetext angezeigt wurde. Mit folgender Ergänzung habe ich einfach die überflüssigen Menüpunkte entfernt.

//Insert in AppDelegate.swift
override func buildMenu(with builder: UIMenuBuilder) {
        super.buildMenu(with: builder)
        /* Do something */
        builder.remove(menu: .view)
        builder.remove(menu: .format)
        builder.remove(menu: .edit)
        builder.remove(menu: .file)
        builder.remove(menu: .window)
        builder.remove(menu: .help)
}
VonTobias Stephan

Swift random Zufallszahl ermitteln

Mit dieser einfachen Zeile ermittelst Du eine Zufallszahl zwischen 0 und 100

let number = Int.random(in: 0 ... 100)
VonTobias Stephan

Gedächtnistraining Mastertabelle


Direkt zum App-Store von Apple um den Memory Trainer zu laden.

Wie kann ich mir auch durchaus 20 Ziffern in richtiger Reihenfolge merken? Das Prinzip ist einfach. Im Kern gibt es Konsonanten von 0 bis 9, die jeweils eine Bedeutung haben. Für die Zahlen gibt es jeweils Wörter. Wenn Du Dir nun eine lange Ziffer merken möchtest, könntest Du Dir für die 7 immer ein Wort mit dem Konsonanten K ausdenken. Das wäre jedoch sehr aufwändig und würde nicht zum Erfolg führen. Der Trick liegt in der Wiederholung der immer gleich verwendeten Wörter für das Gedächtnistraining. Für die 7 steht die Kuh. Jetzt brauchst Du nur 100 Wörter lernen, klingt viel, ist es aber gar nicht.

Zahlen merken – RauPe

Nehmen wir als Beispiel das Wort Raupe. Aus der Zahlentabelle 0 bis 9 erkennen wir:

R = 4
P = 9

In dem Wort Raupe zählen nur die Konsonanten. Aus RauPe wird nur noch RP – das lässt sich leicht übersetzen.

Machen wir das mal andersrum. Die PIN Nummer Deiner EC-Karte lautet:

4811

Wir benötigen also die Buchstaben R F T T – da wir fleißig die Mastertabelle auswendig gelernt haben, erkennen wir, das es für die 48 das Wort REIF gibt und für die 11 den TOT. Schon ist das Merktwort fertig: REIFTOT. Die Rückübersetzung ist immer schnell und viel

Ziffer-Konsonanten-Kodierung
Ziffer Haupt- konsonant Merkhilfen weitere Konsonanten
0 z 0 ist im Roulette „Zero“ s, ß
1 t 1 hat einen Strich wie t d
2 n n hat 2 Striche nach unten
3 m m hat 3 Striche unten
4 r r ist der letzte Buchstabe von vier
5 l L ist das römische Zeichen für 50
6 sch Die ersten drei Konsonanten von „sechs“ ch, j, weiches c
7 k Sie sehen (etwas) ähnlich aus ck, g, hartes c
8 f (das altdeutsche) f ist ähnlich zu 8 v, w, ph
9 p p ist das Spiegelbild zu 9 b
Master-System-Tabelle
0. Sau 20. Nase 40. Rose 60. Schüsse 80. Faß
(0)1. Tee (Service) 21. Naht (Messer) 41. Ratte 61. Schutt 81. Fit (Kniebeuge)
(0)2. Noah 22. Nonne 42. RAN (Mikrophon) 62. Scheune 82. Fahne
(0)3. Mai (Blumen) 23. Nemo (Kapitän) 43. Rum 63. Schaum 83. WM (Medaille)
(0)4. Reh 24. Narr (Hampelmann) 44. Rohr 64. Schere 84. Furi (Pferd)
(0)5. Lee (Jeanshose) 25. Nil (Schlauch) 45. Rolle 65. Schal 85. Falle
(0)6. Schi 26. Nische [Nasche] 46. Rauch 66. Schach 86. Fisch
(0)7. Kuh 27. Nike (Schuh) 47. Rock 67. Scheck 87. Waage
(0)8. Fee 28. Neffe 48. Reif 68. Schaf 88. Waffe
(0)9. Po 29. Nappa (Leder) 49. Raupe 69. Scheibe (Glas) 89. VIP (Krone)
10. Tasse 30. Moos 50. Lasso 70. Käse 90. Bus
11. Tot (Skelett) 31. Matte 51. Latte 71. Kette 91. Bett
12. Tanne 32. Mang (Motorrad) 52. Linie 72. Kanne 92. Bahn
13. Team 33. Mama 53. Leim 73. Kamm 93. Baum
14. Teer 34. Meer (Wassereimer) 54. Leier 74. Karre 94. Bier
15. Tollwut (Hund) 35. Müll 55. Lolli 75. Keule 95. Ball
16. Tasche 36. Masche 56. Loch 76. Koch 96. Buch
17. Theke 37. Mac (Burger) 57. Lack 77. Kacke 97. Backe (Ohrfeige)
18. Taufe 38. Mafia (Kettensäge) 58. Lava (Gestein) 78. Kaffee 98. Bifi (Wurst)
19. Taube 39. Map (Straßenkarte) 59. Lupe 79. Kappe 99. Papa
VonTobias Stephan

Deine Datenspende gegen Corona COV19

Das RKI (Robert-Koch-Insititut) hat eine App mit Bitte um Datenspende rausgebracht. Mir ist es ein echtes Anliegen, dass man sich mit dem Thema auseinandersetzt, bevor man es wegen Datenschutz ablehnt. Da ich selber Apps entwickle, spreche ich mir die Kenntnis zu, das Datenschutzrisiko ein wenig einzuschätzen. Ich gehe davon, dass das RKI keine anderen Mittel bei Apple zur Verfügung stehen, als dem „gemeinen“ Entwickler. Die Daten werden pseudonymisiert abgelegt. Nicht anonym, aber halt pseudonym. Das bedeutet, daß dem Nutzer ein Token (Schlüssel) zugewiesen wird. mehr aber auch nicht. Das RKI kennt keinen Namen oder eine Mailadresse. Eine solche App ist aber ein echtes Mittel im Kampf gegen Corona COV19.

App im Google Playstore

IOS iPhone / iPad App

Zum Podcast des NDR mit Prof. Drosten

Hier sind weitere Details zur Datenspende des RKI

Zu meinen Corona COVID-19 Statistiken

Die Datenspende App des RKI

VonTobias Stephan

SwiftUI Lokalisierung mit mehreren Sprachen

Datei > Neu > File ->> Strings File erstellen > Name kann z.B.: Localizeable.Strings heissen.

Als nächstes im Fileinspector auf die neu erstellte Datei klicken und rechts im Bildschirm den Button Localizeable anklicken.

Syntax der Übersetzungen:
„welcometitle“ = „Welcome“;

…ganz wichtig, Semikolon am Ende nicht vergessen

Wenn man nun ein schreibt:

Text(„welcometitle“) – so wird der Text aus der Lokalisierung genommen.

Um eine Variable zu lokalisieren, verwendet man:

NSLocalizedString(sStringVar, comment: "")

Damit weitere Lokalisierungen hinzugefügt werden können, Die Lokalisierungsdatei links anklicken und rechts die Sprache auswählen.

Wie schon beschrieben kann man unter Swift UI zum Beispiel einfach

Text("lokalisierteVariable")

schreiben. Manchmal möchte man aber an mehreren Stellen Strings zusammensbauen. Dabei hilft

Text(NSLocalizedString("lokalisierteVariable", comment: ""))
VonTobias Stephan

Website-Watcher App track Sites

There will be the eXODA WebsiteWatch. An easy to use iPhone app that allows you to monitor a url for changes.
The app will be available in April 2020.

What makes the app special?
The website requests are handled externally by a server. So the app is not dependent on the goodwill of your IOS. What does that mean? The Apple IOS organizes the allocation of background computing capacity on your iPhone or iPad. Therefore it makes sense in this case to have an external server do the calculation and check for website changes. If you add a URL to your watchlist, it will be visited in regular intervals. The notification is a push message.

VonTobias Stephan

Swift url validation – gültige URL mit regex prüfen

Mit dieser einfachen kleinen Funktion kannst Du prüfen ob eine URL valide ist.

    func isValidUrl(urlString: String) -> Bool {
        let pat = "((https|http)://)((\\w|-)+)(([.]|[/])((\\w|-)+))+"
        let regex = try! NSRegularExpression(pattern: pat, options: [])
        
        let matches = regex.numberOfMatches(in: urlString, options: [], range: NSMakeRange(0,urlString.utf16.count))
        if (matches == 1 ) {
            return true
        }
        else {
            return false
        }
    }
VonTobias Stephan

Website Änderung überwachen und tracken

Eine einfach zu bedienende iPhone App, mit der man eine Url auf Änderungen überwachen kann.
Die App ist nun im Apple Store verfügbar:

Was macht die App besonders?
Die Webseitenabrufe werden extern von einem Server erledigt. So ist die App nicht abhängig vom Wohlwollen Deines IOS. Was ist damit gemeint? Das Apple IOS organisiert die Zuteilung von Background-Rechenkapazität auf Deinem iPhone oder iPad. Deshalb ist es in diesem Fall sinnvoll die Berechnung und das prüfen auf Website-Änderung durch einen externen Server erfolgen zu lassen. Wenn Du Deiner Überwachungsliste eine URL hinzufügst, dann wird diese in regelmässigen Abständen besucht. Die Benachrichtigung erfolgt als Push-Mitteilung.

Website Tracker im App Sotre
eXODA Website Watcher Tracker App

Hier geht’s zur App im Apple Store…