Android Shortcuts Kullanımı

Taha Şalva
LCW Digital
Published in
2 min readDec 7, 2023

Merhabalar,

Android uygulamalarında, kullanıcıların aksiyonlarını hızlı bir şekilde gerçekleştirmelerini sağlayan uygulama app iconunun üzerine basılı tutarak özel işlevlere sahip kısayollar kullanılır. Kısayollar, uygulama içindeki belirli bir ekranı hızlıca açma, belirli bir eylemi başlatma veya önceki etkileşimlere dayanarak kişiselleştirilmiş içerik sunma gibi çeşitli görevleri yerine getirebilir.

Kısayolların Avantajları

Uygulamamız için kullanabileceğimiz iki tür Kısayol vardır.

  1. Static: Çalışma zamanında değiştirilemeyen kısayollardır. Kısayollar uygulamanın Manifest’inde bildirilir ve bunun için ayrı bir XML oluşturulur.

Şimdi XML dosyamızı oluşturalım:

<?xml version="1.0" encoding="utf-8"?>
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
<shortcut
android:enabled="true"
android:icon="@drawable/search"
android:shortcutDisabledMessage="@string/unexceptedErrorMessage"
android:shortcutId="searchId"
android:shortcutLongLabel="@string/search"
android:shortcutShortLabel="@string/search">
<intent
android:action="shortcuts"
android:data="search"
android:targetClass="com.example.denemeshortcut.FirstActivty"
android:targetPackage="com.example.denemeshortcut" />
</shortcut>
<shortcut
android:enabled="true"
android:icon="@drawable/ic_basket"
android:shortcutDisabledMessage="@string/unexceptedErrorMessage"
android:shortcutId="basketId"
android:shortcutLongLabel="@string/basket"
android:shortcutShortLabel="@string/basket">
<intent
android:action="shortcuts"
android:data="basket"
android:targetClass="com.example.denemeshortcut.FirstActivty"
android:targetPackage="com.example.denemeshortcut" />
</shortcut>
<shortcut
android:enabled="true"
android:icon="@drawable/ic_favorite"
android:shortcutDisabledMessage="@string/unexceptedErrorMessage"
android:shortcutId="favoriteId"
android:shortcutLongLabel="@string/favorites"
android:shortcutShortLabel="@string/favorites">
<intent
android:action="shortcuts"
android:data="favorites"
android:targetClass="com.example.denemeshortcut.FirstActivty"
android:targetPackage="com.example.denemeshortcut" />
</shortcut>
<shortcut
android:enabled="true"
android:icon="@drawable/ic_order_blue"
android:shortcutDisabledMessage="@string/unexceptedErrorMessage"
android:shortcutId="orderId"
android:shortcutLongLabel="@string/myOrders"
android:shortcutShortLabel="@string/myOrders">
<intent
android:action="shortcuts"
android:data="myOrders"
android:targetClass="com.example.denemeshortcut.FirstActivty"
android:targetPackage="com.example.denemeshortcut" />
</shortcut>
</shortcuts>

Şimdi oluşturduğumuz XML’i Manifestimize ekleyelim.

<meta-data
android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" />

LC Waikiki Android uygulamasında shortcuts geliştirmesini yaparak, kullanıcıların sepet ve vermiş olduğu siparişlerim ekranına daha hızlı geçiş yapabilmelerini sağladık.

2.Dinamik: ShortcutManager Api kullanılarak çalışma anında manuel olarak eklenir ve ya kaldırılır. Bu Kısayollar uygulamanızın kullanımları arasında değişebilir ve uygulamayı kullanırken de değiştirebilirsiniz.

Kullanıcıya Özelleştirme İmkanı:

  • Kullanıcı Tercihlerine Dayalı Dinamik Kısayollar: Kullanıcılara, kısayollarını kendilerinin özelleştirebilecekleri bir arayüz sunarak, kişisel kullanım örüntülerine göre uygulama içinde daha fazla kontrole sahip olmalarını sağlayabilirsiniz.
  • Kısayolların Sıralanması ve Gruplandırılması: Kullanıcıların kısayollarını sıralamalarına ve gruplandırmalarına izin vererek, kullanıcı dostu bir deneyim sunabilir ve uygulama içinde daha etkili bir gezinme sağlayabilirsiniz.

Hadi o zaman , ShortcutManager Api’yi kullanarak Dinamik kısayol ekleme kodunumuzu yazalım. Android 7.1'den büyük olması gerekmektedir.

basketClick.setOnClickListener(View.OnClickListener {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {
val shortcutManager = activity.getSystemService(
ShortcutManager::class.java
)
val shortcutOne = ShortcutInfo.Builder(activity, "sepet")
.setShortLabel(activity.resources.getString(R.string.basket))
.setLongLabel(activity.resources.getString(R.string.basketDesc))
.setIcon(Icon.createWithResource(activity, R.drawable.basket))
.setIntents(
arrayOf(
Intent(activity, FirstActivity::class.java)
.setAction("com.example.denemeshortcut.MainActivity.deneme2Fragment")
)
)
.build()
shortcutManager.dynamicShortcuts = Collections.singletonList(shortcutOne)
}
})

--

--