Skip to content

Orange-OpenSource/ouds-ios

OUDS iOS

OUDS iOS provides Orange iOS components to developers.
Report bug · Request feature · Swift documentation · Wiki · Design system · Design system toolbox

Build and test status   Gitleaks status   SwiftPolyglot status   Periphery status   SwiftLint status   GitHub Pages deployment status   OpenSSF Best Practices   OpenSSF Scorecard   Renovate status

Status

MIT license

Versions Still maintained

Code size Opened issues

iOS 15.0 Xcode 26.0

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.

Quick start

Add the dependency

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.

Add the librairies

In your Xcode targets, add the librairies you need. Everything is splitted so as to let users choose the content to embed they want. In most of cases, the OUDS library at least must be imported, it brings abstraction layer. Components are available with OUDSComponents. Themes are available through their librairies too (OUDSThemeOrange, OUDSThemeSosh, OUDSThemeWireframe, etc.).

You can have more details in the wiki.

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.

import OUDS
import SwiftUI

@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.

Tokens libraries versions

Tip

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

  • Core OUDS version: 1.5.0
  • Core Orange version: 1.1.0
  • Brand Orange version: 1.5.0
  • Core Sosh version: 1.1.0
  • Brand Sosh version: 1.5.0
  • Core Wireframe version: 1.0.0
  • Brand Wireframe version: 1.5.0
  • Brand Orange Business Tools version: 1.5.0
  • Brand Orange Inverse version: 1.5.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.

Copyright and license

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

About

A Swift Package of SwiftUI components library for Orange Unified Design System

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors 9

Languages