awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
frankiesardo avatar

frankiesardo/icepick

0
View on GitHub↗
3,725 stars·204 forks·Clojure·EPL-1.0·10 views

Icepick

Icepick is an Android instance state library and persistence tool designed to automate the serialization and restoration of object state within Android bundles. It provides a framework for maintaining application state during activity recreation, configuration changes, and process death.

The project utilizes annotation-driven code generation to create the boilerplate logic required for bundle manipulation and key management. It distinguishes itself through a provider-based serialization system that allows for custom serialization and deserialization logic when handling complex types that do not support standard bundling.

The library covers automated state restoration and bundle-key mapping to ensure consistent data retrieval. It also includes mechanisms for type-specific serialization to decouple data models from the underlying persistence logic.

Features

  • Activity Bundle Restorations - Automates the restoration of application state from Android bundles after activity recycling.
  • Persistent Application State - Handles bundle key creation and value manipulation to preserve application data across activity recreation.
  • Ephemeral State Persistence - Saves and restores temporary UI and data states specifically before system-initiated process destruction.
  • Annotation-Driven Code Generators - Generates the necessary boilerplate for bundle manipulation and key management using custom class markers at build time.
  • Android Libraries - Provides a pre-written software package designed to automate state serialization and restoration in Android applications.
  • Instance State Management - Saves and restores app state during configuration changes or process death to prevent data loss.
  • Property-to-Key Mapping - Links internal object properties to unique string keys to ensure consistent state retrieval from Android bundles.
  • Serialization Type Providers - Delegates the conversion of complex types to external provider classes to decouple serialization from data models.
  • Android Bundle Type Providers - Defines custom serialization and deserialization logic for complex types that do not support standard Android bundling.
  • Custom Android Bundle Serialization - Defines specific logic for how complex data types are converted into bundles for storage and retrieval on Android.
  • Custom State Serialization - Allows developers to define specific controls for how certain types are serialized into stable bundles.
  • Type-Specific Serialization - Applies custom bundling rules based on data types to handle non-standard object processing during state persistence.
  • Android Development Utilities - Simplified management of Android instance state.
  • ProGuard Configurations - Provides state restoration configuration rules.

Star history

Star history chart for frankiesardo/icepickStar history chart for frankiesardo/icepick

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does frankiesardo/icepick do?

Icepick is an Android instance state library and persistence tool designed to automate the serialization and restoration of object state within Android bundles. It provides a framework for maintaining application state during activity recreation, configuration changes, and process death.

What are the main features of frankiesardo/icepick?

The main features of frankiesardo/icepick are: Activity Bundle Restorations, Persistent Application State, Ephemeral State Persistence, Annotation-Driven Code Generators, Android Libraries, Instance State Management, Property-to-Key Mapping, Serialization Type Providers.

Which projects share features with frankiesardo/icepick?

Projects with overlapping indexed features include: blankj/androidutilcode — AndroidUtilCode is an Android utility library and system API wrapper designed to reduce development boilerplate. It… rt2zz/redux-persist — redux-persist is a state persistence library for Redux that saves and restores store state to a storage engine to… androidx/androidx — AndroidX is the official collection of Android Jetpack libraries for building Android applications. It provides a… android/android-ktx — android-ktx is a Kotlin extension library for the Android framework. It provides a collection of idiomatic helper… crazycodeboy/takephoto — TakePhoto is an Android media capture framework and image processing library designed to manage photo acquisition and… rt2zz/redux-persist-store — Redux Persist is a state management utility designed to maintain application data across sessions by synchronizing…

Projects sharing features with Icepick

These projects share indexed features with Icepick. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • blankj/androidutilcodeBlankj avatar

    Blankj/AndroidUtilCode

    33,657View on GitHub↗

    AndroidUtilCode is an Android utility library and system API wrapper designed to reduce development boilerplate. It provides a collection of helper classes for common tasks including system settings management, file I/O, and hardware access. The project distinguishes itself through a comprehensive toolset for device management and UI assistance. It includes specialized capabilities for monitoring battery status, managing system volume and brightness, and implementing UI helpers to prevent duplicate click events. It also provides a dedicated system for coordinate conversion between different m

    Javaandroidandroidxapp
    View on GitHub↗33,657
  • androidx/androidxandroidx avatar

    androidx/androidx

    6,010View on GitHub↗

    AndroidX is the official collection of Android Jetpack libraries for building Android applications. It provides a suite of backward-compatible APIs that expose modern platform features on older Android versions, ensuring consistent functionality across devices. The project is built around lifecycle-aware component architecture, with tools like ViewModel for preserving UI data across configuration changes, LiveData for lifecycle-aware data observation, and WorkManager for constraint-based background task scheduling. The project distinguishes itself through compile-time code generation and type

    Kotlin
    View on GitHub↗6,010
  • android/android-ktxandroid avatar

    android/android-ktx

    7,421View on GitHub↗

    android-ktx is a Kotlin extension library for the Android framework. It provides a collection of idiomatic helper functions that wrap native system calls to reduce boilerplate and improve code readability throughout Android application development. The library implements a set of tools for building styled strings, transformation matrices, and graphical elements. It utilizes a builder-based syntax to simplify the construction of system objects such as content values and data bundles. The project covers a broad range of capabilities, including the simplification of view manipulations and time

    androidkotlinkotlin-extensions
    View on GitHub↗7,421
  • crazycodeboy/takephotocrazycodeboy avatar

    crazycodeboy/TakePhoto

    7,230View on GitHub↗

    TakePhoto is an Android media capture framework and image processing library designed to manage photo acquisition and manipulation. It provides a toolkit for capturing new images via the device camera and selecting existing images from the system gallery or local file storage. The framework distinguishes itself through automatic activity and session state restoration, which recovers the capture process after the system recycles an activity. It also includes a unified handler for managing runtime media permissions for camera and storage access across different Android versions. The library co

    Javaandroidandroid-croppercamera
    View on GitHub↗7,230
Compare all 30 related projects→