Skip to content

Latest commit

Β 

History

1,136 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Logo of Orange Unified Design System

OUDS iOS

OUDS iOS provides SwiftUI components to Orange developers
Build Sharper. Ship faster. Perform better.
Report bug Β· Request feature Β· Swift documentation Β· Wiki Β· Design system Β· Design system toolbox

Build and test status Β  Gitleaks status Β  SwiftPolyglot status Β  SwiftLint status Β  OpenSSF Best Practices Β  OpenSSF Scorecard Β  Renovate status Β  FOSSA status for licences policy Β  FOSSA sattus for security policy Β  skills.sh

βš™οΈ Status

MIT license

Versions Still maintained

Code size Opened issues

iOS 15 iPadOS 15 macOS 13 visionOS 1 watchOS 11 tvOS 16

Xcode 26.4

Open Hub

ℹ️ About OUDS

OUDS means Orange Unified Design System.

This is a new design system, again, but unified, trying to merge all requirements of Orange brands and affiliates so as to provide a unique design system, unified across all platforms and for all countries, companies, users and apps. Guidelines for TV, Android, iOS and web environments will be merged in a "cohesive" approach, and any Orange-related softwares including brand apps like Parnasse and Sosh, Orange Innovation Cup apps and Orange countries and affiliates app will use this project in the future.

The project is open source (except some assets) and topics like accessibility and ecodesign are also considered.

It replaces internal frameworks and also ODS as the only one design system for Orange group and affiliates.

Caution

This Swift Package is dedicated to SwiftUI. UIKit and other frameworks are not supported.

Note

Main targets are iOS / iPadOS, and we do our best to support macOS, visionOS, tvOS and watchOS!

πŸš€ Quick start

You can try our Swift Package online tutorials which will explain how to embed and use OUDS iOS Swift Package for your app.

Choose your version

You can find available releases on GitHub releases. The wiki contains also a page listing the available API. Versions, builds and releases are explained also in this page.

Add the dependency (Swift Package Manager)

First, you must add as package dependency of your project the URL of this Swift Package GitHub repository:

https://github.com/Orange-OpenSource/ouds-ios

You can choose the dependency rule you want. Keep in mind OUDS iOS releases are frozen and are based on semantic versioning.

In your Xcode targets, add the libraries you need. Everything is splitted so as to let users choose the content to embed they want. The OUDSSwiftUI library embeds everything, but you may prefer instead tailor your imports. The OUDSSwiftUIOrangeSosh library alsmo everything but not the Orange Compact and Wireframe themes. You can get the detailed list of available libraries in the documentation.

More technical details in the wiki.

Add the dependency (XCFramework)

Get the XCFramework ZIP file from the GitHub releases of the version you want. Uncompress the ZIP, and if you want check its checksum or cryptographic signature. Otherwise uncompress the XCFramework ZIP, and drag and drop all the XCFrameworks (~10) in your Xcode project. Associate them to the target(s) you want. And, in your source xcode, when you use OUDS items, import OUDSSwiftUIOrangeSosh.

Note

XCFramework is not the prefered solution to use OUDS. Thus the XCFramework available are tailored for iOS platform with only Orange and Sosh themes. For more evolutions feel free to contact the maintainers.

Instanciate and inject theme

In the root view of your app, add the OUDSThemeableView with inside the theme object you want to apply. You can instanciate the theme object on the fly, but only once.

@main
struct YourApp: App {

    var body: some Scene {
        WindowGroup {
            OUDSThemeableView(theme: theTheme) { // theTheme can be: OrangeTheme(), SoshTheme(), WirefameTheme(), etc.
              AppRootView() // Add your app root view here
            }
        }
    }
}

Feel free to read the online documentation. You can find also more details about theme instanciations online.

Get the theme

If you need to get configuration details from the theme (colors, dimensions, etc.), get the theme through environment object:

  @Environment(\.theme) var theme

Use the components

Import the OUDSComponents library and instanciate the component you need. All of them are described in the online documentation (and grouped by categories).

The wiki lists also the components and their availability.

πŸ“¦ Content

Note

This repository contains the OUDS iOS library, as a Swift Package, that provides Orange iOS components for its unified design system.

You can find the detailed technical documentation online, and also the whole design system.

Details about the project are also available in the wiki.

You can find the available API online on the wiki.

Important

The design system toolbox app, i.e. the showcase app, is on Orange-OpenSource/ouds-ios-design-system-toolbox.

Tip

Releases are immutable and in most of time cryptographically signed (commits, tags and artifacts). You can verify their integrity with commands from GPG tool of GitHub CLI client. Please refer to the wiki to choose the options you need

πŸ“¦ Binary distribution (XCFramework)

In addition to the standard Swift Package distribution, OUDS is also published as a dynamic XCFramework for the OUDSSwiftUIOrangeSosh umbrella product. This distribution is intended to solve the duplication / symbol-conflict problem that appears when several third-party XCFrameworks each embed their own copy of OUDS in the same application.

  • Artefacts (OUDSSwiftUIOrangeSosh-<version>.xcframework.zip + SHA-256) are attached to [GitHub Releases][https://github.com/Orange-OpenSource/ouds-ios/releases].
  • SPM remains the primary distribution channel; the XCFramework is an opt-in additional artefact. Open a discussion for more evolutions.
  • Unzip the XCFramework archive, add all 10 XCFrameworks to your Xcode project, embed and sign only OUDSSwiftUIOrangeSosh, and import that dependency. OrangeCompact and Wireframe themes are not shipped.

🧬 Tokens libraries versions

Tip

This Swift package embeds specific versions of themes / tokens libraries. You can find more details in the online documentation and also in the wiki.

  • Core OUDS version: 1.11.0
  • Core Orange version: 1.2.0
  • Brand Orange version: 2.7.0
  • Core Sosh version: 1.4.0
  • Brand Sosh version: 2.7.0
  • Core Wireframe version: 1.5.0
  • Brand Wireframe version: 2.7.0
  • Brand Orange Compact version: 2.7.0

πŸͺ² Bugs, feature requests and discussions

Have a bug or a feature request? Please first search for existing and closed issues. If your problem or idea is not addressed yet, please open a new issue.

If you want to share ideas or discuss about API, features, components or other topics, you should first open a new discussion. Q&A is more dedicated for help, otherwise feel free to open or update a topic in Ideas. Keep in mind internal or sensitive discussions must be in internal tools, not public ones.

If your discussions, requests or issues are about the design system toolbox application, use instead its GitHub project.

🀝 Contributing

Please read through our contributing guidelines. Included are directions for opening issues, coding standards, and notes on development. More technical details are available also in the DEVELOP file.

πŸ”’ Data and privacy

The Orange Unified Design System library is a Software Development Kit (SDK) that allows developpers to create Orange branded mobile applications. As such:

  • this SDK does not handle any personnal data
  • this SDK does not require any device permission to work

βš–οΈ Copyright and license

Code released under the MIT License. For images and other assets, please refer to the NOTICE.txt.

πŸ“± Design Toolbox App

Flash the QrCode below or click on it to download the Design System Toolbox app.

QrCode redirecting to Orange Unified Desin Sysem Design System Toolbox page

About

A Swift Package of SwiftUI components library for Orange developers with Orange Unified Design System. Build Sharper. Ship faster. Perform better.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

35 stars

Watchers

5 watching

Forks

Releases

Used by

Contributors

Languages

Sponsor
SponsoredKunjungi sekarang
Promo