App Shortcuts: Getting Began | Kodeco, the brand new raywenderlich.com

[ad_1]

Learn to implement App Shortcuts in your Android app to make it extra partaking in your customers.

Most of the mostly used apps devour App Shortcuts to offer customers with easy accessibility to its most vital options. For instance, Instagram supplies shortcuts to Digital camera, New Publish, View Exercise, and Direct messages, whereas WhatsApp supplies Digital camera and 4 conversations.

All these apps devour the ShortcutManager API for simple shortcut creations.

On this tutorial, you’ll learn to handle three completely different shortcut varieties:

  • Static shortcuts by means of the xml file.
  • Dynamic shortcuts by means of the code.
  • Pinned shortcuts by means of 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 lots 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 may create a brand new Observe.

Starting activity in QuickNotes app

Strive utilizing the app. Faucet the FabButton and create a brand new be aware. A brand new be aware will likely be seen within the record. Lengthy press the be aware, and BottomSheetDialogFragment will present with two actions.

Actions related to the note

Now you’ll see what kinds of shortcuts are current and see what sort you must use by 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 might make your app extra environment friendly in the event that they’re used accurately.

A developer has an obligation to handle which options will present within the app shortcut record, 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 supplies for the simpler use of the gadget. Considered one of these is app shortcuts performance.

Though app shortcuts are already straightforward to entry by long-pressing the icon on the house display screen or app record, 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 seek out them.

The subsequent part provides you with an outline of the app you’ll create on this article.

Varieties of Shortcuts

The way you ship content material with shortcuts depends upon your use case and whether or not the shortcut’s context is app-driven or user-driven. Regardless of if the shortcut’s context modifications, each static and dynamic shortcuts are pushed by your app.

In instances the place a consumer chooses how they need your app to ship content material to them, corresponding to with a pinned shortcut, a consumer defines the context.

The next situations present a couple of use instances for every shortcut sort:

  • Static shortcuts: utilized for the content material with the constant construction by means of the lifetime of a consumer’s interplay. Instagram is utilizing it for fast entry to the Posts, Digital camera, or Direct messages.
  • Dynamic shortcuts: used for the actions which can be context-sensitive. They’re made for the actions customers carry out in an app. For instance, when you’re constructing a sport that permits the consumer to begin from their present degree, it’s worthwhile to replace the shortcut typically.
  • Pinned shortcuts: used for particular, user-driven actions. The very best instance is pinning a selected web site out of your favourite browser. That is useful as a result of it permits the consumer to carry out a customized motion. For e.g. fast navigation to the precise web site

Though we’ve got several types of shortcuts that cowl all use instances, there are some limitations that we’d like to concentrate on.

Limitations

Regardless 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.

Observe: If you wish to be taught extra about pushing dynamic shortcuts to Google Assistant comply with this Google Codelabs.

When you select to not use the Google Shortcuts Integration Library, your app will help a restricted variety of shortcuts at a time.

Generally 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 several types 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 record.
  • Take away All: removes all dynamic shortcuts.
  • Reordering: provides/updates dynamic shortcuts with the rank property.

Reordering is an motion that occurs as a facet impact of Push or Replace actions. Entry these motion on the ShortcutManagerCompat API, and so they’re tremendous straightforward to make use of.

Working With Shortcuts

On this part, you’ll discover all of the actions obtainable for managing the app shortcuts and easy methods 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 bundle, below xml subfolder, discover the shortcuts.xml file and open it.

On this file, you’ll discover TODO 1: which you’ll substitute 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:title="com.yourcompany.quicknotes" />
    <!-- 4 -->
    <capability-binding android:key="actions.intent.CREATE_NOTE" />
</shortcut>

That is what you’re code does:

  1. Outline shortcut properties like ID, enabled state, icon, lengthy and quick labels.
  2. Outline screens that opens after a consumer selects the shortcut.
  3. Outline class by which the be aware belongs./li>
  4. Outline the potential which hyperlinks the shortcut with the built-in intents.

It’s important to outline the shortcut motion correctly. While you create a shortcut, permit customers to open the display screen move that defines the function they want.

Observe: Functionality binding pertains to the Constructed-in intents which provides a consumer the choice to entry the function outlined as a shortcut motion by means of the Google Assistant. You possibly can see easy methods to obtain that right here.

The next move is to offer an app directions to create static shortcuts. Go to the manifests folder and open AndroidManifest.xml file and substitute TODO 2: with the next code snippet:


<meta-data
    android:title="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 be aware!

Instructions how to create a note with Static shortcut

Okay, that was straightforward. Time to maneuver on to the logic of making dynamic shortcuts.

Creating Dynamic Shortcuts

Dynamic shortcuts are a bit of bit tough however nonetheless very straightforward 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 allows 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 is able to create a brand new dynamic shortcut, open the ShortcutManagerWrapper.kt file and substitute TODO 3: with these traces of code:


return ShortcutInfoCompat.Builder(context, be aware.id)
    .setShortLabel(be aware.title)
    .setLongLabel("See ${be aware.title}")
    .setIcon(IconCompat.createWithResource(context, R.drawable.ic_note))
    .setIntents(
        arrayOf(
            NotesActivity.createIntent(context).apply { motion = Intent.ACTION_VIEW },
            NoteActivity.createIntent(context, be aware.id).apply { motion = Intent.ACTION_VIEW }
        )
    )
    .construct()

Observe: It’s doubtless that you need to make some imports for the code to work.

You possibly can see {that a} dynamic shortcut acts the identical because the static one. The distinction is that now you might have logic for making the shortcut extra context-sensitive.

To totally allow creating dynamic shortcuts, substitute TODO 4: with these two traces of code:


val shortcut = createShortcutInfo(be aware)
ShortcutManagerCompat.pushDynamicShortcut(context, shortcut)

The tactic pushDynamicShortcut(...) will do:

  1. Test limitation of the utmost variety of shortcuts.
  2. Put together shortcuts relying on the Android Verson.
  3. Take away shortcut with the bottom rank.
  4. Add a brand new one to the highest of the record.

Superior, you’re now able to create your very first dynamic shortcut. Construct and run the app, long-press the created be aware, after which long-press the app icon to indicate the shortcuts.

Instructions how to create a Dynamic Shortcut

The subsequent step is enabling updates for the dynamic shortcut you’ve added.

Updating Dynamic Shortcuts

Updating a dynamic shortcut is similar as creating a brand new one.

Within the QuickNotes app, your shortcut will replace if you open an current be aware and modify the content material by urgent the replace motion within the prime proper nook.

Subsequent process for you is to implement it so you may replace the shortcut when wanted.

Within the ShortcutManagerWrapper.kt file, discover TODO 5: and substitute it with the next:


addNoteShortcut(be aware)

That’s it! Straightforward, proper? 🙂

Attempt to replace your current be aware. Open it from the shortcut you’ve added, replace it and make sure that the app has up to date the be aware. Now go and verify the shortcut you beforehand created.

You’ll create one other be aware and the shortcut for it. Shut the app, open the shortcut record, and confirm that the bottom-most shortcut is the one you created first.

Creating a second shortcut

Open the primary be aware, change the title, and press replace. When you verify 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 modifications the shortcut rank.

Update first shortcut to make a change in order

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 substitute it with the next block of code:


override enjoyable isShortcutCreated(noteId: String): Boolean {
    return ShortcutManagerCompat.getDynamicShortcuts(context)
        .discover { it.id == noteId } != null
}

Test if the shortcut with the requested be aware exists within the record of dynamic shortcuts.

Because you don’t need your consumer to have the choice to entry a be aware 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 substitute 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 check out it. Construct and run the app, and comply with the following steps in an effort to verify that every part works:

  1. Create a brand new be aware.
  2. Create a dynamic hyperlink.
  3. Confirm that it’s created by lengthy urgent on the app icon.
  4. Replace the be aware title.
  5. Confirm that it’s up to date within the shortcut record.
  6. Delete the be aware.
  7. Confirm that the shortcut has been deleted from the shortcut record.

Congratulations! You’ve carried out the dynamic shortcut function! Now, you’re transferring to the final sort of shortcut.

Creating Pinned Shortcuts

There is just one sort of shortcut left to implement. Making a pinned shortcut is a bit of bit completely different than the others.

Discover TODO 8: and substitute it with this code snippet:


// 1
if (ShortcutManagerCompat.isRequestPinShortcutSupported(context)) {
    // 2
    val pinShortcutInfo = ShortcutInfoCompat.Builder(context, be aware.id)
        .setShortLabel(be aware.title)
        .setIcon(IconCompat.createWithResource(context, R.drawable.ic_note))
        .setIntents(
            arrayOf(
                NotesActivity.createIntent(context).apply { motion = Intent.ACTION_VIEW },
                NoteActivity.createIntent(context, be aware.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:

  1. Confirm that the default launcher helps pinned shortcuts.
  2. Create ShortcutInfo with the quick label, icon and intent which results in
    desired Exercise.
  3. Request a pin shortcut which is able to set off native dialog with the shortcut data on newer Android variations, or create a shortcut immediately on variations under API 26.

Construct and run the app, long-press the be aware, and create your first Fast Notes pinned shortcut.

Go to the launcher and verify if it’s there.

Instructions how to create pinned shortcut

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 be aware. 🙂

Congratulations! You’re able to make your app extra accessible for the consumer. Take into consideration crucial options you wish to present and don’t overlook concerning the restricted variety of shortcuts.

The place to Go From Right here?

You possibly can obtain the whole mission by clicking Obtain Supplies on the prime or backside of this tutorial.

On this article, you’ve realized easy methods to create several types of app shortcuts and easy methods to use them.

As talked about earlier, you can also make your app simpler to entry with Google Assistant. You could find right here an superior article on easy methods to create Actions for Google Assistant.

We hope you loved this tutorial. When you’ve got any questions or feedback, please be a part of the discussion board dialogue under!

[ad_2]

Leave a Reply

Your email address will not be published. Required fields are marked *