Commit Graph

25 Commits

Author SHA1 Message Date
Davide De Rosa
3f4b55a003 Implement Mac bundle with system menu
Use bundle as a means to provide Mac APIs to Catalyst app.

In order to cross the @objc wall set by the Mac Bundle mechanism,
Swift structures cannot be used directly and must be bridged
through ObjC facades.

Create NSMenu in MVVM style and install it on app launch. Make
sure to do it in AppDelegate.applicationDidFinishLaunching(),
because doing it as early as in PassepartoutApp.init() would
crash Mac code.

Use .representedObject to own view models.

With menu in place, app can be sent to background when main window
is closed. Requires multiple documents support for app not to die
instantly.
2022-07-16 17:39:42 +02:00
Davide De Rosa
df0d40c556 Add launcher target
- Launch main app in background then die

- Do not launch app if already running

- Launch app binary relative to launcher location
2022-06-25 16:53:38 +02:00
Davide De Rosa
cd854f8ebf Group profile actions into menus
- Organizer
    - Duplicate

- Profile
    - Rename
    - Siri
    - Uninstall (+ confirmation)
    - Delete (+ confirmation)
2022-04-27 09:53:42 +02:00
Davide De Rosa
d1c98006d3 Replace ReloadingContent with implicit animations
Infinite loop on init(), but horrible practice in general.

- DonateView
- PaywallView+Purchase

Also show a ProgressView while rows are loading.

DO NOT animate on .products value because animation won't work
if products are empty and stay empty after refresh. Instead,
observe .isRefreshingProducts.

Lastly, to avoid annoying animation when products are actually
available, do not refresh products if non-empty. They certainly
do not change during the application lifecycle.
2022-04-21 11:22:07 +02:00
Davide De Rosa
ab0a2c8cb4 Reuse provider availability idea from 5d85699 2022-04-19 09:03:41 +02:00
Davide De Rosa
2565b9f3d0 Lock network settings for builds >= 3000 2022-04-13 21:25:24 +02:00
Davide De Rosa
4aba5f46aa Rewrite app in SwiftUI 2022-04-12 15:12:45 +02:00
Davide De Rosa
2a5c231d3d
Polish release workflow (#207)
* Do run tests in beta

- Test and build app in same lane
- Run tests with swift directly
- Set timeout on build only
- Set GYM_OUTPUT_DIRECTORY inline
- Fix bad build number, broken in db075eb
- Ignore updates to CHANGELOG for testing
- Drop unnecessary exports
- Drop unnecessary test env
- Drop unused PLATFORM .env.* variable

* Work around gym issues in CI

- Set custom build paths for proper clean-up
- Disable xcpretty (seems to hang job)

* Add descriptive names to workflow

- Rename beta to release
- Add job names

* Optimize release workflow

- Use a matrix for multiplatform build
- Only preinstall platform-specific certificates
- Output app version/build early for job reuse
- Do not depend app review on public beta release
- Pull latest commits before pushing/tagging

In release, ci/* scripts require Ruby. Make version an argument
of the commit-release.sh script to fix dependency.

* Import secret to notify external testers or not

* [ci skip] Add CHANGELOG preface in local scripts

* [ci skip] Update links to release via CI
2021-12-03 15:31:19 +01:00
Davide De Rosa
ae1aa1a268 Reorganize project with SwiftPM
- Drop CocoaPods completely
- Make PassepartoutCore a Swift package
- Enable Bitcode to fix OpenSSL linkage (iOS)
- Update CI scripts without CocoaPods
2021-11-06 11:18:55 +01:00
Davide De Rosa
e59b6c8723 Upgrade Xcode project 2021-02-04 14:09:09 +01:00
Davide De Rosa
5978705aa9 Enable testing on app targets 2021-01-28 19:39:32 +01:00
Davide De Rosa
4c1fe20160 Upgrade Xcode project 2021-01-03 22:28:08 +01:00
Davide De Rosa
d4b7d47498 Merge macOS app and Core into repository
Temporarily drop env and fastlane.
2021-01-03 22:28:07 +01:00
Davide De Rosa
ed0b12cd24 Use environment for testing full version 2020-12-27 16:56:59 +01:00
Davide De Rosa
6b2b3fc59f Drop stale schemes 2020-11-23 18:15:09 +01:00
Davide De Rosa
2f42099bd0 Update project and deprecated APIs 2020-11-15 22:21:31 +01:00
Davide De Rosa
c033c208bd Upgrade project 2020-05-23 17:59:53 +02:00
Davide De Rosa
c51e578e53 Upgrade Xcode project 2020-02-28 17:28:18 +01:00
Davide De Rosa
99da23de8e Simulate full version through scheme arguments 2019-11-19 23:38:04 +01:00
Davide De Rosa
c9f807babd Upgrade project to Xcode 11
Disable code signing for frameworks.
2019-09-11 10:03:48 +02:00
Davide De Rosa
84eb9d09c4 Rename Core targets
Fix import in Core umbrella header.
2019-05-27 00:13:33 +02:00
Davide De Rosa
c7f522f55e Create Passepartout-Core framework target
Move all sources to this target, out of Passepartout-iOS.

FIXME: TrustedNetworks uses ServiceViewController.RowType
FIXME: make iOS target depend on Core.
2019-03-18 11:19:24 +01:00
Davide De Rosa
e8678e4eea Set beta release
Update to recommended project settings.
2019-03-09 11:39:35 +01:00
Davide De Rosa
156f47bb65 Normalize product names
Remove platform suffix.
2018-11-06 11:01:44 +01:00
Davide De Rosa
b9ec01945d Initial commit 2018-10-11 09:13:19 +02:00