2019年学android
重点 (Top highlight)
It’s been over a year since I released my last article about Android libraries. Now, I’m back with a summary of awesome libraries and projects released (or heavily refreshed) in 2019. They’re not in ranked order. Let’s begin!
自从我发布有关Android库的上一篇文章以来已有一年多了。 现在,我返回了有关2019年发布(或大量刷新)的优秀库和项目的摘要。它们的排名不高。 让我们开始!
1.线圈 (1. Coil)
Coil is a really fresh approach to image loading on Android.The acronym of this library stands for coroutine image loader. The library is fast, lightweight (~1500 methods), easy to use, and modern, especially in comparison to libraries like Glide, Picasso, or Fresco. It supports GIFs and SVGs and can do four default transformations: blur, circle crop, grayscale, and rounded corners.
Coil是Android上一种非常新颖的图像加载方法。该库的缩写代表协程图像加载器 。 该库快速,轻量(约1500种方法),易于使用且具有现代性,尤其是与Glide,Picasso或Fresco之类的库相比。 它支持GIF和SVG,并且可以执行四个默认转换: 模糊 , 圆形裁剪 , 灰度和圆角 。
Code example below:
下面的代码示例:
imageView.load(“https://www.example.com/image.jpg") {
crossfade(true)
placeholder(R.drawable.image)
transformations(CircleCropTransformation())
}
The documentation and code samples are more than enough to start using it without any hesitation. Everything is clear and easy. Currently the lib is in a version 0.9.5.
文档和代码示例足以毫不犹豫地开始使用它。 一切都清晰而轻松。 目前,该库的版本为0.9.5。
Fun fact: During the last three months, I interviewed 14 candidates, and no one knew about Coil. Be cool, and impress your interviewer by mentioning Coil. Even Google made a mistake about an author when they wrote about Coil in their “Loading Large Bitmaps Efficiently” article. Regardless, it’s fixed now.
有趣的事实:在过去三个月中,我采访了14位候选人,但没人知道Coil。 保持冷静,并提及Coil,打动您的面试官。 甚至Google在“ 高效地加载大位图 ”一文中提到Coil时,也对作者 犯了一个错误 。 无论如何,它现在已修复。
2. MultiSearchView (2. MultiSearchView)
This library has a really cool approach to an animated search view.
该库具有一种非常酷的动画搜索视图方法。
It’s easy to set up and is customisable — you can add your style’s set under styles.xml
.
它易于设置且可自定义-您可以在styles.xml
下添加样式集。
The README is quite short, but I believe it’s OK. This is version 0.1, so I wouldn’t use it in production. Rather, I’d treat it like a great lib for a playground project to have some fun in.
自述文件很短,但我认为可以。 这是版本0.1,所以我不会在生产中使用它。 相反,我将其视为一个游乐场项目的有趣的自由库。
It was released under the Apache 2.0 license.
它是根据Apache 2.0许可发布的。
3. CalendarView (3. CalendarView)
This is a highly customizable calendar library, powered by RecyclerView
.
这是一个高度可定制的日历库,由RecyclerView
提供支持。
It has lots of features:
它具有很多功能:
- Single or range selection 单一或范围选择
- Week or month mode 周或月模式
- Boundary dates 边界日期
- Custom calendar view 自定义日历视图
- Horizontal- or vertical-scrolling mode 水平或垂直滚动模式
- Fully customizable views 完全可定制的视图
- And much more 以及更多
The documentation is really comprehensive and full of examples. What’s more, there’s a sample app that showcases every feature of the library. It’s written 100% in Kotlin and released under MIT license. If you need a calendar view in your application, I believe this one is good to go, despite the fact it’s still in version 0.3.2 (at the time of this article).
该文档确实非常全面,并包含许多示例。 此外,有一个示例应用程序展示了库的所有功能。 它是用Kotlin写的100%,并根据MIT许可发布。 如果您需要在应用程序中使用日历视图,尽管它仍处于0.3.2版中(在本文撰写之时),但我相信这样做是不错的选择。
4.气泡导航 (4. Bubble Navigation)
This is a fresh approach to a navigation — a light-weight library to easily make beautiful navigation bars with a ton of customisation options.
这是一种新颖的导航方法-轻巧的库,可通过大量自定义选项轻松制作精美的导航栏。
It has many cool features:
它具有许多很酷的功能:
Two types of
NavigationView
s for different use cases: TheBubbleNavigationConstraintView
(supportsspread
,inside
, andpacked
modes) and theBubbleNavigationLinearView
(allows equal distribution, using weight or packed mode)两种类型的
NavigationView
适用于不同的用例:BubbleNavigationConstraintView
(支持spread
,inside
和packed
模式)和BubbleNavigationLinearView
(允许平均分配,使用权重或打包模式)- It’s highly customizable 高度可定制
You can add badges, and it has the
BubbleToggleView
to create new UI components, other than just the navigation您可以添加徽章,它具有
BubbleToggleView
来创建新的UI组件,而不仅仅是导航
The README file is quite detailed and explains how to use all of the components to achieve this cool-looking UI. You can always check the sample app. The project was released under the Apache 2.0 license.
README文件非常详细,并说明了如何使用所有组件来实现外观精美的UI。 您可以随时检查示例应用程序。 该项目是根据Apache 2.0许可发布的。
5. FabFilter (5. FabFilter)
This isn’t a library but a showcase application to present advanced UI animations achieved with and without MotionLayout
.
这不是一个库,而是一个展示应用程序,用于展示使用和不使用MotionLayout
实现的高级UI动画。
It’s a really interesting project — with two correlated articles on Medium:
这是一个非常有趣的项目-关于Medium的两篇相关文章:
“Complex UI/Animations on Android”
“ Android上的复杂UI /动画 ”
“Complex UI/Animations on Android — featuring MotionLayout”
“ Android上的复杂UI /动画-具有MotionLayout ”
Worthy reading for sure!
肯定值得一读!
6. SmoothBottomBar (6. SmoothBottomBar)
SmoothBottomBar describes itself as “a lightweight Android material bottom navigation bar library.”
SmoothBottomBar将自己描述为“轻量级的Android材质底部导航栏库”。
The library was implemented according to an Alejandro Ausejo Dribble project. Currently, it is in version 1.7, written in Kotlin under MIT license. The documentation is rather short but sufficient to use it quickly in your project. There is also a sample application.
该库是根据Alejandro Ausejo Dribble项目实施的。 当前,它是MIT许可下用Kotlin编写的1.7版。 该文档虽然很短,但是足以在您的项目中快速使用它。 还有一个示例应用程序。
7. android-showcase (7. android-showcase)
This is truly an outstanding project. Igor Wojda created a showcase application that presents a modern, 2019 approach to Android-application development using Kotlin and the latest tech stack.
这确实是一个杰出的项目。 Igor Wojda创建了一个展示应用程序,展示了使用Kotlin和最新技术堆栈的2019年现代方法来开发Android应用程序。
This project brings to the table a set of best practices, tools, and solutions:
该项目为您带来了一系列最佳实践,工具和解决方案:
- 100% Kotlin 100%Kotlin
Modern architecture (feature modules, clean architecture,
Model-View-ViewModel
,Model-View-Intent
)现代架构(功能模块,简洁架构,
Model-View-ViewModel
,Model-View-Intent
)Android Jetpack
Android Jetpack
A single-activity architecture, using the
navigation
component to manage fragment operations一种单一活动的体系结构,使用
navigation
组件来管理片段操作- Reactive UI React式使用者介面
- CI pipeline CI管道
- Testing 测试中
- Static-analysis tools 静态分析工具
- Dependency injection 依赖注入
- Material design 材料设计
In my opinion, it’s really a great source. The README file is clear and comprehensive — with additional graphs presenting an architecture, data flow, and CI. It doesn’t matter, whether you work on modularisation, clean architecture, tests, or setting up CI/CD tools, thanks to this project, you’ll be always inspired. Kudos to the author.
我认为,这确实是一个很好的来源。 README文件清晰而全面—带有表示架构,数据流和CI的其他图形。 无论您是从事模块化,清洁架构,测试还是设置CI / CD工具,这都没有关系,这要归功于此项目,您将始终受到启发。 感谢作者。
8。 气球 (8. Balloon)
This is a library that provides a lightweight pop-up with tool tips, fully customizable with arrows and animations. You can see how it works below.
这是一个库,提供了带有工具提示的轻量级弹出窗口,可以使用箭头和动画进行完全自定义。 您可以在下面查看其工作方式。
It supports minSdk 16
and is released under the Apache 2.0 license with version 1.1.0. The documentation is full of examples and is also backed up by a sample showcase app.
它支持minSdk 16
并在Apache 2.0许可下以1.1.0版发布。 该文档包含许多示例,并且还由示例展示应用程序提供支持。
9. LiquidSwipe (9. LiquidSwipe)
LiquidSwipe is a library that’s based on ViewPager
and can be used to make beautiful on-boarding designs.
LiquidSwipe是一个基于ViewPager的库,可用于制作漂亮的ViewPager
设计。
The README file is comprehensive. Usage of the library is also quite easy and comes down to using LiquidSwipeViewPager
instead of the normal ViewPager
.Currently, it’s on version 1.3 and is released under the MIT license, supporting minSdk 21
and above.
自述文件 是全面的。 该库的使用也很容易,并且可以使用LiquidSwipeViewPager
而不是普通的ViewPager
。当前,它的版本为1.3,并以MIT许可证发布,支持minSdk 21
及更高版本。
10.脾气暴躁 (10. Croppy)
This is yet another approach to image cropping for Android.
这是用于Android的图像裁剪的另一种方法。
The library has many cool features:
该库具有许多很酷的功能:
- Double-tap focus 点按两次即可
- Pinch to zoom 捏放大
- Free mode (cropping in any size) 自由模式(任意尺寸裁切)
- Aspect-ratio mode (cropping with predefined aspect ratios, like 16:9, 4:3, etc.) 宽高比模式(以预定义的宽高比进行裁剪,例如16:9、4:3等)
- Displaying the size of a cropped bitmap 显示裁剪后的位图的大小
- Autocentering the bitmap when cropping 裁剪时使位图自动居中
- Fully animated usage experience 全面的动画使用体验
The documentation is enough to get stared, but bare in mind, this is in version 0.2. The project is released under the Apache 2.0 license.
该文档足以引起关注,但请记住,这是0.2版。 该项目是根据Apache 2.0许可发布的。
11.瞥见 (11. Glimpse)
Let’s stay with cropping tools for a little bit. Glimpse is a content-aware cropping library for Android, and it’s awesome that these kinds of libraries are created and open sourced.
让我们继续使用裁剪工具。 Glimpse是适用于Android的内容感知裁剪库,并且创建并开源了这些库真是太棒了。
As you can see above, instead of center-cropping images blindly, Glimpse catches the right spot.
正如您在上方看到的那样,Glimpse不会盲目地对图像进行中心裁剪,而是抓住了正确的位置。
But how? It uses TensorFlow Lite underneath with a proper model. What’s also great is it supports Coil and Glide. You should check out the README file for sure because it’s really extensive, and you’ll learn a lot. It’s released under the Apache 2.0 license. Maybe it’s not ready for production yet, but I still highly recommend it.
但是如何? 它在适当的模型下使用TensorFlow Lite 。 很棒的地方是它支持Coil和Glide。 您应该确定检查README文件,因为它确实很广泛,并且您会学到很多东西。 它是根据Apache 2.0许可发布的。 也许它还没有准备好生产,但是我仍然强烈推荐它。
12. RubberPicker (12. RubberPicker)
This is an animated and interesting approach to SeekBars
.
这是SeekBars
一种生动有趣的方法。
The RubberPicker library contains the RubberSeekBar
and RubberRangePicker
, inspired by Cuberto's rubber-range-picker for iOS.
RubberPicker库包含RubberSeekBar
和RubberRangePicker
,它们受Cuberto针对iOS 的Rubber-range-picker的启发。
The docs will tell you how to start and also what’s on the to-do list. Maybe you’ll find time to contribute to that project. Currently it’s in version 1.4, and it’s released under the MIT license.
该文档将告诉您如何开始以及待办事项清单上的内容。 也许您会找到时间为该项目做出贡献。 目前,它的版本为1.4,并根据MIT许可证发布。
13. AndroidFastScroll (13. AndroidFastScroll)
This library adds a fast scroll for your RecyclerView
and more.
该库为RecyclerView
等添加了快速滚动。
The main features, according to the README file, are:
根据README文件的主要功能是:
• Fully customizable: Override track, thumb, popup, animation and scrolling.• Easy-to-use defaults: Predefined default style, Material Design 2 style and animation.• Extensive view support: Out-of-box support for
RecyclerView
,ScrollView
,NestedScrollView
andWebView
, plus any view with aViewHelper
implementation.• Window insets friendly: Support setting a separate padding for scrollbar.• Clean implementation: Decoupled touch handling, animation and scrolling logic.• 完全可定制:覆盖轨迹,拇指,弹出窗口,动画和滚动。• 易于使用的默认设置:预定义的默认样式,Material Design 2样式和动画。• 广泛的视图支持:对
RecyclerView
,ScrollView
的现成支持NestedScrollView
和WebView
以及带有ViewHelper
实现的任何视图。• 窗口易于插入:支持为滚动条设置单独的填充。• 清洁实现:将触摸处理,动画和滚动逻辑分离。
There’s also a preview app available on Google Play. The project has good documentation and is released under the Apache 2.0 license, so if you have a reason to include fast scroll — e.g., on a contact list — this library is a good choice.
Google Play上还有一个预览应用 。 该项目具有良好的文档说明,并根据Apache 2.0许可发布,因此,如果您有理由包括快速滚动(例如在联系人列表中),则该库是一个不错的选择。
14.切换台 (14. Switcher)
This is a library that provides a custom, animated Switch
widget.
这是一个提供自定义动画Switch
小部件的库。
It’s based on a Dribble design from Oleg Frolov and is released under theApache license 2.0. It supports Android KitKat (minSdk 19
) and is quite straightforward to use.
它基于Oleg Frolov的Dribble设计,并以Apache许可2.0发行。 它支持Android KitKat( minSdk 19
),使用起来非常简单。
15. StfalconImageViewer (15. StfalconImageViewer)
Despite the fact it was released in December 2018, I wanted to put this lib on my list because I believe it deserves to be. This library is simple and customizable. It contains a full-screen image viewer with shared image-transition support, pinch-to-zoom functionality, and swipe-to-dismiss gestures.
尽管事实上它是在2018年12月发布的,但我还是想把这个库放到我的名单上,因为我相信它应该是存在的。 该库是简单且可定制的。 它包含一个全屏图像查看器,具有共享的图像过渡支持,捏到缩放功能以及滑动到关闭手势。
The documentation explains how to use every feature. Also noteworthy: The library is compatible with all of the most popular image-processing libraries, such as Picasso
, Glide,
etc. It’s in a version 1.0.0. There’s also a sample project.
该文档说明了如何使用每个功能。 还值得注意:该库与所有最流行的图像处理库兼容,例如Picasso
, Glide,
等。它的版本为1.0.0。 还有一个示例项目。
16.商店4 (16. Store 4)
Everyone knows Store. At least, they should. Currently we’re in the fourth iteration of this great library for async data loading and caching. According to the README file:
每个人都知道商店 。 至少,他们应该。 目前,我们处于这个用于异步数据加载和缓存的出色库的第四次迭代中。 根据自述文件:
“A
Store
is a class that simplifies fetching, sharing, storage, and retrieval of data in your application. AStore
is similar to the Repository pattern while exposing an API built with Coroutines that adheres to a unidirectional data flow.“
Store
是一类,可简化应用程序中数据的获取,共享,存储和检索。Store
类似于存储库模式,同时公开了使用Coroutines构建的 ,遵循单向数据流的API。Store provides a level of abstraction between UI elements and data operations.”
Store提供了UI元素和数据操作之间的抽象层次。”
You can learm more about Store in the last Android Developers Backstage podcast: “Episode 132: Storing data with Store.”
您可以在上一个Android Developers Backstage播客中了解有关Store的更多信息:“ 第132集:使用Store存储数据 。”
17.西兰花 (17. Broccoli)
This is another library for showing a placeholder of a View
when content is loading.
这是另一个用于在加载内容时显示View
占位符的库。
Take a look at how nicely animated it is. You can use it with a RecyclerView
too. The documentation is short, but is shows its basic usage. There’s also a sample app. It’s in version 1.0.0 and released under the Apache 2.0 license.
看看它的动画效果如何。 您也可以将其与RecyclerView
一起使用。 该文档简短,但显示了其基本用法。 还有一个示例应用程序。 它的版本为1.0.0,并根据Apache 2.0许可发布。
18. ProgressButton (18. ProgressButton)
This library provides a Button
with a built-in progress bar inside. The idea is not new, but this is a fresh approach to it.
该库提供了一个内部带有内置进度条的Button
。 这个想法并不新鲜,但这是一种新颖的方法。
Main features:
主要特点:
- No layout changes required 无需更改布局
- Few lines of code to add 只需添加几行代码
- Easy configurable, 易于配置,
- Customizable 可订制
- Built-in fade animations 内置淡入淡出动画
The process, including how the lib was implemented, is available here.Currently, the version is 2.0.0, and it’s released under the Apache 2.0 license.
该过程(包括lib的实现方式)可在此处获得 。当前版本为2.0.0,已根据Apache 2.0许可发布。
19. GradientView (19. GradientView)
This is an Android project allowing you to add a gradient view in the simplest possible way.
这是一个Android项目,可让您以最简单的方式添加渐变视图。
The library supports API 14 and above and is released under the Apache 2.0 license. The README file is short, but it contains some good tips, like how to use it in Java and Kotlin. There’s also a helpful sample application.
该库支持API 14及更高版本,并根据Apache 2.0许可发布。 README文件很短,但是包含一些不错的技巧,例如如何在Java和Kotlin中使用它。 还有一个有用的示例应用程序。
20.轮廓 (20. Contour)
Contour is a typesafe, Kotlin-first API for complex layouts on Android from Square Engineering.
Contour是Square Developer上用于Android上复杂布局的类型安全的Kotlin优先API。
According to their GitHub page:
根据他们的GitHub页面 :
“Contour aims to be the thinnest possible wrapper around Android’s layout APIs. It allows you to build compound views in pure Kotlin without using opaque layout rules — but instead by hooking into the layout phase yourself. The best comparison for Contour would be to ConstraintLayout — but instead of defining constraints in XML you actually provide them as executable lambdas.”
“ Contour旨在成为Android布局API的最薄包装。 它允许您在不使用不透明布局规则的情况下,在纯Kotlin中构建复合视图,而是自己自己进入布局阶段。 Contour的最佳比较将是ConstraintLayout,但实际上不是将约束定义为XML,而是将它们提供为可执行lambda。”
This is a really interesting idea, especially since this library tries to deprecate the old XML-Android approach. The documentation is really good, but please remember that:
这是一个非常有趣的想法,尤其是因为该库试图弃用旧的XML-Android方法。 该文档非常好,但是请记住:
“This project is currently experimental and the API subject to breaking changes without notice.”
“该项目目前处于试验阶段,API如有更改,恕不另行通知。”
21.轨道MVI (21. Orbit MVI)
This is a Model-View-Intent (MVI) framework for Kotlin and Android that’s developed and used by Babylon Health. It was inspired by “Managing State with RxJava” by Jake Wharton, RxFeedback, and Mosby.
这是由Babylon Health开发和使用的,用于Kotlin和Android的模型-视图-意图(MVI)框架。 它的灵感来自Jake Wharton , RxFeedback和Mosby的 “使用RxJava管理状态” 。
According to the README file:
根据自述文件:
“Orbit provides the minimum structure possible around your redux implementation to make it easy to use, yet leave you open to use RxJava’s power.”
“ Orbit在您的redux实现周围提供了最小的结构,以使其易于使用,却使您可以使用RxJava的强大功能。”
The framework is really well documented, with a thorough explanation of how it works and how to use it. Currently, it’s in version 3.3.0, and it’s released under the Apache 2.0 license. If you plan to start a new project and think about the MVI pattern, this is worth a try.
该框架的文档非常齐全,并对其工作方式和使用方式进行了详尽的解释。 当前,它的版本为3.3.0,并根据Apache 2.0许可证发行。 如果您打算开始一个新项目并考虑MVI模式,则值得尝试。
22. CircularProgressBar (22. CircularProgressBar)
This isn’t a new library, but it was refreshed in 2019. It helps you create a circular ProgressBar
in the simplest possible way.
这不是一个新库,但已在2019年进行了更新。它可以帮助您以最简单的方式创建循环的ProgressBar
。
The documentation is comprehensive and explains how to use the library. It also contains snippets of code and a sample app. The project was developed in Kotlin under the Apache 2.0 license. Currently, it’s in version 3.0.3.
该文档非常全面,并说明了如何使用该库。 它还包含代码片段和示例应用程序。 该项目是根据Apache 2.0许可在Kotlin开发的。 当前,它的版本为3.0.3。
23.瀑布工具栏 (23. Waterfall Toolbar)
This is a view that tries to mimic the Top App Bar from Material Components for the Web. Basically, it dynamises an ordinary toolbar, increasing and decreasing its shadow when an associated view is scrolled.
该视图试图模仿Web的Material Components中的Top App Bar。 基本上,它使普通的工具栏动态化,当滚动关联的视图时增加和减少其阴影。
Actually, this view extends the CardView
and adds an elevation to it. The project was released under the MIT license and is open for a contribution. It has proper documentation and a sample app.
实际上,此视图扩展了CardView
并CardView
添加了高程。 该项目是根据MIT许可发布的,可以公开供稿。 它具有适当的文档和示例应用程序。
24.按 (24. Press)
This isn’t a library but a lovely open-source application from Saket Narayan which, according to its README file, is:
这不是库,而是Saket Narayan的一个可爱的开源应用程序,根据其README文件,它是:
“A WYSIWYG writer for crafting notes inspired by Bear. It uses markdown for styling and formatting text with a beautiful inline preview.”
“所见即所得的作家,其灵感来自Bear 。 它使用markdown来对文本进行样式化和格式设置,并具有精美的内联预览。”
Press was created as a proof of concept for exploring multiplatform projects in Kotlin, so this is great place to grasp how to write apps for Android, iOS, and macOS all at once. However, currently there’s only an Android version available.
Press是作为在Kotlin中探索多平台项目的概念证明而创建的,因此,这里是掌握如何立即编写适用于Android,iOS和macOS的应用程序的好地方。 但是,目前只有Android版本可用。
The project has a really good documentation that includes an explanation of UI architecture, custom views, DI ,and testing/debugging shared code. It was released under the Apache 2.0 license.
该项目有一个非常好的文档,其中包括UI架构说明, 自定义视图 , DI和测试/调试共享代码 。 它是根据Apache 2.0许可发布的。
25. AndroidColorX (25. AndroidColorX)
“AndroidColorX (i.e: Android Color Extensions) is an Android library written in Kotlin that provides color utilities as Kotlin extension functions. The library relies on AndroidX
ColorUtils
for some of its calculations.” — via the AndroidColorX GitHub page“ AndroidColorX (即:Android颜色扩展)是用Kotlin编写的Android库,它提供颜色实用程序作为Kotlin扩展功能 。 该库的某些计算依赖于AndroidX
ColorUtils
。” -通过AndroidColorX GitHub页面
This library provides extensions for:
该库提供以下方面的扩展:
Converting between many color types (e.g.,
android.graphics.Color
(ColorInt
),RGBColor
,HEXColor
,CMYKColor
, and more)在多种颜色类型之间进行转换(例如
android.graphics.Color
(ColorInt
),RGBColor
,HEXColor
,CMYKColor
等)- Calculating shade and tint palettes, 计算阴影和色调调色板,
- Calculating complementary, triadic, tetradic, and analogous colors 计算补色,三色,四色和类似颜色
- Darkening or lightening a color by an amount 使颜色变暗或变亮
- And more 和更多
The best way to get to know this library is to check out its really comprehensive documentation. Currently, it’s in version 0.2.0, and it was released under the Apache 2.0 license.
了解该库的最好方法是查阅其真正全面的文档。 当前,它的版本为0.2.0,并根据Apache 2.0许可证发行。
26. IndicatorScrollView (26. IndicatorScrollView)
This library adds logic to a NestedScrollView
, allowing it to react dynamically with an indicator when the scroll is changed.
该库将逻辑添加到NestedScrollView
,使它可以在滚动更改时动态响应指示器。
The README file contains all the information needed to start playing with the project — like how to use the IndicatorScrollView
, the IndicatorView
, and IndicatorItem
. Currently, it’s in version 1.0.2, and it was released under the Apache 2.0 license. It supports API 16 and above.
README文件包含开始播放项目所需的所有信息,例如如何使用IndicatorScrollView
, IndicatorView
和IndicatorItem
。 当前,它的版本为1.0.2,并根据Apache 2.0许可证发行。 它支持API 16及更高版本。
27. Cyanea (27. Cyanea)
This is a theme engine for Android.
这是Android的主题引擎。
It allows you to change themes dynamically. It also defines some core themes: Theme.Cyanea.Dark
, Theme.Cyanea.Dark.LightActionBar
, Theme.Cyanea.Dark.NoActionBar
, Theme.Cyanea.Light
, Theme.Cyanea.Light.DarkActionBar
, Theme.Cyanea.Light.NoActionBar
. The README file is really good. It’s full of examples, and the project itself is released under the Apache 2.0 license.
它允许您动态更改主题。 它还定义了一些核心主题: Theme.Cyanea.Dark
, Theme.Cyanea.Dark.LightActionBar
, Theme.Cyanea.Dark.NoActionBar
, Theme.Cyanea.Light
, Theme.Cyanea.Light.DarkActionBar
, Theme.Cyanea.Light.NoActionBar
。 自述文件非常好。 它充满了示例,并且项目本身是根据Apache 2.0许可发布的。
28. Android的材质对话框 (28. Material Dialogs for Android)
This is a library that implements animated, beautiful, and stylish material dialogs.
这是一个实现动画,美观和时尚的材质对话框的库。
The library supports two types of dialogs:
该库支持两种类型的对话框:
- Material dialog 材质对话框
- Bottom-sheet material dialog 底页材料对话框
Underneath, it implements Airbnb’s Lottie library to render After Effects animations into an applciation (mentioned in one of my previous articles). The project is really well documented, and it was released under the Apache 2.0 license.
在下面,它实现了Airbnb的Lottie库,以将After Effects动画渲染为applciation( 在我以前的一篇文章中提到 )。 该项目确实有很好的文档记录,并且是根据Apache 2.0许可发布的。
29. Uniflow (29. Uniflow)
This is a simple unidirectional data flow for Android and Kotlin. It uses Kotlin coroutines and is open to functional programming. It’s well described in this Medium article and documented here.
这是适用于Android和Kotlin的简单单向数据流。 它使用Kotlin协程,并且对函数式编程开放。 在这篇中型文章中对此进行了很好的描述,并在此处进行了记录 。
Uniflow provides:
Uniflow提供:
- A smart way to write a fata flow in pure Kotlin 在纯Kotlin中编写Fata流的明智方法
- Android extensions to let you just focus on states and events Android扩展程序让您仅关注状态和事件
- Ready for Kotlin coroutines 准备好Kotlin协程
- Easy to test 易于测试
Open to functional programming with Arrow
使用Arrow进行函数式编程
Currently, it’s in version 0.9.5, and it was released under the Apache 2.0 license.
当前,它的版本为0.9.5,并根据Apache 2.0许可发布。
30. Android MotionLayout轮播 (30. Android MotionLayout Carousel)
This is a sample project you can use to see how to build a simple carousel with MotionLayout.
这是一个示例项目,您可以用来查看如何使用MotionLayout构建简单的轮播。
The project doesn’t have any documentation. But still, you can check the code, which is pretty straightforward, and make use of it for learning purposes. It was released under the MIT license.
该项目没有任何文档。 但是,您仍然可以检查代码,这非常简单,可以将其用于学习目的。 它是根据MIT许可发布的。
结论 (Conclusion)
That’s it. I hope you enjoyed the list and that some of the libs or projects inspired you. Till next time!
而已。 我希望您喜欢这份清单,并且某些库或项目对您有所启发。 直到下一次!
翻译自: https://medium.com/better-programming/30-best-android-libraries-and-projects-of-2019-a1e35124f110
2019年学android