Code Monkey home page Code Monkey logo

android_dbinspector's Introduction

Download Validate Gradle Wrapper Code analysis CodeFactor codecov

DbInspector

UI

DbInspector provides a simple way to view the contents of the in-app database for debugging purposes. There is no need to pull the database from a connected device. This library also supports inspecting of the SQLite databases created by CouchBase Lite out of the box. With this library you can:

  • preview all application sandbox databases
  • import single or multiple databases at once
  • search, delete, rename, copy, share a database
  • preview tables, views and triggers
  • preview table or view pragma
  • delete table contents
  • drop view or trigger
  • search table, view or trigger
  • sort table, view or trigger per column
  • execute any valid SQL command in editor per database connection

Getting started

To include DbInspector in your project, you have to add buildscript dependencies in your project level build.gradle or build.gradle.kts:

Groovy

buildscript {
    repositories {
        mavenCentral()
    }
}

KotlinDSL

buildscript {
    repositories {
        mavenCentral()
    }
}

Then add the following dependencies in your app build.gradle or build.gradle.kts :

Groovy

debugImplementation "com.infinum.dbinspector:dbinspector:5.4.9"
releaseImplementation "com.infinum.dbinspector:dbinspector-no-op:5.4.9"

KotlinDSL

debugImplementation("com.infinum.dbinspector:dbinspector:5.4.9")
releaseImplementation("com.infinum.dbinspector:dbinspector-no-op:5.4.9")

Usage

DbInspector can be invoked explicitly or implicitly.

  • explicitly - call DbInspector.show() anywhere and anytime that you see fit, like onClick methods, lambdas or similar.
  • implicitly - when you add the dbinspector package an Activity alias is automatically merged into your application manifest that in return creates a launcher icon for DbInspector, but when you add the dbinspector-no-op the same Activity alias node is automatically removed from your application manifest. Implicit way can be tweaked to achieve desired behaviour as demonstrated in an example below.

Explicit

DbInspector.show()

Implicit If you use dbinspector package but do not want an additional automatic launcher icon merged in and generated.

<!--suppress AndroidDomInspection -->
<activity-alias
    android:name="com.infinum.dbinspector.DbInspectorActivity"
    tools:node="remove" />

If you use DbInspector for a specific flavor and need to override merged in launcher label, you can provide a String resource in your project exactly like this:

<string name="dbinspector_launcher_name">Sample Debug</string>

Please do mind and copy over the suppression comment line too, if you need it. Further modification can be done according to rules of manifest merging and attributes of activity-alias XML node.

Editor

Editor

DbInspector has a build in editor scoped per database connection currently used.
It offers autocomplete of SQLite3 keywords and functions, current table and column names.
Built in editor also provides a history of executed statements, not matter if they were successful or not.
History of statements is persisted between sessions and can be cleared on demand at any point.
Panes between editors' input and result are scalable and can be adjusted by dragging the splitter between them.
Landscape mode is supported too for better result preview of large datasets.

Logging

DbInspector provides a independent and built in logger mechanism. Per default logger is initiated as an EmptyLogger omitting any output whatsoever.
In case logs output is required, AndroidLogger should be used as shown below:

DbInspector.show(logger = AndroidLogger())

Additionally, AndroidLogger uses Level to filter out between info, debug, error or no messages at all.

Requirements

Minimum required API level to use DbInspector is 21 known as Android 5.0, Lollipop. As of 4.0.0 version, AndroidX is required. If you cannot unfortunately migrate your project, keep the previous version until you get the opportunity to migrate to AndroidX. DbInspector is written entirely in Kotlin, but also works with Java only projects and all combinations of both.

License

Copyright 2020 Infinum

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.

Credits

Maintained and sponsored by Infinum.

android_dbinspector's People

Contributors

reisub avatar bojankoma avatar domagojkorman avatar prashamtrivedi avatar ignaciotcrespo avatar orionlee avatar aexyn avatar bclymer avatar jakoss avatar johngorithm avatar jonatanplesko avatar melcha avatar nicopico-dev avatar rkrsgithub avatar anacar avatar zplesac avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.