Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prepare main for 1.0.0 #13

Merged
merged 8 commits into from
Aug 14, 2024
Merged

Prepare main for 1.0.0 #13

merged 8 commits into from
Aug 14, 2024

Conversation

OS-martacarlos
Copy link
Contributor

Merge development into main, preparing for the release of InAppBrowser.

OS-ricardomoreirasilva and others added 8 commits May 27, 2024 15:03
* chore: add project

References: https://outsystemsrd.atlassian.net/browse/RMET-3421

* feat: add structure for opening a url using the browser app

Create the Xcode project structure and eliminate the default structure.
Add the engine structure with the 'openExternalBrowser' method and the router protocol with 'openInSafari'. This allows the library's caller to add the behaviour to whoever will be responsible for the routing (AppDelegate).
Add the unit tests for the feature.

References: https://outsystemsrd.atlassian.net/browse/RMET-3421

* chore: add return value to openExternalBrowser

This is to indicate if the open was successful or not.
Add unit test to validate unsuccessful operation.

References: https://outsystemsrd.atlassian.net/browse/RMET-3421

* chore: add the xcframework build script

References: https://outsystemsrd.atlassian.net/browse/RMET-3421

* chore: add docc documentation

References: https://outsystemsrd.atlassian.net/browse/RMET-3421

* chore: add continuous integration

This includes adding fastlane, sonarcloud and github actions configurations. This involves moving the project one folder up.

References: https://outsystemsrd.atlassian.net/browse/RMET-3421

* chore: add CHANGELOG entry

References: https://outsystemsrd.atlassian.net/browse/RMET-3421
* feat: add openInSystemBrowser

To apply a similar logic to what was done for openInExternalBrowser, the OSIABApplicationRouterAdapter (new name) was moved into the library and created a similar structure for SFSafariViewController (OSIABSafariViewControllerRouterAdapter.
Refactor to reuse as much code as possible.
Add (and refactor) unit tests.

References: https://outsystemsrd.atlassian.net/browse/RMET-3423

* feat: add dismissStyle enumerator

This new property only applies to SystemBrowser.
Add unit tests to validate the feature.

References: https://outsystemsrd.atlassian.net/browse/RMET-3423

* feat: add viewStyle enumerator

This new property only applies to SystemBrowser.
Considering there's more than one enumerator, create a Models folder to hold 'em all.
Add unit tests to validate the feature.

References: https://outsystemsrd.atlassian.net/browse/RMET-3423

* feat: add animation enumerator

This new property only applies to SystemBrowser.
Add unit tests to validate the feature.

References: https://outsystemsrd.atlassian.net/browse/RMET-3423

* feat: add enableBarsCollapsing boolean

This new property only applies to SystemBrowser.
Add unit tests to validate the feature.

References: https://outsystemsrd.atlassian.net/browse/RMET-3423

* feat: add enableReadersMode boolean

This new property only applies to SystemBrowser.
Add unit tests to validate the feature.

References: https://outsystemsrd.atlassian.net/browse/RMET-3423

* chore: create a Options model

Organise all the different properties inside a Options model.
Rearrange all the code to accommodate the change.
Move options model tests to the SafariViewControllerRouterAdapter test class.

References: https://outsystemsrd.atlassian.net/browse/RMET-3423

* feat: add events for SystemBrowser

The events are part of the OSIABSafariViewControllerRouterAdapter class. The same applies for the OSIABSystemBrowserOptions structure, to make things clearer.
Set the SFSafariViewControllerDelegate and UIAdaptivePresentationControllerDelegate delegates so that the events can be intercepted and the new events triggered.
Add unit tests to validate the feature.

References: https://outsystemsrd.atlassian.net/browse/RMET-3429

* chore: address Sonarcloud issues

Align project structure.

* chore: add docc documentation

* chore: add CHANGELOG entries

* chore: add PR feedback
* feat: open in web view.

Add all the logic required to delegate a URL to be opened by a web view. Currently, only the WebView custom configurations are performed, nothing UI-related.
Add a new Router Adapter for WebViow.
The new 'OSIABOptions' manages the data that is used by both SystemBrowser and WebView. Each has a class to implement its needs.
Add two SwiftUI views to display the WebView: A wrapper that manages unhappy paths and the proper view to display a browser-like experience.
Add a Cache Manager protocol and implementation so that WebView can perform clearance when applicable.
Add unit tests to test the feature. SonarCloud configuration is updated to exclude UI views.
Add the event listener logic for Page Load and Close.
Add 'CHANGELOG' entries.

References: https://outsystemsrd.atlassian.net/browse/RMET-3425
References: https://outsystemsrd.atlassian.net/browse/RMET-3430

* feat: add interface customisations to webview

Add the UI customisations to the WebView interface. This involves a new Navigation View to deal with shared views by the toolbars.
Create two new structs for WebView configuration.
Add unit tests to test the new features. The WebView also contains Previews to validate all possible UI scenarios.

References: https://outsystemsrd.atlassian.net/browse/RMET-3489
This is applied to the Router's concrete implementations. To achieve this, a specific subclass was created where the 'dismiss' method is overridden to return the 'onBrowserClosed' callback. With this, previously used methods that did similar were removed (safariViewControllerDidFinish).
Create method accelerators to transform OSIABWebViewOptions to OSIABWebViewConfigurationModel and OSIABWebViewUIModel.
Update unit tests.

References: https://outsystemsrd.atlassian.net/browse/RMET-3427
To reduce replication, a new 'OSIABNavigationButton' was added.
Make layout direction more customisable. This involves a new 'ViewModifier'.
Add docc documentation where missing.
# Conflicts:
#	CHANGELOG.md
* fix: swiftlint issues

* chore: create scripts folder

Move 'build_framework.sh' script to the new folder.

* feat: create podspec

References: https://outsystemsrd.atlassian.net/browse/RMET-3578

* chore: add Gemfile.lock to repo

* feat: add bump_versions script

Include default values for Xcode's project CURRENT_PROJECT_VERSION and MARKETING_VERSION.

References: https://outsystemsrd.atlassian.net/browse/RMET-3578

* feat: new pipeline for preparing releases

References: https://outsystemsrd.atlassian.net/browse/RMET-3578

* feat: new pipeline for releasing and publishing on CocoaPods

This includes a script to extract the version's Release Notes.

References: https://outsystemsrd.atlassian.net/browse/RMET-3578

* fix: update build_framework

Include the LICENSE file in the resulting zip file. This aligns with the podspec license definition.

References: https://outsystemsrd.atlassian.net/browse/RMET-3578

* chore: update README

Since the plugin can now be included as a CocoaPod, update README file to show how to achieve this.

References: https://outsystemsrd.atlassian.net/browse/RMET-3578

* chore: add CHANGELOG entry

References: https://outsystemsrd.atlassian.net/browse/RMET-3578

* fix: add support for iOS 13

This is needed as Capacitor still supports this version of iOS.
Set SWIFT_VERSION with 5.0 at project level. This guarantees that all versions that Xcode 15 supports (all until 5.9) are guaranteed while building the xcframework.
The Continuous Integration pipeline is updated to use Xcode 15.0 instead of 15.1 as it's the minimum Xcode version supported by Capacitor.
@OS-martacarlos OS-martacarlos self-assigned this Aug 14, 2024
@OS-martacarlos OS-martacarlos requested a review from a team as a code owner August 14, 2024 13:54
@OS-martacarlos OS-martacarlos requested review from ItsChaceD, IT-MikeS, alexgerardojacinto and OS-ricardomoreirasilva and removed request for a team August 14, 2024 13:54
@OS-martacarlos OS-martacarlos changed the title Prepare main for 1.0.0 Prepare main for 1.0.0 Aug 14, 2024
@OS-martacarlos OS-martacarlos marked this pull request as draft August 14, 2024 13:57
Copy link

@OS-martacarlos OS-martacarlos marked this pull request as ready for review August 14, 2024 14:20
@OS-martacarlos OS-martacarlos merged commit efef28c into main Aug 14, 2024
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants