рдкрд░рд┐рдЪрдп
Android рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рде, рд╣рдо рд╡рд┐рднрд┐рдиреНрди рд╡рд╛рд╕реНрддреБ рд╕рдорд╛рдзрд╛рдиреЛрдВ (рдкреИрдЯрд░реНрди) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Mvp , Mvvm , Mvi , рдЗрддреНрдпрд╛рджрд┐ ... рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкреИрдЯрд░реНрди рдХрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЪреВрдВрдХрд┐ рд╡реЗ рдкрд░рд┐рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡реЗ рд╣рдореЗрдВ рдХреБрдЫ рдЕрдирд╕реБрд▓рдЭреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди (рд░реВрдЯрд┐рдВрдЧ) рдХреЗ рднреАрддрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдирд╛, рд╕реНрдХреНрд░реАрди рд╕реЗ рд╕реНрдХреНрд░реАрди рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ (рд╕реНрдХреНрд░реАрди рдмреЛрд▓рдирд╛, рдореЗрд░рд╛ рдорддрд▓рдм рдЧрддрд┐рд╡рд┐рдзрд┐, рдЯреБрдХрдбрд╝рд╛ рдпрд╛ рджреГрд╢реНрдп) рд╣реИ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░рд┐рд╡рд░реНрддрди) рдмрджрд▓рддреЗ рд╕рдордп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕рд╣реЗрдЬрдирд╛ред
рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдореЗрдВ, рд╣рдордиреЗ рднреА рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛, рдХреБрдЫ рдХреЛ рдЖрд╕рд╛рди рддрд░реАрдХреЗ рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╡рд╛рд▓реЗ рдХреЛ рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛, рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд╣рдордиреЗ рдЕрдкрдиреА рдЦреБрдж рдХреА рдлрд╝реНрд▓реЛрдЬрд╝рд░реНрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓рд┐рдЦреАред
рдХрд╛рд░реНрдп
рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдореЗрдВ, рд╣рдо рдПрдорд╡реАрдкреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╕реНрдХреНрд░реАрди рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд, рдмрджрд▓рддреЗ рдФрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╕рдордп рдЕрдзрд┐рдХрддрдо рд▓рдЪреАрд▓рд╛рдкрди рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХрд▓-рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╕рд┐рджреНрдзрд╛рдВрдд рдирд╛рдордХ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ ред рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реНрдХреНрд░реАрди рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рдХрд╛рд░реНрдп рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕реВрдЪрдирд╛ рджрд┐рдЦрд╛рдиреЗ / рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдЕрдкрдиреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрд╕реЗ рдЕрдиреНрдп рд╕реНрдХреНрд░реАрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рд┐рдПред рддреЛ рд╣рдо рдЕрдзрд┐рдХрддрдо рд▓рдЪреАрд▓рд╛рдкрди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдиреАрдЪреЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред
Flowzard
рдкреНрд░рд╡рд╛рд╣ рдмрдирд╛рдПрдБ
class MainFlow(flowManager: FlowManager) : Flow(flowManager) {
рдкреНрд░рд╡рд╛рд╣ рдирд╛рд╡рд┐рдХ рдмрдирд╛рдПрдБ
рдиреЗрд╡рд┐рдЧреЗрдЯрд░ рджреЛ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ: рдкреНрд░рд╡рд╛рд╣ рдХреЗ рдЕрдВрджрд░ рд╕рдВрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡рд╛рд╣ рдФрд░ рд╕реНрдХреНрд░реАрди рдХреЗ рдмреАрдЪ рд╕рдВрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡рд╛рд╣ рдХрдВрдЯреЗрдирд░ (рдЧрддрд┐рд╡рд┐рдзрд┐, рдЯреБрдХрдбрд╝рд╛, рджреГрд╢реНрдп) рдмрдирд╛рдПрдВред
class DefaultFlowNavigator(activity: AppCompatActivity) : SimpleFlowNavigator(activity){
рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рд╕реНрдиреИрдк
рдлреНрд▓реЛ рдХреЗ рд╕рд╛рде рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдлреНрд▓реЛ рдПрдХреНрдЯрд┐рд╡рд┐рдЯреА рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдиреЗрд╡рд┐рдЧреЗрдЯрд░ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ DefaultFlowNavigatorред
class MainActivity : FlowActivity() { override val navigator: Navigator get() = DefaultFlowNavigator(this) }
FlowManager рдмрдирд╛рдПрдБ
class DefaultFlowManager : FlowManager() {
рдкреНрд░рд╡рд╛рд╣ рдФрд░ рд╕реНрдХреНрд░реАрди рдХреЗ рдмреАрдЪ рдореИрд╕реЗрдЬрд┐рдВрдЧ
рдЬрдм рдЖрдк рд▓реЙрдЧрд┐рди рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЧрддрд┐рд╡рд┐рдзрд┐ рдореБрдЦреНрдп рдкреНрд░рд╡рд╛рд╣ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрддреА рд╣реИред рдлреНрд▓реЛ рдПрдХ SIGN_UP рдкреНрд░рд╡рд╛рд╣ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд▓реЙрдЧрд┐рди рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ, рддреЛ SIGN_UP рдкреНрд░рд╡рд╛рд╣ рдореБрдЦреНрдп рдкреНрд░рд╡рд╛рд╣ рдФрд░ onFlowResult рдкрд░ рдкрд░рд┐рдгрд╛рдо рднреЗрдЬрддрд╛ рд╣реИ: MainFlow рдХреЛ рдХреЛрдб рдФрд░ рдкрд░рд┐рдгрд╛рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдореБрдЦреНрдп рдкреНрд░рд╡рд╛рд╣ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдкрд░рд┐рдгрд╛рдо рд╕рд╣реА рд╣реИ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд▓реЙрдЧ рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдХреНрд░рд┐рдпрдг рд╡рд╛рдкрд╕ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИред
class MainFlow(flowManager: FlowManager) : Flow(flowManager) { companion object { const val LOGIN_REQUEST_CODE = 1 }
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрджрд▓рддреЗ рд╕рдордп рдпрд╛ рдЬрдм рдХреЛрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд░реЛрдХрддреА рд╣реИ, рддреЛ рдмрдЪрдд рд╕реНрдЯреЗрдЯ
рдЪреВрдВрдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рдЧрддрд┐рд╡рд┐рдзрд┐ рдФрд░ рдлреНрд░реИрдЧрдореЗрдВрдЯ рд╕реНрдЯреИрдХреНрд╕ рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрди рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд┐рдд рдкреНрд░рд╡рд╛рд╣ рдЕрдкрдиреЗ рд░рд╛рдЬреНрдп рдХреЛ рдмрдЪрд╛рдПрдЧрд╛ рдФрд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛ред рд╡реНрдпреВ рдХрдВрдЯреЗрдирд░ рдХреЗ рд╕рд╛рде, рдЖрдкрдХреЛ рдЕрдкрдирд╛ рдХрд╕реНрдЯрдо рдлрд╝реНрд▓реЛрдореИрдирдПрдЧрд░ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдЕрднреА рддрдХ рдРрд╕рд╛ рдкреНрд░рдмрдВрдзрдХ рдирд╣реАрдВ рд╣реИред рдЕрдЧрд▓реЗ рдЕрджреНрдпрддрди рдореЗрдВ рдордзреНрдпрд╡рд░реНрддреА рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рд╡рд╛рд╣ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдЧреАред
рдЪреВрдВрдХрд┐ рдореИрдВ рд▓реЗрдЦ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЦреБрдж рдХреЛ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рддрдХ рд╕реАрдорд┐рдд рдХрд░реВрдВрдЧрд╛ред рдпрд╣рд╛рдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╡рд┐рд╕реНрддреГрдд рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд┐рдП рднрдВрдбрд╛рд░ рдХрд╛ рд▓рд┐рдВрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред