Never again need a .utils. package yur scurvy sea dogs!
Notils comes in two modules - notils-java
contains classes that don't depend on anything from the Android SDK, while notils-android
contains classes that do.
notils contains a set of common classes that we use in our projects:
AndroidUtils
, for showing the keyboard, checking running services, etc.ClassCaster
- to help with listeners between Activitys & Fragments- No need to cast when finding Fragments
- No need to double type your types when creating collections
- Simple Fade animations in & out done for you
- Simple
Log
to give to give automatic details of where the Log executed StrictMode
Management - enable strict mode in one lineWebViews
, allowing custom loading of different scenarios (raw assets, external urls)ToastDisplayers
for saner displaying of Toast notificationsSimpleDateFormatThreadSafe
allowing you to use date formatting from multiple threadsDeveloperError
- custom exceptions for explicit declaration / faster feedback when something goes wrongSimpleTextWatcher
- simple implementation ofandroid.text.TextWatcher
with stub implementations of each methodQueryUtils
- easily create placeholders for ContentResolver operations selection- DeviceDetection - to detect whether the user has
Amazon
orIntel x86
devices. - AndroidVersion - to check the Android version in a nicer way.
To start using this library, add these lines to the build.gradle
of your project:
repositories {
jcenter()
}
dependencies {
compile 'com.novoda:notils-java:3.1.5'
compile 'com.novoda:notils-android:3.1.5'
}
Here are a few examples.
- Use the
Views
class to avoid casting your views over and over!
UserFragment userFragment = Fragments.findFragmentById(fragmentmanager, R.id.userFragment);
- Use
DeveloperError
to let other devs know a problem in the code or prevent potential issues:
switch (menuOptionId) {
case R.id.menu_take_picture:
// Start the camera...
break;
case R.id.menu_from_gallery:
// Open the gallery...
break;
default:
throw new DeveloperError("Unhandled case in switch statement!");
}
- Object-oriented Toasts!
Toaster toaster = new Toaster(context);
toaster.popToast("Good morning!"); // Short toast
toaster.popBurntToast("Good night!"); // Long toast
toaster.dropInBath(); // Cancells all active toasts this toaster created
- Check the javadoc for more! The package structure allows you to easily see what's in each package.
Here are a list of useful links:
- We always welcome people to contribute new features or bug fixes, here is how
- If you have a problem check the Issues Page first to see if we are working on it
- For further usage or to delve more deeply checkout the Project Wiki
- Looking for community help, browse the already asked Stack Overflow Questions or use the tag:
support-notils
when posting a new question