Перейти к файлу
PraveenKumar yeruva 18d9e0432b
Create android-build-check.yml (#218)
2022-06-27 14:33:24 +05:30
.github Create android-build-check.yml (#218) 2022-06-27 14:33:24 +05:30
FluentUI bug-6039158: adding default values and overrding in demo app 2022-05-27 10:04:48 +05:30
FluentUI.Demo Dimens-Removing listitems dimens dependency for persona (#216) 2022-06-27 13:10:35 +05:30
fluentui_calendar modified 'fluentuiCalendar_textAlign' to 'fluentui_textAlign' 2022-02-15 17:14:41 +05:30
fluentui_ccb Fix: CCB Item Tint to be set only in case of Drawables 2022-04-18 14:31:31 +05:30
fluentui_core Enable View Model to provide App level theme 2022-06-22 08:29:00 +05:30
fluentui_drawer 0.1.0 SDK release 2022-06-16 15:26:10 +05:30
fluentui_listitem 0.1.0 SDK release 2022-06-16 15:26:10 +05:30
fluentui_menus bug-6039158: making sure checkbox and radiobuttons maintain color consistency when checked and unchecked 2022-05-27 10:04:48 +05:30
fluentui_others Enable View Model to provide App level theme 2022-06-22 08:29:00 +05:30
fluentui_peoplepicker 0.1.0 SDK release 2022-06-16 15:26:10 +05:30
fluentui_persona Dimens-Removing listitems dimens dependency for persona (#216) 2022-06-27 13:10:35 +05:30
fluentui_progress fix lint error in progress module (#96) 2021-07-13 15:48:41 +05:30
fluentui_tablayout Moved the declare-styleable attributes to fluentui_core attrs.xml & enum attributes to fluentui_tablayout attrs.xml to reuse at module level. Attributes also prefixed with 'fluentui_' to avoid conflict with other UI library attributes 2022-02-17 11:35:42 +05:30
fluentui_topappbars 0.1.0 SDK release 2022-06-16 15:26:10 +05:30
fluentui_transients Fix: Snackbar not vertically centered 2022-04-12 16:11:32 +05:30
gradle/wrapper 0.1.0 SDK release 2022-06-16 15:26:10 +05:30
.gitignore Modularization Base Structure (#41) 2021-03-05 16:05:25 +05:30
CODE_OF_CONDUCT.md Initial CODE_OF_CONDUCT.md commit 2020-04-27 08:29:24 -07:00
CONTRIBUTING.md using github's license,code_of_conduct and security files 2020-04-27 21:12:54 +05:30
CredScanSuppressions.json Changes to consider FluentUI.Demo/keystore.jks as exception for credscan. Its contains self-signed key on APK creation 2022-04-18 10:38:47 +05:30
LICENSE Initial LICENSE commit 2020-04-27 08:29:26 -07:00
NOTICE Add FluentUI for Android 2020-04-20 15:13:04 +05:30
README.md Move to version 0.0.18 (#92) 2021-07-13 11:38:04 +05:30
SECURITY.md Initial SECURITY.md commit 2020-04-27 08:29:28 -07:00
azure-maven-central-pipelines.yml Gradle build to use 1.11 2022-06-14 12:25:29 +05:30
build.gradle 0.1.0 SDK release 2022-06-16 15:26:10 +05:30
config.gradle 0.1.0 SDK release 2022-06-16 15:26:10 +05:30
fluentui-android-compliance.yml Changes to consider FluentUI.Demo/keystore.jks as exception for credscan. Its contains self-signed key on APK creation 2022-04-18 10:38:47 +05:30
fluentui-android-master-build-publish-maven.yml Gradle build to use JDK 11 2022-06-14 11:51:18 +05:30
fluentui-android-master-build.yml Gradle build to use JDK 11 2022-06-14 11:51:18 +05:30
fluentui-android-modular-build-universal-publish.yml 0.1.0 SDK release 2022-06-16 15:26:10 +05:30
fluentui-android-sync-github-develop.yml Pipeline for syncing develop branch 2020-09-01 12:25:09 +05:30
fluentui-android-sync-github.yml Set up CI with Azure Pipelines for syncing github 2020-04-27 16:12:03 +00:00
gradle.properties Androidx movement (#55) 2021-04-21 16:12:43 +05:30
gradlew 0.1.0 SDK release 2022-06-16 15:26:10 +05:30
gradlew.bat 0.1.0 SDK release 2022-06-16 15:26:10 +05:30
publish-check.gradle Handling duplication issue for Maven publish 2022-06-07 15:46:44 +05:30
publish.gradle V2: Theme, Infra, Button and Floating Action Button 2022-06-07 16:20:08 +05:30
settings.gradle Peoplepicker Module (#90) 2021-07-12 15:30:17 +05:30

README.md

Fluent UI for Android

The Android UI framework for building experiences for Microsoft 365.

Fluent UI for Android is a native library that provides the Office UI experience for the Android platform. It contains information about colors and typography, as well as custom controls and customizations for platform controls, all from the official Fluent design language used in Microsoft 365 products.

Build status (master branch)

Build Service Status
App Center Build status
Azure Pipelines [Build Status]

Contents

Colors and typography

Fluent UI for Android provides colors and typography based on the Fluent design language.

In version 0.0.12, as a part of modularization, the colors and typographies have been moved to respective modules Please refer to Modularization section for more details

Controls

Fluent UI for Android includes an expanding library of controls written in Kotlin. These controls implement the Fluent design language and bring consistency across Office app experiences.

Some of the controls available include:

Install and use Fluent UI

Requirements

API 21+

1. Using Gradle

  • Our library is now published using MavenCentral, so make sure the mavenCentral() repository has been added to your project level build.gradle file if you want to consume versions >= 0.0.17.

  • If you are still using older versions you can consume jcenter() too. Please note it will only work for versions <=0.0.16

  • Inside the dependency block in your build.gradle, add this line for the FluentUI library:

dependencies {
    ...
    implementation 'com.microsoft.fluentui:FluentUIAndroid:$version'
    ...
}
  • Make sure you replace $version with the latest version of FluentUI.
  • From version 0.0.12, individual modules can also be used by applications as per need. E.g To use just BottomSheet control which is part of fluentui_drawer module, following block can be added to build.gradle
dependencies {
    ...
    implementation 'com.microsoft.fluentui:fluentui_drawer:$version'
    ...
}

Replace ${version} with the latest version of fluentui_drawer

More information about contents of each module can be found in Modularization section

a) Develop for Surface-Duo:

  • Please also add the following lines to your repositories section in your gradle script:
maven {
    url "https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1"
}
  • Also add the SDK dependency to the module-level build.gradle file(current version may be different from what's shown here):
implementation "com.microsoft.device:dualscreen-layout:1.0.0-alpha01"

2. Using Maven

  • Add the FluentUI library as a dependency:
<dependency>
  <groupId>com.microsoft.fluentui</groupId>
  <artifactId>FluentUIAndroid</artifactId>
  <version>${version}</version>
</dependency>
  • Make sure you replace ${version} with the latest version of FluentUI.
  • As in case of Gradle, here too, to use specific modules add dependency as follows:
<dependency>
  <groupId>com.microsoft.fluentui</groupId>
  <artifactId>fluentui_drawer</artifactId>
  <version>${version}</version>
</dependency>

Replace ${version} with the latest version of fluentui_drawer

Check Modularization for details of every module.

3. Manual installation

Modularized FluentUI manual installation involves building individual AARs of required modules
  • Download the latest changes from the Fluent UI Android repository.

  • Follow these instructions to build and output an AAR files from the FluentUI modules, import the module(s) to your project, and add it as a dependency. If you're having trouble generating an AAR file for the module, make sure you select it and run e.g "Make Module 'fluentui_drawer'" from the Build menu.

  • Some components have dependencies you will need to manually add to your app if you are using this library as an AAR artifact because these dependencies do not get included in the output.

    • If using PeoplePickerView, include this dependency in your gradle file:
      implementation 'com.splitwise:tokenautocomplete:2.0.8'
      
    • If using CalendarView or DateTimePickerDialog, include this dependency in your gradle file:
      implementation 'com.jakewharton.threetenabp:threetenabp:1.1.0'
      
    • Double check that these library versions correspond to the latest versions we implement in the FluentUI build.gradle.

Import and use the library

In code:

import com.microsoft.fluentui.persona.AvatarView

In XML:

<com.microsoft.fluentui.persona.AvatarView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:name="Mona Kane" />

Demo app

Included in this repository is a demo of currently implemented controls. A full list of implemented controls available in the demo can be found here: Demos.

To see samples of all of our implemented controls and design language, run the FluentUI.Demo module in Android Studio.

Modularization

Starting from version 0.0.12, Fluent UI has been split into multiple modules by grouping related controls together. The main objective of this is to reduce the size impact of library on the applications which want to use only specific controls from Fluent UI

The list of modules and their respective controls is as follows

Module Name Controls
fluentui_drawer Drawer, BottomSheet,
Persistent BottomSheet
fluentui_listitem ListItemView
fluentui_tablayout Tablayout
fluentui_core TemplateView, Utilities
fluentui_actionbar* Action Bar Layout
fluentui_bottomnavigation* Bottom Navigation
fluentui_buttons* Buttons
fluentui_calendar Calendar, DateTime Picker
fluentui_menus Pop up Menu
fluentui_peoplepicker PeoplePickerView
fluentui_persona AvatarView, AvatarGroup View,
PersonaChipView, PersonaListView
fluentui_progress Linear Progress Bar, Circular Progress Bar
fluentui_topappbars Toolbar, AppBar Layout, SearchBar
fluentui_transients Snackbar, Tooltip
fluentui_viewpager* View Pager

*These controls are not yet available in modular form as modularization process is ongoing. For now these controls can be found in fluentui_others module

Contributing

Post bug reports, feature requests, and questions in Issues. Contributions to any specific controls should be done in respective modules. Refer Modularization section for more details

Changelog

We use GitHub Releases to manage our releases, including the changelog between every release. You'll find a complete list of additions, fixes, and changes on the Releases page.

License

All files on the Fluent UI for Android GitHub repository are subject to the MIT license. Please read the LICENSE file at the root of the project.

Usage of the logos and icons referenced in Fluent UI for Android is subject to the terms of the assets license agreement.