[ad_1]
Discover ways to implement App Shortcuts in your Android app to make it extra participating on your customers.
Lots of the mostly used apps eat App Shortcuts to offer customers with easy accessibility to its most necessary options. For instance, Instagram offers shortcuts to Digicam, New Submit, View Exercise, and Direct messages, whereas WhatsApp offers Digicam and 4 conversations.
All these apps eat the ShortcutManager
API for straightforward shortcut creations.
On this tutorial, you’ll discover ways to handle three totally different shortcut varieties:
- Static shortcuts via the xml file.
- Dynamic shortcuts via the code.
- Pinned shortcuts via the code.
Getting Began
Obtain the starter mission by clicking on the Obtain Supplies button on the prime or backside of the tutorial. Then, open the starter mission in Android Studio 3.5 or later.
Check out the code. You’ll discover the starter mission with actions, a format, a shortcut wrapper, and plenty of TODOs.
Construct and run the starter mission. You’ll see an empty display screen with a FabButton
that launches a brand new Exercise
the place you’ll be able to create a brand new Notice.
Attempt utilizing the app. Faucet the FabButton
and create a brand new word. A brand new word will probably be seen within the listing. Lengthy press the word, and BottomSheetDialogFragment
will present with two actions.
Now you’ll see what forms of shortcuts are current and see what kind it is best to use through which case.
Introducing App Shortcuts
Shortcut performs particular motion within the particular app, triggered from the:
- Supported launcher.
- Assistant – e.g. Google Assistant.
Android app shortcuts may make your app extra environment friendly in the event that they’re used appropriately.
A developer has an obligation to maintain which options will present within the app shortcut listing, however a consumer wants to find them and discover them useful.
Even for individuals like us, Android builders, it’s laborious to recollect what number of highly effective instruments Android offers for the simpler use of the machine. Certainly one of these is app shortcuts performance.
Though app shortcuts are already simple to entry by long-pressing the icon on the house display screen or app listing, a consumer can pin all of the shortcuts to the house display screen for even simpler entry.
Builders ought to all the time contemplate supporting shortcuts, even when it’s laborious for customers to search out them.
The subsequent part provides you with an summary of the app you’ll create on this article.
Sorts of Shortcuts
The way you ship content material with shortcuts relies on your use case and whether or not the shortcut’s context is app-driven or user-driven. Regardless of if the shortcut’s context adjustments, each static and dynamic shortcuts are pushed by your app.
In circumstances the place a consumer chooses how they need your app to ship content material to them, akin to with a pinned shortcut, a consumer defines the context.
The next situations present a couple of use circumstances for every shortcut kind:
- Static shortcuts: utilized for the content material with the constant construction via the lifetime of a consumer’s interplay. Instagram is utilizing it for fast entry to the Posts, Digicam, or Direct messages.
- Dynamic shortcuts: used for the actions which might be context-sensitive. They’re made for the actions customers carry out in an app. For instance, if you happen to’re constructing a sport that permits the consumer to begin from their present degree, it’s essential to replace the shortcut typically.
- Pinned shortcuts: used for particular, user-driven actions. One of the best instance is pinning a selected web site out of your favourite browser. That is helpful as a result of it permits the consumer to carry out a customized motion. For e.g. fast navigation to the particular web site
Though we’ve got various kinds of shortcuts that cowl all use circumstances, there are some limitations that we want to concentrate on.
Limitations
Despite the fact that customers can create as many dynamic shortcuts as they need, most supported launchers show as much as 4 shortcuts at a time.If the app helps dynamic shortcuts, select static shortcuts fastidiously, so there’s nonetheless some house for a consumer to create dynamic ones.
But, for the dynamic shortcuts used with Google Assistant, use Google Shortcuts Integration Library to keep away from the limitation.
In case you select to not use the Google Shortcuts Integration Library, your app will help a restricted variety of shortcuts at a time.
Typically you’ll need to resolve whether or not you need extra static shortcuts or let the consumer create dynamic ones.
To find out what number of shortcuts the launcher helps, use getMaxShortcutCountPerActivity()
technique offered in ShortcutManagerCompat
class.
However, in case your app helps pinned shortcuts, you’re protected from these limitations. Launchers don’t have a most variety of pinned shortcuts.
It’s time to leap in on the actions used to handle shortcuts!
Managing App Shortcuts
As you already know, there are three various kinds of shortcuts, and the consumer manages dynamic ones.
The consumer is ready to do a number of actions with the shortcuts:
- Push: creates a brand new dynamic shortcut.
- Replace: updates dynamic shortcuts that exist already.
- Take away: removes dynamic shortcuts from the listing.
- Take away All: removes all dynamic shortcuts.
- Reordering: provides/updates dynamic shortcuts with the rank property.
Reordering is an motion that occurs as a aspect impact of Push or Replace actions. Entry these motion on the ShortcutManagerCompat
API, and so they’re tremendous simple to make use of.
Working With Shortcuts
On this part, you’ll discover all of the actions accessible for managing the app shortcuts and learn how to implement them.
Creating Static Shortcuts
Now, you’re going to begin by creating static shortcuts with predefined and unchangeable actions.
Firstly, within the res package deal, below xml subfolder, discover the shortcuts.xml file and open it.
On this file, you’ll discover TODO 1:
which you’ll change with the next code:
<!-- 1 -->
<shortcut
android:shortcutId="new_note"
android:enabled="true"
android:icon="@drawable/ic_new_note_shortcut"
android:shortcutLongLabel="@string/new_note_long_label"
android:shortcutShortLabel="@string/new_note_short_label">
<!-- 2 -->
<intent
android:motion="android.intent.motion.VIEW"
android:targetClass="com.yourcompany.quicknotes.display screen.notes.NotesActivity"
android:targetPackage="com.yourcompany.quicknotes" />
<intent
android:motion="android.intent.motion.VIEW"
android:targetClass="com.yourcompany.quicknotes.display screen.newnote.NoteActivity"
android:targetPackage="com.yourcompany.quicknotes" />
<!-- 3 -->
<classes android:identify="com.yourcompany.quicknotes" />
<!-- 4 -->
<capability-binding android:key="actions.intent.CREATE_NOTE" />
</shortcut>
That is what you’re code does:
- Outline shortcut properties like ID, enabled state, icon, lengthy and brief labels.
- Outline screens that opens after a consumer selects the shortcut.
- Outline class through which the word belongs./li>
- Outline the potential which hyperlinks the shortcut with the built-in intents.
It’s important to outline the shortcut motion correctly. If you create a shortcut, enable customers to open the display screen movement that defines the function they want.
The next move is to offer an app directions to create static shortcuts. Go to the manifests folder and open AndroidManifest.xml
file and change TODO 2:
with the next code snippet:
<meta-data
android:identify="android.app.shortcuts"
android:useful resource="@xml/shortcuts" />
Your shortcut is able to use. Construct and run the app, go to launcher and lengthy press on the app icon. Press the shortcut, and also you’re able to create a brand new word!
Okay, that was simple. Time to maneuver on to the logic of making dynamic shortcuts.
Creating Dynamic Shortcuts
Dynamic shortcuts are a bit bit difficult however nonetheless very simple to implement.
As earlier than talked about, you’ll want to make use of the ShortcutManager
API. It’s a part of the Jetpack Libraries
that permits you to handle dynamic shortcuts inside your app. It reduces boilerplate code and, most significantly, ensures that shortcuts behave the identical throughout Android variations.
So as to add the performance which can create a brand new dynamic shortcut, open the ShortcutManagerWrapper.kt
file and change TODO 3:
with these traces of code:
return ShortcutInfoCompat.Builder(context, word.id)
.setShortLabel(word.title)
.setLongLabel("See ${word.title}")
.setIcon(IconCompat.createWithResource(context, R.drawable.ic_note))
.setIntents(
arrayOf(
NotesActivity.createIntent(context).apply { motion = Intent.ACTION_VIEW },
NoteActivity.createIntent(context, word.id).apply { motion = Intent.ACTION_VIEW }
)
)
.construct()
Notice: It’s probably that it’s important to make some imports for the code to work.
You’ll be able to see {that a} dynamic shortcut acts the identical because the static one. The distinction is that now you could have logic for making the shortcut extra context-sensitive.
To completely allow creating dynamic shortcuts, change TODO 4:
with these two traces of code:
val shortcut = createShortcutInfo(word)
ShortcutManagerCompat.pushDynamicShortcut(context, shortcut)
The strategy pushDynamicShortcut(...)
will do:
- Verify limitation of the utmost variety of shortcuts.
- Put together shortcuts relying on the Android Verson.
- Take away shortcut with the bottom rank.
- Add a brand new one to the highest of the listing.
Superior, you’re now able to create your very first dynamic shortcut. Construct and run the app, long-press the created word, after which long-press the app icon to indicate the shortcuts.
The subsequent step is enabling updates for the dynamic shortcut you’ve added.
Updating Dynamic Shortcuts
Updating a dynamic shortcut is identical as creating a brand new one.
Within the QuickNotes app, your shortcut will replace while you open an current word and modify the content material by urgent the replace motion within the prime proper nook.
Subsequent job for you is to implement it so you’ll be able to replace the shortcut when wanted.
Within the ShortcutManagerWrapper.kt
file, discover TODO 5:
and change it with the next:
addNoteShortcut(word)
That’s it! Straightforward, proper? 🙂
Attempt to replace your current word. Open it from the shortcut you’ve added, replace it and ensure that the app has up to date the word. Now go and examine the shortcut you beforehand created.
You’ll create one other word and the shortcut for it. Shut the app, open the shortcut listing, and confirm that the bottom-most shortcut is the one you created first.
Open the primary word, change the title, and press replace. In case you examine the shortcuts, you’ll see that you simply’ve modified the order. The one that you simply’ve edited is now on the prime. Updating the shortcut additionally adjustments the shortcut rank.
Good job, you’re subsequent step is to delete the shortcut.
Deleting a Dynamic Shortcut
To delete a dynamic shortcut, the very first thing you’ll must know is that if the shortcut already exists.
Discover TODO 6:
and change it with the next block of code:
override enjoyable isShortcutCreated(noteId: String): Boolean {
return ShortcutManagerCompat.getDynamicShortcuts(context)
.discover { it.id == noteId } != null
}
Verify if the shortcut with the requested word exists within the listing of dynamic shortcuts.
Because you don’t need your consumer to have the choice to entry a word as soon as it will get deleted from the database or service, you’ll must delete the shortcut too.
Within the ShortcutManagerWrapper.kt
discover TODO 7:
and change it with these traces of code:
ShortcutManagerCompat.removeDynamicShortcuts(context, listOf(noteId))
Nice, a consumer is now capable of create, replace and delete a dynamic shortcut, go forward and take a look at it. Construct and run the app, and observe the subsequent steps with a purpose to examine that every thing works:
- Create a brand new word.
- Create a dynamic hyperlink.
- Confirm that it’s created by lengthy urgent on the app icon.
- Replace the word title.
- Confirm that it’s up to date within the shortcut listing.
- Delete the word.
- Confirm that the shortcut has been deleted from the shortcut listing.
Congratulations! You’ve applied the dynamic shortcut function! Now, you’re transferring to the final kind of shortcut.
Creating Pinned Shortcuts
There is just one kind of shortcut left to implement. Making a pinned shortcut is a bit bit totally different than the others.
Discover TODO 8:
and change it with this code snippet:
// 1
if (ShortcutManagerCompat.isRequestPinShortcutSupported(context)) {
// 2
val pinShortcutInfo = ShortcutInfoCompat.Builder(context, word.id)
.setShortLabel(word.title)
.setIcon(IconCompat.createWithResource(context, R.drawable.ic_note))
.setIntents(
arrayOf(
NotesActivity.createIntent(context).apply { motion = Intent.ACTION_VIEW },
NoteActivity.createIntent(context, word.id).apply { motion = Intent.ACTION_VIEW }
)
)
.construct()
// 3
ShortcutManagerCompat.requestPinShortcut(context, pinShortcutInfo, null)
}
It’s simpler to grasp if it’s damaged down into smaller items:
- Confirm that the default launcher helps pinned shortcuts.
- Create
ShortcutInfo
with the brief label, icon and intent which ends up in
desiredExercise
. - Request a pin shortcut which can set off native dialog with the shortcut data on newer Android variations, or create a shortcut immediately on variations beneath API 26.
Construct and run the app, long-press the word, and create your first Fast Notes pinned shortcut.
Go to the launcher and examine if it’s there.
You’re only one press away from the duties you’ll want for that day, purchasing cart, or no matter it’s you wish to word. 🙂
Congratulations! You’re able to make your app extra accessible for the consumer. Take into consideration an important options you wish to present and don’t overlook concerning the restricted variety of shortcuts.
The place to Go From Right here?
You’ll be able to obtain the entire mission by clicking Obtain Supplies on the prime or backside of this tutorial.
On this article, you’ve realized learn how to create various kinds of app shortcuts and learn how to use them.
As talked about earlier, you may make your app simpler to entry with Google Assistant. You will discover right here an superior article on learn how to create Actions for Google Assistant.
We hope you loved this tutorial. You probably have any questions or feedback, please be a part of the discussion board dialogue beneath!
[ad_2]