рднрд╛рдЧ 1рдирдорд╕реНрддреЗ!
рдЖрдЬ, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдЪрд▓реЛ рдХрд┐рд╡реА рдФрд░ рдкрд╛рдпрдерди рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣ рдПрдХ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд▓рд┐рдП рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдЧреНрд░рд╛рд╣рдХ рдмрдирд╛рдиреЗ рдФрд░ Google Play рдкрд░ рдЗрд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдЧрд╛ред рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдПрдХ рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рдФрд░ рдПрдХ рдЕрдиреБрднрд╡реА рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдХреАрд╡реА рдХреЗ рд╕рд╛рде рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЦреБрдж рдХреЛ рдЖрдЬрдорд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдХреНрдпрд╛ рдФрд░ рдХреНрдпрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдПрдХ рджрд┐рди рд╕реБрдмрд╣ рдореБрдЭреЗ рдореЗрд░реЗ рдореЗрд▓ рдкрд░ рдПрдХ рдкрддреНрд░ рдорд┐рд▓рд╛ рдЬрд┐рд╕рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ "рд╕рд╛рдЗрдЯ svyatye.com рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдФрд░ рдХрд┐рд╡реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рд▓реЛрдЧ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдмрд╛рдж рдХреЗ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдкрдврд╝ рд╕рдХреЗрдВ рдФрд░ рдЗрд╕рдХрд╛ рдСрдлрд▓рд╛рдЗрди рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВ" Google Play рдРрдк рд╕реНрдЯреЛрд░ред рд▓рд┐рдВрдХ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рдФрд░ рд╕рдВрд╕рд╛рдзрди рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЬреЛ рдЙрджреНрдзрд░рдгреЛрдВ рдХреА рдПрдХ рдмрдбрд╝реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрди рдЧрдпрд╛, рдореИрдВрдиреЗ рдХрд▓реНрдкрдирд╛ рдХреА рдХрд┐ рдпрд╣ рдореЛрдмрд╛рдЗрд▓ рдкреНрд░рд╕реНрддреБрддрд┐ рдореЗрдВ рдХреИрд╕реЗ рджрд┐рдЦреЗрдЧрд╛ рдФрд░ рдореИрдВ рдЙрджреНрдзрд░рдгреЛрдВ рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЪрд░реНрдЪ рдХреЗ рдкрд╡рд┐рддреНрд░ рдкрд┐рддрд╛рдУрдВ рдФрд░ рд╢рд┐рдХреНрд╖рдХреЛрдВ рдХреЗ 30,236 рд╕реЗ рдЕрдзрд┐рдХ рдХрд╣рд╛рд╡рддреЛрдВ рдХреА рд╕реВрдЪреА рдХреИрд╕реЗ рдмрдирд╛рдКрдВрдЧрд╛ред , резреж,режрежреж рд╕реЗ рдЕрдзрд┐рдХ рдЕрдХреНрд╖рд░ (рдореБрджреНрд░рд┐рдд рдкрд╛рда рдХреЗ рел-рем рдкреГрд╖реНрда) рддрдХ рдкрд╣реБрдБрдЪ рдЧрдП рд╣реИрдВред рдЪреВрдВрдХрд┐ рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдХреАрд╡реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛, рдореБрдЭреЗ рдЬрд▓реНрджреА рд╕реЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореИрдВ рдХреИрд╕реЗ рдФрд░ рдХреНрдпрд╛ рдХрд░реВрдВрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдЙрд╕рдиреЗ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдЬрд╡рд╛рдм рджрд┐рдпрд╛ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдЖрд╡реЗрджрди рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХрдард┐рдирд╛рдЗрдпрд╛рдБ, рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рдиреАрдЪреЗ рдЪрд░реНрдЪрд╛ рдХрд░реВрдБрдЧрд╛, рдлрд┐рд░ рднреА рдЙрдареА ...
рдХреЛрдИ рддрдХрдиреАрдХреА рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рдереЗред рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдШрдбрд╝реА рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░реЗред рдХреЛрдИ рд╕рдордп рд╕реАрдорд╛ рдирд╣реАрдВред рдХреЛрдИ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд▓реЗрдЖрдЙрдЯ рднреА рдирд╣реАрдВ рдереЗред "рд╕рдм рдХреБрдЫ рдпрдерд╛рд╕рдВрднрд╡ рд╕рд░рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдмрд┐рдирд╛ рдХрд┐рд╕реА рдПрдирд┐рдореЗрд╢рди, рд░реВрдкрд╛рдВрддрд░рдг рдФрд░ рдЕрдиреНрдп рднреВрд╕реА рдХреЗ, рдПрдХ рд╢рдмреНрдж рдореЗрдВ, рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗред" рдЦреИрд░, рд╕рдм рдмреЗрд╣рддрд░ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореЗрд░рд╛ рдирд┐рд░реНрдгрдп рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрдХрд╛ рд╣реБрдЖ рд╣реИ - рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрдХ рд░реАрд╕рд╛рдпрдХрд▓ рд╡реНрдпреВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛, рдЬреЛ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ, рдЙрдкрд╢реНрд░реЗрдгрд┐рдпреЛрдВ, рдЙрджреНрдзрд░рдгреЛрдВ рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдХреА рд╕реВрдЪреА рдФрд░ рд╕реНрд╡рдпрдВ рдЙрджреНрдзрд░рдгреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред
рд╕реВрдЪрд┐рдпреЛрдВ
рд╣рд╛рд▓рд╛рдБрдХрд┐, RecycleView, рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рд╡рд┐рднрд╛рдЬрд┐рдд рд╕реЗрдХрдВрдб рдореЗрдВ рдХрдИ рд╣рдЬрд╛рд░реЛрдВ рдХреА рд╡рд┐рд╢рд╛рд▓ рд╕реВрдЪреА рдЦреЛрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд╡рд╛рдВрдЫрд┐рдд рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╛рдлреА рдЕрд▓рдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред рдирд╣реАрдВ, рдЙрджреНрдзрд░рдг рд╕реВрдЪреА рдЦреЛрд▓рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереА, рд╕рдм рдХреБрдЫ рдЬрд▓реНрджреА рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛, рдореИрдВрдиреЗ рд╕рд╛рдЗрдЯ рдкрд░, рдЬреИрд╕реЗ рдХрд┐ "рдкреНрд░рддреАрдХреНрд╖рд╛" рд╡рд┐рдВрдбреЛ рдХреЗ рд╕рд╛рде рдирдП рдЙрджреНрдзрд░рдг рднреА рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдЪрдпрдирд┐рдд рд╢реНрд░реЗрдгреА рдХреЗ рдЙрджреНрдзрд░рдгреЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рддреБрд░рдВрдд рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕рдорд╕реНрдпрд╛ рдЕрд▓рдЧ рдереА - рдЧреНрд░рд╛рд╣рдХ рдиреЗ рдЬреЛрд░ рджреЗрдХрд░ рдХрд╣рд╛ рдХрд┐ рд╕реВрдЪреА рдореЗрдВ рдЙрджреНрдзрд░рдг рдХрд╛ рдкрд╛рда рдЕрдкрдиреА рд╕рдВрдкреВрд░реНрдгрддрд╛ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдпрд╣ рдХрд┐ RecycleView рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрд╣рд╛рдВ рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рдерд╛ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ: рдкреВрд░реА рд╕реВрдЪреА рдкрд░ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рддрдм рдмрд╕ рдХреНрд▓реЛрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реВрдЪреА рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдПрдХ рдЕрджреНрднреБрдд рдЧрддрд┐ рд╣реИ, рдЪрд╛рд╣реЗ рд╡рд╣ рдХрд┐рддрдирд╛ рднреА рдмрдбрд╝рд╛ рд╣реЛред рд▓реЗрдХрд┐рди рдПрдХ рдЪреАрдЬ рд╣реИ - рд╕реВрдЪреА рдЖрдЗрдЯрдо рдХреА рдКрдВрдЪрд╛рдИ рдкрд╣рд▓реЗ рд╕реЗ рддрдп рдФрд░ рдЬреНрдЮрд╛рдд рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдкрдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддреЗ рд╕рдордп рдЕрдЧрд▓реА рд╕реВрдЪреА рдЖрдЗрдЯрдо рдХреА рдКрдВрдЪрд╛рдИ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реИ, рддреЛ рдПрдХ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдЕрдВрддрд░рд╛рд▓ рд╣реИ - рд╕реВрдЪреА рдПрдХ рджреВрд╕рд░реЗ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рдЬрдорд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ, рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИред
рдЖрдзреЗ рдореЗрдВ рджреБ: рдЦ рдХреЗ рд╕рд╛рде, рдореИрдВрдиреЗ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдЙрджреНрдзрд░рдгреЛрдВ рдХреЗ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХреЗ рд╕рд╛рде рдПрдХ рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдмреА рд╣рд╛рд╕рд┐рд▓ рдХреА, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдкрд╛рда рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХреЗ рдкрд╛рда рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦреБрд▓реЗрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдлреЛрд░рдо рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐ RecycleView рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдерд╛ рд╕рдмрд╕реЗ рддрд╛рд░реНрдХрд┐рдХ: рдЙрджреНрдзрд░рдг рдХреЗ рдмрд╣реБ-рдкреГрд╖реНрда рдкрд╛рда рдХреЛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдЙрджреНрдзрд░рдг рдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд░реБрдЪрд┐ рдирд╣реАрдВ рджреА, рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдпрд╣ рд╕рд╣реА рдирд╣реАрдВ рдерд╛ред

рдЕрдВрдЬреАрд░ред 1
рдЙрджреНрдзрд░рдг рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдкрд░ рдЯреИрдк рдХрд░рдиреЗ рдкрд░ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдФрд░ рдкреВрд░реНрдг рдкрд╛рдардЗрд╕ рд╡рд┐рдХрд▓реНрдк рдиреЗ рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди ... рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдпрд╛ ... рдореБрдЭреЗ рдПрдХ рдзреАрдореЗ рд╕реНрдХреНрд░реЙрд▓рд╡реНрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдЬреЛ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕реВрдЪреА рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдЙрджреНрдзрд░рдг рд╕реВрдЪреА рдХреЛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдореБрдХреНрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реВрдЪреА рддрддреНрд╡реЛрдВ рдХреЗ рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдЧрдгрдирд╛ рдФрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдпрд╣ рд╕реНрдХреНрд░реАрди рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХреА рдЧрддрд┐ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛ред рдЖрдорддреМрд░ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рд╡реЗ рдореБрдЭрд╕реЗ рдХрд╣рддреЗ рд╣реИрдВ, "рдЗрд╕реЗ рдзреАрдорд╛ рд╣реЛрдиреЗ рджреЗрдВред"

рдЦреИрд░, рдореИрдВ рдЕрдм рдФрд░ рдмрд╣рд╕ рдирд╣реАрдВ рдХрд░рддрд╛, рдФрд░ рдпрджреНрдпрдкрд┐ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛, рдореБрдЭреЗ рд╕рдмрдХреБрдЫ рд╕реНрдХреНрд░реЙрд▓рд╡реНрдпреВ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдЪреВрдВрдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рд╕реНрдХреНрд░реЙрд▓рд╡реНрдпреВ рдмрд╣реБрдд рдзреАрдорд╛ рд╣реИ, рдЕрдЧрд▓реЗ рджрд╕ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рджрд╕ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдЙрджреНрдзрд░рдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред

рдереЛрдбрд╝рд╛ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реБрдП, рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдкрд╣рд▓рд╛ рдлреАрдбрдмреИрдХ рдПрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рдерд╛, рддреЛ рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрд╣рд╛ рдХрд┐ рдмреБрдХрдорд╛рд░реНрдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪреЛрдЯ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛рдПрдВрдЧреЗ, рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЧреНрд░рд╛рд╣рдХ рдиреЗ рдЕрднреА рднреА рд╕реНрдХреНрд░реЙрд▓рд╡реНрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрдгрдп рдкрд░ рд╕рдВрджреЗрд╣ рдХрд┐рдпрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд╣рдо рдЙрджреНрдзрд░рдг рдФрд░ рд░реАрд╕рд╛рдпрдХрд▓ рд╡реНрдпреВ рдХреЗ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рд╕реЗ рдмрд╛рд╣рд░ рд╣реИрдВред рддрдм рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╡реЗ рддреБрд░рдВрдд рдкрд┐рдЫрд▓реЗ рд╕рддреНрд░реЛрдВ рдХреА рд╕реВрдЪрд┐рдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рджреЗрдЦреЗ рдЧрдП рдмреБрдХрдорд╛рд░реНрдХ рд╕реЗ рддреБрд░рдВрдд рдмрд╣рд╛рд▓ рдХрд░ рд╕рдХрддреЗ рдереЗ, рдЪрд╛рд╣реЗ рд╡реЗ рдХрд┐рддрдиреЗ рднреА рд▓рдВрдмреЗ рд╣реЛрдВред рдФрд░ рд╕реНрдХреНрд░реЙрд▓рд╡реНрдпреВ рдХреЗ рд╕рд╛рде, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрд╕ рдкреБрд░рд╛рдиреЗ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдЬрдмрдХрд┐ рд╕реВрдЪреА рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрдо рд╕реЗ рдХрдо рдЙрджреНрдзрд░рдг рдХреА рднрд╛рд╡рдирд╛ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдмрд┐рд▓реНрдбрдУрдЬрд╝рд░ рдФрд░ рд╕реЗрд╡рд╛рдПрдБ
рдЬреИрд╕реЗ рд╣реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдЖ, рдЙрд╕рдореЗрдВ рдПрдХ рд╕реЗрд╡рд╛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдерд╛ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рджрд┐рди рдореЗрдВ рдПрдХ рдмрд╛рд░ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЙрджреНрдзрд░рдг рднреЗрдЬреЗрдЧрд╛ред рдореИрдВрдиреЗ рдХреАрд╡реА рдореЗрдВ рдкрд╣рд▓реЗ рдХрднреА рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдпрд╛рдж рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рд╣реИрдмреЗ рдХрд╛
рдПрдХ рд▓реЗрдЦ рд╣реИ , рдореИрдВрдиреЗ рдЗрд╕реЗ рдЖрдЬрдорд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдкреВрд░реЗ рд╣рдлреНрддреЗ рдорд╛рд░рдиреЗ рдХреЗ рдмрд╛рдж, рдкрд╛рдВрдЪ рдХреАрдмреЛрд░реНрдб рдФрд░ рджреЛ рдореЙрдирд┐рдЯрд░ рдХреЛ рддреЛрдбрд╝рдХрд░, рдореИрдВ рдЙрдкрд░реЛрдХреНрдд рд▓реЗрдЦ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреИрдХреЗрдЬ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдерд╛ - рд╕рдВрдХрд▓рди рдХреЗ рджреМрд░рд╛рди рдЖрд╡рд╢реНрдпрдХ рд╡рд░реНрдЧ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрдХ рдХреЛ рд▓рд┐рдЦреЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдХрд┐, рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░, рдХреЗрд╡рд▓ рджреЛ рдХрд╛рд░рдг рдЬрд┐рдирдХреЗ рдХрд╛рд░рдг рдореИрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛ рдерд╛: рдпрд╛ рддреЛ рдореИрдВ рдПрдХ рдмреЗрд╡рдХреВрдл рдерд╛ рдпрд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ Buildozer рдХреЛ рддреЛрдбрд╝ рджрд┐рдпрд╛, рдЬреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдПрдкреАрдХреЗ рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдЙрдкрдХрд░рдг рдерд╛ред рдореЗрд░реА рдзрд╛рд░рдгрд╛рдПрдВ рд╕рдЪ рдирд┐рдХрд▓реАрдВ - "рдмреЗрд╢рдХ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рддреЛрдбрд╝ рджрд┐рдпрд╛, рд╕рдВрд╕реНрдХрд░рдг 0.33 рдХреЗ рдмрд╛рдж рд╡реЗ рдХреНрдпрд╛ рдирд░рдХ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВрдЧреЗред"

рд╣рд╛рдВ,
рдХрд┐рд╡реА рдлреЛрд░рдо рдкрд░ рд╢реЗрд░реЛрдВ рдХреЗ рд╕рд╡рд╛рд▓реЛрдВ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛
рдмрд┐рд▓реНрдбрдУрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рдЙрдардиреЗ рд╡рд╛рд▓реА рд╡рд┐рднрд┐рдиреНрди рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИред рдЕрдм рдЗрд╕ рдЯреВрд▓ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕рд┐рдереЙрди рдХреЗ рдЕрдкрдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдк рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЪреБрдиреЗрдВрдЧреЗ, рдирд╡реАрдирддрдо Buildozer рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рдЕрдкрдиреЗ JAR рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд╣реАрдВ рдЬреЛрдбрд╝ рдкрд╛рдПрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдпрджреНрдпрдкрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЕрд╕реЗрдВрдмрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЖрдк рдПрдХ рдФрд░ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рд╣реЛрдВрдЧреЗред , рдореЗрд░реА рддрд░рд╣, рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдЪрд╛рд░реЛрдВ рдУрд░ рдмреИрдареЛред рдФрд░ ... рддреБрдо рдЙрд╕реЗ рдирд╣реАрдВ рдкрд╛рдУрдЧреЗред рдЗрд╕рд▓рд┐рдП, рд╢реБрд░реБрдЖрддреА рдФрд░ рдХрдордЬреЛрд░ рдорд╛рдирд╕рд┐рдХрддрд╛ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдмрд┐рд▓реНрдбрдУрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдХреНрд▓рд┐рдирд┐рдХ рдореЗрдВ рд▓рд╛ рд╕рдХрддрд╛ рд╣реИред
рддреЛ рдореИрдВрдиреЗ рдЗрд╕ рдореГрдд рдЯреНрд░реИрдХреНрдЯрд░ рдкрд░ рдереВрдХ рджрд┐рдпрд╛, рдирд░рдХ рдореЗрдВ рдЧрдпрд╛, рдЧрд┐рдердм рдореЗрдВ рдЧрдпрд╛, рдЕрдЬрдЧрд░-рдлреЙрд░-рдПрдВрдбреНрд░реЙрдЗрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛, рдСрдл рд╕рд╛рдЗрдЯ рдкрд░ рдХреНрд░рд┐рд╕реНрдЯреЗрдХреНрд╕-рдПрдирдбреАрдХреЗ рд▓рд┐рдпрд╛, рдкрд╛рдпрдерди 3.5 рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдФрд░ рд╢рд╛рдВрддрд┐ рд╕реЗ рддреАрд╕рд░реЗ рдкрд╛рдпрдерди рд╢рд╛рдЦрд╛ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдПрдХ рдПрдкреАрдХреЗрдЯреА рд▓рдЧрд╛рдпрд╛, рдЬреЛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ред рдХреБрдЦреНрдпрд╛рдд Buildozer рдХреЗ рд╕рд╛рде рдХреА рддреБрд▓рдирд╛ рдореЗрдВред
рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рдирд╣реАрдВред рд╡реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рд╕реЗрд╡рд╛ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдХреЗ рд░рд┐рдмреВрдЯ рд╕реЗ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрдЧреА, рдЪрд╛рд╣реЗ рд╡рд╣ рд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрдХ рдХреАрд╡реА рдореЗрдВ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реЛред Google Play рдкрд░ рдкрд╛рдП рдЬрд╛рдиреЗ рдФрд░ рдЗрд╕рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдХреЛрдИ рднреА рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛ рд░рд╣реА рд╣реИред рдХрд┐рд╡реА рдореЗрдВ 100% рд╕реЗрд╡рд╛рдПрдБ рдХреЗрд╡рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓реЙрдиреНрдЪ рдХреЗ рд╕рд╛рде рд╣реА рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред рдмрд╛рдж рдореЗрдВ, рдпрджрд┐ рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрдВрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдмрдВрдж рд╣реЛрдиреЗ рддрдХ рд╕реЗрд╡рд╛ рдЪреБрдкрдЪрд╛рдк рдХрд╛рдо рдХрд░рддреА рд░рд╣реЗрдЧреАред
рдкрд╛рдпрдерди 2 рдФрд░ рдкрд╛рдпрдерди 3 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдЗрд╕ рд╡рд░реНрд╖ рдХреЗ рдлрд░рд╡рд░реА рдореЗрдВ, рдореЙрд╕реНрдХреЛ рдкрд╛рдпрдерди рдпреИрдВрдбреЗрдХреНрд╕ рдХреЗ рдореЙрд╕реНрдХреЛ рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рд╡реНрд▓рд╛рджрд┐рд╕реНрд▓рд╛рд╡ рд╢рд╢рдХреЛрд╡ рдиреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рдкреНрд░рд╕реНрддреБрддрд┐ рджреА рдереА: "рдХрд┐рд╡реА / рдмрд┐рд▓реНрдбрдУрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рдкрд╛рдпрдерди рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдлрд▓рддрд╛ рдХреА рдХреБрдВрдЬреА рд╣реИ"ред рддреЛ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдпрд╣ рдХрд╣рдиреЗ рдХреА рдореВрд░реНрдЦрддрд╛ рдереА рдХрд┐ рдПрдкреАрдХреЗ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдкрд╛рдпрдерди 2 рдкрд╛рдпрдерди 3 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рддреЗрдЬрд╝ рд╣реИред рдХрд┐рд╕реА рдкрд░ рднреА рд╡рд┐рд╢реНрд╡рд╛рд╕ рди рдХрд░реЗрдВ, рдпрд╣ рд╕рдЪ рдирд╣реАрдВ рд╣реИред рдкрд╛рдпрдерди 3 рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдкрд╛рдпрдерди 2 рд╕реЗ рддреЗрдЬ рд╣реИ! рдЬрдм рдореИрдВрдиреЗ "рд╕рдВрддреЛрдВ рдХреЗ рдЙрджреНрдзрд░рдг" рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдерд╛ (рддрдм рдпрд╣ рднреА рдорд╛рди рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдореЗрдВ рджреВрд╕рд░реА рдкрд╛рдпрдерди рд╢рд╛рдЦрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛), рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдШрдмрд░рд╛рд╣рдЯ рд╣реБрдИ рдХрд┐ 20 рдПрдордмреА рдХреЛрдЯреЗрд╢рди рдмреЗрд╕, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреЗрдХреНрд╢рди рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ 13-16 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рд▓реЛрдб! рдФрд░ рдПрдХ рд╣реА рдЖрдзрд╛рд░, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд╛рдпрдерди 3 рдХреЗ рд╕рд╛рде рдпрд╣ 1-2 рд╕реЗрдХрдВрдб рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрддрд╛ рд╣реИ! рдЕрдкрдиреЗ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓реЗрдВ ...
рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рд╣рд╛рдВ, рдореЗрд░реЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ, рдореИрдВрдиреЗ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдХрд┐рд╡реА рдФрд░ рдЕрдиреНрдп рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕рдорд╛рдирддрд╛рдПрдВ рдЦреАрдВрдЪрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реНрдкреЙрдЗрд▓рд░ рдЦреЛрд▓рдиреЗ рдФрд░ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдкрд░ рдХрд┐рддрдиреЗ рд╕рд░рд▓, рддреЗрдЬ рдФрд░ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рддрд░реАрдХреЗ рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдП рдЧрдП рд╣реИрдВ ...
рдЙрджрд╛рд╣рд░рдгрдЖрдЗрдП рдПрдХ рдкреВрд░реНрдг рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рд╣рдо рдореВрд▓-рдЖрдзрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реЗ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ App.js рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
import React from 'react'; import {Container, Content} from 'native-base'; import {StyleSheet, Text, View} from 'react-native'; import AppFooter from './components/AppFooter.js'; const styles = StyleSheet.create({ container: { padding: 20 }, }); const App = () => ( <Container> <Content> <View style={styles.container}> <Text> Lorem ipsum... </Text> </View> </Content> <AppFooter/> </Container> ); export default App;
рд╣рдореЗрдВ рдирдпрд╛ AppFooter рдШрдЯрдХ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рдмрдирд╛рдирд╛ рд╣реИред рд╣рдо рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде ./compenders/ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ AppFooter.js рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ:
import React from 'react'; import {Footer, FooterTab, Button, Text} from 'native-base'; const AppFooter = () => ( <Footer> <FooterTab> <Button active> <Text></Text> </Button> <Button> <Text></Text> </Button> </FooterTab> </Footer> ); export default AppFooter;
рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИ!
рд╣рдорд╛рд░реЗ рдмрдЯрди рдЕрднреА рддрдХ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рдкрдврд╝рд╛рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рджреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ: рдХреНрд▓рд┐рдХ рдЗрд╡реЗрдВрдЯ рдХреЛ рд╣реИрдВрдбрд▓ рдХрд░рдирд╛ рд╕реАрдЦреЗрдВ рдФрд░ рд░рд╛рдЬреНрдп рдХреЛ рдХреИрд╕реЗ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВ, рдпрд╣ рд╕реАрдЦреЗрдВред рд░рд╛рдЬреНрдп рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рд╣рдордиреЗ рдХрдВрдкреЛрдиреЗрдВрдЯ рдореЗрдВ рд╕реНрдЯреЗрдЯ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╢реБрджреНрдз рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ рдФрд░ рдЧреНрд▓реЛрдмрд▓ рд╕реНрдЯреЛрд░ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирд╛, рд╣рдо Redux рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВрдЧреЗред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдЕрдкрдирд╛ рдкрдХреНрд╖ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред
import {createStore} from 'redux'; const initialState = {}; const store = createStore(reducers, initialState);
рдЪрд▓реЛ reducers рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд┐рдХреНрдд рдмрдирд╛рдПрдБред Reducers рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде index.js рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:
export default (state = [], action) => { switch (action.type) { default: return state } };
Reducers рдХреЛ App.js рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ:
import reducers from './reducers';
рдЕрдм рд╣рдореЗрдВ рдЕрдкрдиреЗ рд╕реНрдЯреЙрд░ рдХреЛ рдШрдЯрдХреЛрдВ рдкрд░ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд░рджрд╛рддрд╛ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рдЗрд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
import {Provider} from 'react-redux';
рдФрд░ рдПрдХ рдкреНрд░рджрд╛рддрд╛ рдореЗрдВ рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЛ рд▓рдкреЗрдЯреЛред рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ App.js рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
import React from 'react'; import {Container, Content} from 'native-base'; import {StyleSheet, Text, View} from 'react-native'; import AppFooter from './components/AppFooter.js'; import {createStore} from 'redux'; import {Provider} from 'react-redux'; import reducers from './reducers'; const initialState = {}; const store = createStore(reducers, initialState); const styles = StyleSheet.create({ container: { padding: 20 }, }); const App = () => ( <Provider store={store}> <Container> <Content> <View style={styles.container}> <Text> Lorem ipsum... </Text> </View> </Content> <AppFooter/> </Container> </Provider> ); export default App;
рдЕрдм рд╣рдорд╛рд░рд╛ рдЖрд╡реЗрджрди рдЕрдкрдиреЗ рд░рд╛рдЬреНрдп рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЖрдЗрдП рдЗрд╕рдХрд╛ рдлрд╛рдпрджрд╛ рдЙрдард╛рддреЗ рд╣реИрдВред рд╣рдо рдореЛрдб рд░рд╛рдЬреНрдп рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ ARTICLES рдореЗрдВред рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рд░реЗрдВрдбрд░ рдкрд░, рд╣рдорд╛рд░рд╛ рдЖрд╡реЗрджрди рд▓реЗрдЦреЛрдВ рдХреА рд╕реВрдЪреА рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
const initialState = { mode: 'ARTICLES' };
рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рди рд▓рд┐рдЦрдиреЗ рд╕реЗ рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВред рдЪрд▓реЛ рд╕реНрдерд┐рд░рд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рд╕реЗ рдПрдХ ./constants/index.js рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:
export const MODES = { ARTICLES: 'ARTICLES', PODCAST: 'PODCAST' };
рдФрд░ App.js рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдВ:
import {MODES} from './constants'; const initialState = { mode: MODES.ARTICLES };
рдЦреИрд░, рдПрдХ рд░рд╛рдЬреНрдп рд╣реИ, рдЗрд╕реЗ рдкрд╛рдж рд▓реЗрдЦ рдШрдЯрдХ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдЪрд▓рд┐рдП рдПрдХ рдФрд░ рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВ рд╣рдорд╛рд░реЗред
import React from 'react'; import {Footer, FooterTab, Button, Text} from 'native-base'; const AppFooter = () => ( <Footer> <FooterTab> <Button active> <Text></Text> </Button> <Button> <Text></Text> </Button> </FooterTab> </Footer> ); export default AppFooter;
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдмрдЯрди рдШрдЯрдХ рдХреА рд╕рдХреНрд░рд┐рдп рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд╡рд┐рдЪ рдХреА рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред рдЖрдЗрдП, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрдЯрди рдкрд░ рдзрдХреЗрд▓реЗрдВред рдпрд╣ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рд╣реБрдб рдХрд╛ рдореБрдЦреНрдп рдШрдЯрдХ рдкреНрд░рджрд╛рддрд╛ рдШрдЯрдХ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдкрд╣рд▓реЗ рдЬреЛрдбрд╝рд╛ рдерд╛ред рдпрд╣ рдХреЗрд╡рд▓ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рд╕реЗ рдЗрд╕реЗ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЧреБрдгреЛрдВ (рдЧреБрдг) рдореЗрдВ AppFooter рдШрдЯрдХреЛрдВ рдХреЛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЕрдкрдиреЗ AppFooter рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдкреНрд░реЙрдкреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдЯрди рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ:
import React from 'react'; import {Footer, FooterTab, Button, Text} from 'native-base'; import {MODES} from "../constants"; const AppFooter = ({mode = MODES.ARTICLES}) => ( <Footer> <FooterTab> <Button active={mode === MODES.ARTICLES}> <Text></Text> </Button> <Button active={mode === MODES.PODCAST}> <Text></Text> </Button> </FooterTab> </Footer> ); export default AppFooter;
рдЕрдм рдПрдХ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ ./containers/AppFooterContainer.js
import React from 'react'; import AppFooter from '../components/AppFooter.js'; import {MODES} from "../constants"; const AppFooterContainer = () => ( <AppFooter mode={MODES.ARTICLES} /> ); export default AppFooterContainer;
рдФрд░ AppFooterContainer рдХрдВрдЯреЗрдирд░ рдХреЛ AppFooter рдШрдЯрдХ рдХреЗ рдмрдЬрд╛рдп App.js рдореЗрдВ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред рдЕрдм рддрдХ, рд╣рдорд╛рд░рд╛ рдХрдВрдЯреЗрдирд░ рдШрдЯрдХ рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреИрд╕реЗ рд╣реА рд╣рдо рдЗрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕реНрдерд┐рддрд┐ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред рдЪрд▓реЛ рдпрд╣ рдХрд░рддреЗ рд╣реИрдВ!
import React from 'react'; import AppFooter from '../components/AppFooter.js'; import {connect} from 'react-redux'; const mapStateToProps = (state) => ({ mode: state.mode }); const AppFooterContainer = ({mode}) => ( <AppFooter mode={mode} /> ); export default connect( mapStateToProps )(AppFooterContainer);
рдмрд╣реБрдд рдХрд╛рд░реНрдпрд╛рддреНрдордХ! рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╕рд╛рдл рд╣реЛ рдЧрдИ рд╣реИрдВред рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ? рд╣рдо рдХрдиреЗрдХреНрдЯ рдХрдВрдЯреЗрдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдХрдВрдЯреЗрдирд░ рдХреЛ рд░рд╛рдЬреНрдп рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рдкреНрд░реЙрдкреНрд╕ рдХреЛ рдореИрдкрд╕реНрдЯреИрдЯрдЯреЙрдкреНрд░реЙрдкрд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рд╡реИрд╢реНрд╡рд┐рдХ рд░рд╛рдЬреНрдп рдХреА рд╕рд╛рдордЧреНрд░реА рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдмрд╣реБрдд рд╕рд╛рдл рдФрд░ рд╕реБрдВрджрд░ред
рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдКрдкрд░ рд╕реЗ рдиреАрдЪреЗ рддрдХ рдбреЗрдЯрд╛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдирд╛ рд╕реАрдЦ рд▓рд┐рдпрд╛ рд╣реИред рдЕрдм рд╣рдореЗрдВ рдпрд╣ рд╕реАрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рд╣рдо рдиреАрдЪреЗ рд╕реЗ рдКрдкрд░ рдХреА рдУрд░ рдЕрдкрдиреА рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рдХреИрд╕реЗ рдмрджрд▓реЗрдВред рдХреНрд░рд┐рдпрд╛рдПрдБ рд╡реИрд╢реНрд╡рд┐рдХ рд░рд╛рдЬреНрдп рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдЧрдИ рд╣реИрдВред рдЖрдЗрдП рдПрдХ рдмрдЯрди рдмрдирд╛рддреЗ рд╕рдордп рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдХреНрд░рд┐рдпрд╛ рдмрдирд╛рдПрдБред
рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ ./actions/index.js:
import { SET_MODE } from './actionTypes'; export const setMode = (mode) => ({type: SET_MODE, mode});
рдФрд░ ./actions/actionTypes рдлрд╝рд╛рдЗрд▓, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдХрд╛рд░реНрд░рд╡рд╛рдИ рдирд╛рдо рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВрдЧреЗ:
export const SET_MODE = 'SET_MODE';
рдХрд╛рд░реНрд░рд╡рд╛рдИ рдИрд╡реЗрдВрдЯ рдХреЗ рдирд╛рдо рдФрд░ рдЗрд╕ рдШрдЯрдирд╛ рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреА рд╣реИ, рдФрд░ рдЗрд╕рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдЫ рдирд╣реАрдВред рдЕрдм рд╣рдо рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ рдЗрд╕ рдШрдЯрдирд╛ рдХреЛ рдХреИрд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╣рдо AppFooterContainer рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖрддреЗ рд╣реИрдВ рдФрд░ mapDispatchToProps рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдХрдВрдЯреЗрдирд░ рдХреЗ рдкреНрд░реЙрдкрд░ рдореЗрдВ рдЗрд╡реЗрдВрдЯ рдбрд┐рд╕реНрдкреИрдЪрд░ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдЧрд╛ред
import React from 'react'; import AppFooter from '../components/AppFooter.js'; import {connect} from 'react-redux'; import {setMode} from '../actions'; const mapStateToProps = (state) => ({ mode: state.mode }); const mapDispatchToProps = (dispatch) => ({ setMode(mode) { dispatch(setMode(mode)); } }); const AppFooterContainer = ({mode, setMode}) => ( <AppFooter mode={mode} setMode={setMode} /> ); export default connect( mapStateToProps, mapDispatchToProps )(AppFooterContainer);
рдЦреИрд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ SET_MODE рдЗрд╡реЗрдВрдЯ рдХреЛ рдЙрдард╛рддрд╛ рд╣реИ рдФрд░ рд╣рдордиреЗ рдЗрд╕реЗ рдРрдкрдлрд╝реБрдЯрд░ рдШрдЯрдХ рдкрд░ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИред рджреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рдмрдиреА рд╣реБрдИ рд╣реИрдВ:
рдХреЛрдИ рднреА рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдШрдЯрдирд╛ рдХреЛ рдХреЛрдИ рдирд╣реАрдВ рд╕реБрди рд░рд╣рд╛ рд╣реИред
рд╣рдо рдкрд╣рд▓реА рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдирд┐рдкрдЯреЗрдВрдЧреЗред рд╣рдо AppFooter рдШрдЯрдХ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдХреЙрд▓ рдХреЛ рд╕реЗрдЯрдореЛрдб рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред
import React from 'react'; import {Footer, FooterTab, Button, Text} from 'native-base'; import {MODES} from "../constants"; const AppFooter = ({mode = MODES.ARTICLES, setMode = () => {}}) => ( <Footer> <FooterTab> <Button active={mode === MODES.ARTICLES} onPress={ () => setMode(MODES.ARTICLES)}> <Text></Text> </Button> <Button active={mode === MODES.PODCAST} onPress={ () => setMode(MODES.PODCAST)}> <Text></Text> </Button> </FooterTab> </Footer> ); export default AppFooter;
рдЕрдм, рдЬрдм рдмрдЯрди рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ SET_MODE рдШрдЯрдирд╛ рдХреЛ рдЙрдард╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ рдХрд┐ рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рдХреИрд╕реЗ рдмрджрд▓рд╛ рдЬрд╛рдПред рд╣рдо рдкрд╣рд▓реЗ рдмрдирд╛рдП рдЧрдП ./reducers/index.js рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдИрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд┐рдбреНрдпреВрд╕рд░ рдмрдирд╛рддреЗ рд╣реИрдВ:
import { SET_MODE } from '../actions/actionTypes'; export default (state = [], action) => { switch (action.type) { case SET_MODE: { return Object.assign({}, state, { mode: action.mode }); } default: return state } };
рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛! рдЕрдм рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рд╕реЗ рдПрдХ рдШрдЯрдирд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ рдЬреЛ рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓ рджреЗрддреА рд╣реИ, рдФрд░ рдкрд╛рдж рд▓реЗрдЦ, рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдмрдЯрди рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рддрд╛ рд╣реИред
рдореВрд▓ рд▓реЗрдЦрд╕рдЪ рд╣реИ, рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рд╕рд░рд▓? рдпрд╣ рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рдбрд░рд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдкрд░ рдХрд┐рддрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╡реГрджреНрдзрд╛рд╡рд╕реНрдерд╛ рдореЗрдВ рдорд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рд╕рд╛рд░реЗ рдЕрдкрдорд╛рди рдХреЗ рд▓рд┐рдП рдХрд┐рддрдиреЗ рдкреИрд╕реЗ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕ рд╕рдм рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред

1988 рдореЗрдВ рдПрд▓реНрдмрдо "... рдПрдВрдб рдЬрд╕реНрдЯрд┐рд╕ рдлреЙрд░ рдСрд▓" рдХреЗ рд╕рдВрдЧреАрдд рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдмрд╛рдж, рдореЗрдЯрд╛рд▓рд┐рдХрд╛ рдХреЗ рдиреЗрддрд╛ рдЬреЗрдореНрд╕ рд╣реЗрдЯрдлреАрд▓реНрдб рдиреЗ рдХрд╣рд╛, "рдпрд╣ рдРрд╕рд╛ рд╣реИ ... рд▓реЗрдХрд┐рди рдЬреАрд╡рд┐рдд рдЦреЗрд▓рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред" рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдкрд░ рдирдореВрдирд╛ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЬреЗрдореНрд╕ рдХреЗ рд╕рд╛рде рдПрдХрдЬреБрдЯрддрд╛ рдореЗрдВ рдмрди рдЧрдпрд╛ - рдпрд╣реА рд╣реИ ... рд▓реЗрдХрд┐рди рдЬреАрд╡рд┐рдд рд▓рд┐рдЦрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ!
рдФрд░ рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреАрд╡реА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
from kivy.app import App from kivy.factory import Factory from kivy.lang import Builder Builder.load_string(""" <MyButton@Button>: background_down: 'button_down.png' background_normal: 'button_normal.png' color: 0, 0, 0, 1 bold: True on_press: self.parent.parent.ids.textEdit.text = self.text; \ self.color = [.10980392156862745, .5372549019607843, .996078431372549, 1] on_release: self.color = [0, 0, 0, 1] <MyActivity@BoxLayout>: orientation: 'vertical' TextInput: id: textEdit BoxLayout: size_hint_y: None height: dp(45) MyButton: text: '' MyButton: text: '' """) class Program(App): def build(self): my_activity = Factory.MyActivity() return my_activity Program().run()
рдпрд╣ рдЗрддрдирд╛ рд╕рд░рд▓ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рднреА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдмреЗрдорд╛рдиреА рд╣реИрдВред
рд╣рд╛рдВ, рдЖрдк рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм рдХрд┐рд╡реА рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ:
vimeo.com/29348760vimeo.com/206290310vimeo.com/25680681www.youtube.com/watch?v=u4NRu7mBXtAwww.youtube.com/watch?v=9rk9OQLSoJwwww.youtube.com/watch?v=aa9LXpg_gd0www.youtube.com/watch?v=FhRXAD8-UkEwww.youtube.com/watch?v=GJ3f88ebDqc&t=111swww.youtube.com/watch?v=D_M1I9GvpYswww.youtube.com/watch?v=VotPQafL7NwрдЕрдВрдд рдореЗрдВ, рдореИрдВ рдЖрд╡реЗрджрди рдХрд╛ рдПрдХ рд╡реАрдбрд┐рдпреЛ рджреЗрддрд╛ рд╣реВрдВ:
рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦрд┐рдП рдХрд┐ рдЖрдк рдХрд┐рди рд▓реЗрдЦреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИрд╡реА рдХреЗ рдкрдиреНрдиреЛрдВ рдкрд░ рдХрд┐рд╡реА рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ, рддреЛ рд╕рднреА рдЗрдЪреНрдЫрд╛рдУрдВ рдХреЛ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЬрд▓реНрдж рд╣реА рдорд┐рд▓рддреЗ рд╣реИрдВ, dzzya!