All Projects → JohnnyShieh → Gank

JohnnyShieh / Gank

Licence: apache-2.0
干货集中营 app 安卓实现,基于 RxFlux 架构使用了 RxJava、Retrofit、Glide、Koin等

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Gank

Weatherapp
5 Day Forecast app that works on Android and uses latest tools (Kotlin, Navigation, Room, LiveData, Databinding, Dagger 2)
Stars: ✭ 426 (-4.05%)
Mutual labels:  rxjava, dagger2, viewmodel
Githubarchitecturecomponents
The implementation of Android "Architecture Components" sample explained by Google : https://developer.android.com/topic/libraries/architecture/guide.html
Stars: ✭ 302 (-31.98%)
Mutual labels:  dagger2, viewmodel, architecture-components
Aiyagirl
🔥 爱吖妹纸(含 Kotlin 分支版本)——Retrofit + RxJava + MVP 架构 APP 体验代码家的干货集中营 Gank.io,福利多多,不容错过
Stars: ✭ 1,109 (+149.77%)
Mutual labels:  rxjava, dagger2, gank
Movieapp Clean Architecture
Learning Project (Movie App) For Applying Android Architecture Components And Clean Architecture Using MVVM With Kotlin
Stars: ✭ 123 (-72.3%)
Mutual labels:  dagger2, viewmodel, architecture-components
Wanandroid
🏄 基于Architecture Components dependencies (Lifecycles,LiveData,ViewModel,Room)构建的WanAndroid开源项目。 你值得拥有的MVVM快速开发框架:https://github.com/jenly1314/MVVMFrame
Stars: ✭ 410 (-7.66%)
Mutual labels:  dagger2, viewmodel, architecture-components
Mvvmframe
🏰 MVVMFrame for Android 是一个基于Google官方推出的Architecture Components dependencies(现在叫JetPack){ Lifecycle,LiveData,ViewModel,Room } 构建的快速开发框架。有了MVVMFrame的加持,从此构建一个MVVM模式的项目变得快捷简单。
Stars: ✭ 218 (-50.9%)
Mutual labels:  dagger2, viewmodel, architecture-components
Fountain
Android Kotlin paged endpoints made easy
Stars: ✭ 175 (-60.59%)
Mutual labels:  rxjava, dagger2, architecture-components
Base Mvvm
App built to showcase basic Android View components like ViewPager, RecyclerView(homogeneous and heterogeneous items), NavigationDrawer, Animated Vector Drawables, Collapsing Toolbar Layout etc. housed in a MVVM architecture
Stars: ✭ 18 (-95.95%)
Mutual labels:  dagger2, viewmodel, architecture-components
DaggerExoPlayer
This repository demonstrates ExoPlayer injection with Dagger2
Stars: ✭ 58 (-86.94%)
Mutual labels:  dagger2, viewmodel, architecture-components
Superhero-App
🦸🏻‍♂️🦹🏻‍♀️Superhero app built with Kotlin, ViewModel, LiveData, ViewBinding, Room, and Hilt
Stars: ✭ 27 (-93.92%)
Mutual labels:  dagger2, viewmodel, architecture-components
Cleanarchitecture
Android Kotlin Clean Architecture
Stars: ✭ 94 (-78.83%)
Mutual labels:  dagger2, viewmodel, architecture-components
catchflicks
🎬 Kitchen sink project for learning android concepts 🎬
Stars: ✭ 12 (-97.3%)
Mutual labels:  rxjava, dagger2, viewmodel
Githubprojectbrowser
This is a sample Android Project that is based on Clean Architecture
Stars: ✭ 64 (-85.59%)
Mutual labels:  dagger2, viewmodel, architecture-components
Star Wars Shop
Simple project with clean architecture and android lifecycle
Stars: ✭ 37 (-91.67%)
Mutual labels:  rxjava, dagger2, architecture-components
Retrokotlin
Simple Android app to show how unit testing with MockWebServer and Architecture Components (ViewModel + LiveData)
Stars: ✭ 55 (-87.61%)
Mutual labels:  dagger2, viewmodel, architecture-components
Projectx
This repository might be a starting point for building Android interview tasks. There is also providing a basic sample template based on layered architecture using Dagger2 and Architecture Components.
Stars: ✭ 169 (-61.94%)
Mutual labels:  rxjava, dagger2, viewmodel
Changedetection
Automatically track websites changes on Android in background.
Stars: ✭ 563 (+26.8%)
Mutual labels:  dagger2, viewmodel, architecture-components
News
A sample News 🗞 app built using Modern Android Development [Architecture Components, Coroutines, Retrofit, Room, Kotlin, Dagger]
Stars: ✭ 774 (+74.32%)
Mutual labels:  dagger2, viewmodel, architecture-components
Simple-Notes-Kotlin-App
✍️ Simple Note Making App use mvvm architecture , dagger , coroutines and navigation component. Features includes 🗒️ create , edit and ❌ delete notes
Stars: ✭ 40 (-90.99%)
Mutual labels:  dagger2, viewmodel, architecture-components
Android-Mvi-Starter
Android MVI Starter application
Stars: ✭ 19 (-95.72%)
Mutual labels:  dagger2, viewmodel, architecture-components

Gank - Android & Kotlin

License SDK Release

简洁美观的干货集中营(gank.io)的非官方安卓客户端, 数据来源于干货集中营

Description

每天提供一张精选的妹纸图片, 一个精选的休息视频, 若干精选的Android, ios, web等方面的技术干货

Screenshots

screenshot screenshot screenshot

screenshot screenshot screenshot

Download

最近版本是 v1.2

App 设计

UI

App基本包含下面几个页面:

  • 主页显示今日的一些干货内容, 排版与干货集中营类似

  • 三个页面显示Android, ios, web的技术干货, 还有一个页面显示休息视频

  • 福利页面显示妹纸图片, 点击可进入浏览大图

  • 搜索页面可以搜索干货

  • 最后再加上关于和反馈页面

基本上使用原生的控件实现, 首先使用support包中DrawLayout实现侧滑抽屉式导航, 使用Toolbar替换之前的Actionbar, 并在Android 5.0上实现沉浸式状态. 主页和Android分类页等都是用SwipeRefreshLayout + RecyclerView, 点击具体干货进入WebViewActivity使用WebView加载网页.

Architecture

项目使用 RxFlux 架构实现单向数据流, 因为app基本上只是展示网络获取的数据, 单向数据流可以保证数据获取清晰明了.

App主要分为UI, Action, Store三层, UI请求数据的时候用ActionCreator通过Web API获取数据并产生Action, Action由Dispatcher传递给Store, 最后UI监听到Store的change event再从store中取数据刷新页面. 这样UI层的逻辑就简单了, 业务逻辑转移到Action层.

其中 Store 是继承自 Google Architecture Component 中的 ViewModel 的,用来接受 action 触发的数据变更,其中的 LiveData 修改后驱动 UI 变更.

更详细的信息,请看 RxFlux 的介绍.

Web API获取数据是使用 RxJava + Retrofit + okhttp, 使用 Glide 完成图片加载, 使用 Koin 完成依赖注入.

Dagger 完全解析

个人分析 Dagger 2 使用与原理的文章

Dagger 2 完全解析(一),Dagger 2 的基本使用与原理

Dagger 2 完全解析(二),进阶使用 Lazy、Qualifier、Scope 等

Dagger 2 完全解析(三),Component 的组织关系与 SubComponent

Dagger 2 完全解析(四),Android 中使用 Dagger 2

Dagger 2 完全解析(五),Kotlin 中使用 Dagger 2

最近接触过 Koin 依赖注入框架后,立马从 Dagger 2 阵营转投到 Koin 阵营,简单说明下它的优点:对 Kotlin 和 Android 非常友好,容易上手,使用简便.

Library

License

Copyright 2019 Johnny Shieh Open Project

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.
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].