# kickstarter/android-oss

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/kickstarter-android-oss).**

5,784 stars · 988 forks · Kotlin · Apache-2.0

## Links

- GitHub: https://github.com/kickstarter/android-oss
- Homepage: https://www.kickstarter.com/mobile
- awesome-repositories: https://awesome-repositories.com/repository/kickstarter-android-oss.md

## Topics

`android` `android-development` `frp` `functional-programming` `functional-reactive-programming` `kotlin-android` `rxjava`

## Description

This is the open-source Android application for Kickstarter, a crowdfunding platform that connects creators with backers. The app enables users to discover creative projects and campaigns, pledge financial support in exchange for tiered rewards, and share campaign details through social media and messaging platforms.

The application is built with a standard Android architecture that combines compile-time dependency injection, reactive data flows, and declarative UI binding. It uses Dagger 2 for wiring together services and repositories, RxJava for managing asynchronous operations, and a Model-View-ViewModel pattern with data binding to separate presentation logic from Android framework lifecycle concerns. Navigation is handled through a Fragment-based graph, while networking is managed via Retrofit with OkHttp and image loading through Picasso.

The app covers the core crowdfunding domain operations of campaign discovery, pledge management, and social sharing. It provides curated browsing interfaces for finding projects, a financial pledge system for backing campaigns and tracking active pledges, and sharing workflows that distribute campaign links through external messaging and social platforms.

## Tags

### Mobile Development

- [Crowdfunding Apps](https://awesome-repositories.com/f/mobile-development/crowdfunding-apps.md) — An Android application for discovering, backing, and sharing creative crowdfunding projects and campaigns.
- [Fragment Navigation Frameworks](https://awesome-repositories.com/f/mobile-development/fragment-navigation-frameworks.md) — Manages screen transitions and back-stack operations through a Fragment-based navigation graph.

### Business & Productivity Software

- [Crowdfunding Campaign Browsers](https://awesome-repositories.com/f/business-productivity-software/crowdfunding-campaign-browsers.md) — Provides a curated feed for browsing creative campaigns to find ideas worth backing financially. ([source](https://www.kickstarter.com/mobile))
- [Crowdfunding Campaign Discovery](https://awesome-repositories.com/f/business-productivity-software/crowdfunding-campaign-discovery.md) — Provides curated browsing interfaces for discovering creative projects and campaigns to back.
- [Crowdfunding Pledge Management](https://awesome-repositories.com/f/business-productivity-software/crowdfunding-pledge-management.md) — Provides a financial pledge system for backing campaigns and tracking active pledges with reward management.
- [Crowdfunding Pledge Systems](https://awesome-repositories.com/f/business-productivity-software/crowdfunding-pledge-systems.md) — Provides a financial pledge system for backing campaigns and tracking active pledges in exchange for rewards. ([source](https://www.kickstarter.com/mobile))
- [Campaign Link Sharers](https://awesome-repositories.com/f/business-productivity-software/project-statistics-sharing/campaign-link-sharers.md) — Send a campaign link to friends via social media or messaging apps to spread awareness. ([source](https://www.kickstarter.com/mobile))

### Software Engineering & Architecture

- [Compile-Time Dependency Injection Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/compile-time-dependency-injection-frameworks.md) — Uses Dagger 2 to generate dependency injection code at compile time, wiring the entire application graph.
- [Model-View-ViewModel](https://awesome-repositories.com/f/software-engineering-architecture/view-model-architectures/model-view-viewmodel.md) — Implements the MVVM pattern with data binding to separate presentation logic from Android lifecycle concerns.

### Web Development

- [Retrofit REST Clients](https://awesome-repositories.com/f/web-development/http-request-interceptors/intercepting-http-clients/retrofit-rest-clients.md) — Uses Retrofit with OkHttp to map REST endpoints to Java interfaces and manage HTTP connections.
- [RxJava Integrations](https://awesome-repositories.com/f/web-development/rxjava-integrations.md) — Manages asynchronous data flows and event chains using RxJava observable sequences and functional operators.

### Part of an Awesome List

- [Image Loading and Caching](https://awesome-repositories.com/f/awesome-lists/media/image-loading-and-caching.md) — Ships a Picasso-based image loading pipeline with asynchronous fetching and automatic caching for smooth scrolling.
- [Open Source Applications](https://awesome-repositories.com/f/awesome-lists/productivity/open-source-applications.md) — Official open-source Kickstarter Android app.

### Data & Databases

- [Reactive SQLite Libraries](https://awesome-repositories.com/f/data-databases/database-management-systems/database-engines/embedded-databases/sqlite-databases/reactive-sqlite-libraries.md) — Wraps SQLite database operations into observable streams that emit table changes for reactive UI updates.

### User Interface & Experience

- [Social Media Sharing Utilities](https://awesome-repositories.com/f/user-interface-experience/social-media-sharing-utilities.md) — Provides UI utilities for sharing project details to external social media and messaging platforms. ([source](https://www.kickstarter.com/mobile))
