The Wayback Machine - http://web.archive.org/web/20201031110710/https://github.com/nyssance/genos
Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Genos

Download License

๐Ÿ‘Š Genos makes it very easy to build better mobile apps more quickly and with less code. For more information please see the website.

Genos for iOS


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

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

Develop an app in 10 minutes.

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.

You canโ€™t perform that action at this time.