Genos
Installation
build.gradle
implementation 'com.nyssance.genos:genos:2.0.0'build.gradle.kts
implementation("com.nyssance.genos:genos:2.0.0")Features
Genos integrate google architecture. just use. if your need learn more info about how genos work, and mvvm, repository , viewmodel etc., see link
1.Rules
- Activity just as an container, include app bar and drawer/bottom navigation, and one fragment or more.
- Fragment have two type: list and detail.
- list for REST list api, like https://www.yourdomain.com/api/v1/users/, list include default
listView,adapter - detail for REST detail api, like https://www.yourdomain,com/api/v1/users/{:user_id}/
- call in fragment is a call of it, it's a Retrofit call
- list for REST list api, like https://www.yourdomain.com/api/v1/users/, list include default
- Repository is for load data.
- ViewModel is for bind data and view.
2.How to use
Create a list fragment, override three methods, 15 lines code, that's all you need to do.
import genos.ui.fragment.generic.List
import genos.ui.viewholder.Holder
class UserList : List<User, Holder>() {
override fun onCreate() {
call = API.userList(page) // A retrofit call of this fragment.
}
override fun onDisplayItem(item: User, viewHolder: Holder, viewType: Int) {
view.icon?.setImage(item.avatarUrl)
view.title?.text = item.username
}
override fun onOpenItem(item: User) {
// StartActivity or do anything when click item.
}
}Create a bottom navigation with three buttons, 10 lines.
// If you need a drawer navigation, use `MainActivity : DrawerActivity`
class MainActivity : TabBarActivity(mapOf(
R.id.navigation_1 to UserList(),
R.id.navigation_2 to PlaceholderFragment.instance("2"),
R.id.navigation_3 to PlaceholderFragment.instance("3"),
R.id.navigation_4 to PlaceholderFragment.instance("4")
)) {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
with(Global) { // Config
APP_SCHEME = "genos-sample"
}
router() // Set router
}
}Tutorial
Architecture
genos
โโโ Global.kt Global config.
โโโ Helper.kt
โโโ extension
โย ย โโโ Fragment+Extension.kt
โย ย โโโ ImageView+Extension.kt
โย ย โโโ String+Extension.kt
โโโ model
โย ย โโโ BaseItem.kt
โย ย โโโ Item.kt
โโโ repository
โย ย โโโ HttpRepository.kt Default http repository.
โย ย โโโ HttpUtil.kt
โย ย โโโ IRepository.kt
โย ย โโโ NetworkState.kt
โย ย โโโ Status.kt
โโโ ui
โย ย โโโ BaseAdapter.kt Default Adapter for list fragment.
โย ย โโโ BaseViewModel.kt Default ViewModel for list and detail fragment.
โย ย โโโ activity
โย ย โย ย โโโ AppBarActivity.kt Activity with an app bar.
โย ย โย ย โโโ CollapsingActivity.kt Activity with a collapsing app bar.
โย ย โย ย โโโ DrawerActivity.kt Activity with drawer.
โย ย โย ย โโโ TabBarActivity.kt Activity with bottom navigation.
โย ย โย ย โโโ WebActivity.kt
โย ย โย ย โโโ base Design your activity by extends activity in base.
โย ย โย ย โย โโโ BaseActivity.kt
โย ย โย ย โย โโโ ContainerActivity.kt
โย ย โย ย โย โโโ NavigationActivity.kt
โย ย โโโ fragment
โย ย โย ย โโโ ActionSheet.kt
โย ย โย ย โโโ Dialog.kt
โย ย โย ย โโโ PlaceholderFragment.kt
โย ย โย ย โโโ ViewPagerFragment.kt Fragment with a view pager.
โย ย โย ย โโโ base Design your fragment by extends fragment in base.
โย ย โย ย โย ย โโโ BaseFragment.kt
โย ย โย ย โย ย โโโ ListFragment.kt
โย ย โย ย โย ย โโโ LoaderFragment.kt
โย ย โย ย โย ย โโโ ObjectFragment.kt
โย ย โย ย โย ย โโโ RecyclerViewFragment.kt
โย ย โย ย โโโ generic
โย ย โย ย โโโ Detail.kt Fragment for detail.
โย ย โย ย โโโ GridViewList.kt Fragment with a grid layout, user for grid list.
โย ย โย ย โโโ List.kt Fragment with a linear layout, use for stand list, one item per line.
โ ย ย โย ย โโโ StaggeredGridViewList.kt Fragment with a staggered grid layout, use for waterfall list.
โย ย โย ย โโโ TableViewDetail.kt
โย ย โโโ viewholder
โย ย โโโ BaseHolder.kt Base holder.
โย ย โโโ Holder.kt A holder with icon, title, subtitle, accessory.
โโโ vendor
ย ย โโโ Retrofit.kt
Syntactic sugar
ifBlank, orEmpty
Vendor
Special thanks bintray-release, who save my life.
License
Genos is released under the Apache license. See LICENSE for details.

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
