9GAG for Android

April 30, 2026 · View on GitHub

⚠️ This project is no longer maintained. It was built in 2014 as a learning project to demonstrate Android development best practices of that era. The code and dependencies are outdated, but the project remains available for reference.

中文版

An unofficial Android client for 9GAG, built with Android Studio + Gradle, following Material Design guidelines.

Screenshots

Features

  • 9GAG feeds browsing with card-style layout
  • Swipe-back gesture navigation
  • Image detail view with zoom support
  • Navigation drawer with category filtering
  • Local data caching with SQLite
  • Shimmer loading animation

Project Structure

app/src/main/java/me/storm/ninegag/
├── api/          # Network requests (Volley)
├── dao/          # Data access layer (SQLite)
├── data/         # Data sources
├── model/        # Data models (Feed, Category)
├── ui/           # Activities, Fragments & Adapters
├── util/         # Utilities (cache, bitmap, blur, etc.)
├── view/         # Custom views (SwipeBack)
└── App.java      # Application entry

Tech Stack

CategoryLibrary
NetworkVolley, OkHttp
Image LoadingGlide
View BindingButterKnife
UI ComponentsFoldableLayout, AndroidStaggeredGrid, Shimmer
Image ViewerPhotoView
Memory Leak DetectionLeakCanary

Build

git clone https://github.com/stormzhang/9GAG.git

Open the project in Android Studio and sync Gradle.

Note: This project uses Gradle 2.2.1 and Android Gradle Plugin 1.5.0. You may need an older version of Android Studio or manual Gradle configuration to build successfully.

Requirements

  • Min SDK: Android 4.0 (API 14)
  • Target SDK: Android 5.1 (API 22)

Author

stormzhang@stormzhang on GitHub

License

Copyright 2014 stormzhang

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.