Giter Site home page Giter Site logo

tocheskey / alpha Goto Github PK

View Code? Open in Web Editor NEW

This project forked from legoless/alpha

0.0 2.0 0.0 16.57 MB

Next generation debugging framework for iOS

Home Page: https://github.com/Legoless/Alpha

License: MIT License

Ruby 0.41% Objective-C 98.94% C 0.39% Shell 0.26%

alpha's Introduction

alpha

ย 

![Issues on Waffle](https://img.shields.io/badge/issues on-Waffle-blue.svg) ![Built by Dominus](https://img.shields.io/badge/built by-Dominus-brightgreen.svg) Build Status ![Obj-C Code](https://img.shields.io/badge/code in-Objective--C-yellow.svg) Pod Version Pod Platform Pod License

Alpha is an idea of the next generation debugging framework for iOS applications. It combines multiple debugging tools built on top of a simple, unified API. It lives entirely in your app sandbox and collects information during your application lifetime. It is very easy to integrate and requires no code changes.

It is currently a work in progress and might be too unstable to be used in real environment yet. Feel free to open GitHub issues.

intro

Features

Features are separated into multiple plugins, which can be enabled or disabled, depending on application requirements.

  • Application - displays a list of all installed applications on the device.
  • Bonjour - contains a simple Bonjour server allowing Alpha to work over local Wi-Fi network.
  • Bootstrap - checks for KZBootstrap environments and allows modifying them in real-time.
  • Console - displays console logs (logged by NSLog) inside the application.
  • Event - logs and displays application wide events such as background state transitions and view controller appearances.
  • File - allows browsing the sandboxed file system and previewing common file types, such as images, videos and text.
  • Global - information plugin displays linked frameworks, libraries and classes.
  • Heap - allows inspection of active object instances on ther heap and helps with debugging memory errors.
  • Interface - plugin is a specific plugin and is required to display Alpha menu interface and actions.
  • Network - logs network connections made using NSURLSession and NSURLConnection API's.
  • Notification - displays scheduled and fired local notifications, received push notifications and notification permissions.
  • Object - allows for inspection of any class or object in the application, including NSUserDefaults, arrays and dictionaries.
  • Remote - plugin allows connecting to Alpha on another device.
  • Screenshot - plugin allows taking screenshots of the application with a single action.
  • State - allows inspecting the device state and settings, such as locale, time and available memory.
  • Touch - plugin displays touches on screen when activated.
  • View - allows view hierarchy manipulation and inspection in real-time.

Currently work in progress:

0.3.0

  • Entire Application State Snapshot
  • Recording touches and replaying actions
  • In-app debugger

Themes

Alpha is meant to work with any application, but the default dark theme does not always fit best with the application color scheme.

To fit in with any application Alpha has theme support, which allows you to choose the color palette you wish to display Alpha in.

Default Formentera Notio

There are 6 themes available:

If is also possible to create your own theme and use it in Alpha system.

Read more on Themes.

Triggers

Triggers are a way to activate Alpha interface from your application. By default Alpha provides two triggers:

  • Shake Trigger - Activates when device is shaken two times in less than 5 seconds.
  • Tap Trigger - Activates when 3 fingers are pressed for 3 seconds anywhere in the application.

Both triggers are activated by default. Alternatively you can implement your own trigger or use the manual trigger.

Read more on Triggers.

Integration

To use Alpha in your project, all you need to do is add a CocoaPods library:

pod 'Alpha'

This automatically includes all plugins and features. To avoid clashes with any libraries used in application, all Alpha classes use ALPHA prefix (even classes ported from other libraries). The recommended way is to ignore Alpha version and always use the latest version, to ensure best stability possible.

You can also pick only the plugins you need manually.

pod 'Alpha/Bonjour'
pod 'Alpha/Interface'
pod 'Alpha/State'

To use automatic integration feature, add Integration subspec (when using Alpha pod, it is automatically included).

pod 'Alpha/Integration'

Alpha supports iOS 8 and up. Not all features are available on all versions.

Read more on Integration.

The Story

Alpha originally started as an unofficial fork from FLEX (Flipboard Explorer). It began with a desire to add multiple features to FLEX, but looking at it more and more, it was obvious that many architectural changes were required to support remote clients. Those kind of changes are the hardest to merge into original repository without breaking multiple features, it was obvious that it fits more to create a separate repository.

So Alpha was converted into a separate repository and work began on top of that. Many features were added and there are many architectural changes under the hood. Alpha is now not a separate tool, but a framework that offers a full API. Features from tools are now working on top of plugin API, which allows dynamic loading and incredible extensibility.

Documentation

The entire Alpha documentation is available on Wiki and on CocoaDocs.

Contributions

To contribute to Alpha, please open pull requests. We warmly welcome any feature implementations or improvements, bug fixes, documentation or anything else you can think of.

Thanks

This project would not be possible without all the work done by respected community contributors. Thanks to all contributors of the following projects:

Contact

Dal Rupnik

License

Alpha is released under the MIT license. See LICENSE file for more information.

alpha's People

Contributors

daidoujichen avatar javisoto avatar legoless avatar odnairy avatar raphaelschaad avatar ryanolsonk avatar studentdeng avatar

Watchers

 avatar  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.