Android QA/Debug tools to speed up and streamline the development progress.

Overview

Android Dev Tools

Android Dev Tools is a library that contains various QA/Debug tools to speed up and streamline the development progress.

License Maven Central Maven Central Maven Central Maven Central Maven Central

Tools

Autofill Service

Autofill Service allows developers and QA to fill form inputs automatically with predefined form data.

How it Works?

It observes both activity and fragment lifecycle events via application class to detect layout inflations. After each inflation, it seeks for determined input views in the inflated layout. If it has all required inputs, then shows the autofill action. Autofill data that suitable with inflated form inputs are shown in the selection dialog.

Demo

Usage

AutofillService.Builder(this)
    .withFilePath("autofill.json")
    .build()

Configuration

Configuration Json file can be located in /debug/assets folder. You can define autofill data by following this structure. You should also note that the order of the defined form field resource id's and order of input values must match.

{
  "forms": [
    {
      "fields": ["inputEmail", "inputPassword"], // Form input resource id's
      "categories": {
        "Temporary Users": [
          { "description": "Has more then one order history.", "values": ["[email protected]", "123456"] },
          { "description": "Has more then one order history.", "values": ["[email protected]", "123456"] },
          { "description": "Has more then one order history.", "values": ["[email protected]", "123456"] },
          { "description": "Has more then one order history.", "values": ["[email protected]", "123456"] }
        ],
        "Test Users": [
          { "description": "Has more then one order history.", "values": ["[email protected]", "123456"] },
          { "description": "Has more then one order history.", "values": ["[email protected]", "123456"] },
          { "description": "Has more then one order history.", "values": ["[email protected]", "123456"] },
          { "description": "Has more then one order history.", "values": ["[email protected]", "123456"] }
        ]
      }
    }
  ]
}

Setup

"com.trendyol.android.devtools:autofill-service:$version"
"com.trendyol.android.devtools:autofill-service-no-op:$version"

Maven Central

Analytics Logger

Analytics Logger allows to log & inspect analytics events sent by client.

Demo

Usage

AnalyticsLogger.init(applicationContext)

AnalyticsLogger.report(
    key = "eventKey",
    value = "{\"category\": \"Cart\", \"data\": \"TestData\" }", // Should be Json string.
    platform = "EventPlatform",
)

Setup

"com.trendyol.android.devtools:analytics-logger:$version"
"com.trendyol.android.devtools:analytics-logger-no-op:$version"

Maven Central

Http Inspector (Alpha)

Http Inspector provides an OkHttp interceptor and web interface to inspect, manipulate in realtime and mock HTTP request and responses.

You can access the web client with http://deviceip:5001. If you are running on virtual a device, you need to forward port by adb forward tcp:5001 tcp:5001.

How it Works

Any request passing through the interceptor is held in the request queue to sync with each other. Held requests are being sent to the web interface via Ktor local webserver. After doing any changes in the response data using web interface, it waits for the acceptance, then sends manipulated response back to the request queue. The actual response data is replaced with the manipulated one and reflected to the application.

Mocking Requests

With this feature, we can imitate the API by preparing mock request and response data for the REST API that has not been prepared yet. It provides a web interface where we can create mock request and response data, and allows us to enable/disable the previously added mock data. The point to be considered is which requests will be answered with mock data rather than going to the real API is decided by comparing the URL, method and request body data of the request in the real request and mock data. If this data is completely matched, the mock response will be served to the client.

Usage

val client = OkHttpClient.Builder()
    .addInterceptor(MockInterceptor(context))
    .build()

Setup

"com.trendyol.android.devtools:http-inspector:$version"
"com.trendyol.android.devtools:http-inspector-no-op:$version"

Maven Central

Environment Manager

Environment Manager provides environment selection dialog can be opened from the app notifications with predefined environment data.

Setup

"com.trendyol.android.devtools:environment-manager:$version"

Maven Central

Debug Menu

Debug Menu provides a debug page build with predefined custom action and events.

Setup

"com.trendyol.android.devtools:debug-menu:$version"

Maven Central

License

Copyright 2022 Trendyol.com

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...
traffic debugging library for android
traffic debugging library for android

TrafficMonitor About Display traffic per Activity.Observing traffic is used by TrafficStats API. OkHttp Interceptor observer is implementing. Demo Bai

Sources for the LiveBoot app for rooted Android devices

This is the sauce for the LiveBoot app. License Copyright © 2011-2020 Jorrit Chainfire Jongma This code is released under the GPLv3. LICENSE, COPYING.

android logcat
android logcat

android logcat

A local ADB shell for Android!

LADB A local ADB shell for Android! How does it work? LADB bundles an ADB server within the app libraries. Normally, this server cannot connect to the

btrace(AKA RheaTrace) is a high performance Android trace tool which is based on Systrace
btrace(AKA RheaTrace) is a high performance Android trace tool which is based on Systrace

btrace README 中文版 btrace(AKA RheaTrace) is a high performance Android trace tool

Pluto: An on-device debugging framework for Android applications

Pluto is an on-device debugging framework for Android applications, which helps in the inspection of HTTP requests/responses, captures Crashes, and ANRs, and manipulates application data on the go.

🍼Debug Bottle is an Android runtime debug / develop tools written using kotlin language.
🍼Debug Bottle is an Android runtime debug / develop tools written using kotlin language.

🇨🇳 中文 / 🇯🇵 日本語 / 🇬🇧 English 🍼 Debug Bottle An Android debug / develop tools written using Kotlin language. All the features in Debug bottle are

🍼Debug Bottle is an Android runtime debug / develop tools written using kotlin language.
🍼Debug Bottle is an Android runtime debug / develop tools written using kotlin language.

🇨🇳 中文 / 🇯🇵 日本語 / 🇬🇧 English 🍼 Debug Bottle An Android debug / develop tools written using Kotlin language. All the features in Debug bottle are

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. 🔥The Android Startup library provides a straightforward, performant way to initialize components at the application startup. Both library developers and app developers can use Android Startup to streamline startup sequences and explicitly set the order of initialization.
🔥The Android Startup library provides a straightforward, performant way to initialize components at the application startup. Both library developers and app developers can use Android Startup to streamline startup sequences and explicitly set the order of initialization.

🔥The Android Startup library provides a straightforward, performant way to initialize components at the application startup. Both library developers and app developers can use Android Startup to streamline startup sequences and explicitly set the order of initialization.

Whereabouts: an android library which leverages Kotlin concurrency to streamline location fetching

Whereabouts Whereabouts is an android library which leverages Kotlin concurrency

Stetho is a debug bridge for Android applications, enabling the powerful Chrome Developer Tools and much more.

Stetho Stetho is a sophisticated debug bridge for Android applications. When enabled, developers have access to the Chrome Developer Tools feature nat

Speed up your Android development

Caffeine Speed up your Android development! A collection of utility classes that help make Android development faster (and safer!) Examples No more un

some android libraries to speed up development.
some android libraries to speed up development.

emo - speed up android development This repository contains series of libraries for android developers: ui-core: Contain some basic components such as

🚀🌆🏙 Display differences or animate progress between 2 images or Composables with overlay and customization options, zoom, pan gestures, and progress to observe properties for animating before-after progress

Compose Before-After Composables to display Images, or Composables as before and after composables to display differences or animate progress between

A customizable debug screen to view and edit flags that can be used for development in Jetpack Compose applications
A customizable debug screen to view and edit flags that can be used for development in Jetpack Compose applications

Tweaks A customizable debug screen to view and edit flags that can be used for development in Jetpack Compose applications To include the library add

Tweaks - A customizable debug screen to view and edit flags that can be used for development
Tweaks - A customizable debug screen to view and edit flags that can be used for development

A customizable debug screen to view and edit flags that can be used for developm

VasSonic is a lightweight and high-performance Hybrid framework developed by tencent VAS team, which is intended to speed up the first screen of websites working on Android and iOS platform.
VasSonic is a lightweight and high-performance Hybrid framework developed by tencent VAS team, which is intended to speed up the first screen of websites working on Android and iOS platform.

VasSonic: A Lightweight And High-performance Hybrid Framework VasSonic is a lightweight and high-performance Hybrid framework developed by tencent VAS

Library to simplify and speed up the creation and work with adapters with payload.

Novalles Library to simplify and speed up the creation and work with adapters with payload. How to use Annotate your UI model with UIModel Annotation.

Comments
  • Feature/analytics logger

    Feature/analytics logger

    A devTools module to inspect sent analytics events.

    Usage:

    AnalyticsLogger.init(this)
    
     AnalyticsLogger.report(
          key = "OnMainFragmentSeenEvent",
          value = EventModel("TestAction", "TestCategory", "TestScreen"),
          platform = EventPlatform.FIREBASE,
      )
    

    Screenshots: Screenshot_1643628048 image image

    opened by ibrahimsn98 0
  • Fix/update package structure

    Fix/update package structure

    -> Modules are separated as:

    • core
    • autofill-service
    • environment-manager
    • debug-menu

    -> Prevented autofill module META-INF exclude requirement on implemented app

    opened by ibrahimsn98 0
Owner
Trendyol Open Source
Trendyol Open Source
Under the Hood is a flexible and powerful Android debug view library. It uses a modular template system that can be easily extended to your needs, although coming with many useful elements built-in.

Under the Hood - Android App Debug View Library Under the Hood is a flexible and powerful Android debug view library. It uses a modular template syste

Patrick Favre-Bulle 217 Nov 25, 2022
A view that makes it easy to debug response data.(一个可以方便调试响应数据的视图。)

JSONRecyclerView 该控件可以方便调试响应数据,如下图所示: 控件的样式参考以下这个网站: JSON在线解析解析及格式化验证 项目的GitHub:JSONRecyclerView 项目Demo的GitHub:JSONRecyclerViewDemo 概述 控件是以RecyclerVie

TanJiaJun 28 Oct 7, 2022
🔪Swiss-army knife for Android testing and development 🔪 ⛺

ADB Enhanced ADB-Enhanced is a Swiss-army knife for Android testing and development. A command-line interface to trigger various scenarios like screen

Ashish Bhatia 938 Dec 20, 2022
A library for debugging android databases and shared preferences - Make Debugging Great Again

Android Debug Database Android Debug Database is a powerful library for debugging databases and shared preferences in Android applications Android Deb

AMIT SHEKHAR 8.1k Dec 29, 2022
A Read-Eval-Print-Loop server for Android and SQLite

Android DebugPort Android DebugPort is a drop-in utility which allows you to write and execute code within your app's context, at runtime, and from th

Jason Feinstein 148 Nov 14, 2022
Easy android exception tracer and handler.

Introduction Lup is a small android library that can help you to tracking bug that causes application stopped working (force close). Whiting this libr

icodeu 4 Sep 29, 2022
Cordova plugin for Android Serial USB communication (easily connect an Arduino board to an Android device).

PR-DC cordova-plugin-serialusb Cordova plugin for Android Serial USB communication. This plugin makes a connection to the external board trivial, for

PR-DC 3 May 8, 2022
Android library to record the network calls through the interceptor mechanism of the http clients.

Android Snooper Introduction Android Snooper is a library which helps in debugging issues while running the applications on android devices. One of th

Prateek 151 Nov 25, 2022