Skip to content

Chela init

muune edited this page Mar 6, 2019 · 1 revision

Chela

Chela

Ch()

invoke(application:Application, path:String = "")
  • Chela 라이브러리 init함수
  • Chela 라이브러리를 사용할 application을 지정하면 라이브러리 준비 작업이 진행됨
  • path에 resource json 파일 경로를 넣으면 resource(i18n, font, style, shape, api, ruleset, query, db) 초기 셋팅을 한다.
  • 참고 : resource 초기 셋팅
//App.kt
Ch(this, "setting.json") //this는 Application
//resource 초기 셋팅이 필요하지 않는 경우 path는 생략 가능
Ch(this) //this는 Application

Ch.waitActivate()

waitActivate(activity:AppCompatActivity, looper:ChLooper? = null, block:()->Unit)
  • 메인 액티비티에서 초기에 한 번 사용한다.
  • 윈도우 사이즈가 0이 아닐때까지 대기하다가 block을 실행한다.
  • 윈도우 사이즈가 0이면 여러가지 오류가 생길 수 있기 때문에 사용.
//Act.kt
Ch.waitActivate(this, App.looper){App.router.push(Splash, false)}

Ch.finish()

finish(act:AppCompatActivity)
  • 앱을 종료시킨다.
Ch.finish(this)

Ch.looper()

looper():ChLooper
  • App에서 사용할 looper를 생성한다.
  • looper는 애니메이션, 메인쓰레드 작업 등등에 여러가지로 사용가능하다.
  • 참고 ChLooper
//App.kt
val looper = Ch.looper()

Ch.router()

router(base: ChHolderBase<T>): ChRouter<T>
  • App에서 사용할 router를 생성한다.
  • 라우터는 View 전환을 관리한다.
  • 참고 router
//App.kt
val groupBase = Ch.groupBase()
val router = Ch.router(groupBase)

Ch.groupBase()

groupBase():ChGroupBase
  • App에서 사용할 GroupBase(HolderBase)를 생성한다.
  • HolderBase는 ViewType에 따라 라우터가 해야 할일을 구현해 놓은 클래스이고, View와 Fragment로 HolderBase가 만들어져 있다.
  • 그 중에서 View로 만들어진 HolderBase가 GroupBase이다.
  • 참고 ChHolderBase
//App.kt
val groupBase = Ch.groupBase()
val router = Ch.router(groupBase)

Ch.fragmentBase()

fragmentBase():ChFragmentBase
  • App에서 사용할 fragmentBase(HolderBase)를 생성한다.
  • HolderBase는 ViewType에 따라 라우터가 해야 할일을 구현해 놓은 클래스이고, View와 Fragment로 HolderBase가 만들어져 있다.
  • 그 중에서 Fragment로 만들어진 HolderBase가 fragmentBase이다.
  • 참고 ChHolderBase
//App.kt
val groupBase = Ch.fragmentBase()
val router = Ch.router(groupBase)
Clone this wiki locally