Materialistic for Hacker News
Material design Hacker News client for Android, uses official HackerNews/API, Dagger for dependency injection and Robolectric for unit testing.
Setup
Requirements
- JDK 11
- Latest Android SDK tools
- Latest Android platform tools
- AndroidX
Dependencies
- Official Hacker News API, user services (e.g. login/create account/vote/comment) rely on redirect requests to Hacker News website
- Algolia Hacker News Search API
- Mercury Web Parser API
- [Android Jetpack]: appcompat-v7 / recyclerview-v7 / design / cardview-v7 / preference-v7 / customtabs
- Square Retrofit / OkHttp / AssertJ / Dagger / LeakCanary
- RxJava & RxAndroid
- Robolectric
- PDF.js
Build
./gradlew assembleDebug
Build with LeakCanary on
./gradlew assembleDebug -Pleak
Grab your Mercury Web Parser API key here if you want to connect to Mercury.
Run all/selective tests:
./gradlew testDebug
./gradlew testDebug --tests "*HackerNewsClientTest"
./gradlew jacocoTestReport
Articles
- Supporting multiple themes in your Android app (Part 1)
- Supporting multiple themes in your Android app (Part 2)
- Building custom preferences with preference-v7
- Hacking up an ad blocker for Android
- Bottom sheet everything
Screenshots
Contributing
Contributions are always welcome. Please make sure you read Contributing notes first.
License
Copyright 2015 Ha Duy Trung
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.