Skip to content

Commit

Permalink
Release version 3.0.0-beta03
Browse files Browse the repository at this point in the history
  • Loading branch information
Team Mobile Schorsch committed Feb 1, 2023
1 parent f8a9309 commit bff3035
Show file tree
Hide file tree
Showing 28 changed files with 417 additions and 74 deletions.
28 changes: 19 additions & 9 deletions Documentation/source/Customization guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,15 +95,15 @@ To enable this feature simply pass `true` to `GiniConfiguration.shared.multipage

### Camera

* Enable the flash toggle button:
To allow users toggle the camera flash pass `true` to `GiniConfiguration.shared.flashToggleEnabled`.
- Enable the flash toggle button:
To allow users toggle the camera flash pass `true` to `GiniConfiguration.shared.flashToggleEnabled`.

* Turn off flash by default:
Flash is on by default, and you can turn it off by passing `false` to `GiniConfiguration.shared.flashOnByDefault`.
- Turn off flash by default:
Flash is on by default, and you can turn it off by passing `false` to `GiniConfiguration.shared.flashOnByDefault`.

### Camera access TODO

### QR Code Scanning
### QR Code Scanning

When a supported QR code is detected with valid payment data, the QR Code will be processed automatically without any further user interaction.
The QR Code scanning may be triggered directly without the need to analyze the document.
Expand Down Expand Up @@ -138,7 +138,7 @@ Please find more information in the [Import PDFs and images guide](https://devel
You can show a custom loading indicator with custom animation support on the process button.
Your custom loading indicator should implement `OnButtonLoadingIndicatorAdapter` interface and be passed to `GiniConfiguration.shared.onButtonLoadingIndicator`.

The example implementation is available [here](https://github.com/gini/gini-mobile-ios/blob/GiniCaptureSDK%3B3.0.0-beta02/BankSDK/GiniBankSDKExample/GiniBankSDKExample/CustomLoadingIndicator.swift#L36).
The example implementation is available [here](https://github.com/gini/gini-mobile-ios/blob/GiniCaptureSDK%3B3.0.0-beta03/BankSDK/GiniBankSDKExample/GiniBankSDKExample/CustomLoadingIndicator.swift#L36).

## Analysis screen

Expand All @@ -147,7 +147,7 @@ The example implementation is available [here](https://github.com/gini/gini-mobi
You can show a custom loading indicator with custom animation support.
Your custom loading indicator should implement `CustomLoadingIndicatorAdapter` interface and be passed to `GiniConfiguration.shared.customLoadingIndicator`.

The example implementation is available [here](https://github.com/gini/gini-mobile-ios/blob/GiniCaptureSDK%3B3.0.0-beta02/BankSDK/GiniBankSDKExample/GiniBankSDKExample/CustomLoadingIndicator.swift).
The example implementation is available [here](https://github.com/gini/gini-mobile-ios/blob/GiniCaptureSDK%3B3.0.0-beta03/BankSDK/GiniBankSDKExample/GiniBankSDKExample/CustomLoadingIndicator.swift).

## Help screens

Expand All @@ -173,10 +173,20 @@ You can also disable the supported formats help screen by passing `false` to

<iframe style="border: 1px solid rgba(0, 0, 0, 0.1);" width="600" height="450" src="https://www.figma.com/embed?embed_host=share&url=https%3A%2F%2Fwww.figma.com%2Ffile%2F1985HMF83siAXmysSn3dC6%2FiOS-Gini-Capture-SDK-3.0.0-UI-Customisation%3Fnode-id%3D279%253A7588%26t%3DcRAvcUKVlwGtGpuh-1" allowfullscreen></iframe>

## No result screen TODO
## No result screen

<iframe style="border: 1px solid rgba(0, 0, 0, 0.1);" width="600" height="450" src="https://www.figma.com/embed?embed_host=share&url=https%3A%2F%2Fwww.figma.com%2Ffile%2F1985HMF83siAXmysSn3dC6%2FiOS-Gini-Capture-SDK-3.0.0-UI-Customisation%3Fnode-id%3D263%253A6989%26t%3DcRAvcUKVlwGtGpuh-1" allowfullscreen></iframe>

# Error screen TODO
You can show your own UI for data input if an error occurred and the user clicks the "Enter manually" button on the error screen.
For this you must to implement `GiniCaptureResultsDelegate.giniCaptureDidEnterManually() `.

You can show a bottom navigation bar by passing true to `GiniConfiguration.shared.bottomNavigationBarEnabled`. There is a default implementation, but you can also use
your own by implementing the `NoResultBottomNavigationBarAdapter` interface and passing it to `GiniConfiguration.shared.noResultNavigationBarBottomAdapter`.

You can find more details [here](https://developer.gini.net/gini-mobile-ios/GiniCaptureSDK/3.0.0-beta03/features.html#no-result-screen-customization).

## Error screen

<iframe style="border: 1px solid rgba(0, 0, 0, 0.1);" width="600" height="450" src="https://www.figma.com/embed?embed_host=share&url=https%3A%2F%2Fwww.figma.com%2Ffile%2F1985HMF83siAXmysSn3dC6%2FiOS-Gini-Capture-SDK-3.0.0-UI-Customisation%3Fnode-id%3D263%253A6858%26t%3DcRAvcUKVlwGtGpuh-1" allowfullscreen></iframe>

You can find more details [here](https://developer.gini.net/gini-mobile-ios/GiniCaptureSDK/3.0.0-beta03/features.html#error-screen-customization).
69 changes: 49 additions & 20 deletions Documentation/source/Features.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,23 +41,23 @@ The onboarding feature presents essential information to the user on how to best

You can customize the onboarding in the following ways:

* Disable showing the onboarding at first run:
By default the onboarding is shown at first run. To disable this pass `false` to
`GiniConfiguration.shared.onboardingShowAtFirstLaunch`.
- Disable showing the onboarding at first run:
By default the onboarding is shown at first run. To disable this pass `false` to
`GiniConfiguration.shared.onboardingShowAtFirstLaunch`.

* Customize the onboarding pages:
If you wish to show different onboarding pages then pass a list of `OnboardingPage` structs to `GiniConfiguration.shared.customOnboardingPages`.
- Customize the onboarding pages:
If you wish to show different onboarding pages then pass a list of `OnboardingPage` structs to `GiniConfiguration.shared.customOnboardingPages`.

* Force show the onboarding:
If you wish to show the onboarding after the first run then pass `true` to
`GiniConfiguration.shared.onboardingShowAtLaunch`.
- Force show the onboarding:
If you wish to show the onboarding after the first run then pass `true` to
`GiniConfiguration.shared.onboardingShowAtLaunch`.

* Animate illustrations by injecting custom views:
If you need to animate the illustrations on the onboarding pages implement the `OnboardingIllustrationAdapter` interface to inject a view that can animate images (e.g., `Lottie`) and pass it to the relevant onboarding illustration adapter setters (e.g., `onboardingAlignCornersIllustrationAdapter`,
`onboardingLightingIllustrationAdapter`,
`onboardingMultiPageIllustrationAdapter`,
`onboardingQRCodeIllustrationAdapter`)
when configuring the `GiniConfiguration.shared` instance.
- Animate illustrations by injecting custom views:
If you need to animate the illustrations on the onboarding pages implement the `OnboardingIllustrationAdapter` interface to inject a view that can animate images (e.g., `Lottie`) and pass it to the relevant onboarding illustration adapter setters (e.g., `onboardingAlignCornersIllustrationAdapter`,
`onboardingLightingIllustrationAdapter`,
`onboardingMultiPageIllustrationAdapter`,
`onboardingQRCodeIllustrationAdapter`)
when configuring the `GiniConfiguration.shared` instance.

## Single Page

Expand All @@ -74,11 +74,11 @@ To enable this simply pass `true` to `GiniConfiguration.shared.multipageEnabled`

## Camera

* Enable the flash toggle button:
To allow users toggle the camera flash pass `true` to `GiniConfiguration.shared.flashToggleEnabled`.
- Enable the flash toggle button:
To allow users toggle the camera flash pass `true` to `GiniConfiguration.shared.flashToggleEnabled`.

* Turn off flash by default:
Flash is on by default, and you can turn it off by passing `false` to `GiniConfiguration.shared.flashOnByDefault`.
- Turn off flash by default:
Flash is on by default, and you can turn it off by passing `false` to `GiniConfiguration.shared.flashOnByDefault`.

# QR Code Scanning

Expand Down Expand Up @@ -107,7 +107,7 @@ The `Open with` feature allows importing of files from other apps via iOS `share

Please find more information in the [Open with guide](https://developer.gini.net/gini-mobile-ios/GiniCaptureSDK/open-with-guide.html).

# Help Screen Customization
# Help screen Customization

You can show your own help screens in the Gini Capture SDK.
You can pass the title and view controller for each screen to the
Expand All @@ -124,6 +124,36 @@ The example implementation is availible [here](https://github.com/gini/gini-mobi
You can also disable the supported formats help screen by passing `false` to
`GiniConfiguration.shared.shouldShowSupportedFormatsScreen`.

# No result screen customization

You can show custom back navigation button on bottom navigation bar. You can pass your custom `NoResultBottomNavigationBarAdapter` implementation to
`GiniConfiguration.shared.errorNavigationBarBottomAdapter`:

``` swift
let customNoResultNavigationBarBottomAdapter = CustomNoResultBottomNavigationBarAdapter()

GiniConfiguration.shared.noResultNavigationBarBottomAdapter = customNoResultNavigationBarBottomAdapter
```

You can show your own UI if an error occured and the user chooses to enter details manually. For this you must to implement `GiniCaptureResultsDelegate.giniCaptureDidEnterManually() `.

The buttom "Retake images" will be shown only if you took or imported images.

# Error screen customization

You can show custom back navigation button on bottom navigation bar. You can pass your custom `ErrorBottomNavigationBarAdapter` implementation to
`GiniConfiguration.shared.errorNavigationBarBottomAdapter`:

``` swift
let customErrorNavigationBarBottomAdapter = CustomErrorNavigationBarBottomAdapter()

GiniConfiguration.shared.errorNavigationBarBottomAdapter = customErrorNavigationBarBottomAdapter
```

You can show your own UI if an error occured and the user chooses to enter details manually. For this you must to implement `GiniCaptureResultsDelegate.giniCaptureDidEnterManually() `.

The buttom "Retake images" will be shown only if you took or imported images.

# Event Tracking

You have the possibility to track various events which occur during the usage of the Gini Capture SDK.
Expand All @@ -133,4 +163,3 @@ Please find more information in the [Event tracking guide](https://developer.gin
# Error Logging

The SDK logs errors to the Gini Bank API when the default networking implementation is used (see the `Default networking` implementation in the [Integration](https://developer.gini.net/gini-mobile-ios/GiniCaptureSDK/integration.html).

4 changes: 2 additions & 2 deletions Documentation/source/Getting started.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,14 @@ Once you have your Swift package set up, adding `GiniCaptureSDK` as a dependency

```swift
dependencies: [
.package(url: "https://github.com/gini/capture-sdk-ios.git", .exact("3.0.0-beta02"))
.package(url: "https://github.com/gini/capture-sdk-ios.git", .exact("3.0.0-beta03"))
]
```

In case that you want to use the certificate pinning in the library, add `GiniCaptureSDKPinning`:
```swift
dependencies: [
.package(url: "https://github.com/gini/capture-sdk-pinning-ios.git", .exact("3.0.0-beta02"))
.package(url: "https://github.com/gini/capture-sdk-pinning-ios.git", .exact("3.0.0-beta03"))
]
```

Expand Down
103 changes: 94 additions & 9 deletions Documentation/source/Migration to version 3.x.x.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,11 @@ The following steps will help you migrate to the new public API:
* Handling the analysis results and receiving the extracted information (error or cancellation) can be handled though `GiniCaptureResultsDelegate` protocol implementation.
* You can also provide your own networking by implementing the `GiniCaptureNetworkService` and `GiniCaptureResultsDelegate` protocols. Pass your instances to the `UIViewController` initialiser of GiniCapture as shown below.
* Remove all code related to interacting with the SDK's specific view controllers. From now on the entry point is the `UIViewController` and customization happens through `GiniConfiguration` and via overriding of images and color resources.
* Use the new UI customization options and follow the [Customization guide](https://developer.gini.net/gini-mobile-ios/GiniCaptureSDK/3.0.0-beta02/customization-guide.html) to adapt the look of the new UI.
* Use the new UI customization options and follow the [Customization guide](https://developer.gini.net/gini-mobile-ios/GiniCaptureSDK/3.0.0-beta03/customization-guide.html) to adapt the look of the new UI.

# Migrate from Screen API

The new public API is based on the Screen API, so you only need to use the new UI customization options and follow the [Customization guide](https://developer.gini.net/gini-mobile-ios/GiniCaptureSDK/3.0.0-beta02/customization-guide.html) to adapt the look of the new UI.
The new public API is based on the Screen API, so you only need to use the new UI customization options and follow the [Customization guide](https://developer.gini.net/gini-mobile-ios/GiniCaptureSDK/3.0.0-beta03/customization-guide.html) to adapt the look of the new UI.

# Overview of New UI Customization Options

Expand Down Expand Up @@ -130,7 +130,7 @@ customizations.

Images and text are onboarding page specific and need to be customized for each page.

[here][https://developer.gini.net/gini-mobile-ios/GiniCaptureSDK/3.0.0-beta02/features.html#onboarding] and [here](https://www.figma.com/file/1985HMF83siAXmysSn3dC6/iOS-Gini-Capture-SDK-3.0.0-UI-Customisation?node-id=243%3A3305&t=6sAk7LGf1mi3zV9L-1).
[here][https://developer.gini.net/gini-mobile-ios/GiniCaptureSDK/3.0.0-beta03/features.html#onboarding] and [here](https://www.figma.com/file/1985HMF83siAXmysSn3dC6/iOS-Gini-Capture-SDK-3.0.0-UI-Customisation?node-id=243%3A3305&t=6sAk7LGf1mi3zV9L-1).

### Breaking Changes

Expand Down Expand Up @@ -175,8 +175,7 @@ For enabling QR code only mode the both flags `GiniConfiguration.shared.qrCodeSc

## Help screens

The new help screens use the global UI customization options. You can discard the old screen specific
customizations.
The new help screens use the global UI customization options. You can discard the old screen specific customizations.

### Breaking Changes

Expand All @@ -192,14 +191,13 @@ String keys changed:
You can show a bottom navigation bar by passing true to `GiniConfiguration.shared.bottomNavigationBarEnabled`. There is a default implementation, but you can also use
your own by implementing the `HelpBottomNavigationBarAdapter` interface and passing it to `GiniConfiguration.shared.helpNavigationBarBottomAdapter`.

You can find more details [here][https://developer.gini.net/gini-mobile-ios/GiniCaptureSDK/3.0.0-beta02/features.html#help-screen-customization] and [here](https://www.figma.com/file/1985HMF83siAXmysSn3dC6/iOS-Gini-Capture-SDK-3.0.0-UI-Customisation?node-id=141%3A2328&t=6sAk7LGf1mi3zV9L-1).
You can find more details [here][https://developer.gini.net/gini-mobile-ios/GiniCaptureSDK/3.0.0-beta03/features.html#help-screen-customization] and [here](https://www.figma.com/file/1985HMF83siAXmysSn3dC6/iOS-Gini-Capture-SDK-3.0.0-UI-Customisation?node-id=141%3A2328&t=6sAk7LGf1mi3zV9L-1).

## Analysis screen

The new analysis screen uses the global UI customization options. You can discard the old screen specific
customizations.
The new analysis screen uses the global UI customization options. You can discard the old screen specific customizations.

### Breaking Changes section
### Breaking Changes

String keys removed:
`ginicapture.analysis.suggestion.header`
Expand All @@ -213,8 +211,95 @@ The following string keys now represent suggestion titles with new keys added fo

### New Features

#### Custom loading indicator

You can show a custom loading indicator with custom animation support on the center of the screen.
Your custom loading indicator should implement `CustomLoadingIndicatorAdapter` interface and be passed to `GiniConfiguration.shared.customLoadingIndicator`.
This loading indicator is also used on the `Camera screen` when loading data for a valid QR code.

You can find more details [here](https://www.figma.com/file/1985HMF83siAXmysSn3dC6/iOS-Gini-Capture-SDK-3.0.0-UI-Customisation?node-id=501%3A7494&t=6sAk7LGf1mi3zV9L-1).

## Review screen

The new review screen uses the global UI customization options. You can discard the old screen specific customizations.

### Breaking Changes

We unified UI for the single page and multi pages options.
We removed rotation and reorder functionalities.
Tips view was removed as well.

### New Features

#### Custom loading indicator

You can show a custom loading indicator with custom animation support on the process button of the screen.
Your custom loading indicator should implement `OnButtonLoadingIndicatorAdapter` interface and be passed to `GiniConfiguration.shared.onButtonLoadingIndicator`.

#### Bottom navigation bar

You can show a bottom navigation bar by passing true to `GiniConfiguration.shared.bottomNavigationBarEnabled`. There is a default implementation, but you can also use
your own by implementing the `ReviewScreenBottomNavigationBarAdapter` interface and passing it to `GiniConfiguration.shared.reviewNavigationBarBottomAdapter`.

You can find more details [here](https://www.figma.com/file/1985HMF83siAXmysSn3dC6/iOS-Gini-Capture-SDK-3.0.0-UI-Customisation?node-id=261%3A8256&t=6sAk7LGf1mi3zV9L-1).

## No results screen

The new no results screen uses the global UI customization options. You can discard the old screen specific
customizations.

### Breaking Changes

#### Removed localization keys:

`ginicapture.noresults.warning`
`ginicapture.noresults.collection.header`
`ginicapture.noresults.gotocamera`
`ginicapture.noresults.warningHelpMenu`

### New features

#### New localization keys:

`ginicapture.noresult.enterManually`
`ginicapture.noresult.retakeImages`

#### Option to enter details manually

You can show your own UI for data input if an error occurred and the user clicks the "Enter manually" button on the error screen.
For this you must to implement `GiniCaptureResultsDelegate.giniCaptureDidEnterManually() `.

#### Bottom navigation bar

You can show a bottom navigation bar by passing true to `GiniConfiguration.shared.bottomNavigationBarEnabled`. There is a default implementation, but you can also use
your own by implementing the `NoResultBottomNavigationBarAdapter` interface and passing it to `GiniConfiguration.shared.noResultNavigationBarBottomAdapter`.

You can find more details [here](https://www.figma.com/file/1985HMF83siAXmysSn3dC6/iOS-Gini-Capture-SDK-3.0.0-UI-Customisation?node-id=263%3A6989&t=7wXW9XyhTUcmp5sk-1) and [here](https://developer.gini.net/gini-mobile-ios/GiniCaptureSDK/3.0.0-beta03/customization-guide.html#no-result-screen).

## Error screen

The new error screen uses the global UI customization options.

### Breaking Changes

Showing errors during usage of the SDK was changed from snackbar to a whole new screen.

### New Features

#### New UI

The new error screen gives options to retake photos or enter details manually and displays errors with more detailed description.

#### Bottom navigation bar

You can show a bottom navigation bar by passing true to `GiniConfiguration.shared.bottomNavigationBarEnabled`. There is a default implementation, but you can also use
your own by implementing the `ErrorBottomNavigationBarAdapter` interface and passing it to `GiniConfiguration.shared.errorNavigationBarBottomAdapter`.

You can find more details [here](https://developer.gini.net/gini-mobile-ios/GiniCaptureSDK/3.0.0-beta03/customization-guide.html#error-screen).

#### Option to enter details manually

You can show your own UI for data input if an error occured and the user clicks the "Enter manually" button on the error screen.
For this you must to implement `GiniCaptureResultsDelegate.giniCaptureDidEnterManually() `.

You can find more details [here](https://developer.gini.net/gini-mobile-ios/GiniCaptureSDK/3.0.0-beta03/features.html#error-screen-customization) and [here]((https://developer.gini.net/gini-mobile-ios/GiniCaptureSDK/3.0.0-beta03/customization-guide.html#error-screen).
2 changes: 1 addition & 1 deletion Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ let package = Package(
dependencies: [
// Dependencies declare other packages that this package depends on.
// .package(url: /* package url */, from: "1.0.0"),
.package(name: "GiniBankAPILibrary", url: "https://github.com/gini/bank-api-library-ios.git", .exact("3.0.0-beta02")),
.package(name: "GiniBankAPILibrary", url: "https://github.com/gini/bank-api-library-ios.git", .exact("3.0.0-beta03")),
],
targets: [
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
Expand Down
Loading

0 comments on commit bff3035

Please sign in to comment.