Let alternatives and similar packages
Based on the "Tools" category.
Alternatively, view Let alternatives based on common mentions on social networks and blogs.
-
Freeline
A super fast build tool for Android, an alternative to Instant Run -
dex-method-counts
Command-line tool to count per-package methods in Android .dex files -
maven-android-sdk-deployer
A tool to install components of the Android SDK into a Maven repository or repository manager to use with the Android Maven Plugin, Gradle and other tools. -
AdaptiveTableLayout
Library that makes it possible to read, edit and write CSV files -
vectalign
Tool for create complex morphing animations using VectorDrawables (allows morphing between any pair of SVG images) -
Uber Apk Signer
A cli tool that helps signing and zip aligning single or multiple Android application packages (APKs) with either debug or provided release certificates. It supports v1, v2 and v3 Android signing scheme has an embedded debug keystore and auto verifies after signing. -
android-resource-remover
A simple utility to remove unused resources in your Android app to lower the size of the APK. It's based on the Android lint tool output. -
AndroidLocalizationer
This is a Android Studio/ IntelliJ IDEA plugin to localize your Android app, translate your string resources automactically. -
Debug Bottle
🍼Debug Bottle is an Android runtime debug / develop tools written using kotlin language. -
scrollscreenshot
Make Android screenshots of scrollable screen content -
android-gradle-template
Combines tools for fast android app devlopment -
PDFCreatorAndroid
Simple library to generate and view PDF in Android -
density-converter
A multi platform image density converting tool converting single or batches of images to Android, iOS, Windows or CSS specific formats and density versions given the source scale factor or width/height in dp. It has a graphical and command line interface and supports many image types (svg, psd, 9-patch, etc.) aswell as some lossless compressors like pngcrush. -
USB-Device-Info
This application will provide information about almost all currently plugged-in USB devices. -
TaggerString
TaggerString is very light library which allows to build dynamic string resource in much more readable way. -
release-android-library
Remote script to create a maven compatible release of an android library (aar) -
Layout-to-Image
Android Layout (Relative Layout, Linear Layout etc) to Image -
Uber Adb Tools for Android
A tool that enables advanced features through adb installing and uninstalling apps like wildcards and multi device support. Useful if you want to clean your test device from all company apks or install a lot of apks in one go. Written in Java so it should run on your platform. -
PackageHunter
:inbox_tray: [Android Library] Hunt down all package information -
NotificationLog
Use an expanded notification as a makeshift Android log output console -
Android-Intent-Library
A library which will save you a lot of time from writing the same intent creation code. it consist of many intent creation codes like Share, Contacts, Email and etc, which you can easily use. -
Shutdown
An android library that handles the closing of your app interactively. -
AnUitor
AnUitor is a result of my rebranding experiences of one android app. -
IntroApp
This Android app adds splash screen slides to make a great intro for an app. -
open-weather-retriever-z
A wrapper that gets weather information from OpenWeatherMap -
change-scene
Switch between different layouts for different states, easily.
Appwrite - The open-source backend cloud platform
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Let or a related project?
README
Let
Annotation based simple API flavoured with AOP to handle new Android runtime permission model.
If you check Google's Samples about the new permission model, you'll see a lot of boiler plate code for requesting, handling and retrying the request for required permissions.
Let will minimize the boiler plate code you have to write for requesting and handling permissions and hence help you keep your code more readable.
Let let Handle
Annotate your methods requiring permissions with @AskPermission
and let Let handle the rest.
@AskPermission(ACCESS_FINE_LOCATION)
private void getUserLocationAndDoSomething() {
Toast.makeText(
SampleActivity.this,
"Now that I have the permission I need, I'll get your location and do something with it",
Toast.LENGTH_SHORT
).show();
...
}
@AskPermission({
Manifest.permission.READ_CONTACTS,
Manifest.permission.CALL_PHONE,
Manifest.permission.CAMERA
})
private void skipTutorial() {
// permissions needed for the best app experience are granted; let's go to the app's home screen
startActivity(new Intent(this, HomeActivity.class));
}
Let will check these annotated methods and execute them unless the permissions required are granted; otherwise Let will put on hold the method execution and request these permissions at runtime. After examining the permission request result, Let will execute the method already put on hold only if the permissions are granted by user.
Let will also inform about the rationales before making any permission request and tell about denied permissions; whether they're simply denied or with 'Never Ask Again' checked.
Just make sure to override the onRequestPermissionsResult
in your Activity or Fragment, where your
@AskPermission
annotated methods are located:
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
Let.handle(this, requestCode, permissions, grantResults);
}
And make sure your Activity or Fragment implements RuntimePermissionListener
in order to get notified
about denied permissions and rationales:
public class SampleActivity extends AppCompatActivity implements RuntimePermissionListener {
// ....
@Override
public void onShowPermissionRationale(List<String> permissions, final RuntimePermissionRequest request) {
/**
* you may show permission rationales in a dialog, wait for user confirmation and retry the permission
* request by calling request.retry()
*/
}
@Override
public void onPermissionDenied(List<DeniedPermission> deniedPermissionList) {
/**
* Do whatever you need to do about denied permissions:
* - update UI
* - if permission is denied with 'Never Ask Again', prompt a dialog to tell user
* to go to the app settings screen in order to grant again the permission denied
*/
}
// ...
}
Usage
Add it to your project today!
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.canelmas.let:let-plugin:0.1.11'
}
}
apply plugin: 'com.android.application'
apply plugin: 'let'
repositories {
jcenter()
}
For kotlin :
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.canelmas.let:let-plugin:1.0.0-beta1'
}
}
apply plugin: 'com.android.application'
apply plugin: 'let'
repositories {
jcenter()
}
Proguard
Make sure your proguard rule set includes following lines:
-keep class com.canelmas.let.** { *; }
-keepnames class * implements com.canelmas.let.RuntimePermissionListener
-keepclassmembers class * implements com.canelmas.let.RuntimePermissionListener {
public void onRequestPermissionsResult(***);
}
-keepclasseswithmembernames class * {
@com.canelmas.let.* <methods>;
}
License
Copyright 2016 Can Elmas
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*Note that all licence references and agreements mentioned in the Let README section above
are relevant to that project's source code only.