рд╕реНрдкрдВрджрди - рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╡рд┐рдХрд╛рд╕ рдкрд░ рдПрдХ рдирдпрд╛ рд░реВрдк

рдЕрдЧрд╕реНрдд 2018 рдореЗрдВ, рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдкрд░ рдлреНрд▓рдЯрд░ рд╕рдмрд╕реЗ рдЕрдиреБрд░реЛрдзрд┐рдд рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рддрдХрдиреАрдХ рдмрди рдЧрдпрд╛ред


рдЫрд╡рд┐


рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдкрд░, рдПрдХ рдкреНрд░рдорд╛рдгрд┐рдд Google рдПрдЬреЗрдВрд╕реА, рд╕рд░реНрдл рд╕реЗ рдЖрд░реНрдЯреЗрдо рдЬрд╝реИрддрд╕реЗрд╡ рдФрд░ рдПрд╡рдЧреЗрдиреА рд╕реИрдЯреНрд░реЛрд╡ рдмрддрд╛рдПрдВрдЧреЗ рдХрд┐ рдпрд╣ рдХреНрдпреЛрдВ рдФрд░ рдХреИрд╕реЗ рд╣реБрдЖ:


рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕рдорд╛рдзрд╛рдиреЛрдВ рдиреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдХрдИ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рддрд╣рдд рдПрдХ рд╕рд╛рде рдПрдорд╡реАрдкреА рдЙрддреНрдкрд╛рдж рдХреЛ рдЬрд▓реНрджреА рдФрд░ рд╕рд╕реНрддреЗ рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдХрд╛рд░рдг рд╕рд░рд▓ рд╣реИ - рдПрдХ рдПрдХрд▓ рдХреЛрдб рдЖрдзрд╛рд░ред рдЗрд╕реЗ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ: рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдХреЗрдВрджреНрд░реАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдмрдЧ рдХреЗ рддрд░реНрдХ рдФрд░ рд╕рдВрдкрд╛рджрди рдХрд╛ рдХреЛрдИ рджреЛрд╣рд░рд╛рд╡ рдирд╣реАрдВ рд╣реИред рдФрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рджреЛ рджреЗрд╢реА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред


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


рдмрд╣реБрдд рдЬрд▓реНрдж, Google рдХреЗ рдирдП рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕ рдврд╛рдВрдЪреЗ, рдлрд╝реНрд▓рдЯрд░ рдХреА рдЕрдВрддрд┐рдо рд░рд┐рд▓реАрдЬрд╝, рд╕реНрдЯреИрдЯрд░ рдУрд╡рд░рдлрд╝реНрд▓реЛ рдкрд░ рд╕рдмрд╕реЗ рдЕрдиреБрд░реЛрдзрд┐рдд рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рддрдХрдиреАрдХ рдмрдирдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИред рдореИрдВ рдЗрд╕ рдмрд╛рдд рдкрд░ рдЬреЛрд░ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рджреЛ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: рдПрдВрдбреНрд░реЙрдЗрдб рдФрд░ рдЖрдИрдУрдПрд╕ред рдлрд┐рд▓рд╣рд╛рд▓, рд░рд┐рд▓реАрдЬ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди 2 рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕реНрдкрдВрджрди рдкрд░ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдЖрддреА рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдврд╛рдВрдЪреЗ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рджрд┐рдЦрд╛рдирд╛ рд╣реИред рдЕрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдШрдЯрдХреЛрдВ рдФрд░ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рдРрдб-рдСрди рдХреЗ рд╕рд╛рде рдбреЗрд╡рд▓рдкрд░ рд╕рдореБрджрд╛рдп (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Redux рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди) рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред



рдЖрдкрдХреЛ рд╕реНрдкрдВрджрди рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?


рддреНрд╡рд░рд┐рдд рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдорд╣рд╛рди рдЯреНрдпреВрдирд┐рдВрдЧ


рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИред рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрдВрджрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓ рд╣реИред


рд╣реЙрдЯ рд░реАрд▓реЛрдб рдПрдХ рдХрд┐рд▓рд░ рд╕реБрд╡рд┐рдзрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдХреЛрдб рд╕реЗ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдПрдХ рд░рдирд┐рдВрдЧ рдПрдореБрд▓реЗрдЯрд░ рдпрд╛ рдХрдиреЗрдХреНрдЯреЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рддреБрд░рдВрдд рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред



рд╕рд╛рджрдЧреА рдФрд░ рд▓реЗрдЖрдЙрдЯ рдХреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐


рдпрджрд┐ рдЖрдкрдиреЗ рдХрднреА рднреА Android рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдП рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рд▓реЗрдЖрдЙрдЯ рдХреБрдЫ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЖрдкрдиреЗ рдЖрдирдВрдж рд▓рд┐рдпрд╛ рд╣реИред


рд╕реНрдкрдВрджрди рдЕрд▓рдЧ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХреЛрдИ XML рдлрд╛рдЗрд▓реЗрдВ - рд╡рд┐рдЬреЗрдЯреНрд╕ рд╕реАрдзреЗ рдХреЛрдб рдореЗрдВ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдХреБрдЫ рд╣рдж рддрдХ рдПрдирдХреЛ рд▓реЗрдЖрдЙрдЯ рдХреА рдпрд╛рдж рддрд╛рдЬрд╛ рдХрд░рддреА рд╣реИ)ред рд╡реНрдпреВ рдХреЗ рдмрдЬрд╛рдп, рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


new Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Padding( padding: EdgeInsets.all(16.0), child: Text( '$_name', ), ), //... 

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


рджреВрд╕рд░реЗ, рд╢реБрд░реБрдЖрдд рд╕реЗ рд╣реА, рдордВрдЪ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рддреИрдпрд╛рд░ рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдореЗрдВ рджреЛ рд╕реЗрдЯ рддрддреНрд╡, рд╕рд╛рдордЧреНрд░реА рдЕрд╡рдпрд╡ рдФрд░ рдХреНрдпреВрдкрд░реНрдЯрд┐рдиреЛ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рдореВрд▓ рдирд┐рд╡рд╛рд╕реА рд╣реИрдВред рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╡рд┐рдЬреЗрдЯ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдЙрдирдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ iOS рдФрд░ Android рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рд╕рдорд╛рди рд╣реИрдВред



рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдврд╛рдВрдЪрд╛


рди рдХреЗрд╡рд▓ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреА рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдХрд╛рд░рдг, рдмрд▓реНрдХрд┐ рдЬрд┐рд╕ рднрд╛рд╖рд╛ рдореЗрдВ рдЖрдкрдХреЛ рд▓рд┐рдЦрдирд╛ рд╣реИ, рдЖрдк рдХрдо рд╕рдордп рдореЗрдВ рдПрдХ рд╕реБрдВрджрд░ рдФрд░ рд╕реБрдЦрдж рдпреВрдЖрдИ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдбрд╛рд░реНрдЯ рджреВрд░рд╕реНрде рд░реВрдк рд╕реЗ рдЬрд╛рд╡рд╛, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рд╕реА # рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдпрд╣ рдЕрднрд┐рд╡реНрдпрдВрдЬрдХ рд╣реИ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдврд╛рдВрдЪреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреЛрдЯрд▓рд┐рди рдХреЗ рдмрд╛рдж, рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рдХреБрдЫ рдХрд▓рд╛рддреНрдордХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдХрд╛рд╢ рд╕реНрддреВрдк рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рд╕реНрдкрдВрджрди рдкреНрд░рддреНрдпреЗрдХ рдордВрдЪ рдХреЗ рд▓рд┐рдП рдореВрд▓ рдХреЛрдб рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред "рд╣реБрдб рдХреЗ рддрд╣рдд," рд╡рд╣ рдПрдХ рдЗрдВрдЬрди рдЗрдВрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдХрд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред



рд╕рд┐рд╕реНрдЯрдо рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреА рдПрдХ рдкреНрд░рдореБрдЦ рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рднреА рд╡рд┐рдЬреЗрдЯреНрд╕, рд╕рд╛рде рд╣реА рдХреИрдирд╡рд╛рд╕ рдкрд░ рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдШрдЯрдХ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВ, рди рдХрд┐ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдоред рдпрд╣ рд╕рдВрджрд░реНрдн рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рдЕрднрд╛рд╡ рд╣реИ рдФрд░ "рдкреБрд▓реЛрдВ" рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдпреВрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╕рдордп 60 рдПрдлрдкреАрдПрд╕ рдХреЗ рдкреЛрд╖рд┐рдд рдЖрдВрдХрдбрд╝реЗ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред


рдордВрдЪ рдХреА рдкреВрд░реА рд╢рдХреНрддрд┐ рдЕрднреА рднреА рдЖрдкрдХреЗ рд╣рд╛рдереЛрдВ рдореЗрдВ рд╣реИ


рдПрдХ рджрд╢рдХ рдХреЗ рд▓рд┐рдП рдореЛрдмрд╛рдЗрд▓ рд╕рдореБрджрд╛рдп рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдЯрди рдХрд╛ рдПрдХ рдЯрди рдХреНрдпреЛрдВ рджреЗрдВ? рдлрд╝реНрд▓рдЯрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рджреЗрд╢реА рдПрд╕рдбреАрдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдФрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдПрдкреАрдЖрдИ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



рдкрд░реНрдпрд╛рд╡рд░рдг рдХреА рд╕реНрдерд╛рдкрдирд╛


рдлреНрд▓рдЯрд░ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред


рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреНрд░рд▓реЗрдЦрди рдЙрдЪрд┐рдд рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд╕рд╛рде рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ, рдЗрдВрдЯреЗрд▓реАрдЬ рдпрд╛ рд╡реАрдПрд╕рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рднреА рдкрд╛рда рд╕рдВрдкрд╛рджрдХ рдХрд░реЗрдЧрд╛ред


рдкрд╣рд▓рд╛ рдХрджрдо


рдЕрдкрдиреЗ рдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ рд╕реЗ рдлрд╝реНрд▓рдЯрд░ рдПрд╕рдбреАрдХреЗ рд╕реЗ рд╕рдВрдЧреНрд░рд╣ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред рд╡рд╛рдВрдЫрд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВ рдФрд░ flutter doctor рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдВред рдпрд╣ рдХрдорд╛рдВрдб рдпрд╣ рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╕рдм рдХреБрдЫ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рд╕рд╛рде рд╣реА рд╕реНрдерд╛рдкрд┐рдд рдЖрдИрдбреАрдИ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧ-рдЗрди рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рднреА рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧ-рдЗрди рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдЧреА)ред


рджреВрд╕рд░рд╛ рдХрджрдо


рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдЪрд▓рд╛, рддреЛ рдЖрдк рдкрд╣рд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдкрд╛рдИ рдЬрд╛рддреА рд╣реИрдВ, рддреЛ рдбреЙрдХреНрдЯрд░ рдЖрдкрдХреЛ рдмрддрд╛рдПрдВрдЧреЗ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПред


рдЪрд░рдг рддреАрди


рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рд╕реНрдкрдВрджрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рджреЛ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рд╕реНрдкрдВрджрди рдФрд░ рдбрд╛рд░реНрдЯ ред рдЖрдк рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЦреЛрд▓рдХрд░ рдФрд░ рдЦреЛрдЬ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрд╛ рдЪрдпрди рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рдорд╛рдирдХ рддрд░реАрдХреЗ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдкрд░реНрдпрд╛рд╡рд░рдг рдХреА рд╕реНрдерд╛рдкрдирд╛ рдкрд░ рд╡рд┐рд╡рд░рдг рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред


рддреАрд╡реНрд░ рдЧрддрд┐


 import 'package:flutter/material.dart'; void main() => runApp(MyApp()); 

рд╕реНрдкрдВрджрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╕рдордп рдЖрдкрдХреА рдЖрдВрдЦ рдХреЛ рдкрдХрдбрд╝рдиреЗ рд╡рд╛рд▓реА рдкрд╣рд▓реА рдЪреАрдЬ рдПрдХ рдЕрд╕рд╛рдорд╛рдиреНрдп рдХреЛрдб рд╣реИред Android рд╡рд┐рдХрд╛рд╕ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ, рдЬрд╛рд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдХреЛрдЯрд▓рд┐рдиред


рдЕрдм рдЙрдирдХреЗ рд╕рд╛рде рдбрд╛рд░реНрдЯ рд╣реИ ред Google рдЗрд╕реЗ рдордЬрдмреВрдд рдЯрд╛рдЗрдкрд┐рдВрдЧ, рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рд▓рдЪреАрд▓реЗрдкрди рдХреЗ рд╕рд╛рде рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рди рджреЗ рд░рд╣рд╛ рд╣реИред


рдбрд╛рд░реНрдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕реАрдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреЛрдЯрд▓рд┐рди рдХреЗ рд░реВрдк рдореЗрдВ рд╕реБрдВрджрд░ рдирд╣реАрдВ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рд╕реНрд╡рд╛рдж рдФрд░ рдЖрджрдд рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИред


рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрдорд╛рдг


рдЖрдк рдХрдВрд╕реЛрд▓ рдореЗрдВ рдирд╛рдо рдХрдорд╛рдВрдб рдХреЛ рдЪрд▓рд╛рдХрд░ рдпрд╛ IDE рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ (Android Studio рдореЗрдВ -> рдиреНрдпреВ рдлрд╝реНрд▓рдЯрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ)ред


рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рдВрд░рдЪрдирд╛


рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдирд┐рдореНрди рд╕рдВрд░рдЪрдирд╛ рджреЗрдЦреЗрдВрдЧреЗред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдЪрд╛рд░ рдкреИрдХреЗрдЬ рд╣реИрдВ - lib, ios, android рдФрд░ testред



рдкрд╣рд▓рд╛ рд╣реИ рдлреНрд░реЗрдорд╡рд░реНрдХ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реАред рд╕рднреА рдбрд╛рд░реНрдЯ рдлрд╛рдЗрд▓реЗрдВ рдФрд░ рдореБрдЦреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рд╡рд╣рд╛рдВ рд╕реНрдерд┐рдд рд╣реИрдВред рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдлрд╝реНрд▓рдЯрд░ рдХреЛ рдореВрд▓ рдХреЛрдб рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдХреБрдЫ рджреЗрд╢реА рдЗрдВрдЯрд░реИрдХреНрд╢рди рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реНрдкрдВрджрди рдХреЛ рдПрдХ рдореМрдЬреВрджрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореВрд▓ рдХреЛрдб рдХреЗ рд▓рд┐рдП, рджреЛ рдкреИрдХреЗрдЬ рджрд┐рдП рдЧрдП рд╣реИрдВ - ios / android, рдЬрд┐рд╕рдореЗрдВ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реИ - рдУрдмрдЬ-рд╕реА / рд╕реНрд╡рд┐рдлреНрдЯ рдпрд╛ рдЬрд╛рд╡рд╛ / рдХреЛрдЯрд▓рд┐рдиред рдЖрдк рдкрд░реАрдХреНрд╖рдг рдкреИрдХреЗрдЬ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдкрд╛рдПрдВрдЧреЗред


рд░реВрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдПрдХ pubspec.yaml рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╣реИ - рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╡рд╣рд╛рдВ рд╕реЗ рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИрдВ, рдЖрджрд┐ред рдЕрдЧрд░ рд╣рдо рд╕рд╛рджреГрд╢реНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдлрд╝реНрд▓рдЯрд░ рдХреЗ рд▓рд┐рдП рдпрд╣ build.gradle рдХреА рддрд░рд╣ рд╣реИ (рдпрд╣ рднреА рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреЗрд╢реА рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ)ред


рдкрд░рд┐рд╡рд╛рдж рдкреИрдХреЗрдЬ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрдХреЗрдЬ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд╛рдж рдФрд░ рдЗрдЪреНрдЫрд╛ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИред рд╡реИрд╕реЗ, рдлрд╝реНрд▓рдЯрд░ рдкрд░ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рднрд┐рдиреНрди рдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдпрд╣рд╛рдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред


рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рддреБрд░рдВрдд рдПрдХ main.dart рдлрд╝рд╛рдЗрд▓ рд╣реЛрдЧреА рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдХреЛрдб рд╣реЛрдЧрд╛ред рдЖрд╡реЗрджрди рдореЗрдВ рдПрдХ рдПрдХрд▓ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рд╣реИ - рдореБрдЦреНрдп рд╡рд┐рдзрд┐ред рд╡рд╣ рд░реВрдЯ рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред


рд╕рдм рдХреБрдЫ рдПрдХ рд╡рд┐рдЬреЗрдЯ рд╣реИ


рд╕реНрдХреНрд░реАрди рдкрд░ рдЬреЛ рдХреБрдЫ рднреА рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ (рдпрд╛ рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВ), рд╡рд╣ рд╕рдм рдХреБрдЫ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрд╡рдпрдВ рд╡рд┐рдЧреЗрдЯреНрд╕ рд╣реИрдВред рдХреЛрдИ рднреА рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдЗрдХрд╛рдИ рдПрдХ рд╡рд┐рдЬреЗрдЯ рд╣реИред рдЯреЗрдХреНрд╕реНрдЯ рдмреЙрдХреНрд╕, рдЗрдВрдбреЗрдВрдЯ рдпрд╛ рдЬреЗрд╕реНрдЪрд░ рдбрд┐рдЯреЗрдХреНрдЯрд░ - рд╡рд┐рдЧреЗрдЯреНрд╕ред рдЖрд╡реЗрджрди рдЙрдирд╕реЗ рдПрдХ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред


рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░, "рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдЬреЗрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдПрдХ рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡рд┐рд╡рд░рдг рд╣реИ"ред


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдЗрд╕ рд╕реНрдХреНрд░реАрди рдХреЗ рд╕рд╛рде рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВ:



рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдЧреЗрдЯреНрд╕ рдпрд╣рд╛рдВ рдореМрдЬреВрдж рд╣реИрдВ:


  • рдПрдкреНрд▓рд┐рдХреЗрд╢рди
  • рдкреНрд░рджрд░реНрд╢рди
  • AppBar
  • рдкрд╛рда
  • рд▓реЛрдбрд░ рдХреЗ рд╕рд╛рде рдмрдЯрди

рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреБрдЫ рдХреЛ рд╕реНрд╡рдпрдВ рддреИрдпрд╛рд░ рднрд╛рдЧреЛрдВ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред


рд╡рд┐рдЬреЗрдЯ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ Stateless рдФрд░ Stateful ред рдкреВрд░реНрд╡ рд╕реНрдерд┐рд░ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╛рда), рдмрд╛рдж рд╡рд╛рд▓реЗ рд░рд╛рдЬреНрдп рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕реНрдХреНрд░реАрди)ред


рд░рд╛рдЬреНрдпрд╡рд┐рд╣реАрди


рдПрдХ рдЖрд╡реЗрджрди рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг MyApp рд╣реЛрдЧрд╛ред рдпрд╣ рдЖрд╡реЗрджрди рдХреА рдЬрдбрд╝ рд╣реИред рдЕрдВрджрд░, рд╣рдо рдирд┐рд░реНрдорд╛рдг рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЛ рд░рдЦ рджреЗрдВрдЧреЗред


 class MyApp extends StatelessWidget { // This widget is the root of your application. @override Widget build(BuildContext context) { return new MaterialApp( title: 'Flutter Demo', theme: new ThemeData( primarySwatch: Colors.blue, ), home: Scaffold( appBar: new AppBar( title: new Text("Flutter Random Name"), ), body: new MyHomePage(), ), ); } } 

рдХреЛрдИ рднреА рд╕реНрдерд┐рд░ рд╡рд┐рдЬреЗрдЯ StatelessWidget рд╡рд░реНрдЧ рдХрд╛ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА рд╣реИред рдЖрдкрдХреЛ рдмрд╕ рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рддрддреНрд╡ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд╕реНрдкрдВрджрди рд░рдЪрдирд╛ рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрддрд╛ рд╣реИред рдПрдХ рдирдпрд╛ рдЖрдЗрдЯрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рди рдХрд░реЗрдВред


рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпрд╣ рд╡рд┐рдЬреЗрдЯ MaterialApp (рдордЯреЗрд░рд┐рдпрд▓рдбрд┐рдЬрд╛рдЗрди рд╕реЗ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдЬрдбрд╝) рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЕрдВрджрд░ Scaffold - рдпрд╣ рд╕реНрдХреНрд░реАрди рд╣реИред


MyHomePage рдПрдХ рд╡рд┐рдЬреЗрдЯ рднреА рд╣реИ рдЬреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рдмреЙрдбреА рдХреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИ, AppBar рдХреЛ рдЫреЛрдбрд╝рдХрд░ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдПрдХ рд░рд╛рдЬреНрдп рд╣реИред рд╣рдо рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреАрдЪреЗ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред


рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреНрд▓рд╛рд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рддрд░реНрдХреЛрдВ рдХреЗ рдЖрд░рдВрдн рдХреЗ рд╕рд╛рде рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝реАрд▓реНрдб рдореЗрдВ рдкрд╛рд╕ рдХрд░рдХреЗ рд╣реЛрддрд╛ рд╣реИред рдбрд╛рд░реНрдЯ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдзрд┐ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ UI рдмрдирд╛рдиреЗ рдореЗрдВ рд▓рдЪреАрд▓рд╛рдкрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред


рдиреЛрдЯ: рджреВрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдбрд╛рд░реНрдЯ рдореЗрдВ new рд╢рдмреНрдж рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред


рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рдРрд╕реЗ рд▓реЗрдЖрдЙрдЯ рдХреЗ рд╕рд╛рде, рдЖрдк рдПрдХ рд╕реНрдерд┐рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдХреНрд░реАрди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдбреЗрд╡рд▓рдкрд░ рдХреА рдХрд▓реНрдкрдирд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЕрд╕реАрдорд┐рдд рд╣реИред


statefull


рдЬрдм рдЙрдирдХреЗ рд░рд╛рдЬреНрдп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди ( State ) рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд░рд╛рдЬреНрдп рд╡рд┐рдЬреЗрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, StatefullWidget рд╕реЗ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рдирд╛ рдФрд░ рдПрдХ рдЗрдирд╣реЗрд░реАрдЯрд░реНрдб рдХреНрд▓рд╛рд╕ State<T> рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬреЛ рд╡рд┐рдЬреЗрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рд╣реИ рдФрд░ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдорд╛рд░реНрдЯрдлрд╝реЛрди рд╕реНрдХреНрд░реАрди рдкрд░ рджреЗрдЦрддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИред


рд╡рд┐рдЬреЗрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ setState() {} рд╡рд┐рдзрд┐ рдХрд╣рдХрд░ setState() {} рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдВрджрд░ рдЖрдк рдмрдЯрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛ рд░рдВрдЧ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд░реВрдкрд░реЗрдЦрд╛ рд╕реНрд╡рдпрдВ UI рдХреЗ рдиреНрдпреВрдирддрдо рдЖрд╡рд╢реНрдпрдХ рдкреБрдирдГ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░реЗрдЧреАред


рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, MyHomePage рдореБрдЦреНрдп рдкреГрд╖реНрда рдПрдХ рд░рд╛рдЬреНрдп рд╡рд┐рдЬреЗрдЯ рд╣реЛрдЧрд╛ред рдпрд╣ _name рд╕рдВрдЧреНрд░рд╣реАрдд _name - рд╡рд╣ рдирд╛рдо рдЬреЛ рдкрд╛рда рдмреНрд▓реЙрдХ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ _isLoading рдзреНрд╡рдЬ (рдЖрдВрддрд░рд┐рдХ LoadingButton рд╡рд┐рдЬреЗрдЯ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░; рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░рд╛рдЬреНрдп рдирд┐рдпрдВрддреНрд░рдг рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг)ред


 class _MyHomePageState extends State<MyHomePage> { String _name = ""; bool _isLoading = false; @override Widget build(BuildContext context) => Center( child: new Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Padding( padding: EdgeInsets.all(16.0), child: Text( '$_name', ), ), LoadingButton( isLoading: _isLoading, action: _generateName, ) ], ), ); } 

рдмрдЯрди рдореЗрдВ рдХреЙрд▓рдмреИрдХ, action , рдЬрд╣рд╛рдВ _generateName() рд╡рд┐рдзрд┐ рджреА рдЧрдИ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдбрд╛рд░реНрдЯ рдореЗрдВ рдХреЛрдИ рдПрдХреНрд╕реЗрд╕ рдореЙрдбрд┐рдлрд╛рдпрд░ рдирд╣реАрдВ рд╣реИрдВ, рдЬреИрд╕реЗ private рдФрд░ public ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЕрдВрджрд░ рдХреБрдЫ рдирд┐рдЬреА рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдирд╛рдо рдЙрдкрд╕рд░реНрдЧ "_" рд╕реЗ рд╢реБрд░реВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред


_generateName рд╡рд┐рдзрд┐ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╣реИред рд╡рд╣ рдирд╛рдо рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, isLoading рдзреНрд╡рдЬ рдХреЛ рдмрджрд▓рдиреЗ рдФрд░ name рдХреЗ рдорд╛рди рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреЛ рдмрдЯрди рдФрд░ рдкрд╛рда рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред


 final snack = SnackBar(content: Text("Handle error!")); _generateName() async { toggleLoading(); try { //   await // Json setName(map["name"]); toggleLoading(); } catch (e) { setName("oops!"); Scaffold.of(context).showSnackBar(snack); toggleLoading(); } } void toggleLoading() { setState(() { _isLoading = !_isLoading; }); } 

рд╕реНрдерд┐рддрд┐ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ setState() {} рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рдХреЙрд▓ рдХреЗ рдмрд┐рдирд╛, рд╡рд┐рдЬреЗрдЯ рдХреЗрд╡рд▓ рдкреБрдирдГ рддреИрдпрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред


рд▓реЛрдбрд░ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛рдлреА рд╕рд░рд▓ рдирд┐рдХрд▓рд╛ред Redrawing рдХреЗ рд╕рдордп, рдпрд╛ рддреЛ рдЯреЗрдХреНрд╕реНрдЯ рдпрд╛ рдПрдХ рд╕рдВрдХреЗрддрдХ рдХреЛ рдмрдЯрди рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗрд╡рд▓ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд▓реЗрддрд╛ рд╣реИ


 _buildButtonChild() { if (isLoading) { return Transform.scale( scale: 0.5, child: CircularProgressIndicator(), ); } else { return Text("Click for name"); } } 

рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Transform.scale рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред


рд╕реНрдкрдВрджрди рдореЗрдВ рдЕрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдЗрдВрдЯрд░реИрдХреНрд╢рди, рд╕рд╛рде рд╣реА рдбрд╛рд░реНрдЯ рдореЗрдВ, async-await рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдВ , рдпрд╣рд╛рдВ рдФрд░ рдпрд╣рд╛рдВ рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ ред


рдХрд╣рд╛рдБ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ?


рдЖрдЬ, рдЬрдм рдирдИ рд╕реНрдкрдВрджрди рд╕рд╛рдордЧреНрд░реА рд▓рдЧрднрдЧ рджреИрдирд┐рдХ рд░реВрдк рд╕реЗ рдЬрд╛рд░реА рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдЗрд╕ рддрдХрдиреАрдХ рдХреЗ рд╕рд╛рде рджреЛрд╕реНрдд рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреЗ рдкрд╛рдареНрдпрдХреНрд░рдореЛрдВ рдХреА рдХрдореА рдирд╣реАрдВ рд╣реИред


рдореВрд▓ рдлрд╝реНрд▓рдЯрд░ рдХреЛрд░реНрд╕ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рдЙрдбрдиреЗрд╕ рдкрд░ рдкрд╛рдареНрдпрдХреНрд░рдо рд╣реИред рдкрд╛рда рдХреЛ рджреЛ рдЕрдзреНрдпрд╛рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд╡рд┐рдЪрд╛рд░рд╢реАрд▓ рдорд╛рд░реНрдЧ рдореЗрдВ 3-4 рдШрдВрдЯреЗ рд▓рдЧреЗрдВрдЧреЗред


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


рдирд┐рд╖реНрдХрд░реНрд╖


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

Source: https://habr.com/ru/post/hi426701/


All Articles