SwiftKit/data/documentation/swiftkit.json

1 line
50 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"primaryContentSections":[{"kind":"content","content":[{"anchor":"Overview","level":2,"type":"heading","text":"Overview"},{"type":"paragraph","inlineContent":[{"type":"image","identifier":"Logo.png"}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"SwiftKit is divided into the sections found in the Topics section below."}]},{"anchor":"Supported-Platforms","level":2,"type":"heading","text":"Supported Platforms"},{"type":"paragraph","inlineContent":[{"type":"text","text":"SwiftKit supports "},{"type":"codeVoice","code":"iOS 13"},{"type":"text","text":", "},{"type":"codeVoice","code":"macOS 11"},{"type":"text","text":", "},{"type":"codeVoice","code":"tvOS 13"},{"type":"text","text":" and "},{"type":"codeVoice","code":"watchOS 6"},{"type":"text","text":"."}]},{"anchor":"Installation","level":2,"type":"heading","text":"Installation"},{"type":"paragraph","inlineContent":[{"type":"text","text":"SwiftKit can be installed with the Swift Package Manager:"}]},{"type":"codeListing","syntax":null,"code":["https:\/\/github.com\/danielsaidi\/SwiftKit.git"]},{"type":"paragraph","inlineContent":[{"type":"text","text":"or with CocoaPods:"}]},{"type":"codeListing","syntax":null,"code":["pod DSSwiftKit"]},{"type":"paragraph","inlineContent":[{"type":"text","text":"You can also clone the repository and build the library locally."}]},{"anchor":"About-this-documentation","level":2,"type":"heading","text":"About this documentation"},{"type":"paragraph","inlineContent":[{"type":"text","text":"The online documentation is currently iOS-specific. To generate documentation for other platforms, open the package in Xcode, select a simulator then run "},{"type":"codeVoice","code":"Product\/Build Documentation"},{"type":"text","text":"."}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"Note that type extensions are not included in this documentation."}]},{"anchor":"License","level":2,"type":"heading","text":"License"},{"type":"paragraph","inlineContent":[{"type":"text","text":"SwiftKit is available under the MIT license."}]}]}],"schemaVersion":{"major":0,"minor":2,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/swiftkit"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/SwiftKit\/documentation\/SwiftKit","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"SwiftKit adds extra functionality to the Swift framework, like extensions to native types, utilites, services etc."}],"kind":"symbol","metadata":{"roleHeading":"Framework","externalID":"SwiftKit","title":"SwiftKit","symbolKind":"module","role":"collection","modules":[{"name":"SwiftKit"}]},"hierarchy":{"paths":[[]]},"topicSections":[{"title":"Authentication","identifiers":["doc:\/\/SwiftKit\/documentation\/SwiftKit\/Authentication","doc:\/\/SwiftKit\/documentation\/SwiftKit\/AuthenticationService","doc:\/\/SwiftKit\/documentation\/SwiftKit\/AuthenticationServiceError","doc:\/\/SwiftKit\/documentation\/SwiftKit\/BiometricAuthenticationService","doc:\/\/SwiftKit\/documentation\/SwiftKit\/CachedAuthenticationService","doc:\/\/SwiftKit\/documentation\/SwiftKit\/CachedAuthenticationServiceProxy","doc:\/\/SwiftKit\/documentation\/SwiftKit\/LocalAuthenticationService"]},{"title":"Bundle","identifiers":["doc:\/\/SwiftKit\/documentation\/SwiftKit\/BundleInformation"]},{"title":"Data","identifiers":["doc:\/\/SwiftKit\/documentation\/SwiftKit\/Base64StringCoder","doc:\/\/SwiftKit\/documentation\/SwiftKit\/CsvParser","doc:\/\/SwiftKit\/documentation\/SwiftKit\/CsvParserError","doc:\/\/SwiftKit\/documentation\/SwiftKit\/Filter","doc:\/\/SwiftKit\/documentation\/SwiftKit\/FilterOption","doc:\/\/SwiftKit\/documentation\/SwiftKit\/MimeType","doc:\/\/SwiftKit\/documentation\/SwiftKit\/StandardCsvParser","doc:\/\/SwiftKit\/documentation\/SwiftKit\/StringCoder","doc:\/\/SwiftKit\/documentation\/SwiftKit\/StringDecoder","doc:\/\/SwiftKit\/documentation\/SwiftKit\/StringEncoder"]},{"title":"Device","identifiers":["doc:\/\/SwiftKit\/documentation\/SwiftKit\/DeviceIdentifier","doc:\/\/SwiftKit\/documentation\/SwiftKit\/KeychainBasedDeviceIdentifier","doc:\/\/SwiftKit\/documentation\/SwiftKit\/UserDefaultsBasedDeviceIdentifier"]},{"title":"Extensions","abstract":[{"type":"text","text":"This namespace contains a lot of extensions and protocols that are applied to native types."}],"identifiers":["doc:\/\/SwiftKit\/documentation\/SwiftKit\/PreferredClosestValue","doc:\/\/SwiftKit\/documentation\/SwiftKit\/NumericStringRepresentable"]},{"title":"Files","identifiers":["doc:\/\/SwiftKit\/documentation\/SwiftKit\/BundleFileFinder","doc:\/\/SwiftKit\/documentation\/SwiftKit\/DirectoryService","doc:\/\/SwiftKit\/documentation\/SwiftKit\/FileExporter","doc:\/\/SwiftKit\/documentation\/SwiftKit\/FileFinder","doc:\/\/SwiftKit\/documentation\/SwiftKit\/StandardDirectoryService","doc:\/\/SwiftKit\/documentation\/SwiftKit\/StandardFileExporter"]},{"title":"Geo","abstract":[{"type":"text","text":"This namespace contains geo-specific extensions as well as utils:"}],"identifiers":["doc:\/\/SwiftKit\/documentation\/SwiftKit\/AppleMapsService","doc:\/\/SwiftKit\/documentation\/SwiftKit\/ExternalMapService","doc:\/\/SwiftKit\/documentation\/SwiftKit\/GoogleMapsService","doc:\/\/SwiftKit\/documentation\/SwiftKit\/WorldCoordinate"]},{"title":"iCloud","abstract":[{"type":"text","text":"This namespace contains iCloud-specific extensions as well as utils:"}],"identifiers":["doc:\/\/SwiftKit\/documentation\/SwiftKit\/iCloudDocumentSync","doc:\/\/SwiftKit\/documentation\/SwiftKit\/StandardiCloudDocumentSync"]},{"title":"Keychain","identifiers":["doc:\/\/SwiftKit\/documentation\/SwiftKit\/KeychainReader","doc:\/\/SwiftKit\/documentation\/SwiftKit\/KeychainService","doc:\/\/SwiftKit\/documentation\/SwiftKit\/KeychainWrapper","doc:\/\/SwiftKit\/documentation\/SwiftKit\/KeychainWriter","doc:\/\/SwiftKit\/documentation\/SwiftKit\/StandardKeychainService","doc:\/\/SwiftKit\/documentation\/SwiftKit\/KeychainAttrRepresentable","doc:\/\/SwiftKit\/documentation\/SwiftKit\/KeychainItemAccessibility"]},{"title":"Localization","identifiers":["doc:\/\/SwiftKit\/documentation\/SwiftKit\/BundleTranslator","doc:\/\/SwiftKit\/documentation\/SwiftKit\/LocalizationNotification","doc:\/\/SwiftKit\/documentation\/SwiftKit\/LocalizationService","doc:\/\/SwiftKit\/documentation\/SwiftKit\/StandardLocalizationService","doc:\/\/SwiftKit\/documentation\/SwiftKit\/StandardTranslator","doc:\/\/SwiftKit\/documentation\/SwiftKit\/Translator"]},{"title":"Network","identifiers":["doc:\/\/SwiftKit\/documentation\/SwiftKit\/ApiCompletion","doc:\/\/SwiftKit\/documentation\/SwiftKit\/ApiEnvironment","doc:\/\/SwiftKit\/documentation\/SwiftKit\/ApiError","doc:\/\/SwiftKit\/documentation\/SwiftKit\/ApiModel","doc:\/\/SwiftKit\/documentation\/SwiftKit\/ApiResult","doc:\/\/SwiftKit\/documentation\/SwiftKit\/ApiRoute","doc:\/\/SwiftKit\/documentation\/SwiftKit\/ApiService","doc:\/\/SwiftKit\/documentation\/SwiftKit\/HttpMethod"]},{"title":"Services","identifiers":["doc:\/\/SwiftKit\/documentation\/SwiftKit\/Decorator","doc:\/\/SwiftKit\/documentation\/SwiftKit\/MultiProxy","doc:\/\/SwiftKit\/documentation\/SwiftKit\/Proxy"]},{"title":"Validation","identifiers":["doc:\/\/SwiftKit\/documentation\/SwiftKit\/EmailValidator","doc:\/\/SwiftKit\/documentation\/SwiftKit\/Validator"]},{"title":"Classes","identifiers":["doc:\/\/SwiftKit\/documentation\/SwiftKit\/IoC","doc:\/\/SwiftKit\/documentation\/SwiftKit\/StandardStoreService","doc:\/\/SwiftKit\/documentation\/SwiftKit\/StoreContext"]},{"title":"Protocols","identifiers":["doc:\/\/SwiftKit\/documentation\/SwiftKit\/IoCContainer","doc:\/\/SwiftKit\/documentation\/SwiftKit\/StoreService"]},{"title":"Enumerations","identifiers":["doc:\/\/SwiftKit\/documentation\/SwiftKit\/StoreServiceError"]}],"references":{"doc://SwiftKit/documentation/SwiftKit/MultiProxy":{"role":"symbol","title":"MultiProxy","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"MultiProxy"}],"abstract":[{"type":"text","text":"This class can be implemented by any classes that should be"},{"type":"text","text":" "},{"type":"text","text":"used to proxy a certain operation to many targets."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/MultiProxy","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"MultiProxy"}],"url":"\/documentation\/swiftkit\/multiproxy"},"doc://SwiftKit/documentation/SwiftKit/MimeType":{"role":"symbol","title":"MimeType","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"MimeType"}],"abstract":[{"type":"text","text":"This enum represents a set of different MIME and file types."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/MimeType","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"MimeType"}],"url":"\/documentation\/swiftkit\/mimetype"},"doc://SwiftKit/documentation/SwiftKit/StandardiCloudDocumentSync":{"role":"symbol","title":"StandardiCloudDocumentSync","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"StandardiCloudDocumentSync"}],"abstract":[{"type":"text","text":"This class can be used to sync iCloud document changes in a"},{"type":"text","text":" "},{"type":"text","text":"shared uqibuity container."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/StandardiCloudDocumentSync","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"StandardiCloudDocumentSync"}],"url":"\/documentation\/swiftkit\/standardiclouddocumentsync"},"doc://SwiftKit/documentation/SwiftKit/StringCoder":{"role":"symbol","title":"StringCoder","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"StringCoder"}],"abstract":[{"type":"text","text":"This protocol can be implemented by classes that can encode"},{"type":"text","text":" "},{"type":"text","text":"and decode strings."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/StringCoder","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"StringCoder"}],"url":"\/documentation\/swiftkit\/stringcoder"},"doc://SwiftKit/documentation/SwiftKit/KeychainWrapper":{"role":"symbol","title":"KeychainWrapper","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"KeychainWrapper"}],"abstract":[{"type":"text","text":"This class help make device keychain access easier in Swift."},{"type":"text","text":" "},{"type":"text","text":"It is designed to make accessing the Keychain services more"},{"type":"text","text":" "},{"type":"text","text":"like using "},{"type":"codeVoice","code":"NSUserDefaults"},{"type":"text","text":", which is much more familiar to"},{"type":"text","text":" "},{"type":"text","text":"developers in general."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/KeychainWrapper","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"KeychainWrapper"}],"url":"\/documentation\/swiftkit\/keychainwrapper"},"doc://SwiftKit/documentation/SwiftKit/CsvParserError":{"role":"symbol","title":"CsvParserError","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"CsvParserError"}],"abstract":[],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/CsvParserError","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"CsvParserError"}],"url":"\/documentation\/swiftkit\/csvparsererror"},"doc://SwiftKit/documentation/SwiftKit/FileFinder":{"role":"symbol","title":"FileFinder","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"FileFinder"}],"abstract":[{"type":"text","text":"This protocol can be implemented by types that can look for"},{"type":"text","text":" "},{"type":"text","text":"files in various ways."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/FileFinder","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"FileFinder"}],"url":"\/documentation\/swiftkit\/filefinder"},"doc://SwiftKit/documentation/SwiftKit/StandardFileExporter":{"role":"symbol","title":"StandardFileExporter","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"StandardFileExporter"}],"abstract":[{"type":"text","text":"This file exporter can export data to the file system using"},{"type":"text","text":" "},{"type":"text","text":"a file manager and a certain directory."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/StandardFileExporter","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"StandardFileExporter"}],"url":"\/documentation\/swiftkit\/standardfileexporter"},"doc://SwiftKit/documentation/SwiftKit/LocalAuthenticationService":{"role":"symbol","title":"LocalAuthenticationService","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"LocalAuthenticationService"}],"abstract":[{"type":"text","text":"This service uses "},{"type":"codeVoice","code":"LocalAuthentication"},{"type":"text","text":" to authenticate the"},{"type":"text","text":" "},{"type":"text","text":"current user."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/LocalAuthenticationService","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"LocalAuthenticationService"}],"url":"\/documentation\/swiftkit\/localauthenticationservice"},"doc://SwiftKit/documentation/SwiftKit/Decorator":{"role":"symbol","title":"Decorator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Decorator"}],"abstract":[{"type":"text","text":"This class can be inherited by any class that wraps another"},{"type":"text","text":" "},{"type":"text","text":"class that implements the same protocol."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/Decorator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Decorator"}],"url":"\/documentation\/swiftkit\/decorator"},"doc://SwiftKit/documentation/SwiftKit/GoogleMapsService":{"role":"symbol","title":"GoogleMapsService","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"GoogleMapsService"}],"abstract":[],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/GoogleMapsService","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"GoogleMapsService"}],"url":"\/documentation\/swiftkit\/googlemapsservice"},"doc://SwiftKit/documentation/SwiftKit/KeychainBasedDeviceIdentifier":{"role":"symbol","title":"KeychainBasedDeviceIdentifier","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"KeychainBasedDeviceIdentifier"}],"abstract":[{"type":"text","text":"This device identifier generates a unique device identifier"},{"type":"text","text":" "},{"type":"text","text":"and stores it in keychain, to make it possible to reuse the"},{"type":"text","text":" "},{"type":"text","text":"identifier, even if the app is uninstalled."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/KeychainBasedDeviceIdentifier","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"KeychainBasedDeviceIdentifier"}],"url":"\/documentation\/swiftkit\/keychainbaseddeviceidentifier"},"doc://SwiftKit/documentation/SwiftKit/FileExporter":{"role":"symbol","title":"FileExporter","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"FileExporter"}],"abstract":[{"type":"text","text":"This protocol can be implemented by any classes that can be"},{"type":"text","text":" "},{"type":"text","text":"used to export data to the file system."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/FileExporter","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"FileExporter"}],"url":"\/documentation\/swiftkit\/fileexporter"},"doc://SwiftKit/documentation/SwiftKit/KeychainItemAccessibility":{"role":"symbol","title":"KeychainItemAccessibility","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"KeychainItemAccessibility"}],"abstract":[{"type":"text","text":"This enum defines the various access scopes that a keychain"},{"type":"text","text":" "},{"type":"text","text":"item can use. The names follow certain conventions that are"},{"type":"text","text":" "},{"type":"text","text":"defined in the list below:"}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/KeychainItemAccessibility","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"KeychainItemAccessibility"}],"url":"\/documentation\/swiftkit\/keychainitemaccessibility"},"doc://SwiftKit/documentation/SwiftKit/ApiEnvironment":{"role":"symbol","title":"ApiEnvironment","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"ApiEnvironment"}],"abstract":[{"type":"text","text":"This protocol represents an external api environment with a"},{"type":"text","text":" "},{"type":"text","text":"specific root "},{"type":"codeVoice","code":"url"},{"type":"text","text":", e.g. test, staging or production."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/ApiEnvironment","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ApiEnvironment"}],"url":"\/documentation\/swiftkit\/apienvironment"},"doc://SwiftKit/documentation/SwiftKit/FilterOption":{"role":"symbol","title":"FilterOption","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"FilterOption"}],"abstract":[{"type":"text","text":"This protocol can be implemented by anything that can be used"}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/FilterOption","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"FilterOption"}],"url":"\/documentation\/swiftkit\/filteroption"},"doc://SwiftKit/documentation/SwiftKit/ApiModel":{"role":"symbol","title":"ApiModel","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"ApiModel"}],"abstract":[{"type":"text","text":"This protocol can be implemented by any api models that can"},{"type":"text","text":" "},{"type":"text","text":"be fetched from an api and converted to a local model."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/ApiModel","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ApiModel"}],"url":"\/documentation\/swiftkit\/apimodel"},"doc://SwiftKit/documentation/SwiftKit/StandardCsvParser":{"role":"symbol","title":"StandardCsvParser","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"StandardCsvParser"}],"abstract":[],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/StandardCsvParser","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"StandardCsvParser"}],"url":"\/documentation\/swiftkit\/standardcsvparser"},"doc://SwiftKit/documentation/SwiftKit/CsvParser":{"role":"symbol","title":"CsvParser","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"CsvParser"}],"abstract":[{"type":"text","text":"This protocol can be implemented by classes that can handle"},{"type":"text","text":" "},{"type":"text","text":"parsing of comma-separated value files and strings."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/CsvParser","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"CsvParser"}],"url":"\/documentation\/swiftkit\/csvparser"},"doc://SwiftKit/documentation/SwiftKit/AuthenticationService":{"role":"symbol","title":"AuthenticationService","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"AuthenticationService"}],"abstract":[{"type":"text","text":"This protocol can be implemented by any classes that can be"},{"type":"text","text":" "},{"type":"text","text":"used to authenticate the user."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/AuthenticationService","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"AuthenticationService"}],"url":"\/documentation\/swiftkit\/authenticationservice"},"doc://SwiftKit/documentation/SwiftKit/ApiResult":{"role":"symbol","title":"ApiResult","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"ApiResult"}],"abstract":[{"type":"text","text":"This result type is used by the "},{"type":"codeVoice","code":"ApiCompletion"},{"type":"text","text":"."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/ApiResult","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ApiResult"}],"url":"\/documentation\/swiftkit\/apiresult"},"doc://SwiftKit/documentation/SwiftKit/AuthenticationServiceError":{"role":"symbol","title":"AuthenticationServiceError","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"AuthenticationServiceError"}],"abstract":[{"type":"text","text":"This enum represents various authentication errors that can"},{"type":"text","text":" "},{"type":"text","text":"occur while a user is being authenticated."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/AuthenticationServiceError","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"AuthenticationServiceError"}],"url":"\/documentation\/swiftkit\/authenticationserviceerror"},"Logo.png":{"alt":"SwiftKit logo","type":"image","identifier":"Logo.png","variants":[{"url":"\/images\/Logo.png","traits":["1x","light"]}]},"doc://SwiftKit/documentation/SwiftKit/NumericStringRepresentable":{"role":"symbol","title":"NumericStringRepresentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"NumericStringRepresentable"}],"abstract":[],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/NumericStringRepresentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"NumericStringRepresentable"}],"url":"\/documentation\/swiftkit\/numericstringrepresentable"},"doc://SwiftKit/documentation/SwiftKit/DirectoryService":{"role":"symbol","title":"DirectoryService","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"DirectoryService"}],"abstract":[{"type":"text","text":"This service can be implemented by classes that can be used"},{"type":"text","text":" "},{"type":"text","text":"to handle files within a certain local file directory."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/DirectoryService","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"DirectoryService"}],"url":"\/documentation\/swiftkit\/directoryservice"},"doc://SwiftKit/documentation/SwiftKit/Filter":{"role":"symbol","title":"Filter","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Filter"}],"abstract":[{"type":"text","text":"This struct lets you specify available and selected options"},{"type":"text","text":" "},{"type":"text","text":"of a certain type."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/Filter","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Filter"}],"url":"\/documentation\/swiftkit\/filter"},"doc://SwiftKit/documentation/SwiftKit/StandardLocalizationService":{"role":"symbol","title":"StandardLocalizationService","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"StandardLocalizationService"}],"abstract":[{"type":"text","text":"This service lets you change the locale of your app without"},{"type":"text","text":" "},{"type":"text","text":"having to restart the app for the change to be applied."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/StandardLocalizationService","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"StandardLocalizationService"}],"url":"\/documentation\/swiftkit\/standardlocalizationservice"},"doc://SwiftKit/documentation/SwiftKit/StandardKeychainService":{"role":"symbol","title":"StandardKeychainService","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"StandardKeychainService"}],"abstract":[{"type":"text","text":"This is a standard implementation of "},{"type":"codeVoice","code":"KeychainService"},{"type":"text","text":" that"},{"type":"text","text":" "},{"type":"text","text":"uses a "},{"type":"codeVoice","code":"KeychainWrapper"},{"type":"text","text":" to sync data with the keychain."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/StandardKeychainService","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"StandardKeychainService"}],"url":"\/documentation\/swiftkit\/standardkeychainservice"},"doc://SwiftKit/documentation/SwiftKit/IoC":{"deprecated":true,"role":"symbol","title":"IoC","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"IoC"}],"abstract":[{"type":"text","text":"This class can be used to remove coupling to your preferred"},{"type":"text","text":" "},{"type":"text","text":"IoC library, e.g. Dip or Swinject."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/IoC","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"IoC"}],"url":"\/documentation\/swiftkit\/ioc"},"doc://SwiftKit/documentation/SwiftKit/KeychainService":{"role":"symbol","title":"KeychainService","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"KeychainService"}],"abstract":[{"type":"text","text":"This protocol can be implemented by keychain-based services"},{"type":"text","text":" "},{"type":"text","text":"that can read from and write to the device keychain."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/KeychainService","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"KeychainService"}],"url":"\/documentation\/swiftkit\/keychainservice"},"doc://SwiftKit/documentation/SwiftKit/StoreServiceError":{"deprecated":true,"role":"symbol","title":"StoreServiceError","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"StoreServiceError"}],"abstract":[],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/StoreServiceError","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"StoreServiceError"}],"url":"\/documentation\/swiftkit\/storeserviceerror"},"doc://SwiftKit/documentation/SwiftKit/BundleTranslator":{"role":"symbol","title":"BundleTranslator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BundleTranslator"}],"abstract":[{"type":"text","text":"This "},{"type":"codeVoice","code":"Translator"},{"type":"text","text":" translates keys using a certain "},{"type":"codeVoice","code":"Bundle"},{"type":"text","text":"."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/BundleTranslator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BundleTranslator"}],"url":"\/documentation\/swiftkit\/bundletranslator"},"doc://SwiftKit/documentation/SwiftKit/BiometricAuthenticationService":{"role":"symbol","title":"BiometricAuthenticationService","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BiometricAuthenticationService"}],"abstract":[{"type":"text","text":"This authentication service uses "},{"type":"codeVoice","code":"LocalAuthentication"},{"type":"text","text":" such"},{"type":"text","text":" "},{"type":"text","text":"as "},{"type":"codeVoice","code":"FaceID"},{"type":"text","text":" or "},{"type":"codeVoice","code":"TouchID"},{"type":"text","text":" to authenticate the user."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/BiometricAuthenticationService","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BiometricAuthenticationService"}],"url":"\/documentation\/swiftkit\/biometricauthenticationservice"},"doc://SwiftKit/documentation/SwiftKit/Authentication":{"role":"symbol","title":"Authentication","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Authentication"}],"abstract":[{"type":"text","text":"This struct represents a unique authentication type."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/Authentication","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Authentication"}],"url":"\/documentation\/swiftkit\/authentication"},"doc://SwiftKit/documentation/SwiftKit/BundleInformation":{"role":"symbol","title":"BundleInformation","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"BundleInformation"}],"abstract":[{"type":"text","text":"This protocol can be implemented by types that can provide information about the current bundle."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/BundleInformation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BundleInformation"}],"url":"\/documentation\/swiftkit\/bundleinformation"},"doc://SwiftKit/documentation/SwiftKit/KeychainReader":{"role":"symbol","title":"KeychainReader","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"KeychainReader"}],"abstract":[{"type":"text","text":"This protocol can be implemented by keychain-based services"},{"type":"text","text":" "},{"type":"text","text":"that can read from the device keychain."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/KeychainReader","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"KeychainReader"}],"url":"\/documentation\/swiftkit\/keychainreader"},"doc://SwiftKit/documentation/SwiftKit/EmailValidator":{"role":"symbol","title":"EmailValidator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"EmailValidator"}],"abstract":[{"type":"text","text":"This "},{"type":"codeVoice","code":"Validator"},{"type":"text","text":" can be used to validate e-mail addresses."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/EmailValidator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"EmailValidator"}],"url":"\/documentation\/swiftkit\/emailvalidator"},"doc://SwiftKit/documentation/SwiftKit/StoreContext":{"deprecated":true,"role":"symbol","title":"StoreContext","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"StoreContext"}],"abstract":[],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/StoreContext","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"StoreContext"}],"url":"\/documentation\/swiftkit\/storecontext"},"doc://SwiftKit/documentation/SwiftKit/StringEncoder":{"role":"symbol","title":"StringEncoder","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"StringEncoder"}],"abstract":[{"type":"text","text":"This protocol can be implemented by classes that can encode"},{"type":"text","text":" "},{"type":"text","text":"strings."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/StringEncoder","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"StringEncoder"}],"url":"\/documentation\/swiftkit\/stringencoder"},"doc://SwiftKit/documentation/SwiftKit/CachedAuthenticationServiceProxy":{"role":"symbol","title":"CachedAuthenticationServiceProxy","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"CachedAuthenticationServiceProxy"}],"abstract":[{"type":"text","text":"This class wraps another "},{"type":"reference","isActive":true,"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/AuthenticationService"},{"type":"text","text":" instance"},{"type":"text","text":" "},{"type":"text","text":"and keeps authentication results in a cache."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/CachedAuthenticationServiceProxy","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"CachedAuthenticationServiceProxy"}],"url":"\/documentation\/swiftkit\/cachedauthenticationserviceproxy"},"doc://SwiftKit/documentation/SwiftKit/KeychainWriter":{"role":"symbol","title":"KeychainWriter","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"KeychainWriter"}],"abstract":[{"type":"text","text":"This protocol can be implemented by keychain-based services"},{"type":"text","text":" "},{"type":"text","text":"that can write to the users keychain."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/KeychainWriter","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"KeychainWriter"}],"url":"\/documentation\/swiftkit\/keychainwriter"},"doc://SwiftKit/documentation/SwiftKit/HttpMethod":{"role":"symbol","title":"HttpMethod","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"HttpMethod"}],"abstract":[{"type":"text","text":"This enum lists the various HTTP methods that are supported"},{"type":"text","text":" "},{"type":"text","text":"by REST."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/HttpMethod","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"HttpMethod"}],"url":"\/documentation\/swiftkit\/httpmethod"},"doc://SwiftKit/documentation/SwiftKit/ExternalMapService":{"role":"symbol","title":"ExternalMapService","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"ExternalMapService"}],"abstract":[{"type":"text","text":"This protocol can be implemented by services that provide a"},{"type":"text","text":" "},{"type":"text","text":"set of urls to coordinates or navigation paths, that can be"},{"type":"text","text":" "},{"type":"text","text":"opened in an external map application."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/ExternalMapService","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ExternalMapService"}],"url":"\/documentation\/swiftkit\/externalmapservice"},"doc://SwiftKit/documentation/SwiftKit/Proxy":{"role":"symbol","title":"Proxy","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Proxy"}],"abstract":[{"type":"text","text":"This class can be implemented by any classes that should be"},{"type":"text","text":" "},{"type":"text","text":"used to proxy a certain operation to another target."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/Proxy","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Proxy"}],"url":"\/documentation\/swiftkit\/proxy"},"doc://SwiftKit/documentation/SwiftKit/WorldCoordinate":{"role":"symbol","title":"WorldCoordinate","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"WorldCoordinate"}],"abstract":[{"type":"text","text":"This struct can be used to represent world coordinates, but"},{"type":"text","text":" "},{"type":"text","text":"without bloating "},{"type":"codeVoice","code":"CLLocationCoordinate2D"},{"type":"text","text":" with static props."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/WorldCoordinate","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"WorldCoordinate"}],"url":"\/documentation\/swiftkit\/worldcoordinate"},"doc://SwiftKit/documentation/SwiftKit":{"role":"collection","title":"SwiftKit","abstract":[{"type":"text","text":"SwiftKit adds extra functionality to the Swift framework, like extensions to native types, utilites, services etc."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit","kind":"symbol","type":"topic","url":"\/documentation\/swiftkit"},"doc://SwiftKit/documentation/SwiftKit/StandardTranslator":{"role":"symbol","title":"StandardTranslator","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"StandardTranslator"}],"abstract":[{"type":"text","text":"This standard "},{"type":"reference","isActive":true,"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/Translator"},{"type":"text","text":" implementation translates keys"},{"type":"text","text":" "},{"type":"text","text":"using "},{"type":"codeVoice","code":"NSLocalizedString"},{"type":"text","text":"."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/StandardTranslator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"StandardTranslator"}],"url":"\/documentation\/swiftkit\/standardtranslator"},"doc://SwiftKit/documentation/SwiftKit/Base64StringCoder":{"role":"symbol","title":"Base64StringCoder","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"Base64StringCoder"}],"abstract":[{"type":"text","text":"This coder can encode and decode strings to and from base64."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/Base64StringCoder","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Base64StringCoder"}],"url":"\/documentation\/swiftkit\/base64stringcoder"},"doc://SwiftKit/documentation/SwiftKit/ApiService":{"role":"symbol","title":"ApiService","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"ApiService"}],"abstract":[{"type":"text","text":"This protocol can be implemented by any service that can be"},{"type":"text","text":" "},{"type":"text","text":"used to communicate with an external api."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/ApiService","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ApiService"}],"url":"\/documentation\/swiftkit\/apiservice"},"doc://SwiftKit/documentation/SwiftKit/ApiRoute":{"role":"symbol","title":"ApiRoute","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"ApiRoute"}],"abstract":[{"type":"text","text":"This protocol represents an external api route, e.g. "},{"type":"codeVoice","code":"login"},{"type":"text","text":" "},{"type":"text","text":"or "},{"type":"codeVoice","code":"user"},{"type":"text","text":". Each route is a separate action that defines all"},{"type":"text","text":" "},{"type":"text","text":"information required to perform an api request."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/ApiRoute","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ApiRoute"}],"url":"\/documentation\/swiftkit\/apiroute"},"doc://SwiftKit/documentation/SwiftKit/IoCContainer":{"deprecated":true,"role":"symbol","title":"IoCContainer","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"IoCContainer"}],"abstract":[{"type":"text","text":"This protocol can be implemented by classes that can handle"},{"type":"text","text":" "},{"type":"text","text":"inversion of control, by dynamically resolving types, given"},{"type":"text","text":" "},{"type":"text","text":"any required arguments."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/IoCContainer","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"IoCContainer"}],"url":"\/documentation\/swiftkit\/ioccontainer"},"doc://SwiftKit/documentation/SwiftKit/KeychainAttrRepresentable":{"role":"symbol","title":"KeychainAttrRepresentable","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"KeychainAttrRepresentable"}],"abstract":[],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/KeychainAttrRepresentable","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"KeychainAttrRepresentable"}],"url":"\/documentation\/swiftkit\/keychainattrrepresentable"},"doc://SwiftKit/documentation/SwiftKit/iCloudDocumentSync":{"role":"symbol","title":"iCloudDocumentSync","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"iCloudDocumentSync"}],"abstract":[{"type":"text","text":"This protocol can be implemented by any classes that can be"},{"type":"text","text":" "},{"type":"text","text":"used to sync iCloud document changes."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/iCloudDocumentSync","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"iCloudDocumentSync"}],"url":"\/documentation\/swiftkit\/iclouddocumentsync"},"doc://SwiftKit/documentation/SwiftKit/LocalizationNotification":{"role":"symbol","title":"LocalizationNotification","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"LocalizationNotification"}],"abstract":[{"type":"text","text":"This enum has localization-specific notifications."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/LocalizationNotification","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"LocalizationNotification"}],"url":"\/documentation\/swiftkit\/localizationnotification"},"doc://SwiftKit/documentation/SwiftKit/StringDecoder":{"role":"symbol","title":"StringDecoder","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"StringDecoder"}],"abstract":[{"type":"text","text":"This protocol can be implemented by classes that can decode"},{"type":"text","text":" "},{"type":"text","text":"strings."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/StringDecoder","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"StringDecoder"}],"url":"\/documentation\/swiftkit\/stringdecoder"},"doc://SwiftKit/documentation/SwiftKit/PreferredClosestValue":{"role":"symbol","title":"PreferredClosestValue","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"PreferredClosestValue"}],"abstract":[],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/PreferredClosestValue","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"PreferredClosestValue"}],"url":"\/documentation\/swiftkit\/preferredclosestvalue"},"doc://SwiftKit/documentation/SwiftKit/CachedAuthenticationService":{"role":"symbol","title":"CachedAuthenticationService","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"CachedAuthenticationService"}],"abstract":[{"type":"text","text":"This protocol can be implemented by any classes that can be"},{"type":"text","text":" "},{"type":"text","text":"used to authenticate the user and cache the result to avoid"},{"type":"text","text":" "},{"type":"text","text":"having to perform a real authentication if a successful one"},{"type":"text","text":" "},{"type":"text","text":"has already been performed."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/CachedAuthenticationService","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"CachedAuthenticationService"}],"url":"\/documentation\/swiftkit\/cachedauthenticationservice"},"doc://SwiftKit/documentation/SwiftKit/ApiCompletion":{"role":"symbol","title":"ApiCompletion","fragments":[{"kind":"keyword","text":"typealias"},{"kind":"text","text":" "},{"kind":"identifier","text":"ApiCompletion"}],"abstract":[{"type":"text","text":"This completion type is used by the "},{"type":"codeVoice","code":"ApiService"},{"type":"text","text":" protocol."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/ApiCompletion","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ApiCompletion"}],"url":"\/documentation\/swiftkit\/apicompletion"},"doc://SwiftKit/documentation/SwiftKit/UserDefaultsBasedDeviceIdentifier":{"role":"symbol","title":"UserDefaultsBasedDeviceIdentifier","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"UserDefaultsBasedDeviceIdentifier"}],"abstract":[{"type":"text","text":"This device identifier generates a unique device identifier"},{"type":"text","text":" "},{"type":"text","text":"and stores it in user defaults, so that the same identifier"},{"type":"text","text":" "},{"type":"text","text":"is used every time for each app installation."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/UserDefaultsBasedDeviceIdentifier","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"UserDefaultsBasedDeviceIdentifier"}],"url":"\/documentation\/swiftkit\/userdefaultsbaseddeviceidentifier"},"doc://SwiftKit/documentation/SwiftKit/StandardDirectoryService":{"role":"symbol","title":"StandardDirectoryService","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"StandardDirectoryService"}],"abstract":[{"type":"text","text":"This is a standard implementation of the "},{"type":"codeVoice","code":"DirectoryService"},{"type":"text","text":"."},{"type":"text","text":" "},{"type":"text","text":"You can inherit and override any parts of it."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/StandardDirectoryService","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"StandardDirectoryService"}],"url":"\/documentation\/swiftkit\/standarddirectoryservice"},"doc://SwiftKit/documentation/SwiftKit/ApiError":{"role":"symbol","title":"ApiError","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"ApiError"}],"abstract":[{"type":"text","text":"This enum contains errors that can occur when communicating"},{"type":"text","text":" "},{"type":"text","text":"with an api, using an "},{"type":"codeVoice","code":"ApiService"},{"type":"text","text":"."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/ApiError","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ApiError"}],"url":"\/documentation\/swiftkit\/apierror"},"doc://SwiftKit/documentation/SwiftKit/Validator":{"role":"symbol","title":"Validator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Validator"}],"abstract":[],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/Validator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Validator"}],"url":"\/documentation\/swiftkit\/validator"},"doc://SwiftKit/documentation/SwiftKit/DeviceIdentifier":{"role":"symbol","title":"DeviceIdentifier","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"DeviceIdentifier"}],"abstract":[{"type":"text","text":"This protocol can be implemented by anything that can get a"},{"type":"text","text":" "},{"type":"text","text":"unique device identifier for the current device."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/DeviceIdentifier","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"DeviceIdentifier"}],"url":"\/documentation\/swiftkit\/deviceidentifier"},"doc://SwiftKit/documentation/SwiftKit/LocalizationService":{"role":"symbol","title":"LocalizationService","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"LocalizationService"}],"abstract":[{"type":"text","text":"This protocol can be implemented any "},{"type":"reference","isActive":true,"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/Translator"},{"type":"text","text":" that is"},{"type":"text","text":" "},{"type":"text","text":"also capable of changing the apps current locale."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/LocalizationService","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"LocalizationService"}],"url":"\/documentation\/swiftkit\/localizationservice"},"doc://SwiftKit/documentation/SwiftKit/BundleFileFinder":{"role":"symbol","title":"BundleFileFinder","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"BundleFileFinder"}],"abstract":[{"type":"text","text":"This class can be used to find files witin a certain bundle."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/BundleFileFinder","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"BundleFileFinder"}],"url":"\/documentation\/swiftkit\/bundlefilefinder"},"doc://SwiftKit/documentation/SwiftKit/Translator":{"role":"symbol","title":"Translator","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"Translator"}],"abstract":[{"type":"text","text":"This protocol can be implemented by any classes that can be"},{"type":"text","text":" "},{"type":"text","text":"used to translate a localized string synchronously."}],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/Translator","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"Translator"}],"url":"\/documentation\/swiftkit\/translator"},"doc://SwiftKit/documentation/SwiftKit/StoreService":{"deprecated":true,"role":"symbol","title":"StoreService","fragments":[{"kind":"keyword","text":"protocol"},{"kind":"text","text":" "},{"kind":"identifier","text":"StoreService"}],"abstract":[],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/StoreService","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"StoreService"}],"url":"\/documentation\/swiftkit\/storeservice"},"doc://SwiftKit/documentation/SwiftKit/AppleMapsService":{"role":"symbol","title":"AppleMapsService","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"AppleMapsService"}],"abstract":[],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/AppleMapsService","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"AppleMapsService"}],"url":"\/documentation\/swiftkit\/applemapsservice"},"doc://SwiftKit/documentation/SwiftKit/StandardStoreService":{"deprecated":true,"role":"symbol","title":"StandardStoreService","fragments":[{"kind":"keyword","text":"class"},{"kind":"text","text":" "},{"kind":"identifier","text":"StandardStoreService"}],"abstract":[],"identifier":"doc:\/\/SwiftKit\/documentation\/SwiftKit\/StandardStoreService","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"StandardStoreService"}],"url":"\/documentation\/swiftkit\/standardstoreservice"}}}