Linkester is an Android library that aims to help Android developers test their deep links implementation.

Overview

Linkester

Maven Central

Linkester is an Android library that aims to help Android developers test their deep links implementation.

The idea is to have a new launcher activity for your App (in debug builds) that will list all deep/app links available in your App and with a click on any of them you can test it.

The gradle plugin will collect all deep/app links registered for your App and will list them automatically.

You still also have the option to list some links manually (most used for example or some links with predefined query params)

Features

  • Auto colelct all deep/app links.
  • Manually add some deep links.
  • Write any deep link and click on "try it out" button to see how your App will react.
  • Long press on a deep link will auto fill it in the edit text box so that you can edit or add query params to the deep link before testing it.

Demo

Getting started

  1. To use Linkester, add the Linkester dependency to your app’s build.gradle file:

    Groovy
    dependencies {
      // debugImplementation because Linkester should only run in debug builds.
      debugImplementation 'com.mlegy.linkester:linkester:0.0.5'
    }
    Kotlin
    dependencies {
      // debugImplementation because Linkester should only run in debug builds.
      debugImplementation("com.mlegy.linkester:linkester:0.0.5")
    }
  2. There is 2 ways to list the deep links from your App into Linkester:

    1. Automatically collect all deep links from the App. To be able to let Linkester gather all your deep/app links automatically we only need to apply Linkester Gradle plugin into your project.

      Build script snippet for use in all Gradle versions:

      Groovy
      buildscript {
        repositories {
          maven {
            url "https://plugins.gradle.org/m2/"
          }
        }
        dependencies {
          classpath "com.mlegy.linkester:gradle-plugin:0.0.5"
        }
      }
      
      apply plugin: "com.mlegy.linkester"
      Kotlin
      buildscript {
        repositories {
          maven {
            url = uri("https://plugins.gradle.org/m2/")
          }
        }
        dependencies {
          classpath("com.mlegy.linkester:gradle-plugin:0.0.5")
        }
      }
      
      apply(plugin = "com.mlegy.linkester")

    Please note that the gradle plugin will try to find all deep links in all modules in your App, so applying it in only one module (app module) is enough to collect all deep links from other feature modules too.

    Please also note the auto generated file is only generated for debuggable build variants, so if you use the lib in non-debuggable build variants (which you shouldn't) no auto collected deep links will be there in the library activity.

    1. Manually add your most common used deep links yourself. The second option you can use is to provide a json file with most common deep links in your app. You can do that by creating a raw json file in res/values the file must be named linkester_manually_added_links.json It should be a list of deep links where each link is an object of title and link fields Example:
      [  
        {  
          "title": "Home",  
          "link": "https://app.melegy.com/home"  
        },  
        {  
          "title": "Item details",  
          "link": "https://app.melegy.com/list?id=12"  
        }
      ]

Credits


🙏 If you like Linkester you can show support by starring and/or sponsoring 💟 this repository.

License

Copyright 2021 Ahmad Melegy.

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.
You might also like...
The coding challenge elbotola android test
The coding challenge elbotola android test

Introduction The coding challenge(s) below will be used to assess your familiarity with the Android development environment, relevant Android related

Android background tint test project

Android Background Tint References https://developer.android.com/reference/android/view/View#attr_android:background https://developer.android.com/ref

PowerMock is a Java framework that allows you to unit test code normally regarded as untestable.
PowerMock is a Java framework that allows you to unit test code normally regarded as untestable.

Writing unit tests can be hard and sometimes good design has to be sacrificed for the sole purpose of testability. Often testability corresponds to go

TestObserver to easily test LiveData and make assertions on them.
TestObserver to easily test LiveData and make assertions on them.

JCenter Update LiveData Testing is currently published on JCenter - it will serve packages until February 1st, 2022. LiveData Testing packages will be

PowerMock is a Java framework that allows you to unit test code normally regarded as untestable.
PowerMock is a Java framework that allows you to unit test code normally regarded as untestable.

Writing unit tests can be hard and sometimes good design has to be sacrificed for the sole purpose of testability. Often testability corresponds to go

Powerful, elegant and flexible test framework for Kotlin with additional assertions, property testing and data driven testing
Powerful, elegant and flexible test framework for Kotlin with additional assertions, property testing and data driven testing

Kotest is a flexible and comprehensive testing tool for Kotlin with multiplatform support. To learn more about Kotest, visit kotest.io or see our quic

Barista makes developing UI test faster, easier and more predictable. Built on top of Espresso
Barista makes developing UI test faster, easier and more predictable. Built on top of Espresso

Barista makes developing UI test faster, easier and more predictable. Built on top of Espresso, it provides a simple and discoverable API, removing most of the boilerplate and verbosity of common Espresso tasks. You and your Android team will write tests with no effort.

Test for openbank application

openbank-test Test for openbank application Here you can find a simple test for the OpenBank application. It fetches some characters from the Marvel A

Proyecto de Kotlin y JPA sobre Hibernate, con algunos test usando JUnit 5 y Mockito.
Proyecto de Kotlin y JPA sobre Hibernate, con algunos test usando JUnit 5 y Mockito.

Contactos Kotlin JPA Ejemplos de una aplicación de manejo de contactos con Kotlin y JPA. Usando para testear la aplicación JUnit 5 y Mockito. Almacena

Comments
  • Fix: add the required to use target SDK greater than 30">

    Fix: add the required "exported" for to use target SDK greater than 30

    I was facing an issue when trying to upgrade an app's SDK version... I simply added the required line, but wasn't able to sync/build the lib due to missing credentials (for maven publishing I think). If you can test this and republish if it's working, that would be great.

    opened by omar-bdreldin 0
Owner
Ahmad Melegy
Software Engineer, Android
Ahmad Melegy
Lbc-test-app - Test Android Senior Leboncoin

Test Android Senior Leboncoin ?? Mathieu EDET Overview Min API version : 24 This

null 0 Feb 7, 2022
Kotlin wrapper for React Test Renderer, which can be used to unit test React components in a Kotlin/JS project.

Kotlin API for React Test Renderer Kotlin wrapper for React Test Renderer, which can be used to unit test React components in a Kotlin/JS project. How

Xavier Cho 7 Jun 8, 2022
Toster - Small test dsl based on adb commands that allows you to test the mobile application close to user actions

toster Small test dsl based on adb commands that allows you to test the mobile a

Alexander Kulikovskiy 31 Sep 1, 2022
Developers memes "TikTok"

Тестовое задание в Тинькофф Финтех Скриншоты Latest category Top category Приложение для просмотра gif Скролл между мемами как в тик токе Три категори

Igor Nechaev 1 Feb 11, 2022
Strikt is an assertion library for Kotlin intended for use with a test runner such as JUnit, Minutest, Spek, or KotlinTest.

Strikt is an assertion library for Kotlin intended for use with a test runner such as JUnit, Minutest, Spek, or KotlinTest.

Rob Fletcher 447 Dec 26, 2022
null 866 Dec 27, 2022
A powerful test framework for Android

Cafe A powerful test framework for Android named Case Automated Framework for Everyone. Home Page http://baiduqa.github.com/Cafe/ How to make Cafe dow

Baidu 367 Nov 22, 2022
A custom instrumentation test runner for Android that generates XML reports for integration with other tools.

Android JUnit Report Test Runner Introduction The Android JUnit report test runner is a custom instrumentation test runner for Android that creates XM

Jason Sankey 148 Nov 25, 2022
A powerful test framework for Android

Cafe A powerful test framework for Android named Case Automated Framework for Everyone. Home Page http://baiduqa.github.com/Cafe/ How to make Cafe dow

Baidu 367 Nov 22, 2022
Easily scale your Android Instrumentation Tests across Firebase Test Lab with Flank.

Easily scale your Android Instrumentation Tests across Firebase Test Lab with Flank.

Nelson Osacky 220 Nov 29, 2022