| <?php | |
| namespace GM\VirtualPages; | |
| /** | |
| * @author Giuseppe Mazzapica <giuseppe.mazzapica@gmail.com> | |
| * @license http://opensource.org/licenses/MIT MIT | |
| */ | |
| class Controller implements ControllerInterface { | |
| private $pages; |
| // | |
| // Obfuscator.swift | |
| // | |
| // Created by Dejan Atanasov on 2017-05-31. | |
| // | |
| import Foundation | |
| class Obfuscator: AnyObject { | |
| // Based on https://code.tutsplus.com/articles/securing-communications-on-ios--cms-28529 | |
| import Foundation | |
| import Security | |
| struct Certificate { | |
| let certificate: SecCertificate | |
| let data: Data | |
| } |
| <?xml version="1.0" encoding="UTF-8"?> | |
| <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |
| <plist version="1.0"> | |
| <dict> | |
| <key>method</key> | |
| <string>ad-hoc</string> | |
| </dict> | |
| </plist> |
| import fnmatch | |
| import os | |
| import xlsxwriter | |
| import collections | |
| texts = {} | |
| for root, dirnames, filenames in os.walk('./YourAwesomeProject/'): | |
| for filename in fnmatch.filter(filenames, '*.strings'): | |
| dirs = root.split("/") |
In many apps dealing with highly senstive data (Bank Apps, Insurance Apps or similar), ensuring strict authentication for your users into your Android and iOS app is important. One challenging aspect is when Fingerprint Authentication (or Touch ID in iOS) is used for a true biometric authentication solution rather than a convenience use case such as unlocking the device. We want to ensure users are authenticated to the server correctly, and someone who is able to subtly comprimise a device (steal it off you when its unlocked for example - or guess your PIN) won't be able to log into your bank app. An important edge case is to detect is when a Fingerprint has been added or removed to your phone and then prompt for a different form of authentication. This also stop
| extension UIView { | |
| func findFirstSuperview<T>(ofClass viewClass: T.Type, where predicate: (T) -> Bool) -> T? where T: UIView { | |
| var view: UIView? = self | |
| while view != nil { | |
| if let typedView = view as? T, predicate(typedView) { | |
| break | |
| } | |
| view = view?.superview | |
| } |
| let styles: [UIFontTextStyle] = [ | |
| // iOS 11 | |
| .largeTitle, | |
| // iOS 9 | |
| .title1, .title2, .title3, .callout, | |
| // iOS 7 | |
| .headline, .subheadline, .body, .footnote, .caption1, .caption2, | |
| ] | |
| for style in styles { |

