Skip to content

Commit 38a8082

Browse files
v2.0.0 (#35)
PerseusDarkMode remastered.
2 parents 2ef2f13 + 6947a9f commit 38a8082

30 files changed

Lines changed: 2518 additions & 2095 deletions

.github/workflows/main.yml

Lines changed: 52 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,76 @@
1-
name: 'Tests'
1+
# .github/workflows/main.yml
2+
name: 'Build & Tests'
23

3-
on:
4+
on:
45
push:
56
branches: [ master ]
67
pull_request:
78
branches: [ master ]
89
# schedule:
910
# - cron: '5 5 * * 5'
10-
11+
1112
jobs:
12-
unit-testing-iOS:
13-
runs-on: macos-latest
13+
14+
macOS-build:
15+
runs-on: macos-14
1416
steps:
1517
- name: Checkout the code
16-
uses: actions/checkout@v2
17-
- name: Show xcodebuild version
18-
run: xcodebuild -version
19-
- name: Show xcode embedded SDKs
20-
run: xcodebuild -showsdks
21-
- name: Show buildable schemes
22-
run: xcodebuild -list
23-
- uses: mxcl/xcodebuild@v1.9.2
18+
uses: actions/checkout@v4
19+
- name: Select Xcode 15.4
20+
run: sudo xcode-select -s "/Applications/Xcode_15.4.app"
21+
- uses: mxcl/xcodebuild@v3
2422
with:
25-
platform: iOS
23+
platform: macOS
2624
scheme: 'PerseusDarkMode'
27-
action: test
25+
action: build
2826
code-coverage: true
2927
verbosity: xcpretty
3028
upload-logs: always
31-
32-
unit-testing-macOS:
33-
runs-on: macos-latest
29+
30+
macOS-test:
31+
runs-on: macos-14
3432
steps:
3533
- name: Checkout the code
36-
uses: actions/checkout@v2
37-
- name: Show xcodebuild version
38-
run: xcodebuild -version
39-
- name: Show xcode embedded SDKs
40-
run: xcodebuild -showsdks
41-
- name: Show buildable schemes
42-
run: xcodebuild -list
43-
- uses: mxcl/xcodebuild@v1.9.2
34+
uses: actions/checkout@v4
35+
- name: Select Xcode 15.4
36+
run: sudo xcode-select -s "/Applications/Xcode_15.4.app"
37+
- uses: mxcl/xcodebuild@v3
4438
with:
4539
platform: macOS
4640
scheme: 'PerseusDarkMode'
4741
action: test
4842
code-coverage: true
4943
verbosity: xcpretty
5044
upload-logs: always
51-
45+
46+
iOS-build:
47+
runs-on: macos-14
48+
steps:
49+
- name: Checkout the code
50+
uses: actions/checkout@v4
51+
- name: Select Xcode 15.4
52+
run: sudo xcode-select -s "/Applications/Xcode_15.4.app"
53+
- uses: mxcl/xcodebuild@v3
54+
with:
55+
platform: iOS
56+
scheme: 'PerseusDarkMode'
57+
action: build
58+
code-coverage: true
59+
verbosity: xcpretty
60+
upload-logs: always
61+
62+
iOS-test:
63+
runs-on: macos-14
64+
steps:
65+
- name: Checkout the code
66+
uses: actions/checkout@v4
67+
- name: Select Xcode 15.4
68+
run: sudo xcode-select -s "/Applications/Xcode_15.4.app"
69+
- uses: mxcl/xcodebuild@v3
70+
with:
71+
platform: iOS
72+
scheme: 'PerseusDarkMode'
73+
action: test
74+
code-coverage: true
75+
verbosity: xcpretty
76+
upload-logs: always

.github/workflows/swiftlint.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# .github/workflows/swiftlint.yml
2+
name: Style
3+
4+
on:
5+
push:
6+
branches: [ master ]
7+
pull_request:
8+
branches: [ master ]
9+
10+
jobs:
11+
SwiftLint:
12+
runs-on: macos-14
13+
steps:
14+
- uses: actions/checkout@v4
15+
- uses: cirruslabs/swiftlint-action@v1
16+
with:
17+
version: latest

.gitignore

Lines changed: 10 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,11 @@
55
## User settings
66
xcuserdata/
77

8-
## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)
9-
*.xcscmblueprint
10-
*.xccheckout
11-
12-
## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
8+
## Build generated
139
build/
1410
DerivedData/
15-
*.moved-aside
11+
12+
## Various settings
1613
*.pbxuser
1714
!default.pbxuser
1815
*.mode1v3
@@ -21,10 +18,14 @@ DerivedData/
2118
!default.mode2v3
2219
*.perspectivev3
2320
!default.perspectivev3
21+
xcuserdata/
2422

2523
## Other
26-
.DS_Store
27-
swiftlint.txt
24+
*.moved-aside
25+
*.xccheckout
26+
*.xcscmblueprint
27+
*.DS_Store
28+
SwiftLintOutput
2829

2930
## Obj-C/Swift specific
3031
*.hmap
@@ -34,61 +35,16 @@ swiftlint.txt
3435
*.dSYM.zip
3536
*.dSYM
3637

37-
## Playgrounds
38-
timeline.xctimeline
39-
playground.xcworkspace
40-
4138
# Swift Package Manager
4239
#
4340
# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.
4441
# Packages/
4542
# Package.pins
4643
Package.resolved
47-
.xcodeproj
44+
*.xcodeproj
4845
#
4946
# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata
5047
# hence it is not needed unless you have added a package configuration file to your project
5148
.swiftpm
5249

5350
.build/
54-
55-
# CocoaPods
56-
#
57-
# We recommend against adding the Pods directory to your .gitignore. However
58-
# you should judge for yourself, the pros and cons are mentioned at:
59-
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
60-
#
61-
# Pods/
62-
#
63-
# Add this line if you want to avoid checking in source code from the Xcode workspace
64-
# *.xcworkspace
65-
66-
# Carthage
67-
#
68-
# Add this line if you want to avoid checking in source code from Carthage dependencies.
69-
# Carthage/Checkouts
70-
71-
Carthage/Build/
72-
73-
# Accio dependency management
74-
Dependencies/
75-
.accio/
76-
77-
# fastlane
78-
#
79-
# It is recommended to not store the screenshots in the git repo.
80-
# Instead, use fastlane to re-generate the screenshots whenever they are needed.
81-
# For more information about the recommended setup visit:
82-
# https://docs.fastlane.tools/best-practices/source-control/#source-control
83-
84-
fastlane/report.xml
85-
fastlane/Preview.html
86-
fastlane/screenshots/**/*.png
87-
fastlane/test_output
88-
89-
# Code Injection
90-
#
91-
# After new code Injection tools there's a generated folder /iOSInjectionProject
92-
# https://github.com/johnno1962/injectionforxcode
93-
94-
iOSInjectionProject/

.swiftlint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,4 +50,4 @@ function_parameter_count:
5050

5151
large_tuple:
5252
warning: 4
53-
error: 5
53+
error: 5

APPROBATION.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# Approbation Matrix / PerseusDarkMode 2.0.0
2+
3+
> NOTE: To catch all log messages Mac Console should be started first then after a little while the logged app.
4+
5+
> Compilation: macOS Monterey 12.7.6 / Xcode 14.2
6+
7+
## macOS approbation result
8+
9+
> The approbation macOS app for PerseusDarkMode 2.0.0 is [Arkenstone](https://github.com/perseusrealdeal/Arkenstone).
10+
11+
| macOS | Version | Result | Details |
12+
| ----------- | ------- | :-----: | ------- |
13+
| High Sierra | 10.13 | ok | - |
14+
| Mojave | 10.14 | ok | - |
15+
| Catalina | 10.15 | ok | - |
16+
| Big Sur | 11.7 | ok | - |
17+
| Monterey | 12.7 | ok | - |
18+
| Ventura | 13.7 | ok | - |
19+
| Sonoma | 14.7 | ok | - |
20+
| Sequoia | 15.3 | ok | - |
21+
22+
## iOS approbation result
23+
24+
> The approbation iOS app for PerseusDarkMode 2.0.0 is [The One Ring](https://github.com/perseusrealdeal/TheOneRing).
25+
26+
| Device | Simulator | OS Version | Result | Details |
27+
| --------------- | :-------: | ---------- | :-----: | ------- |
28+
| iPad Air | no | 12.5.7 | ok | - |
29+
| iPhone SE (3rd) | yes | 16.2 | ok | - |
30+
31+
## A3 environment
32+
33+
### List of available Apple machines
34+
35+
> Excluded: virtualization (e.g. VirtualBox) and hackintosh
36+
37+
| Machine | Memory | Storage |
38+
| ----------- | ------ | ---------------------- |
39+
| Mac mini | 16GB | SATA 480GB, NVMe 256GB |
40+
| MacBook Pro | 8GB | 256GB |
41+
42+
### System configuration for A3 environment
43+
44+
| macOS | Version | Machine | Xcode | OpenCore | Git Client |
45+
| ----------- | ------- | ----------- | ------ | -------- | -------------- |
46+
| High Sierra | 10.13.6 | Mac mini | 10.1 | - | GitHub Desktop |
47+
| Mojave | 10.14.6 | Mac mini | 11.3.1 | - | GitHub Desktop |
48+
| Catalina | 10.15.7 | Mac mini | 11.7 | - | GitHub Desktop |
49+
| Big Sur | 11.7.10 | Mac mini | 13.2.1 | - | GitHub Desktop |
50+
| Monterey | 12.7.6 | Mac mini | 14.2 | - | SmartGit |
51+
| Ventura | 13.7.4 | MacBook Pro | 15.2 | - | GitHub Desktop |
52+
| Sonoma | 14.7.4 | MacBook Pro | 16.2 | yes | GitHub Desktop |
53+
| Sequoia | 15.3.1 | MacBook Pro | 16.2 | yes | GitHub Desktop |

CHANGELOG.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Changelog
2+
3+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
4+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).<br/>
5+
6+
Dates in this file meets Gregorian calendar. Date in format YYYY-MM-DD.
7+
8+
## [2.0.0] - [2025-04-27], PerseusDarkMode
9+
10+
- Minimum build requirements: macOS 10.13+, iOS 11.0+, Xcode 14.2+. If standalone Xcode 10.1+.
11+
12+
### Changed
13+
14+
- Package structure.
15+
- Calculation macOS Dark Mode.
16+
17+
### Added
18+
19+
- Approbation and Changelog docs.
20+
21+
### Included
22+
23+
- Functions to switch Dark Mode.
24+
- PerseusUISystemKit classes, goes as PDMSupportingStar.swift only, out of import.
25+
26+
### Improved
27+
28+
- PerseusDarkMode API.
29+
- Source Code.
30+
- Documentation.
31+
32+
### Fixed
33+
34+
- PerseusDarkMode auto detect macOS DarkMode changes.
35+
36+
### Updated
37+
38+
- PerseusLogger to [CPL v1.1.0](https://github.com/perseusrealdeal/ConsolePerseusLogger).
39+
40+
### Removed
41+
42+
- Unit tests, import test only.
43+
44+
## [1.1.5] - [2023-01-14], PerseusDarkMode
45+
46+
- Minimum build requirements: macOS 10.9+, iOS 9.3+, and Xcode 10.1+.
47+
48+
### Added
49+
50+
- [PerseusLogger](https://gist.github.com/perseusrealdeal/df456a9825fcface44eca738056eb6d5).
51+
- DarkMode feature as an extenstion variable of UIResponder/NSResponer classes iOS and macOS.
52+
- DarkMode feature for iOS Settings bundle.
53+
- Observing DarkMode with KVO.
54+
55+
## [2022-04-01], First commit

LICENSE

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
MIT License
22

3-
Copyright © 7530 - 7531 Mikhail Zhigulin of Novosibirsk
3+
Copyright © 7530 - 7533 Mikhail A. Zhigulin of Novosibirsk
4+
Copyright © 7533 PerseusRealDeal
45

56
The year starts from the creation of the world according to a Slavic calendar.
67
September, the 1st of Slavic year.
78

9+
Use Stars to adopt for the specifics you need.
10+
811
Permission is hereby granted, free of charge, to any person obtaining a copy
912
of this software and associated documentation files (the "Software"), to deal
1013
in the Software without restriction, including without limitation the rights

0 commit comments

Comments
 (0)