• Stars
    star
    1,941
  • Rank 23,310 (Top 0.5 %)
  • Language
    Java
  • License
    MIT License
  • Created about 7 years ago
  • Updated 2 months ago

Reviews

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

Repository Details

App Debugging & Inspection Tool for Android

Hyperion

CircleCI Maven Central License MIT Public Yes

Hyperion Logo

Hyperion - App Inspection Tool

What is it?

Hyperion is a hidden plugin drawer that can easily be integrated into any app. The drawer sits discreetly πŸ™Š under the app so that it is there when you need it and out of the way when you don't. Hyperion plugins are designed to make inspection of your app quick and simple.

Please see our announcement blog post for a feature showcase.

Demo Attribute inspector

Third-Party Plugins

Be one of the first to create a third-party plugin. The plugin creation guide is a work in progress, but if you are feeling ambitious you can reference the plugins we have already created.

To create your own plugin, implement the Plugin interface and expose the implementation as a service. The plugins made available in this repository leverage Google's AutoService annotation processor to generate the service metadata and simplify the process.

How To Show Hyperion Plugin List

Once Hyperion is integrated into your app, simply shake your phone to activate. If you are running your app on an emulator, you can manually open the menu by calling Hyperion.open(Activity activity). You can also open the menu by selecting the foreground notification that appears while the client app is in the foreground.

Conditional Startup

Hyperion enables itself automatically for all Activities in your application. To disable for specific Activities, annotate them with @HyperionIgnore. To disable for all Activities, set a meta-data field in your AndroidManifest.xml:

    <meta-data
        android:name="com.willowtreeapps.hyperion.core.enableOnStart"
        android:value="false"/>

Hyperion#open(Activity) will have no affect if Hyperion has not been enabled. You can reenable for future Activities with Hyperion.enable().

To embed the Hyperion Plugin Menu into your own Activity, acquire a PluginViewFactory from Hyperion#getPluginViewFactory and call create(Activity):

View pluginView = Hyperion.getPluginViewFactory().create(activity);

See FactoryActivity for more details.

Sample App

Want to learn how to use Hyperion? The sample app will teach you!

Build the example project by cloning the repo, run ./gradlew assemble from the root directory, then open in Android Studio and run.

Requirements

min SDK 15

Download


Download via Maven:

<dependency>
  <groupId>com.willowtreeapps.hyperion</groupId>
  <artifactId>hyperion-core</artifactId>
  <version>0.9.34</version>
</dependency>

or Gradle:

debugImplementation 'com.willowtreeapps.hyperion:hyperion-core:0.9.34'

If you reference Hyperion from your code, you should also compile the no-op artifact for release variants. For most users, this will not be necessary:

releaseImplementation 'com.willowtreeapps.hyperion:hyperion-core-no-op:0.9.34'

Usage


Include the core library along with any number of plugins.

debugImplementation 'com.willowtreeapps.hyperion:hyperion-core:0.9.34'
debugImplementation 'com.willowtreeapps.hyperion:hyperion-attr:0.9.34'
debugImplementation 'com.willowtreeapps.hyperion:hyperion-build-config:0.9.34'
debugImplementation 'com.willowtreeapps.hyperion:hyperion-crash:0.9.34'
debugImplementation 'com.willowtreeapps.hyperion:hyperion-disk:0.9.34'
debugImplementation 'com.willowtreeapps.hyperion:hyperion-geiger-counter:0.9.34'
debugImplementation 'com.willowtreeapps.hyperion:hyperion-measurement:0.9.34'
debugImplementation 'com.willowtreeapps.hyperion:hyperion-phoenix:0.9.34'
debugImplementation 'com.willowtreeapps.hyperion:hyperion-recorder:0.9.34'
debugImplementation 'com.willowtreeapps.hyperion:hyperion-shared-preferences:0.9.34'
debugImplementation 'com.willowtreeapps.hyperion:hyperion-timber:0.9.34'

Adding Plugins

Hyperion plugins need to be added into the app at build time. By default, Hyperion automatically finds every plugin that is available in the project using the Java Service Locator.

Contributing to Hyperion

Contributions are welcome. Please see the Contributing guidelines.

Hyperion has adopted a code of conduct defined by the Contributor Covenant, the same used by the Swift language and countless other open source software teams.

Plugin Descriptions

The following is a list of all plugins that integrate with Hyperion. Please make a pull request if you would like to see your plugin here:

Core Plugins

Third Party Plugins

License

Hyperion is available under the MIT license. See the LICENSE file for more info.

About WillowTree

WillowTree Logo

We build apps, responsive sites, botsβ€”any digital product that lives on a screenβ€”for the world’s leading companies. Our elite teams challenge themselves to build extraordinary experiences by bridging the latest strategy and design thinking with enterprise-grade software development.

Interested in working on more unique projects like Hyperion? Check out our careers page.

More Repositories

1

spruce-android

Spruce Animation Library
Java
3,717
star
2

spruce-ios

Swift library for choreographing animations on the screen.
Swift
3,432
star
3

Hyperion-iOS

In-app design review tool to inspect measurements, attributes, and animations.
Objective-C
2,046
star
4

assertk

assertions for kotlin inspired by assertj
Kotlin
727
star
5

sign-in-with-apple-button-android

An Android library for Sign In with Apple
Kotlin
278
star
6

vocable-android

Vocable for Android
Kotlin
115
star
7

OAK

Library to address common hurdles in Android development
Java
110
star
8

android-instant-apps-demo

Java
108
star
9

vocable-ios

Vocable AAC for iOS - Empowering people to communicate with care takers and loved ones.
Swift
76
star
10

fuzzywuzzy-kotlin

Fuzzy string matching for Kotlin (JVM, native, JS, Web Assembly) - port of Fuzzy Wuzzy Python lib
Kotlin
74
star
11

cordux

Swift
61
star
12

scratch

Easy app data clearing and relaunching
Java
57
star
13

ukor

A Roku build tool with support for build flavors
Brightscript
48
star
14

ouroboros

Infinitely scrolling carousel for tvOS
Swift
48
star
15

wist

A linter for BrightScript
C++
43
star
16

rootx

Wrap sqlx in even more convenience
Go
37
star
17

rocute

beautiful ui components for roku development
Brightscript
36
star
18

PinkyPromise

A tiny Promises library.
Swift
33
star
19

trafficcop

Monitor your Android apps' data usage so you can take action if it's over a threshold.
Java
27
star
20

BlurredVideo-iOS

Applying a blur to a HTTP live stream
Swift
27
star
21

SimpleRecyclerViewDemo

A simple Android application demonstrating the RecyclerView/Adapter/ViewHolder pattern.
Java
26
star
22

react-formable

React Forms
TypeScript
25
star
23

lottie-player

A mac based player for Lottie
Swift
22
star
24

opentest4k

kotlin multiplatform implementation/bindings of opentest4j
Kotlin
20
star
25

android-svg-test

Android SVG sample project to demonstrate OAK's AnimatedSvgView
Java
17
star
26

hello-shared-kotlin

Shared kotlin lib between android and ios
Kotlin
16
star
27

WillowTreeScrollingTabController

Tab based container implementation for iOS written in Swift
Swift
13
star
28

catalyst-slack-service

Unconscious gender bias has been fueling the gender gap for far too long. We’re releasing the #BiasCorrect code in hopes that coders around the world will adapt it for whatever chat-based platforms they use in order to give more people access to this tool for change.
Java
12
star
29

tablediff

Swift
11
star
30

hinoki

A Language Server Protocol implementation for BrightScript
TypeScript
10
star
31

rokul-runnings

Roku Automation, written in TypeScript
TypeScript
10
star
32

wombats-api

Wombats API
Clojure
10
star
33

grove

Swift
8
star
34

WillowTreeReachability

Simple Swift class for monitoring network reachability.
Swift
6
star
35

fastlane-plugin-msbuild

MSBuild / Xamarin actions for Fastlane
Ruby
6
star
36

conductor-mobile

Conductor Mobile is a port of the Conductor Web Framework for iOS and Android
Java
6
star
37

dockertestapp

basic android app for usage in docker
Kotlin
5
star
38

vscode-ide-brightscript

Brightscript support for vscode
TypeScript
5
star
39

Sweetgum

A simple REST client built in C# using Avalonia
C#
5
star
40

palette-vs-the-dress

Java
4
star
41

wombats-web-client

Web Client for Wombats
Clojure
4
star
42

catalyst-bias-correct-service

A bias correction service
Java
4
star
43

acorn

Provides helper functionality for writing code generators (specifically for Go, in Go)
Go
4
star
44

intro-to-core-ml

An introduction to Core ML.
Swift
3
star
45

namegame_ios

The Name Game for iOS
3
star
46

xambuild

Build Xamarin projects outside of Visual Studio!
Python
3
star
47

wat-test-project

A bare skeleton for prospective WAT members to pick at.
3
star
48

ios-google-home-demo

Swift
3
star
49

IntroiOSExamples

A group of examples that are used for the WillowTree Intro to iOS Course
Swift
3
star
50

atom-ide-brightscript

TypeScript
3
star
51

iot-android-things-robot-arm

Kotlin
2
star
52

namegame_android

2
star
53

Sweetgum.Client

Sweetgum assists in the development and testing of APIs and applications that utilize APIs.
TypeScript
2
star
54

AXComponentKit

Experimental framework for more reliable iOS automation tests
Swift
2
star
55

capwic_event_info

Swift
1
star
56

slacksnax-server

JavaScript
1
star
57

friday-shots

Friday Shots rules, game runner, and results data
Python
1
star
58

battlebots-swift-front-end

A swift framework for building a BattleBots front-end.
Swift
1
star
59

smart-speaker-detector-sample-android

Finds an assortment of smart speakers
Kotlin
1
star
60

android-bootcamp

Sample app for Android bootcamp and associated issue tracking
Java
1
star
61

wombats-ios

iOS Frontend client for Wombats
Swift
1
star
62

namegame-cs

Name Game skeleton project for C#
1
star
63

slacksnax-slackCommand

JavaScript
1
star
64

wta-lighthouse-logger

JavaScript
1
star
65

code-analysis-web

HTML
1
star
66

maple-mosaic

Our in-office Lego wall - scripts for building out the images and printouts.
Ruby
1
star