All Projects → kernel0x → finch

kernel0x / finch

Licence: Apache-2.0 license
🖥 Debug menu library for Android apps with supports network activity logging and many other useful features.

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to finch

Chucker
🔎 An HTTP inspector for Android & OkHTTP (like Charles but on device)
Stars: ✭ 2,169 (+5064.29%)
Mutual labels:  okhttp, okhttp3, okhttp-interceptor
Debuguisystem
Create a runtime menu system with buttons and windows for debugging in one line of code.
Stars: ✭ 48 (+14.29%)
Mutual labels:  menu, debug
WanAndroid
wanandroid的Kotlin版,采用Android X
Stars: ✭ 20 (-52.38%)
Mutual labels:  okhttp, okhttp3
metrics-okhttp
An OkHttp HTTP client wrapper providing Metrics instrumentation of connection pools, request durations and rates, and other useful information.
Stars: ✭ 18 (-57.14%)
Mutual labels:  okhttp, okhttp3
Beagle
A smart, reliable, and highly customizable debug menu library for Android apps that supports screen recording, network activity logging, and many other useful features.
Stars: ✭ 287 (+583.33%)
Mutual labels:  menu, debug
RxHttp
基于RxJava2+Retrofit+OkHttp4.x封装的网络请求类库,亮点多多,完美兼容MVVM(ViewModel,LiveData),天生支持网络请求和生命周期绑定,天生支持多BaseUrl,支持文件上传下载进度监听,支持断点下载,支持Glide和网络请求公用一个OkHttpClient⭐⭐⭐
Stars: ✭ 25 (-40.48%)
Mutual labels:  okhttp, okhttp3
iMoney
iMoney 金融项目
Stars: ✭ 55 (+30.95%)
Mutual labels:  okhttp, okhttp3
Okhttps
如艺术一般优雅,像 1、2、3 一样简单,前后端通用,轻量却强大的 HTTP 客户端(同时支持 WebSocket 与 Stomp 协议)
Stars: ✭ 92 (+119.05%)
Mutual labels:  okhttp, okhttp3
Kotlin Networking
Kotlin Networking - An elegant networking library written in Kotlin
Stars: ✭ 88 (+109.52%)
Mutual labels:  okhttp, okhttp3
FastHttpClient
封装OkHttp3,对外提供了POST请求、GET请求、上传文件、下载文件、https请求、cookie管理等功能
Stars: ✭ 60 (+42.86%)
Mutual labels:  okhttp, okhttp3
Livedata Call Adapter
A simple LiveData call adapter for retrofit
Stars: ✭ 119 (+183.33%)
Mutual labels:  okhttp, okhttp3
Retrofiturlmanager
🔮 Let Retrofit support multiple baseUrl and can be change the baseUrl at runtime (以最简洁的 Api 让 Retrofit 同时支持多个 BaseUrl 以及动态改变 BaseUrl).
Stars: ✭ 1,961 (+4569.05%)
Mutual labels:  okhttp, okhttp3
krumo
Krumo: Structured information display solution for PHP
Stars: ✭ 74 (+76.19%)
Mutual labels:  debug
RailLink
Compact isolated version of J-Link v9.
Stars: ✭ 69 (+64.29%)
Mutual labels:  debug
HotSalesPOS
No description or website provided.
Stars: ✭ 14 (-66.67%)
Mutual labels:  okhttp3
simple-http
抽取一个简单 HTTP 的通用接口,底层实现根据具体引入依赖指定。
Stars: ✭ 38 (-9.52%)
Mutual labels:  okhttp3
vue-burger-button
🍔 vue-burger-button is a functional component, which is faster than a regular component, and is pretty small (JS min+gzip is lower than 700b and CSS min+gzip is lower than 400b).
Stars: ✭ 41 (-2.38%)
Mutual labels:  menu
menutray
An application menu through a GTK+ tray status icon.
Stars: ✭ 62 (+47.62%)
Mutual labels:  menu
exe2hex
Inline file transfer using in-built Windows tools (DEBUG.exe or PowerShell).
Stars: ✭ 284 (+576.19%)
Mutual labels:  debug
SanSessionToolbar
⚡ Session Toolbar that can be applied into Zend/Laminas DeveloperTools
Stars: ✭ 39 (-7.14%)
Mutual labels:  debug

Finch

Finch offers a customizable debug menu for Android app development. It does not affect production code. Developers can easily add their own custom debugging features with simple steps.

Gradle Dependency

Add it in your root build.gradle at the end of repositories:

allprojects {
    repositories {
        ...
        maven { url "https://jitpack.io" }
    }
}

Pick a UI implementation and add the dependency:

  • ui-activity - The debug menu as a new screen.
  • ui-bottom-sheet - The debug menu as a modal bottom sheet.
  • ui-dialog - The debug menu as a modal dialog.
  • ui-drawer - The debug menu as a side navigation drawer.
  • ui-view - The debug menu as a view.
  • noop - For release build.
dependencies {
    debugImplementation 'com.github.kernel0x.finch:ui-drawer:2.0.2'
    releaseImplementation 'com.github.kernel0x.finch:noop:2.0.2'
    debugImplementation 'com.github.kernel0x.finch:log-okhttp:2.0.2'
    releaseImplementation 'com.github.kernel0x.finch:log-okhttp-noop:2.0.2'
    debugImplementation 'com.github.kernel0x.finch:log:2.0.2'
    releaseImplementation 'com.github.kernel0x.finch:log-noop:2.0.2'
}

How to works

Initialize an instance of Finch (preferably in the Application's onCreate() method)

Finch.initialize(this)

Various customizations are set through the Configuration object.

Next, you need to add which components you want to display in the debug menu. Optionally, you can additionally configure logging and interception network events (with OkHttp).

Logging

To add log messages in Debug Menu simple calling Finch.log() and add FinchLogger to Configuration object.

OkHttp

Add FinchOkHttpLogger.logger to the method addInterceptor in building OkHttp Client and add FinchOkHttpLogger to Configuration object.

OkHttpClient.Builder()
    .addInterceptor(FinchOkHttpLogger.logger as Interceptor)
    .build()

Example initialize

Here is a minimal example that should work for most projects

Finch.initialize(
    application = this,
    configuration = Configuration(
        logger = FinchLogger,
        networkLoggers = listOf(FinchOkHttpLogger)
    ),
    components = arrayOf(
        Header(
            title = getString(R.string.app_name),
            subtitle = BuildConfig.APPLICATION_ID,
            text = "${BuildConfig.BUILD_TYPE} v${BuildConfig.VERSION_NAME} (${BuildConfig.VERSION_CODE})"
        ),
        Padding(),
        Label("Tools", Label.Type.HEADER),
        DesignOverlay(),
        AnimationSpeed(),
        ScreenCaptureToolbox(),
        Divider(),
        Label("Logs", Label.Type.HEADER),
        LifecycleLogs(),
        NetworkLogs(),
        Logs(),
        Divider(),
        Label("Other", Label.Type.HEADER),
        DeviceInfo(),
        AppInfo(),
        DeveloperOptions(),
        ForceCrash()
    )
)

Releases

Checkout the Releases tab for all release info.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].