• Stars
    star
    104
  • Rank 329,180 (Top 7 %)
  • Language
    Kotlin
  • Created over 3 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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

DeepLink Launcher(Beta)

DeepLink Launcher allows you, trigger deepLinks, and keep triggered deepLinks in history.

When a deepLink launched, it will be recorded to roomDB. And recorded datas will be listed under the History Tab.

And also you can import your deepLinks data to DeepLink Launcher. They will be listed under the APP'S DEEPLINK tab.

Demo

Initialize

You need to initialize it first

DeepLinkLauncher.init(this)

If you have a deepLink json file which is includes your app deepLinks, you can init them like that. That's an optional area.

DeepLinkLauncher.importAppDeepLinks(jsonString)

For importing external list to DeepLink Launcher, your json format be like that sample:

{
    "deepLinks": [
        "dl://?Page=Home&Tab=Man",
        "dl://?Page=AppLink&Data=1",
        "dl://?Page=AppLink&Data=2"
    ]
}

Usage

And just call this function to open DeepLink Launcher screen.

DeepLinkLauncher.show()

Setup

"com.trendyol.android.devtools:deeplink-launcher:$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.

More Repositories

1

baklava

Baklava is a design system provided by Trendyol to create a consistent UI/UX for app users.
TypeScript
1,250
star
2

mobile-app-automizer

You can automize iOS and Android app's build, upload and versioning processes via Mobile App Automizer CLI tool.
JavaScript
576
star
3

medusa

Android fragment stack controller
Kotlin
483
star
4

docker-shell

A simple interactive prompt for docker
Go
391
star
5

android-guidelines

Architecture and code guidelines at Trendyol when developing for Android.
FreeMarker
388
star
6

kink

KinK is a helper CLI that facilitates to manage KinD clusters as Kubernetes pods. Designed to ease clusters up for fast testing with batteries included in mind.
Go
375
star
7

react-carousel

Lightweight carousel component for react
TypeScript
293
star
8

gaos

HTTP mocking to test API services for chaos scenarios
Go
214
star
9

android-ui-components

Useful UI Components for Android Projects.
Kotlin
201
star
10

BubbleScrollBar

Kotlin
195
star
11

kediatR

Mediator implementation in Kotlin with native coroutine support
Kotlin
180
star
12

kafka-konsumer

Easy implementation of kafka consumer with built-in exception manager (kafka-cronsumer)
Go
147
star
13

stove

Stove: The easiest way of writing e2e tests for your JVM back-end API with Kotlin
Kotlin
146
star
14

mockingstar

Request mocking tool designed to simplify the process of http request mocking, network debugging, and UI tests for your applications.
Swift
144
star
15

four-key

four-key is a measurement tool written with golang for your repositories. This project inspired from Accelerate book.
Go
123
star
16

jest-testcontainers

Jest preset for running docker containers with your tests
TypeScript
122
star
17

ios-components

Swift
112
star
18

kubectl-view-webhook

πŸ‘€ ‼️ This projects aims to visualize critical parts of the admission webhook configuration resource
Go
108
star
19

ios-guidelines

95
star
20

kubectl-easy-rollback

♻️ Now you can easily rollback to previous deployed images whatever you want on k8s environment
Go
93
star
21

Jdempotent

Make your consumer, API, etc. idempotent easily.
Java
89
star
22

baklava-react-native

TypeScript
89
star
23

quarkify

An awesome lightweight React UI Component library
TypeScript
83
star
24

perfanalytics

Web Performance Metrics
TypeScript
82
star
25

go-dcp

The Go implementation of the Couchbase DCP with various features
Go
81
star
26

go-dcp-elasticsearch

The Go implementation of the Couchbase to Elasticsearch with DCP.
Go
74
star
27

kafka-cronsumer

Cron based Kafka exception consumer with the power of auto retry & concurrency
Go
68
star
28

go-dcp-kafka

The Go implementation of the Couchbase to Kafka with DCP.
Go
67
star
29

ios-architecture-decision-logs

60
star
30

gurubu

Simple, Fast, and Practical Task Estimation and Tech Grooming. Live demo below πŸ‘‡
TypeScript
59
star
31

Transporter

Transporter is an open-source data transferring tool developed by Trendyol with love 🧑
C#
50
star
32

code-playground

CodePlayground is a playground tool for go and rust language.
Go
47
star
33

mockingstar-ios

Mocking Star SPM helper library for iOS applications.
Swift
46
star
34

dom-event-tracker

Dynamically tracks mutations and listens for click and seen events
JavaScript
45
star
35

sidecache

Sidecar cache for kubernetes applications.
Go
42
star
36

boru

Boru is a pipeline solution
Kotlin
38
star
37

mockingstar-android

Mocking Star Kotlin helper library for Android applications.
Kotlin
38
star
38

go-dcp-couchbase

The Go implementation of the Couchbase to Couchbase with DCP.
Go
37
star
39

Loki

Loki provides an easy way to handle locking scenarios on distributed systems.
C#
35
star
40

kafka-shovel

Go
35
star
41

wolfichef

Secure image creator with wolfi packages.
Go
33
star
42

cbef

GitOps Capability Provider for Couchbase Eventing Functions πŸš€
Go
33
star
43

Trendyol.App

Application wrapper.
C#
30
star
44

k8s-webhook-certificator

πŸ” πŸ—’οΈ Creating K8S Secret which type is TLS that includes corresponding client certificates which are signed by K8S CA and private key
Go
30
star
45

supra

Circuit breaking http client for NodeJs. And it is fast...
JavaScript
29
star
46

MapsKit

Kotlin
28
star
47

overlog

Golang Logging with Mapped Diagnostic Context
Go
28
star
48

trendyol.github.io

This repository contains the source of the http://trendyol.github.io
HTML
26
star
49

nodejs-logger

Generic NodeJs Logger for storefront applications
TypeScript
25
star
50

pollgroo

TypeScript
25
star
51

swagger-parser-burp-extension

Python
25
star
52

kafka2rabbit

Kafka to rabbit go application
Go
24
star
53

teg

Teg is a library for managing feature toggles. It aims to allow to create and access to feature toggles in Golang easily and quickly!
Go
22
star
54

Osiris

Osiris, lord of the dead and rebirth
Kotlin
20
star
55

ios-tuist-remote-cache-example

πŸ“¦πŸ“± Example of Vapor app built using the tuist remote cache feature.
Swift
19
star
56

AppSec

Java
19
star
57

kafka-wrapper

Go
19
star
58

smurfs

Easy way to build Micro-CLI Architecture for Developer Platform Teams
Go
18
star
59

trendyol-scheduler-service

Java
18
star
60

kafka-retry-job

Kafka Retry Job is an open-source project for moving Kafka messages from error topics to retry topics, developed by Trendyol with love 🧑
C#
16
star
61

kubernetes-operator-api

The Kubernetes API is a sample Kubernetes operator API using the Java Kubernetes Client. The API is designed for master-worker deployment to satisfy the requirements.
Java
16
star
62

stately

Stately is a library for managing different states of a content in Jetpack Compose.
Kotlin
16
star
63

dynamic-render

πŸ’Έ Optimizes SEO by dynamically rendering javascript powered websites
TypeScript
15
star
64

BottomPopup

BottomPopup provides a popup-like presentation style to any view controller
Swift
15
star
65

Confluent.Kafka

C#
14
star
66

safe-redirect

library which resolves open-redirection vulnerability when we need to make redirection to a path taken from query string.
TypeScript
14
star
67

kafkathena-jakarta

Java
14
star
68

react-intersection-images

React lazy load images with IntersectionObserver.
TypeScript
13
star
69

redis-slack-bot

Redis Slack Bot
Java
13
star
70

vault-plugin-database-yugabytedb

Go
12
star
71

network-status

Get network status of device
TypeScript
12
star
72

trendyol-consul-template-injector

🐳 This project is impletation of "Admission Webhook Controller" of k8s , made possible to inject consul-template image as a init and sidecar container.
Go
12
star
73

react-webcomponent-poc

Using Web Components API with React. A POC and a case study.
TypeScript
11
star
74

micro-trendyol

A Micro Trendyol designed by using Hexagonal Architecture + DDD + CQRS + SAGA
11
star
75

metrics

Export four key metrics of your repositories in CSV format
Go
11
star
76

otel-kafka-konsumer

open telemetry wrapper for kafka-go and kafka-konsumer
Go
11
star
77

kube-port-finder

kube-pf is a command line tool that find available ports on kubernetes
Go
11
star
78

debezium-with-smt

Java
10
star
79

consul-template-demo

Shell
10
star
80

codex

TypeScript
9
star
81

sonar-stryker-net-plugin

Java
9
star
82

dynamic-config-listener

Dynamic Config Listener
TypeScript
9
star
83

AutoFac.Extras.NLog.DotNetCore

Autofac Logging Module for NLog. Ported to .NET Standard 2.0 for .NET Core.
C#
8
star
84

go-future

Go routines with wait ability.
Go
8
star
85

verg

Semantic versioning CLI
Go
8
star
86

Commander-AS-Plugin

Kotlin
7
star
87

gomapper

An auto mapping tool for Golang DTOs
Go
6
star
88

CorrelationId

CorrelationId middleware for Dotnet projects
C#
6
star
89

ty-cookie-helper

simple cookie helper that provides functions to CRUD cookies
TypeScript
6
star
90

nodejs-fixture-repository

TypeScript
6
star
91

rate-limiting-with-ksql

Async Rate Limiting with ksqlDB
Java
6
star
92

openstack-swift-sdk

Openstack Swift SDK
TypeScript
6
star
93

kafkathena-commons

Smart, Fast, Customizable Consumer Configurations Common Utility Library
Java
6
star
94

apisix-plugins

Our downstream plugins (or modifications) for Apache APISIX.
Lua
5
star
95

infobip-client

Go
5
star
96

goncolos

Goncolos is simple wrapper top of confluent-kafka-dotnet
C#
4
star
97

express-validate-decorator

Validate expressjs request body and query.
TypeScript
4
star
98

ratelimit-operator

Istio rate limit operator
Go
4
star
99

wolfichef-fe

Wolfichef front-end project
Vue
4
star
100

jwt-generator

Java
4
star