LibUtils is collection of utilities used by all my projects.
The git repo is organized using branches:
-
android-lib-v3 is the latest branch. This collection of utility classes is split int a plain Java library and an Android library. It relies on Gradle and is designed to be integrated into Android Studio or IJ Community projects using a simple git submodule import.
-
android-lib-v2 is very close to v3. It keeps compatibility with older versions of Java and Android (mostly before streams).
-
android-lib-v1 and android-lib are obsolete versions of the Android library. The plain Java library had not been extracted yet.
-
master: The original master branch is a collection of misc C# utilities packaged in a pot-pourri library. There are two internal directories for .Net 1.1 and .Net 2.0, as well as two skeleton apps for C# and Android (I used to clone them to get app projects up and running quickly back in the days.) This repo is now considered obsolete.
Here's a non-exhaustive list of goodies available in the current android-lib-v3 branch:
-
com.alflabs.rx: A simplified, lightweight implementation of Reactive Streams. It is not RxJava compatible. Exists both for Java projects and Android projects.
-
com.alflabs.kv: A key-value network server/client. The server publishes simple key/value pairs and automatically synchronizes changed values between the server and all clients.
-
com.alflabs.serial: A simplified object serialization mechanism to encode plain Java objects into strings or integer arrays and later deserialize them. It is platform independent. Comes with an Android specific async file writer/reader.
-
com.alflabs.annotations: A few helper annotations (null, non null, visible for testing, large test) that I was using in my projects way before Android had its own annotation support library.
-
com.alflabs.dagger: A few dagger helper annotation for Android, e.g. the typical Activity/Fragment Scope/Qualifier annotations that I keep reusing everywhere.
-
com.alflabs.func: Ad-hoc reimplementation of a minimal set of functional interfaces, since Android API < 24 does not have them.
-
com.alflabs.app and com.alflabs.prefs: Core component classes common to many of my Android apps. Generally very ad-hoc and not designed to be commonly reused by other projects.
-
com.alflabs.app.v1.Bus: An event bus implementation, deprecated in favor of my RX stream implementation.
-
com.alflabs.utils: Various utilities (network, logging) common to several projects. Also contains Android ApiHelper compatibility stubs to backport from API 19 back to API 9.
LibUtils is licensed under the GNU GPL v3 license.
Copyright (C) 2008-2017 alf.labs gmail com,
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
The full GPL license is available in the file "LICENSE-gpl-3.0.txt".