All Projects → jam01 → LittleLight

jam01 / LittleLight

Licence: GPL-3.0 license
An Android app that uses Destiny's API to interact with in-game inventory.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to LittleLight

BESTV
Android TV App powered by TMDb. It is a easy way to find the best TV content, the top movies, series... all of that in your TV.
Stars: ✭ 49 (+157.89%)
Mutual labels:  clean-architecture, dagger2, rxjava2, retrofit2, mvp-android
Android-Starter-Kit
This is up-to-date android studio project for native android application, that is using modern tools and libraries.
Stars: ✭ 16 (-15.79%)
Mutual labels:  clean-architecture, dagger2, rxjava2, retrofit2, mvp-android
MVPArchitecture
Android MVP architecture in Kotlin using Dagger2, RxJava2, Retrofit2 and so on
Stars: ✭ 27 (+42.11%)
Mutual labels:  clean-architecture, dagger2, rxjava2, retrofit2, mvp-android
Business Search App Java
Showcases object oriented programming in Java, Java Swing, Kotlin, and Android
Stars: ✭ 53 (+178.95%)
Mutual labels:  clean-architecture, dagger2, rxjava2, retrofit2
Armscomponent
📦 A complete android componentization solution, powered by MVPArms (MVPArms 官方快速组件化方案).
Stars: ✭ 1,664 (+8657.89%)
Mutual labels:  dagger2, rxjava2, retrofit2, mvp-android
Crazydaily
[开源项目] 一款程序员日常放松的App,基于Material Design + MVP-Clean + Weex + Flutter + RxJava2 + Retrofit + Dagger2 + Glide + Okhttp + MTRVA + BRVAH + 炫酷控件 + 炫酷动画
Stars: ✭ 294 (+1447.37%)
Mutual labels:  clean-architecture, dagger2, rxjava2, retrofit2
Android Mvp Mvvm Flytour
🔥🔥🔥 FlyTour是Android MVVM+MVP+Dagger2+Retrofit+RxJava+组件化+插件组成的双编码架构+双工程架构+双语言Android应用开发框架,通过不断的升级迭代该框架已经有了十个不同的版本,5.0之前工程架构采用gradle配置实现组件化,5.0之后的工程架构采用VirtualAPK实现了插件化,5.0之前采用Java编码实现,5.0之后采用Kotlin编码实现,编码架构由MVVM和MVP组成,工程架构和编码架构及编码语言开发者可根据自己具体的项目实际需求去决定选择使用,该框架是Android组件化、Android插件化、Android MVP架构、Android MVVM架构的集大成者,帮助你快速的搭建自己的App项目开发框架,以便把主要的精…
Stars: ✭ 2,948 (+15415.79%)
Mutual labels:  dagger2, rxjava2, retrofit2, mvp-android
Android tmdb clean architecture
Showcase of clean architecture concepts along with Continuous Integration and Development for modular Android applications. Includes test suits (functional and unit tests) along with code coverage.
Stars: ✭ 63 (+231.58%)
Mutual labels:  clean-architecture, dagger2, retrofit2, mvp-android
Kotlin Android Scaffolding
An android project structure using kotlin and most common libraries.
Stars: ✭ 53 (+178.95%)
Mutual labels:  clean-architecture, dagger2, rxjava2, retrofit2
Kotlinrxmvparchitecture
Clean MVP Architecture with RxJava + Dagger2 + Retrofit2 + Mockito + Fresco + EasiestGenericRecyclerAdapter using Kotlin. Includes Unit Tests(Kotlin Tests)!
Stars: ✭ 94 (+394.74%)
Mutual labels:  clean-architecture, dagger2, retrofit2, mvp-android
Kotlinmvparchitecture
Clean MVP Architecture with Dagger2 + Retrofit2 + Mockito + Fresco + EasiestGenericRecyclerAdapter using Kotlin. Added Unit Tests(Kotlin Tests)!
Stars: ✭ 143 (+652.63%)
Mutual labels:  clean-architecture, dagger2, retrofit2, mvp-android
flickr-android
A small sample app to showcase architecting app using Clean Architecture and MVVM
Stars: ✭ 25 (+31.58%)
Mutual labels:  clean-architecture, dagger2, rxjava2, retrofit2
Rxapp
Stars: ✭ 108 (+468.42%)
Mutual labels:  dagger2, rxjava2, retrofit2, mvp-android
News Sample App
A sample news app which demonstrates clean architecture and best practices for developing android app
Stars: ✭ 334 (+1657.89%)
Mutual labels:  clean-architecture, dagger2, rxjava2, retrofit2
Mvpframes
整合大量主流开源项目并且可高度配置化的 Android MVP 快速集成框架,支持 AndroidX
Stars: ✭ 100 (+426.32%)
Mutual labels:  dagger2, rxjava2, retrofit2, mvp-android
GithubApp-android-architecture
Let's learn a deep look at the Android architecture
Stars: ✭ 16 (-15.79%)
Mutual labels:  clean-architecture, dagger2, rxjava2, retrofit2
mvp-android-template
MVP Android Template to give you a Quick Head Start for your next Android Project. It implements MVP Architecture using Dagger2, Room, RxJava2 , Retrofit2
Stars: ✭ 20 (+5.26%)
Mutual labels:  dagger2, rxjava2, retrofit2, mvp-android
Android Kotlin Mvp Clean Architecture
Clean architecture blueprint using Kotlin and MVP pattern.
Stars: ✭ 105 (+452.63%)
Mutual labels:  clean-architecture, rxjava2, retrofit2, mvp-android
InstantAppStarter
Starter Project Structure for Android Instant app. https://blog.mindorks.com/android-mvp-architecture-with-instant-app-support-11ba48241a82
Stars: ✭ 44 (+131.58%)
Mutual labels:  dagger2, rxjava2, retrofit2, mvp-android
BakingApp
Udacity Android Developer Nanodegree, project 2.
Stars: ✭ 54 (+184.21%)
Mutual labels:  dagger2, rxjava2, retrofit2, mvp-android

LittleLight

The idea for Little Light came about in 2015 when I was throwing hours at Bungie's Destiny while I waited for some personal matters to be resolved. At that moment there was no easy way to transfer items from character to character. One had to change characters, travel to the tower, and return to the character where you wanted the item. I figured there had to be a better way. I had done Android dev work before and was still learning some things, so I decided to dig around and see if there was anything to be done about this missing piece. I found Bungie's API and the rest... well it's in this repo.

Architecture and Design

Little Light's current state is influenced by a few architectural and design practices. Namely Domain Driven Design, Clean Architecture, Ports and Adapters, and Model-View-Presenter. I found all these to be compatible, and they became great tools to create a coherent and flexible application.

Ports and Adapters

This approach allowed me to separate all the code that would be only specific to the Android application while leaving the core functionality to be reused if there ever was the possibility/opportunity to create another adapter ie. iOS or Desktop app. Actually iOS adpater was my intent when I learned about Intel's Multi-OS Engine, though I never realized that idea.

MVP

If you talk to any Android developer you have to mention MVP. In my effort to understand Model-View-Presenter I dug through a few different resources:

  • Potel, Mike. "MVP: Model-View-Presenter the Taligent programming model for C++ and Java." Taligent Inc (1996): 20.
  • Bower, Andy, and Blair McGlashan. "Twisting the triad." Tutorial Paper for European Smalltalk User Group (ESUP) (2000).
  • Greer, Derek. "Interactive application architecture patterns." Aspiringcraftsman. com (2007).

To me, the moral of the story is that no one has the clear cut notion of MVP, because there isn't one. As long as you're separating your UI code from your Domain logic I think you'll be alright.

Popular libraries

In this repo you'll find some popular libraries like: Retrofit 2, Picasso, Dagger, rxJava 2, and gson.

rxJava

On an earlier iteration of LittleLight I tried to implement something similar to Fernando Cejas' clean arch example in which you see reactive/observable pattern from the Presenter all the way to the Repository. After spending a considerable amount of time going through the Rx dcoumentation for map, flatMap, zip, backpressure, etc (which might be the best docs I've ever used), and even finding and reporting a bug about replay, I realized that I was fighting the language and I was using rx just because it was popular. I now only use rx for propagating domain events to the UI, which I think is a perfect fit. Nonetheless, rx is a great library and was a great learning experience. The reactive pattern is being adopted in many places and I'd recommend anyone to take a look at it.

Dagger

At the time I started looking to introduce Dagger I was also learning about the Spring framework for other projects. Perhaps looking at both is what allowed me to wrap my head around Dependency Injection and how to put it to use. You'll see that my use of Dagger is a little more explicit than most examples, I feel this keeps the magic at bay.

Google Play Store report and listing

As these images suggest, the app had rapid adoption and subsequent rapid decline. The folks over at r/DestinyTheGame were the reason the app became popular in a short amount of time. Eventually I had less and less time to keep the app up to date or even play the game at all. The app became stale as Bungie added new content to the game and other apps became more popular and useful (Ishtar Commander is probably my favorite), alas here is a graphic depiction of Little Light's up and down journey.

Report Listing

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].