Skip to content

StackSense is an offline-first Android app that analyzes installed applications to detect their tech stack (Kotlin, Flutter, React Native), 50+ libraries, and permissions.

License

Notifications You must be signed in to change notification settings

Jaypatelbond/StackSense

Repository files navigation

StackSense πŸ”

StackSense Logo

Analyze installed Android apps to discover their programming languages, cross-platform frameworks, and third-party libraries. Reverse-engineer your app ecosystem. 100% Offline.

Kotlin Jetpack Compose Material 3 API License

✈️ Works 100% Offline - No Internet Required


✨ Features

Feature Description
πŸ“± App List View all installed apps in a beautiful Material 3 list
πŸ” Search Filter apps by name or package
🏷️ Language Detection Identify Kotlin, Java, and Native (C/C++) code
🌐 Cross-Platform Detection Detect Flutter, React Native, Xamarin, Unity, Cordova, Qt, KMP
πŸ“š Library Detection Detect 50+ popular Android libraries
🎨 Material You Dynamic theming based on your wallpaper (Android 12+)
πŸŒ™ Dark Mode Full dark mode support
πŸ›‘οΈ Permissions View detailed requested permissions list
πŸ“Š Export Export analysis to JSON or save APK to device
πŸ“€ Share Share analysis results as text
✈️ Offline Works completely offline

πŸ“Έ Screenshots


πŸ”¬ How It Works

StackSense analyzes APK files locally on your device without requiring any internet connection:

Language Detection

  • Kotlin: Scans for kotlin/Metadata entries in DEX files
  • Java: Default for JVM bytecode without Kotlin markers
  • Native: Checks for .so files in lib/ directories

Cross-Platform Framework Detection

Framework Detection Method
Flutter libflutter.so + flutter_assets/ folder
React Native libreactnativejni.so + index.android.bundle
Xamarin libmonodroid.so + Mono assemblies
Cordova/Ionic www/ folder with cordova.js
Unity libunity.so + assets/bin/Data/
Qt libQt5Core.so or libQt6Core.so
Kotlin Multiplatform kotlinx/ packages with common modules

Library Detection

Scans DEX files for known package prefixes of 50+ popular libraries:

πŸ“š Detectable Libraries

Networking

  • Retrofit, OkHttp, Volley, Ktor, Apollo GraphQL

Image Loading

  • Glide, Coil, Picasso, Fresco

Dependency Injection

  • Hilt, Dagger, Koin, Toothpick

Database

  • Room, Realm, SQLDelight, greenDAO

Reactive Programming

  • RxJava 2/3, Kotlin Coroutines, Kotlin Flow

Analytics

  • Firebase Analytics, Google Analytics, Amplitude, Mixpanel, Segment

Advertising

  • AdMob, Facebook Audience Network, Unity Ads, AppLovin, ironSource

UI Components

  • Lottie, Epoxy, Material Components, PhotoView

Serialization

  • Gson, Moshi, Kotlinx Serialization, Jackson

Crash Reporting

  • Firebase Crashlytics, Sentry, Bugsnag, Instabug

Logging

  • Timber, Logger

Architecture

  • Orbit MVI, Mavericks

Security

  • AndroidX Security, Tink

And many more...


πŸ›  Tech Stack

Category Technology
Language Kotlin 2.1
UI Framework Jetpack Compose
Design System Material 3 (Material You)
Architecture MVVM + Clean Architecture
Dependency Injection Hilt
Navigation Compose Navigation
Async Kotlin Coroutines + Flow
Image Loading Coil 3
Min SDK API 26 (Android 8.0)
Target SDK API 35

πŸ“¦ Project Structure

app/src/main/java/com/stacksense/
β”œβ”€β”€ di/                    # Hilt dependency injection
β”‚   └── AppModule.kt
β”œβ”€β”€ data/
β”‚   β”œβ”€β”€ model/            # Data classes
β”‚   β”‚   └── AppModels.kt
β”‚   β”œβ”€β”€ repository/       # Data sources
β”‚   β”‚   └── AppRepository.kt
β”‚   β”œβ”€β”€ export/           # Export & file handling
β”‚   β”‚   └── AnalysisExporter.kt
β”‚   └── analyzer/         # APK analysis logic
β”‚       β”œβ”€β”€ ApkAnalyzer.kt
β”‚       └── LibrarySignatures.kt
β”œβ”€β”€ ui/
β”‚   β”œβ”€β”€ theme/            # Material 3 theming
β”‚   β”‚   β”œβ”€β”€ Theme.kt
β”‚   β”‚   └── Type.kt
β”‚   β”œβ”€β”€ components/       # Reusable composables
β”‚   β”‚   β”œβ”€β”€ AppCard.kt
β”‚   β”‚   └── LibraryChip.kt
β”‚   β”œβ”€β”€ screens/
β”‚   β”‚   β”œβ”€β”€ home/         # Main app list
β”‚   β”‚   β”‚   β”œβ”€β”€ HomeScreen.kt
β”‚   β”‚   β”‚   └── HomeViewModel.kt
β”‚   β”‚   └── detail/       # App details
β”‚   β”‚       β”œβ”€β”€ DetailScreen.kt
β”‚   β”‚       └── DetailViewModel.kt
β”‚   └── navigation/       # Navigation setup
β”‚       └── AppNavigation.kt
β”œβ”€β”€ StackSenseApplication.kt
└── MainActivity.kt

πŸš€ Getting Started

Prerequisites

  • Android Studio Ladybug (2024.2.1) or newer
  • JDK 17+
  • Android SDK 35

Build Instructions

  1. Clone the repository

    git clone https://github.com/yourusername/StackSense.git
    cd StackSense
  2. Open in Android Studio

    • File β†’ Open β†’ Select the StackSense folder
  3. Build the project

    ./gradlew assembleDebug
  4. Install on device

    ./gradlew installDebug

⚠️ Permissions

This app requires the QUERY_ALL_PACKAGES permission to scan installed applications.

Note: Due to Google Play policies, apps using this permission must declare a valid use case. This app is intended for personal/educational use to understand app technologies.


🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ™ Acknowledgments

  • Jetpack Compose - Modern Android UI toolkit
  • Material 3 - Design system by Google
  • Hilt - Dependency injection
  • All the amazing open-source libraries that make Android development better

Made with ❀️ using Kotlin & Jetpack Compose

If you found this project helpful, please ⭐ the repository!

About

StackSense is an offline-first Android app that analyzes installed applications to detect their tech stack (Kotlin, Flutter, React Native), 50+ libraries, and permissions.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Languages