Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
3be04d8
ADDED: latest updates
PerseusRealDeal Oct 30, 2024
712dde5
INCLUDED: PerseusUISystemKit API
PerseusRealDeal Nov 16, 2024
a00d67c
ADDED: minor changes
PerseusRealDeal Nov 17, 2024
06b7668
ADDED: minor changes
PerseusRealDeal Nov 17, 2024
8b92e88
CHANGED: logging code behavior
PerseusRealDeal Dec 8, 2024
36c932d
RENAMED: AppearanceService > DarkModeAgent
PerseusRealDeal Dec 12, 2024
247d21f
MOVED: Dark Mode changing funcs to DarkModeAgent
PerseusRealDeal Dec 24, 2024
7266d21
ADDED: README update
PerseusRealDeal Jan 18, 2025
3e7ca92
UPDATED: README
PerseusRealDeal Feb 5, 2025
ac5d153
ERASED: standalone version (previous)
PerseusRealDeal Feb 5, 2025
070da3a
FINISHED: v2.0.0 functionality
PerseusRealDeal Feb 5, 2025
e0aea7d
FINISHED: changelog
PerseusRealDeal Feb 14, 2025
c698bdf
CHANGED: log messages
PerseusRealDeal Feb 15, 2025
9da4c6b
ADDED: minor API changes
PerseusRealDeal Feb 15, 2025
1916f37
FINISHED: log messaging
PerseusRealDeal Feb 15, 2025
9f5cb42
LANDED: star
PerseusRealDeal Feb 24, 2025
f438147
ADDED: check list for macOS/iOS
PerseusRealDeal Feb 28, 2025
8a245d0
ADDED: A3 environment specification
PerseusRealDeal Mar 1, 2025
a843cb6
UPDATED: A3 Env specification
PerseusRealDeal Mar 10, 2025
061e246
UPDATED: A3 environment specification
PerseusRealDeal Mar 12, 2025
6d711b9
CHANGED: system dark mode style calc
PerseusRealDeal Mar 30, 2025
d6ecfba
ADDED: minor changes
PerseusRealDeal Apr 1, 2025
8077680
REORGANIZED: structure
PerseusRealDeal Apr 8, 2025
cde199b
PARTED: PerseusUIKit to single file
PerseusRealDeal Apr 8, 2025
daee81e
ADDED: minor changes
PerseusRealDeal Apr 8, 2025
fae42f5
ADDED: major update
PerseusRealDeal Apr 15, 2025
600a096
REORGANIZED: just business code, no covered test code
PerseusRealDeal Apr 18, 2025
5fa2d87
UPGRADED: CPL
PerseusRealDeal Apr 18, 2025
4227c0c
ADDED: minor changes
PerseusRealDeal Apr 19, 2025
306ebf4
CHANGED: MIT License > Unlicensed
PerseusRealDeal Apr 19, 2025
d9b018f
ADDED: minor changes
PerseusRealDeal Apr 19, 2025
f365c7a
UPDATED: CPL
PerseusRealDeal Apr 20, 2025
59e154c
UPDATED: CHANGELOG
PerseusRealDeal Apr 20, 2025
c3d1a62
UPDATED: APPROBATION
PerseusRealDeal Apr 20, 2025
dbcc27a
RENAMED: source code
PerseusRealDeal Apr 20, 2025
4345097
ADDED: minor changes
PerseusRealDeal Apr 21, 2025
41775f2
ADDED: minor changes
PerseusRealDeal Apr 25, 2025
7b13c75
ADDED: minor changes
PerseusRealDeal Apr 26, 2025
839a359
UPDATED: approbation results
PerseusRealDeal Apr 26, 2025
d35ba23
ADDED: minor changes (fix)
PerseusRealDeal Apr 26, 2025
a22ba12
UPDATED: approbation results
PerseusRealDeal Apr 26, 2025
96b3755
UPDATED: README.md
PerseusRealDeal Apr 27, 2025
0d19319
ADDED: minor changes
PerseusRealDeal Apr 27, 2025
ce9bdb5
FINISHED: v2.0.0
PerseusRealDeal Apr 27, 2025
09f6f07
Merge branch 'master' into develop
PerseusRealDeal Apr 27, 2025
2a5405b
UPDATED: GitHub workflows
PerseusRealDeal Apr 27, 2025
6947a9f
ADDED: minor changes
PerseusRealDeal Apr 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 52 additions & 27 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,51 +1,76 @@
name: 'Tests'
# .github/workflows/main.yml
name: 'Build & Tests'

on:
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
# schedule:
# - cron: '5 5 * * 5'

jobs:
unit-testing-iOS:
runs-on: macos-latest

macOS-build:
runs-on: macos-14
steps:
- name: Checkout the code
uses: actions/checkout@v2
- name: Show xcodebuild version
run: xcodebuild -version
- name: Show xcode embedded SDKs
run: xcodebuild -showsdks
- name: Show buildable schemes
run: xcodebuild -list
- uses: mxcl/xcodebuild@v1.9.2
uses: actions/checkout@v4
- name: Select Xcode 15.4
run: sudo xcode-select -s "/Applications/Xcode_15.4.app"
- uses: mxcl/xcodebuild@v3
with:
platform: iOS
platform: macOS
scheme: 'PerseusDarkMode'
action: test
action: build
code-coverage: true
verbosity: xcpretty
upload-logs: always
unit-testing-macOS:
runs-on: macos-latest

macOS-test:
runs-on: macos-14
steps:
- name: Checkout the code
uses: actions/checkout@v2
- name: Show xcodebuild version
run: xcodebuild -version
- name: Show xcode embedded SDKs
run: xcodebuild -showsdks
- name: Show buildable schemes
run: xcodebuild -list
- uses: mxcl/xcodebuild@v1.9.2
uses: actions/checkout@v4
- name: Select Xcode 15.4
run: sudo xcode-select -s "/Applications/Xcode_15.4.app"
- uses: mxcl/xcodebuild@v3
with:
platform: macOS
scheme: 'PerseusDarkMode'
action: test
code-coverage: true
verbosity: xcpretty
upload-logs: always


iOS-build:
runs-on: macos-14
steps:
- name: Checkout the code
uses: actions/checkout@v4
- name: Select Xcode 15.4
run: sudo xcode-select -s "/Applications/Xcode_15.4.app"
- uses: mxcl/xcodebuild@v3
with:
platform: iOS
scheme: 'PerseusDarkMode'
action: build
code-coverage: true
verbosity: xcpretty
upload-logs: always

iOS-test:
runs-on: macos-14
steps:
- name: Checkout the code
uses: actions/checkout@v4
- name: Select Xcode 15.4
run: sudo xcode-select -s "/Applications/Xcode_15.4.app"
- uses: mxcl/xcodebuild@v3
with:
platform: iOS
scheme: 'PerseusDarkMode'
action: test
code-coverage: true
verbosity: xcpretty
upload-logs: always
17 changes: 17 additions & 0 deletions .github/workflows/swiftlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# .github/workflows/swiftlint.yml
name: Style

on:
push:
branches: [ master ]
pull_request:
branches: [ master ]

jobs:
SwiftLint:
runs-on: macos-14
steps:
- uses: actions/checkout@v4
- uses: cirruslabs/swiftlint-action@v1
with:
version: latest
64 changes: 10 additions & 54 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,11 @@
## User settings
xcuserdata/

## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)
*.xcscmblueprint
*.xccheckout

## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
## Build generated
build/
DerivedData/
*.moved-aside

## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
Expand All @@ -21,10 +18,14 @@ DerivedData/
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata/

## Other
.DS_Store
swiftlint.txt
*.moved-aside
*.xccheckout
*.xcscmblueprint
*.DS_Store
SwiftLintOutput

## Obj-C/Swift specific
*.hmap
Expand All @@ -34,61 +35,16 @@ swiftlint.txt
*.dSYM.zip
*.dSYM

## Playgrounds
timeline.xctimeline
playground.xcworkspace

# Swift Package Manager
#
# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.
# Packages/
# Package.pins
Package.resolved
.xcodeproj
*.xcodeproj
#
# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata
# hence it is not needed unless you have added a package configuration file to your project
.swiftpm

.build/

# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
# Pods/
#
# Add this line if you want to avoid checking in source code from the Xcode workspace
# *.xcworkspace

# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts

Carthage/Build/

# Accio dependency management
Dependencies/
.accio/

# fastlane
#
# It is recommended to not store the screenshots in the git repo.
# Instead, use fastlane to re-generate the screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/#source-control

fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots/**/*.png
fastlane/test_output

# Code Injection
#
# After new code Injection tools there's a generated folder /iOSInjectionProject
# https://github.com/johnno1962/injectionforxcode

iOSInjectionProject/
2 changes: 1 addition & 1 deletion .swiftlint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,4 @@ function_parameter_count:

large_tuple:
warning: 4
error: 5
error: 5
53 changes: 53 additions & 0 deletions APPROBATION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Approbation Matrix / PerseusDarkMode 2.0.0

> NOTE: To catch all log messages Mac Console should be started first then after a little while the logged app.

> Compilation: macOS Monterey 12.7.6 / Xcode 14.2

## macOS approbation result

> The approbation macOS app for PerseusDarkMode 2.0.0 is [Arkenstone](https://github.com/perseusrealdeal/Arkenstone).

| macOS | Version | Result | Details |
| ----------- | ------- | :-----: | ------- |
| High Sierra | 10.13 | ok | - |
| Mojave | 10.14 | ok | - |
| Catalina | 10.15 | ok | - |
| Big Sur | 11.7 | ok | - |
| Monterey | 12.7 | ok | - |
| Ventura | 13.7 | ok | - |
| Sonoma | 14.7 | ok | - |
| Sequoia | 15.3 | ok | - |

## iOS approbation result

> The approbation iOS app for PerseusDarkMode 2.0.0 is [The One Ring](https://github.com/perseusrealdeal/TheOneRing).

| Device | Simulator | OS Version | Result | Details |
| --------------- | :-------: | ---------- | :-----: | ------- |
| iPad Air | no | 12.5.7 | ok | - |
| iPhone SE (3rd) | yes | 16.2 | ok | - |

## A3 environment

### List of available Apple machines

> Excluded: virtualization (e.g. VirtualBox) and hackintosh

| Machine | Memory | Storage |
| ----------- | ------ | ---------------------- |
| Mac mini | 16GB | SATA 480GB, NVMe 256GB |
| MacBook Pro | 8GB | 256GB |

### System configuration for A3 environment

| macOS | Version | Machine | Xcode | OpenCore | Git Client |
| ----------- | ------- | ----------- | ------ | -------- | -------------- |
| High Sierra | 10.13.6 | Mac mini | 10.1 | - | GitHub Desktop |
| Mojave | 10.14.6 | Mac mini | 11.3.1 | - | GitHub Desktop |
| Catalina | 10.15.7 | Mac mini | 11.7 | - | GitHub Desktop |
| Big Sur | 11.7.10 | Mac mini | 13.2.1 | - | GitHub Desktop |
| Monterey | 12.7.6 | Mac mini | 14.2 | - | SmartGit |
| Ventura | 13.7.4 | MacBook Pro | 15.2 | - | GitHub Desktop |
| Sonoma | 14.7.4 | MacBook Pro | 16.2 | yes | GitHub Desktop |
| Sequoia | 15.3.1 | MacBook Pro | 16.2 | yes | GitHub Desktop |
55 changes: 55 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Changelog

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).<br/>

Dates in this file meets Gregorian calendar. Date in format YYYY-MM-DD.

## [2.0.0] - [2025-04-27], PerseusDarkMode

- Minimum build requirements: macOS 10.13+, iOS 11.0+, Xcode 14.2+. If standalone Xcode 10.1+.

### Changed

- Package structure.
- Calculation macOS Dark Mode.

### Added

- Approbation and Changelog docs.

### Included

- Functions to switch Dark Mode.
- PerseusUISystemKit classes, goes as PDMSupportingStar.swift only, out of import.

### Improved

- PerseusDarkMode API.
- Source Code.
- Documentation.

### Fixed

- PerseusDarkMode auto detect macOS DarkMode changes.

### Updated

- PerseusLogger to [CPL v1.1.0](https://github.com/perseusrealdeal/ConsolePerseusLogger).

### Removed

- Unit tests, import test only.

## [1.1.5] - [2023-01-14], PerseusDarkMode

- Minimum build requirements: macOS 10.9+, iOS 9.3+, and Xcode 10.1+.

### Added

- [PerseusLogger](https://gist.github.com/perseusrealdeal/df456a9825fcface44eca738056eb6d5).
- DarkMode feature as an extenstion variable of UIResponder/NSResponer classes iOS and macOS.
- DarkMode feature for iOS Settings bundle.
- Observing DarkMode with KVO.

## [2022-04-01], First commit
5 changes: 4 additions & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
MIT License

Copyright © 7530 - 7531 Mikhail Zhigulin of Novosibirsk
Copyright © 7530 - 7533 Mikhail A. Zhigulin of Novosibirsk
Copyright © 7533 PerseusRealDeal

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

Use Stars to adopt for the specifics you need.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
Expand Down
Loading