Skip to content

mikel063093/Android-Extensions

 
 

Repository files navigation

Android Extensions

This repository is a collection of modules to help bootstrap an Android Application. There are 10 modules:

Name Description
1 App A sample app demoing the modules in the repository.
2 Core (1.1.0) A few added utilities to the core Android KTX libraries. Includes extension methods on objects to side step ContextCompat, DrawableCompat, and a fluent SpannableString API
3 Navigation (1.1.0) Interfaces and implementations of Fragment based Navigators, including single and multiple stacks. The APIs allow for hooking into the raw FragmentTransactions that run allow you to customize it toyour heart's content. Suspending APIs are also available to preform navigation actions sequentially without having to deal with the asynchrosity of the FragmentManager.
4 View (1.0.0) A module containing UI building blocks, like animators and helper methods for views. Butilt mostly around the SpringAnimation from the Jetpack DynamicAnimation library. In the examplr to the right, it is responsible for moving the Toolbar and Floating action button for each navigation destination change.
5 RecyclerView (1.1.0-alpha01) Utility classes for the RecyclerView ViewGroup like drag and drop, swipe gestures, endless scrolling, a composable adapter, diffing and much more.
6 Material (1.0.0-rc06) Utility classes around Google's Material Design components including an expandable floating action button.
7 Communications (1.0.0) Utility classes for Near Service Discovery (NSD) and Bluetooth Low Energy (BLE) communication.
8 Saved State (1.0.0) Delegated implementation of Android Jetpack's Saved State Registry for Components that also have a lifecycle.
9 ConstraintLayout (Unmaintained, MotionLayout is coming) Utility classes for the ConstraintLayout ViewGroup.
10 Test (Unmaintained) Testing utilities built mostly around Espresso.

build.gradle lines

implementation 'com.tunjid.androidx:constraintlayout:1.0.0-rc01'
implementation 'com.tunjid.androidx:communications:1.0.0'
implementation 'com.tunjid.androidx:recyclerview:1.1.0-alpha01'
implementation 'com.tunjid.androidx:navigation:1.1.0'
implementation 'com.tunjid.androidx:savedstate:1.0.0'
implementation 'com.tunjid.androidx:functions:1.0.0'
implementation 'com.tunjid.androidx:material:1.0.0-rc06'
implementation 'com.tunjid.androidx:core:1.1.0'
implementation 'com.tunjid.androidx:view:1.0.0'
implementation 'com.tunjid.androidx:test:1.0.0-rc01'

Projects that use This library include:

  1. DigiLux Fingerprint gestures app
  2. BluetoothRcSwitch IOT Github project

Core

Read more about the core module, classes and components here.

A medium post with some of it's offerings can be read here and here .

View

Read more about the view module, classes and components here. A medium post with some of it's offerings can be read here.

RecyclerView

Read more about the RecyclerView module, classes and components here. A medium post with some of it's offerings can be read here.

ConstraintLayout

Read more about the ConstraintLayout module, classes and components here. A medium post with some of it's offerings can be read here.

Material

Read more about the Material module, classes and components here. A medium post with some of it's offerings can be read here.

Communications

Read more about the communications module, classes and components here. A project using it can be seen here.

Test

Warning, here be dragons, I haven't updated this in a bit; move fast, break things and all that. I mean, yeah I could test more, but thank Heavens for QA, amirite? 🙃 You can read more about the testing module and classes here.

Image attribution App icon made by Freepik from www.flaticon.com is licensed by [CC 3.0 BY](http://creativecommons.org/licenses/by/3.0/ "Creative Commons BY 3.0"

Publishing

Publishing is done with the maven-publish plugin. To publish a specific version of a module, run:

./gradlew moduleName:assembleRelease ./gradlew moduleName:publishLibPublicationTo*publishRepoName*Repository

By default, the publishRepoName, publishUrl, publishUserName and publishPassword are read from the local.properties file. They can however be overriden by passing gardle properties via the -P flag for each property you wish to override. Multi repository setup can only be done with the local.properties file.

About

An Android library with modules to quickly bootstrap an Android application.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Kotlin 82.1%
  • Java 17.9%