Kickstarter for Android. Bring new ideas to life, anywhere.

Overview

Kickstarter for Android™

CircleCI codecov ktlint

Welcome to Kickstarter's open source Android app! Come on in, take your shoes off, stay a while—explore how Kickstarter's native squad has built and continues to build the app, discover our implementation of RxJava in logic- filled view models, and maybe even create an issue or two.

We've also open sourced our iOS app, written in Swift: check it out here. Read more about our journey to open source here.

Getting Started

Follow these instructions to build and run the project with mock data..

  1. Clone this repository.
  2. Download the appropriate JDK for your system. We are currently on JDK 8.
  3. Install Android Studio.
  4. cd into the project repo and run make bootstrap to bootstrap your Android development environment. Keep an eye on the output to see if any manual steps are required.
  5. Import the project. Open Android Studio, click Open an existing Android Studio project and select the project. Gradle will build the project.
  6. Run the app. Click Run > Run 'app'. After the project builds you'll be prompted to build or launch an emulator.

Documentation

While we're at it, why not share our docs? Check out the native docs we have written so far for more documentation.

Contributing

We intend for this project to be an educational resource: we are excited to share our wins, mistakes, and methodology of Android development as we work in the open. Our primary focus is to continue improving the app for our users in line with our roadmap.

The best way to submit feedback and report bugs is to open a Github issue. Please be sure to include your operating system, device, version number, and steps to reproduce reported bugs. Keep in mind that all participants will be expected to follow our code of conduct.

Code of Conduct

We aim to share our knowledge and findings as we work daily to improve our product, for our community, in a safe and open space. We work as we live, as kind and considerate human beings who learn and grow from giving and receiving positive, constructive feedback. We reserve the right to delete or ban any behavior violating this base foundation of respect.

Find this interesting?

We do too, and we’re hiring!

License

Copyright 2020 Kickstarter, PBC

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Comments
  • Error:Execution failed for task ':app:processExternalMin21DebugGoogleServices'. > File google-services.json is missing. The Google Services Plugin cannot function without it.

    Error:Execution failed for task ':app:processExternalMin21DebugGoogleServices'. > File google-services.json is missing. The Google Services Plugin cannot function without it.

    Error:Execution failed for task ':app:processExternalMin21DebugGoogleServices'.

    File google-services.json is missing. The Google Services Plugin cannot function without it. Searched Location: F:\android\android-oss-master\app\src\externalMin21\debug\google-services.json F:\android\android-oss-master\app\src\debug\externalMin21\google-services.json F:\android\android-oss-master\app\src\externalMin21\google-services.json F:\android\android-oss-master\app\src\debug\google-services.json F:\android\android-oss-master\app\google-services.json

    opened by YadoEmoji 11
  • Cant run make on Linux: Recipe for target

    Cant run make on Linux: Recipe for target "bootstraps, secrets' failed

    Hello, I am unable to run make on the project. Getting errors on bootstrap and secrets. What am I missing.

    I am running this on Linux machine. Attached is the output am getting on 'make bootstrap'

    make.txt

    opened by timkaboya 11
  • com.kickstarter.extensions.showSnackBar

    com.kickstarter.extensions.showSnackBar

    When i was trying to debugging the code to understand it i got a error. looking to the classes i found that you have a un resolve reference that is com.kickstarter.extensions.showSnackBar

    image

    opened by sbenitez10 9
  • Login Tout & Sign Up, GDPR style

    Login Tout & Sign Up, GDPR style

    what

    Updating the strings from the server. Removing Facebook copy. Updating the disclaimer.

    why

    | ̄ ̄ ̄ ̄ ̄ ̄| |          G          | |          D          | |         P           | |          R          | | _______| (\ _ /) || (•ㅅ•) || /   づ

    see

    cc @dannyalright @nnekab

    GDPR 🔐 
    opened by eoji 9
  • Recommendations info dialog

    Recommendations info dialog

    what

    Showing recommendations info, with tests (•̀ᴗ•́)و ̑̑

    how

    Updated strings. Added the new info icon. On user click, we show the alert. Test ✨

    why

    GIF

    c-c-c-check it out

    2018-05-23 14_56_24

    cc @dannyalright

    GDPR 🔐 
    opened by eoji 8
  • missing A Firebase API key

    missing A Firebase API key

    how to fix this crash Caused by: java.lang.IllegalArgumentException: Please set a valid API key. A Firebase API key is required to communicate with Firebase server APIs: It authenticates your project with Google.

    opened by tonptit 7
  • Bump gradle version

    Bump gradle version

    what

    Originally the plan was simply to bump version of gradle to 2.3.1 and gradle wrapper to 3.3

    This had some fall on effects as we were relying on: fragmentManager.getFragments()

    but this with the new gradle version this not shows correctly as hidden so we had to come up with another solution.

    how

    Keeping a static HashMap of the fragments by adapter position:

    private static Map<Integer, DiscoveryFragment> fragmentMap;
    

    seems to work very well. WeakReferences were tried but it seemed to cause many problems with fragments disappearing on config changes.

    Some important things with the implementation:

    /**
      * Don't pull directly from the map as it may be null
      */
      private @NonNull DiscoveryFragment safeGetFragment(final int position) {
        DiscoveryFragment fragment = fragmentMap.get(position);
        if (fragment == null) {
          fragment = getItem(position);
        }
    
        return fragment;
      }
    

    and also in the constructor for the adapter:

    if (fragmentMap == null) {
      fragmentMap = new HashMap<>();
    }
    

    If you don't do the null check the map will get wiped out on rotate etc which you don't want as the fragments themselves are still around.

    opened by coryroy 7
  • Error:Execution failed for task ':app:processExternalMin21DebugGoogleServices'. > No matching client found for package name 'com.kickstarter.kickstarter.debug'

    Error:Execution failed for task ':app:processExternalMin21DebugGoogleServices'. > No matching client found for package name 'com.kickstarter.kickstarter.debug'

    when i build the app, get a error -> Error:Execution failed for task ':app:processExternalMin21DebugGoogleServices'.

    No matching client found for package name 'com.kickstarter.kickstarter.debug'

    how can i fix the problem?

    opened by liuruimilk 7
  • make bootstrp error

    make bootstrp error

    bogon:android-oss-master DanielHan$ make bootstrap git submodule sync --recursive fatal: Not a git repository (or any of the parent directories): .git make: *** [submodules] Error 128 bogon:android-oss-master DanielHan$

    opened by Coder-DanielHan 7
  • Can't use source code

    Can't use source code

    I am very new to coding and I have tried everything searched everywhere but can't understand the meaning of - " cd in the project repo or how to run bootstrap " can someone help me because I tried to open this project without it and it's showing error

    opened by lalitsharmaking 6
  • [Enhancement] - Currency Preferences on Project Pages

    [Enhancement] - Currency Preferences on Project Pages

    What

    • User's that have selected and chosen currency can now view projects in their preferred currency.
    • If the user hasn't chosen a currency then the default US$ will be shown.
    • Created the UserCurrency class which displays the proper currency symbol also the project's pledge and goal amounts based on the fxRate.

    See

    oct-15-2018 10-33-59

    feature ✨ 
    opened by Rcureton 6
  • Play Store Data Safety Section

    Play Store Data Safety Section

    Hi Team

    In the recent Play Store policy, it will become mandatory for you to fill out the Data Safety Section. Since this is an OSS Android app, it will make sense to have it as a part of the repository as well.

    I have run the scan using my tool here on android-oss, attached the scan results. I found the following data types & SDKs.

    If this is helpful, do use our free tool to generate Play Store Data Safety report: https://github.com/Privado-Inc/privado

    Also, do share your feedback & thanks for the OSS app 😄

    image image image image

    opened by vaibhavantil1 0
Releases(v3.7.0)
Android Stories library - Instagram-like android stories library that supports images from disk or from internet (url)

Android Stories Library Instagram like stories library for Android. Add it in your root build.gradle at the end of repositories: allprojects { reposi

Panagiotis Makris 3 Dec 20, 2022
Library for easy work with Facebook, Twitter, LinkedIn and Google on Android

THIS PROJECT IS NO LONGER MAINTAINED, FEEL FREE TO FORK AND FIX IT FOR YOUR NEEDS There is also an Android Library that is being maintained, CloudRail

Anton Krasov 1k Dec 18, 2022
Easy social network authorization for Android. Supports Facebook, Twitter, Instagram, Google+, Vkontakte. Made by Stfalcon

SocialAuthHelper A library that helps to implement social network authorization (Facebook, Twitter, Instagram, GooglePlus, Vkontakte). Who we are Need

Stfalcon LLC 97 Nov 24, 2022
Youtube-dl for android

youtube-dl-android Android library wrapper for youtube-dl executable. Based on yausername's youtubedl-android but with ability to download binary file

Vikas 97 Dec 30, 2022
Twidere for Android

Twidere for Android Material Design ready and feature rich Twitter/Mastodon/Fanfou app for Android 4.1+. Enjoy Fediverse now! Twidere-Android is maint

Twidere Project 2.7k Dec 27, 2022
A Reddit client for Android

This is a Reddit client on Android written in Java. It does not have any ads and it features clean UI and smooth browsing experience.

null 2.6k Jan 9, 2023
An unofficial open source Reddit client for Android.

RedReader An unofficial, open source Android client for Reddit. Features Free and open-source Software - no ads/tracking Lightweight and fast Swipe po

null 1.4k Jan 7, 2023
Slide is an open sourced, ad free Reddit browser for Android

Slide Slide is an open source, ad free Reddit browser for Android. It is based around the Java Reddit API Wrapper. Slide is available on the Google Pl

Carlos Crane 1.7k Dec 27, 2022
Open-source alternative Instagram client on Android.

Instagram client; previously known as InstaGrabber.

Austin Huang 1.1k Jul 23, 2021
A light Sina Weibo client for Android

BlackLight 新浪微博客户端 请注意,当前BlackLight的开发已经被冻结,直到2016年高考后重启。 The development progress has been FROZEN till June 2016. 详细介绍以及Changelog请见Play商店。 https://pl

Paper Airplane Dev Team/纸飞机开发团队 884 Nov 22, 2022
Cnblogs Client for Android - Material Design

Cotable - Yet Another Cnblogs Client for Android Description Cotable = Code + Stable (The Paradise of Coder) The Android client of Cnblogs that named

Steve Lemuel 38 Feb 12, 2022
GitHub client for Android based on the abandoned official app

ForkHub ForkHub started off as a fork of the official Android app from GitHub, and has since seen lots of improvements. You can see a comprehensive li

Jon Ander Peñalba 2.8k Dec 28, 2022
GitHub Android application

Gitskarios Beta Testing Community Forum / Discussion Join the beta here Download it from Google Play! What is Gitskarios? Gitskarios is an Android App

Gitskarios 530 Dec 19, 2022
The Google I/O Android App

Google I/O Android App 2021 Update Due to global events, Google I/O 2020 was canceled and Google I/O 2021 is an online-only event, so the companion ap

Google 21.7k Jan 7, 2023
A handy Dribbble client for Android.

Notice Gunnner has been deprecated since Dribbble API v1 has been retired on March 26, 2018. Gunnner Gunnner1 is a handy Dribbble client for Android.

Egor Neliuba 60 Feb 12, 2022
📲 Android Application to track any user activity on Github built using the Github Developers API. Used Retrofit to fetch data and MVVM Architecture.

Github Visualizer ?? Android Application to track any user activity on Github built using the Github Developers Api. A sample application to demonstra

Dheeraj Kotwani 104 Dec 28, 2022
An Android client for Pump.io

Impeller - An Android client for Pump.io What is it A client for Pump.io, intended to provide a rich, platform-integrated experience. Runs on Android

Erin 46 Nov 1, 2022
A libre lightweight streaming front-end for Android.

NewPipe A libre lightweight streaming frontend for Android. Screenshots • Description • Features • Installation and updates • Contribution • Donate •

Team NewPipe 22.4k Jan 2, 2023
Github client for Android

OctoDroid This application provides access to GitHub and lets you stay connected with your network Download Main features Repository List repositories

Azwan Adli 1.5k Dec 28, 2022