Giter Club home page Giter Club logo

chipper's Introduction

Hello, I'm Drew 👋🏻 🧑🏻‍💻

I'm currently a Staff Software Engineer @ reddit working to improve their Android app. I am passionate about building high quality Android and mobile applications as well as contributing to the world of open-source.

Some of my favorite topics in Android right now are:

  • Compose (Ui/Compiler/UiState)
  • Kotlin Multiplaform
  • Dependency Injection
  • Anvil

Here are a few of my projects

DeckBox

DeckBox is an unofficial deck building app for creating and managing your Pokémon TCG decklists. Whether you are building and tweaking the top decks in the meta or just experimenting with some spicy rogue decks, search through a large collection of Pokémon cards that span from the latest expansion all the way back to the base set.


Chipper

Archived Chipper is a keygen jukebox with over 1400 chiptunes sourced from key generators to play from.


See more of my work below   ⬇️

chipper's People

Contributors

r0adkll avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

chipper's Issues

Issue when deleting playlists when you have multiple devices

When you delete a playlist on an account that has multiple devices, it manages to respawn itself with 0 chip tunes, but still exists.

Need to ensure when deleting it on the server (i.e. a soft delete) that the triggered sync on the other device doesn't resurrect it.

Push Tokens not getting properly assigned

When the user first logs in the PushManager "registers" an empty token and sends it to the server marking itself as registered. However that is not the case, and it takes a logging out/logging in to get it to register properly. This needs to be fixed for the push system to work.

Offline Task is missing data

The offline IntentService task is missing bits and pieces of data from the downloads (you can hear the artifacts). Potentially use a BufferedInputStream to download the data.

Clean and Organize AndroidTV Code

The codebase for Android TV is UNGODLY messy since I had to throw it together quickly for the GDG meeting.

  • Re-format into MVP architecture and take advantage of Dagger
  • Abstract redundant implementations

Achievements

Explore the possibility of Achievements. I.E.

  • The user listened to x% of the entire collection.
  • The user has voted on 100/200/500 chiptunes.
  • The user has shared X playlists.
  • The user has redeemed X playlists.
  • The user has favorited X chip tunes

Use these achievements to reward them with in-app perks or pointless achievement points

  • X points -> Increases base 5 votes / day to 10 votes / day, etc...

Add SharedPlaylists to the Playlist UI somehow

Need to find a way to display playlists shared with the user (and subsequently show playlists as shared with others.

Options:

  • Use tabs, but this interferes with FAB placement
  • Use just one list with subheaders
  • Create a separate Drawer item for this

Roll my own SnackBar implementation

The current library i'm using for this (and the other Mr. Engineer one) prove to be inadequate. What is needed is a library that pushes the current content (android.R.id.content) up the specified height (either for single or double line impl) and then back down. There also needs to be a way to cancel, or a setting to auto cancel, any current SnackBars in the view so that we don't get the redundant issue that we get with toasts, croutons, and the current implementation.

Create Legacy Importer

Create an importer that imports all the User Accounts and their vote data over to the new system. Then create a way to prevent stranded new data from entering the old database by either:

  • Creating an observer that makes duplicate changes to the new system when the old one is updated (i.e. users, playlists, votes, etc)
  • Modify the old server code to simultaneously inject the new items into the new database, tho this might be harder since the new system uses a relational mapper.

Create a recents mechanism

Create a mechanism that stores the last, idk, 10 or so chip tunes that you've listened to. Or maybe store playlists as well (if the user played a playlist via its Play FAB)

Display these recents in the 'Dashboard' Section
Potentially integrate Voted chip tunes into the system

Create Account Migration Utility

Create a utility that when a user signs into their new account the server looks for an existing account in the old database, and migrates their User profile, Playlists over to the new system.

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.