Convert Figma logo to code with AI

wasabeef logoawesome-android-ui

A curated list of awesome Android UI/UX libraries

50,497
10,230
50,497
30

Top Related Projects

😍 A beautiful, fluid, and extensible dialogs API for Kotlin & Android.

11,868

Image Cropping Library for Android

A circular ImageView for Android

A powerful 🚀 Android chart view / graph view library, supporting line- bar- pie- radar- bubble- and candlestick charts as well as scaling, panning and animations.

34,636

An image loading and caching library for Android focused on smooth scrolling

The flexible, easy to use, all in one drawer library for your Android project. Now brand new with material 2 design.

Quick Overview

The "wasabeef/awesome-android-ui" GitHub repository is a curated list of awesome Android UI/UX libraries. It provides a comprehensive collection of open-source Android libraries that can be used to enhance the user interface and user experience of Android applications.

Pros

  • Extensive Collection: The repository contains a wide range of UI/UX libraries covering various aspects of Android development, such as animations, layouts, menus, and more.
  • Categorization: The libraries are organized into different categories, making it easier for developers to find the specific type of UI/UX component they are looking for.
  • Active Maintenance: The repository is actively maintained, with regular updates and additions of new libraries.
  • Community Contribution: The project encourages community contributions, allowing developers to suggest and add new libraries to the list.

Cons

  • Overwhelming Choice: The extensive collection of libraries can be overwhelming for developers, especially those new to Android development, making it challenging to choose the right library for their needs.
  • Varying Quality: The quality and documentation of the libraries can vary, as they are contributed by different developers and projects.
  • Potential Compatibility Issues: Some of the libraries may not be compatible with the latest Android versions or may have dependencies that can be difficult to manage.
  • Lack of In-Depth Evaluation: The repository provides a high-level overview of the libraries, but does not offer in-depth reviews or comparisons, which could be helpful for developers to make informed decisions.

Code Examples

Since this is a curated list of libraries, there are no code examples provided. However, the repository includes links to the individual library repositories, where developers can find the necessary code examples and documentation.

Getting Started

As this is a curated list of libraries and not a code library itself, there are no specific getting started instructions. Developers can browse the repository, explore the different categories, and visit the individual library repositories to learn how to integrate and use the desired UI/UX components in their Android applications.

Competitor Comparisons

😍 A beautiful, fluid, and extensible dialogs API for Kotlin & Android.

Pros of material-dialogs

  • Focused specifically on Material Design dialogs, providing a comprehensive solution
  • Actively maintained with frequent updates and bug fixes
  • Extensive documentation and examples for easy implementation

Cons of material-dialogs

  • Limited to dialog components, while awesome-android-ui covers a wider range of UI elements
  • May require more setup and configuration for basic use cases
  • Larger library size due to its comprehensive features

Code Comparison

material-dialogs:

MaterialDialog(this).show {
    title(R.string.dialog_title)
    message(R.string.dialog_message)
    positiveButton(R.string.agree)
    negativeButton(R.string.disagree)
}

awesome-android-ui (using a linked library):

new AlertDialog.Builder(this)
    .setTitle(R.string.dialog_title)
    .setMessage(R.string.dialog_message)
    .setPositiveButton(R.string.agree, null)
    .setNegativeButton(R.string.disagree, null)
    .show();

Summary

material-dialogs offers a specialized, feature-rich solution for Material Design dialogs with excellent documentation and maintenance. However, it's limited to dialogs and may be overkill for simple use cases. awesome-android-ui provides a curated list of various UI libraries, offering more flexibility but requiring additional research and integration of multiple libraries for a complete UI solution.

11,868

Image Cropping Library for Android

Pros of uCrop

  • Focused, single-purpose library for image cropping
  • Lightweight and easy to integrate into existing projects
  • Provides a polished, ready-to-use UI component

Cons of uCrop

  • Limited to image cropping functionality
  • Less flexibility compared to a collection of UI components
  • May require additional libraries for other UI needs

Code Comparison

uCrop:

UCrop.of(sourceUri, destinationUri)
    .withAspectRatio(16, 9)
    .withMaxResultSize(maxWidth, maxHeight)
    .start(activity);

awesome-android-ui (example using one of its listed libraries):

MaterialCalendarView calendarView = (MaterialCalendarView) findViewById(R.id.calendarView);
calendarView.setOnDateChangedListener(new OnDateSelectedListener() {
    @Override
    public void onDateSelected(@NonNull MaterialCalendarView widget, @NonNull CalendarDay date, boolean selected) {
        // Handle date selection
    }
});

Summary

uCrop is a specialized library for image cropping, offering a streamlined solution for this specific task. It's easy to implement but limited in scope. awesome-android-ui, on the other hand, is a curated list of various Android UI libraries, providing a wide range of options for different UI components. While it offers more flexibility and choices, it requires more effort to integrate multiple libraries and may lead to a larger app size if many components are used.

A circular ImageView for Android

Pros of CircleImageView

  • Focused on a specific UI component (circular image view)
  • Lightweight and easy to implement
  • Actively maintained with regular updates

Cons of CircleImageView

  • Limited in scope compared to the comprehensive collection in awesome-android-ui
  • Lacks variety of UI components and customization options
  • May require additional libraries for more complex UI implementations

Code Comparison

CircleImageView:

<de.hdodenhof.circleimageview.CircleImageView
    android:layout_width="96dp"
    android:layout_height="96dp"
    android:src="@drawable/profile"
    app:civ_border_width="2dp"
    app:civ_border_color="#FF000000"/>

awesome-android-ui (example using one of its listed libraries):

<com.github.siyamed.shapeimageview.CircularImageView
    android:layout_width="120dp"
    android:layout_height="120dp"
    android:src="@drawable/profile"
    app:siBorderWidth="4dp"
    app:siBorderColor="@color/border_color"/>

CircleImageView provides a simpler implementation focused solely on circular images, while awesome-android-ui offers a curated list of various UI components, including more feature-rich image view libraries. The code examples demonstrate the slight differences in attribute naming and customization options between the two approaches.

A powerful 🚀 Android chart view / graph view library, supporting line- bar- pie- radar- bubble- and candlestick charts as well as scaling, panning and animations.

Pros of MPAndroidChart

  • Focused specifically on chart creation, offering a wide variety of chart types
  • Highly customizable with extensive documentation and examples
  • Active development and regular updates

Cons of MPAndroidChart

  • Limited to chart-related UI components only
  • Steeper learning curve due to its specialized nature
  • Larger library size compared to individual UI components

Code Comparison

MPAndroidChart:

LineChart chart = findViewById(R.id.chart);
YourData[] dataObjects = ...;
List<Entry> entries = new ArrayList<Entry>();
for (YourData data : dataObjects) {
    entries.add(new Entry(data.getX(), data.getY()));
}

awesome-android-ui (example using one of its listed libraries):

MaterialCalendarView calendarView = findViewById(R.id.calendarView);
calendarView.setOnDateChangedListener(new OnDateSelectedListener() {
    @Override
    public void onDateSelected(@NonNull MaterialCalendarView widget, @NonNull CalendarDay date, boolean selected) {
        // Handle date selection
    }
});

Summary

MPAndroidChart is a specialized library for creating various types of charts in Android applications. It offers deep customization options and regular updates but focuses solely on chart-related UI components. On the other hand, awesome-android-ui is a curated list of diverse Android UI libraries, providing a broader range of UI components but without the specialized focus on charts. The choice between the two depends on whether you need comprehensive charting capabilities or a wider variety of UI components for your Android project.

34,636

An image loading and caching library for Android focused on smooth scrolling

Pros of Glide

  • Focused library for efficient image loading and caching
  • Actively maintained with regular updates and improvements
  • Extensive documentation and community support

Cons of Glide

  • Limited to image handling, unlike the diverse UI components in awesome-android-ui
  • Steeper learning curve for advanced features
  • Larger library size compared to some lightweight alternatives

Code Comparison

awesome-android-ui (example usage of a UI component):

MaterialRippleLayout.on(view)
    .rippleColor(Color.BLACK)
    .rippleAlpha(0.2f)
    .rippleHover(true)
    .create();

Glide (basic image loading):

Glide.with(context)
    .load(imageUrl)
    .placeholder(R.drawable.placeholder)
    .error(R.drawable.error)
    .into(imageView);

Summary

awesome-android-ui is a curated list of Android UI/UX libraries, offering a wide range of components and effects. It serves as a valuable resource for discovering various UI enhancements but doesn't provide functionality itself.

Glide, on the other hand, is a powerful image loading and caching library. It focuses specifically on efficient image handling, offering features like smooth scrolling, media decoding, and resource pooling.

While awesome-android-ui provides a broader overview of UI components, Glide excels in its specialized domain of image management. The choice between them depends on whether you need a comprehensive UI resource list or a dedicated image loading solution.

The flexible, easy to use, all in one drawer library for your Android project. Now brand new with material 2 design.

Pros of MaterialDrawer

  • Focused specifically on creating material design navigation drawers
  • Provides a rich set of customization options for drawer elements
  • Actively maintained with frequent updates and bug fixes

Cons of MaterialDrawer

  • Limited to navigation drawer functionality, unlike the broader scope of awesome-android-ui
  • May require more setup and configuration for basic use cases
  • Less flexibility for non-standard drawer designs

Code Comparison

MaterialDrawer:

Drawer()
    .withActivity(this)
    .withToolbar(toolbar)
    .addDrawerItems(
        PrimaryDrawerItem().withName("Home"),
        SecondaryDrawerItem().withName("Settings")
    )
    .build()

awesome-android-ui (example using a library from the list):

val navigationView = findViewById<NavigationView>(R.id.nav_view)
navigationView.setNavigationItemSelectedListener { menuItem ->
    when (menuItem.itemId) {
        R.id.nav_home -> // Handle home action
        R.id.nav_settings -> // Handle settings action
    }
    true
}

Summary

MaterialDrawer offers a specialized solution for creating material design navigation drawers with extensive customization options. It's ideal for projects that require detailed control over drawer appearance and behavior. However, it's limited to drawer functionality, whereas awesome-android-ui provides a curated list of various UI libraries, offering more diversity but less depth in any single area. The choice between them depends on whether you need a comprehensive drawer solution or a broader range of UI components.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

List of Android UI/UX Libraries

Awesome

A curated list of awesome Android UI/UX libraries.

Maintainers

Index

Jetpack Compose

NameLicenseDemo
LandscapistApache License V2
FlingerMIT
OrchestraApache License V2
compose-backstackApache License V2
ComposeClockApache License V2
ComposeCookBookMIT
Compose Neumorphism UIApache License V2
SSComposeCookBookMIT

Layout

NameLicenseDemo
WaveViewApache License V2
ResideLayoutApache License V2
AndroidSwipeLayoutMIT
SwipeBackLayoutApache License V2
Maskable LayoutApache License V2
ExpandableLayoutMIT
android-PullRefreshLayoutMIT
TileViewMIT
ShowcaseViewApache License V2
Ultra Pull To RefreshApache License V2
AndroidViewHoverUnKnown
DraggablePanelApache License V2
SlidrApache License V2
Phoenix Pull-to-RefreshApache License V2
Pull-to-Refresh.ToursApache License V2
InboxLayoutMIT
SwipeBackApache License V2
ArcLayoutApache License V2
DraggerApache License V2
PhysicsLayoutApache License V2
BottomSheetLicense
Bubbles for AndroidApache License V2
AndroidSlidingUpPanelApache License V2
android-transitionApache License V2
CircleRefreshLayoutMIT
WaveSwipeRefreshLayoutApache License V2
FloatingViewApache License V2
FrenchToastApache License V2
AndroidSweetSheetApache License V2
FABRevealLayoutApache License V2
ToggleExpandLayoutMIT
FlowingDrawerApache License V2
WaveViewApache License V2
FoldableLayoutApache License V2
TriangleLabelViewApache License V2
FlexboxLayoutApache License V2
VorolayApache License V2
HoverMIT
FerrisWheelApache License V2
ArcViewApache License V2
DraggablePanel2Apache License V2
TagSphereViewApache License V2
LDrawerApache License V2
MaterialNavigationDrawerApache License V2
AndroidMaterialDesignToolbarApache License V2
TapTargetViewApache License V2
SpotlightApache License V2
MaterialTapTargetPromptApache License V2
DrawerArrowDrawableApache License V2

Button

NameLicenseDemo
circular-progress-buttonApache License V2
android-process-buttonApache License V2
android-circlebuttonApache License V2
android-flat-buttonApache License V2
MovingButtonMIT
LabelViewApache License V2
transition-button-androidMIT
KTLoadingButtonMIT
AwesomeSwitchApache License V2
FloatingActionButtonMIT
android-floating-action-buttonApache License V2
ReactButtonMIT

List / Grid

NameLicenseDemo
SuperRecyclerViewApache License V2NONE
RecyclerViewSwipeDismissBSD 2 License
FlabbyListViewApache License V2
recyclerview-stickyheadersMIT
ParallaxListViewUnKnown
PullZoomViewApache License V2
SwipeMenuListViewMIT
discrollviewApache License V2
StickyListHeadersApache License V2
ListBuddiesApache License V2<img src="/art/ListBuddies.png" width="49%"/ > <img src="/art/ListBuddies.gif" width="49%"/ >
Android-ObservableScrollViewApache License V2
AsymmetricGridViewApache License V2
DynamicGridMIT
AndroidStaggeredGridApache License V2
SwipeListViewApache License V2
android-parallax-recyclerviewApache License V2
BlurStickyHeaderListViewMIT
RecyclerView AnimatorsApache License V2
RecyclerView-FlexibleDividerApache License V2
AndroidTreeViewApache License V2
RecyclerViewFastScrollerApache License V2
RecyclerView-MultipleViewTypesAdapterApache License V2
SwipeToActionApache License V2
Advanced RecyclerviewApache License V2
RecyclerItemDecorationApache License V2
MaterialRecentsApache License V2
DividersApache License V2
Drag Select Recycler ViewMIT
sticky-headers-recyclerviewApache License V2
Kiel - Declarative RecyclerView AdaptersApache License V2

ViewPager

NameLicenseDemo
ParallaxPagerTransformerApache License V2
ViewPagerTransformsApache License V2
CircleIndicatorMIT
Android ViewPagerIndicatorApache License V2
Android-ParallaxHeaderViewPagerApache License V2
freepagerApache License V2
SpringIndicatorApache License V2
SmartTabLayoutApache License V2
FlipViewPager.DracoApache License V2
MaterialViewPagerApache License V2
AndroidRubberIndicatorMIT
HollyViewPagerApache License V2
SCViewPagerApache License V2
SwipeSelectorApache License V2
NavigationTabStripApache License V2 & MIT
NavigationTabBarApache License V2 & MIT
UltraViewPagerMIT
SnapTablayoutApache License V2
MaterialTabsApache License V2
PagerSlidingTabStripApache License V2

Label / Form

NameLicenseDemo
Shimmer-androidApache License V2
Shimmer for AndroidBSD 2 License
TitanicApache License V2
MatchViewApache License V2
android-autofittextviewApache License V2
SecretTextViewApache License V2
TextJustify-AndroidApache License V2
RoundedLetterViewApache License V2
TextDrawableApache License V2
BabushkaTextApache License V2
ExpandableTextViewApache License V2
Float Labeled EditTextApache License V2
SizeAdjustingTextViewGNU LicenseNONE
ParkedTextViewMIT
Material Code inputApache License V2

TextSurfaceApache License V2
EmailAutoCompleteTextViewApache License V2
Tab DigitApache License V2
RotatingTextMIT
MaterialEditTextApache License V2
MaterialTextFieldApache License V2
CodeViewMIT

Image

NameLicenseDemo
TouchImageViewLICENSENONE
CircleImageViewApache License V2
android-shape-imageviewApache License V2
GifImageViewMIT
cropperApache License V2
android-cropApache License V2
SelectableRoundedImageViewApache License V2
RoundedImageViewApache License V2
CropImageViewApache License V2
BitmapMergerMIT
Scrolling Image ViewMIT
SimpleCropViewMIT
android-anyshapeMIT
PanoramaImageViewMIT
ChiliPhotoPickerApache License V2
Android RibbonApache License V2

SeekBar

NameLicenseDemo
DiscreteSeekBarApache License V2
SeekBarCompatApache License V2
PreviewSeekBarApache License V2
RangeSeekBarApache License V2
material-range-barApache License V2
MaterialDateRangePickerApache License V2

Progress

NameLicenseDemo
SmoothProgressBarApache License V2
NumberProgressBarMIT
CircleProgressUnKnown
android-square-progressbarUnKnown
GoogleProgressBarApache License V2
Android-RoundCornerProgressBarApache License V2
ElasticDownloadApache License V2
FABProgressCircleApache License V2
LoadingApache License V2
Animated Circle Loading ViewApache License V2
AndroidFillableLoadersApache License V2
spots-dialogMIT
AVLoadingIndicatorViewApache License V2
LoadingDotsMIT
ColorArcProgerssBarApache License V2
ArcProgressStackViewApache License V2
WaveLoadingViewApache License V2
CatLoadingViewMIT
WaveLoadingMIT
SqueezeLoaderApache License V2
RoundedProgressBarApache License V2
FAB-LoadingApache License V2
materialish-progressApache License V2

Menu

NameLicenseDemo
CircularFloatingActionMenuMIT
AndroidResideMenuMIT
Folder-ResideMenuApache License V2
Side-Menu.AndroidApache License V2
Context-Menu.AndroidApache License V2
GuillotineMenu-AndroidApache License V2
android-snake-menuApache License V2
BoomMenuApache License V2
ExpandableBottomBarMIT
material-menuApache License V2
MaterialSheetFabMIT
PowerMenuApache License V2
AnimatedBottomBarMIT

ActionBar

NameLicenseDemo
FadingActionBarApache License V2
GlassActionBarApache License V2
NotBoringActionBarApache License V2

Dialog

NameLicenseDemo
DialogPlusApache License V2
Sweet AlertMIT
FlycoDialog-MatserMIT
Voice OverlayMIT
MaterialDialogApache License V2
material-dialogsApache License V2
AlertDialogProApache License V2

Calendar

NameLicenseDemo
CaldroidMIT
android-times-squareApache License V2
Android-MonthCalendarWidgetApache License V2
android-betterpickersApache License V2
Android-Week-ViewApache License V2
SilkCalMIT
SublimePickerApache License V2
MaterialDateTimePickerApache License V2
CompactCalendarViewMIT
material-calendarviewApache License V2

Graph

NameLicenseDemo
Android-RatingReviewsApache License V2
EazeGraphApache License V2
GraphViewApache License V2
hellocharts-androidApache License V2
MPAndroidChartApache License V2
WilliamChartApache License V2

Animation

NameLicenseDemo
AndroidViewAnimationsMIT
ListViewAnimationsApache License V2
AndroidImageSliderMIT
transitions-everywhereApache License V2
Android Ripple BackgroundMIT
android-flipMIT
FragmentTransactionExtendedApache License V2
KenBurnsViewApache License V2
reboundBSD 2 Licensehttp://facebook.github.io/rebound/
ReachabilityApache License V2
AnimationEasingFunctionsMIT
EasyAndroidAnimationsApache License V2
android-pathviewApache License V2
ViewRevealAnimatorApache License V2
ArcAnimatorMIT
SearchMenuAnimUnKnown
Cross ViewApache License V2
WoWoViewPagerApache License V2
Lottie for AndroidApache License V2
RichPathApache License V2
RubberPickerMIT
material-rippleApache License V2
RippleEffectMIT
CircularRevealApache License V2

Parallax

NameLicenseDemo
ParallaxEverywhereMIT

Effect

NameLicenseDemo
EtsyBlurApache License V2
BlurDialogFragmentApache License V2
BlurBehindMIT
Android StackBlurApache License V2
EdgeEffectOverrideApache License V2
ExplosionFieldApache License V2
BrokenViewMIT
TrianglifyApache License V2
ExpandableLayout (by skydoves)Apache License V2 ShineButton
Elastic ViewsMIT
Transformation LayoutApache License V2
IridescentViewMIT
DashedViewApache License V2

Other

NameLicenseDemo
SwipecardsApache License V2
Android-BootstrapMIT
Android PDFViewGPL V3
DspecApache License V2
LolliPinApache License V2
DrawableViewApache License V2
Material Shadow 9-PatchApache License V2
SimpleFingerGesturesApache License v2
DecorApache License V2
Voice Recording VisualizerApache License V2IMAGE demo
iiVisuMIT
EasyFontsApache License V2
Android Sliding Activity LibraryApache License V2
Snake ViewApache License V2
RotatableMIT
StatusBarUtilApache License V2
Horizon - Simple visual equaliser for AndroidApache License V2
Stepper TouchApache License V2
KonfettiISC
CircleTimerApache License V2
MaterialDesignLibraryApache License V2
MaterialShadowsMIT
MaterialApache License V2
material-design-iconsApache License V2
Material Icon LibraryApache License V2
CarbonApache License V2NONE
Lollipop-AppCompat-Widgets-SkeletonApache License V2
Balloon(tooltips)Apache License V2
ColorPickerViewApache License V2