Need help with notils?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

126 Stars 21 Forks Other 304 Commits 20 Opened issues


Never again need a .utils. package yur scurvy sea dogs!

Services available


Need anything else?

Contributors list

notils CI status Download from Bintray Apache 2.0 Licence

Never again need a .utils. package yur scurvy sea dogs!

Notils comes in two modules -

contains classes that don't depend on anything from the Android SDK, while
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
    to give to give automatic details of where the Log executed
  • StrictMode
    Management - enable strict mode in one line
  • WebViews
    , allowing custom loading of different scenarios (raw assets, external urls)
  • ToastDisplayers
    for saner displaying of Toast notifications
  • SimpleDateFormatThreadSafe
    allowing you to use date formatting from multiple threads
  • DeveloperError
    - custom exceptions for explicit declaration / faster feedback when something goes wrong
  • SimpleTextWatcher
    - simple implementation of
    with stub implementations of each method
  • QueryUtils
    - easily create placeholders for ContentResolver operations selection
  • DeviceDetection - to detect whether the user has
    Intel x86
  • AndroidVersion - to check the Android version in a nicer way.

Adding to your project

To start using this library, add these lines to the

of your project:
repositories {

dependencies { compile 'com.novoda:notils-java:3.1.5' compile 'com.novoda:notils-android:3.1.5' }

Simple usage

Here are a few examples.

  • Use the
    class to avoid casting your views over and over!
 UserFragment userFragment = Fragments.findFragmentById(fragmentmanager,;
  • Use
    to let other devs know a problem in the code or prevent potential issues:
 switch (menuOptionId) {
         // Start the camera...
         // Open the gallery...
         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:
    when posting a new question

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.