package Ġcom . tr ick ring . app _ flux . di Ċ Ċ import Ġcom . tr ick ring . app _ flux . App Ċ import Ġcom . tr ick ring . app _ flux . action . post . Post Action Creator Ċ import Ġcom . tr ick ring . app _ flux . data . api . Post Api Ċ import Ġcom . tr ick ring . app _ flux . data . api . User Api Ċ import Ġcom . tr ick ring . app _ flux . data . repository . Post Repository Ċ import Ġcom . tr ick ring . app _ flux . data . repository . UserRepository Ċ import Ġcom . tr ick ring . app _ flux . flux . Dispatcher Ċ import Ġcom . tr ick ring . app _ flux . ui . post . Post Store Ċ import Ġkotlinx . serialization . Un stable Default Ċ import Ġorg . k oin . android . ext . k oin . android Application Ċ import Ġorg . k oin . android x . view model . dsl . viewModel Ċ import Ġorg . k oin . dsl . module Ċ Ċ /** Ċ Ġ* ĠDependency ĠModule Ġfor ĠK oin . Ċ Ġ*/ Ċ object ĠApp Module Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠModule ĠInstance . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġinstance Ġ= Ġmodule Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠViewModel ĠModule ĊĠĠĠĠĠĠĠ Ġ// ĠThis Ġclass Ġmust Ġbe Ġsubclass Ġof ĠAndroid X ĠViewModel . ĊĠĠĠĠĠĠĠ ĠviewModel Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPost Store ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid Application () Ġas ĠApp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠDispatcher ĠModule ĊĠĠĠĠĠĠĠ Ġ// ĠThis Ġclass Ġmust Ġmanaged Ġby Ġa Ġsingleton . ĊĠĠĠĠĠĠĠ Ġsingle Ġ{ ĠDispatcher () Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠAction Creator ĠModule ĊĠĠĠĠĠĠĠ Ġ// ĠThis Ġclass Ġmust Ġmanaged Ġby Ġa Ġfactory . ĠFactory Ġis Ġalways Ġre created . ĊĠĠĠĠĠĠĠ Ġfactory Ġ{ ĠPost Action Creator ( get (), Ġget (), Ġget ()) Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠRepository ĠModule ĊĠĠĠĠĠĠĠ Ġ// ĠThis Ġclass Ġmust Ġmanaged Ġby Ġa Ġsingleton . ĊĠĠĠĠĠĠĠ Ġsingle Ġ{ ĠPost Repository ( get ()) Ġ} ĊĠĠĠĠĠĠĠ Ġsingle Ġ{ ĠUser Repository ( get ()) Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠNetwork ĠModule ĊĠĠĠĠĠĠĠ Ġ// ĠThis Ġclass Ġmust Ġmanaged Ġby Ġa Ġsingleton . ĊĠĠĠĠĠĠĠ Ġsingle Ġ{ ĠNetwork Module . provide Ok HttpClient ( android Application ()) Ġ} ĊĠĠĠĠĠĠĠ Ġsingle < Post Api > Ġ{ ĠNetwork Module . provide Ret rofit Api ( get ()) Ġ} ĊĠĠĠĠĠĠĠ Ġsingle < User Api > Ġ{ ĠNetwork Module . provide Ret rofit Api ( get ()) Ġ} ĊĠĠĠ Ġ} Ċ } Ċ