{"id":13848828,"url":"https://github.com/novoda/notils","last_synced_at":"2026-01-10T07:04:23.112Z","repository":{"id":66938010,"uuid":"11662606","full_name":"novoda/notils","owner":"novoda","description":"Never again need a .utils. package yur scurvy sea dogs!","archived":true,"fork":false,"pushed_at":"2022-02-11T02:09:52.000Z","size":1110,"stargazers_count":122,"open_issues_count":3,"forks_count":21,"subscribers_count":51,"default_branch":"master","last_synced_at":"2024-07-01T10:57:10.633Z","etag":null,"topics":["android","novoda","open-source","utility-library"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/novoda.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2013-07-25T14:29:58.000Z","updated_at":"2024-04-02T17:40:23.000Z","dependencies_parsed_at":"2023-07-10T02:20:07.905Z","dependency_job_id":null,"html_url":"https://github.com/novoda/notils","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novoda%2Fnotils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novoda%2Fnotils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novoda%2Fnotils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novoda%2Fnotils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/novoda","download_url":"https://codeload.github.com/novoda/notils/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":213949824,"owners_count":15661677,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","novoda","open-source","utility-library"],"created_at":"2024-08-04T19:00:58.805Z","updated_at":"2026-01-10T07:04:22.623Z","avatar_url":"https://github.com/novoda.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"# 🛑 THIS REPOSITORY IS OFFICIALLY NO LONGER UNDER MAINTENANCE since 10/02/2022 🛑\n\n# notils [![CI status](https://ci.novoda.com/buildStatus/icon?job=notils)](https://ci.novoda.com/job/notils/lastBuild/console) [![Download from Bintray](https://api.bintray.com/packages/novoda/maven/notils-android/images/download.svg)](https://bintray.com/novoda/maven/notils-android/_latestVersion) [![Apache 2.0 Licence](https://img.shields.io/github/license/novoda/notils.svg)](https://github.com/novoda/notils/blob/master/LICENSE.txt)\n\nNever again need a .utils. package yur scurvy sea dogs!\n\nNotils 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.\n\n## Description\n\nnotils contains a set of common classes that we use in our projects:\n\n  - `AndroidUtils`, for showing the keyboard, checking running services, etc.\n  - `ClassCaster` - to help with listeners between Activitys \u0026 Fragments\n  - No need to cast when finding Fragments\n  - No need to double type your types when creating collections\n  - Simple Fade animations in \u0026 out done for you\n  - Simple `Log` to give to give automatic details of where the Log executed\n  - `StrictMode` Management - enable strict mode in one line\n  - `WebViews`, allowing custom loading of different scenarios (raw assets, external urls)\n  - `ToastDisplayers` for saner displaying of Toast notifications\n  - `SimpleDateFormatThreadSafe` allowing you to use date formatting from multiple threads\n  - `DeveloperError` - custom exceptions for explicit declaration / faster feedback when something goes wrong\n  - `SimpleTextWatcher` - simple implementation of `android.text.TextWatcher` with stub implementations of each method\n  - `QueryUtils` - easily create placeholders for ContentResolver operations selection\n  - [DeviceDetection](https://github.com/novoda/notils/blob/master/android/src/main/java/com/novoda/notils/devicedetection/DeviceDetection.java) - to detect whether the user has `Amazon` or `Intel x86` devices.\n  - [AndroidVersion](https://github.com/novoda/notils/blob/master/android/src/main/java/com/novoda/notils/devicedetection/AndroidVersion.java) - to check the Android version in a nicer way.\n\n\n## Adding to your project\n\nTo start using this library, add these lines to the `build.gradle` of your project:\n\n```groovy\nrepositories {\n    jcenter()\n}\n\ndependencies {\n    compile 'com.novoda:notils-java:3.1.5'\n    compile 'com.novoda:notils-android:3.1.5'\n}\n```\n\n\n## Simple usage\n\nHere are a few examples.\n\n * Use the `Views` class to avoid casting your views over and over!\n \n ```java\n UserFragment userFragment = Fragments.findFragmentById(fragmentmanager, R.id.userFragment);\n ```\n\n * Use `DeveloperError` to let other devs know a problem in the code or prevent potential issues:\n \n ```java\n switch (menuOptionId) {\n     case R.id.menu_take_picture:\n         // Start the camera...\n     break;\n     case R.id.menu_from_gallery:\n         // Open the gallery...\n     break;\n     default:\n         throw new DeveloperError(\"Unhandled case in switch statement!\");\n }\n ```\n \n * Object-oriented Toasts!\n \n ```java\n Toaster toaster = new Toaster(context);\n toaster.popToast(\"Good morning!\"); // Short toast\n toaster.popBurntToast(\"Good night!\"); // Long toast\n toaster.dropInBath(); // Cancells all active toasts this toaster created\n ```\n \n * Check the javadoc for more! The package structure allows you to easily see what's in each package.\n\n\n## Links\n\nHere are a list of useful links:\n\n * We always welcome people to contribute new features or bug fixes, [here is how](https://github.com/novoda/novoda/blob/master/CONTRIBUTING.md)\n * If you have a problem check the [Issues Page](https://github.com/novoda/notils/issues) first to see if we are working on it\n * For further usage or to delve more deeply checkout the [Project Wiki](https://github.com/novoda/notils/wiki)\n * Looking for community help, browse the already asked [Stack Overflow Questions](http://stackoverflow.com/questions/tagged/support-notils) or use the tag: `support-notils` when posting a new question\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnovoda%2Fnotils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnovoda%2Fnotils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnovoda%2Fnotils/lists"}