• Stars
    star
    431
  • Rank 97,043 (Top 2 %)
  • Language
    Kotlin
  • License
    Apache License 2.0
  • Created over 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Sample App with Jetpack components(LiveData, Navigation, ViewModel) + MVVM + coroutine + single activity

Android Sample App using Github API and Jetpack Component.


What's JetHub? ๐Ÿš€

JetHub is a sample app using Github API and Jetpack components.

The purpose of this project is to try new Android technologies and learn how it works in an app.

Used Libraries




Multi Module / Dynamic Feature Module

This project consists of multiple modules and some of them are provided as Dynamic Feature Module.

Feature Module

:feed, :search, :pin are feature modules. These are included in base.apk and does not require user to download one later.

Dynamic Feature Module

:repo, :developer are dynamic feature modules. These are not included in base.apk and require user to download one on demand.



Architecture

This app is a single-activity application and uses MVVM architecture and follows the guildline shown here.

//--- Activity / Fragments / Compose ---//

lifecycleScope.launch {
  viewModel.uiState
    .flowWithLifecycle(lifecycle, Lifecycle.State.STARTED)
    .collect { data -> /* do something */ }
}

val uiState by repoViewModel.uiState.collectAsState()

//--- ViewModel ---//

val uiState: StateFlow<UiState>
repository.getData() // get data from API and/or DB

//--- Repository ---//

api.getData() // get data from API
db.getData() // get data from DB


Dark Theme

Dark Theme is supported. You can toggle theme by tapping the theme icon on the top right corner. The selected theme would be retained in application scope for the sake of demo application.

Github API Token

This project is based on GitHub API. You can set your own token in local.properties and JetHub will use the token for every single request to Github. In order to generate a token, you can do so from your settings page.

This app works without a token, but the number of API call is very limited by Github. You can see the details from this link.

// local.properties
api_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Author

Licence

Copyright 2017 Taku Semba.

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.

More Repositories

1

Spotlight

Android Library that lights items for tutorials or walk-throughs etc...
Kotlin
3,555
star
2

MultiSnapRecyclerView

Android library for multiple snapping of RecyclerView
Kotlin
2,503
star
3

RtmpPublisher

Rtmp client on Android. Live Video Streaming.
Java
611
star
4

CropMe

Extremely Smooth and Easy Cropping library for you
Kotlin
408
star
5

docker-nginx-rtmp

docker file for RTMP on nginx
XSLT
48
star
6

AudioThief

Let you gain and release AudioFocus.
Kotlin
41
star
7

RtmpPlayer

RTMP player on Android
Kotlin
33
star
8

Tindest

This is a Tinder-like app
Swift
29
star
9

HlsPlayer

HLS Player on Android
Kotlin
21
star
10

go-hls-hosting

generates LIVE, CHASE playlists from your given VOD playlist, then publish their playlists individually.
Go
19
star
11

SampleDrmExoPlayer

Kotlin
18
star
12

QuicPlayer

media player using QUIC protocol
Kotlin
18
star
13

exoplayer-practice-guide-sample

ใ€ŒExoPlayerๅฎŸ่ทตใ‚ฌใ‚คใƒ‰ใ€ ใฎใ‚ตใƒณใƒ—ใƒซใ‚ขใƒ—ใƒช
Kotlin
18
star
14

AutoBuilder

Auto builder generation with Annotation Processing
Java
13
star
15

DribbbleKotlinApp

this is a dribbble app written in kotlin
Kotlin
11
star
16

RetrofitDownloader

Download files using Retrofit
Java
8
star
17

grpc-android

client side for grpc
Java
8
star
18

DribbbleMvp

Android architecture MVP
Java
7
star
19

SpringSample

Kotlin
4
star
20

EspressoDemo

Espresso demo
Java
4
star
21

camembert

API server with protocol buffers
Go
4
star
22

ksudoku

sudoku solver in kotlin
Kotlin
3
star
23

ProcessLifecycleOwnerSample

sample app using ProcessLifecycleOwner
Kotlin
2
star
24

DribbbleSwiftApp

this is a iOS App written in Swift
Swift
2
star
25

AudioFocusServiceApp

AudioFocusServiceApp allow you to control audio focus via Service
Kotlin
2
star
26

Ekuity

A command-line tool written in Kotlin for calculating equity
Kotlin
2
star
27

grpc-go

grpc written in golang
Go
1
star
28

gouda

json request vs proto request
Java
1
star
29

grpc-proto

proto file for grpc
Java
1
star
30

DribbbleAndroidApp

this is a Dribbble App written in Android java
Java
1
star
31

KotlinAndroidProjectSample

AndroidProject Sample in Kotlin
Kotlin
1
star
32

portfolio

My Portfolio powered by Hugo
HTML
1
star
33

TakuSemba

My Profile Repository
1
star