рдХреИрд╕реЗ рд╕реНрдкрдВрджрди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ


рдлреНрд▓рдЯрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?


рд╡рд┐рдЬреЗрдЯ, рддрддреНрд╡, рдмрд┐рд▓реНрдбрдХрдиреЗрдХреНрдЯ, рд░реЗрдВрдбрд░рдСрдЬреЗрдХреНрдЯ, рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреНрдпрд╛ рд╣реИрдВ? ..?


рдХрдард┐рдирд╛рдИ: рд╢реБрд░реБрдЖрдд


рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐


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


рд╡рд┐рдЬреЗрдЯ ( рд╡рд┐рдЬреЗрдЯ ), рддрддреНрд╡ ( рддрддреНрд╡ ), рдмрд┐рд▓реНрдбрдХреЙрдиреНрдЯреЗрдХреНрд╕ рдХреНрдпрд╛ рд╣реИрдВ? рд╕реНрдкрдВрджрди рдХреНрдпреЛрдВ рддреЗрдЬ рд╣реИ? рдХрднреА-рдХрднреА рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ? рдкреЗрдбрд╝ рдХреНрдпрд╛ рд╣реИрдВ рдФрд░ рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?


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


рд╕рд╛рдордЧреНрд░реА:



рднрд╛рдЧ 1: рдкреГрд╖реНрдарднреВрдорд┐


рд▓реЗрдЦ рдХрд╛ рдкрд╣рд▓рд╛ рднрд╛рдЧ рдХреБрдЫ рдкреНрд░рдореБрдЦ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд╛рдордЧреНрд░реА рдХреЗ рджреВрд╕рд░реЗ рднрд╛рдЧ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╕реНрдкрдВрджрди рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред


рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛


рдЖрдЗрдП рдЕрдВрдд рд╕реЗ рдФрд░ рдореВрд▓ рдмрд╛рддреЛрдВ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВред


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


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


рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рд╕рд╛рд░рд╛ рдЬрд╛рджреВ (рджреЗрдЦрдиреЗ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ) рдЗрд╕ рдЫрд╡рд┐ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ:


  • рдбрд┐рд╡рд╛рдЗрд╕ рд╕реНрдХреНрд░реАрди рдХреЗ рд╕рд╛рде ( рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд╛рдВрдЪ рдкрд░ рдПрдХ рдЙрдВрдЧрд▓реА )
  • рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде ( рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ )
  • рд╕рдордп рдХреЗ рд╕рд╛рде ( рдЬреИрд╕реЗ рдПрдиреАрдореЗрд╢рди )
  • рдЕрдиреНрдп рдмрд╛рд╣рд░реА рд╕реЗрдВрд╕рд░ рдХреЗ рд╕рд╛рде

рд╕реНрдХреНрд░реАрди рдкрд░ рдЫрд╡рд┐ рдХрд╛ рджреГрд╢реНрдп рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ (рдбрд┐рд╕реНрдкреНрд▓реЗ) рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ (рдЖрдорддреМрд░ рдкрд░ 60 рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб) рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ "рддрд╛рдЬрд╝рд╛ рджрд░" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ Hz (рд╣рд░реНрдЯреНрдЬрд╝) рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдбрд┐рд╕реНрдкреНрд▓реЗ GPU (рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдпреВрдирд┐рдЯ) рд╕реЗ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рд╕рд░реНрдХрд┐рдЯ рд╣реИ рдЬрд┐рд╕реЗ рдХреБрдЫ рдбреЗрдЯрд╛ (рдкреЙрд▓реАрдЧреЙрди рдФрд░ рдЯреЗрдХреНрд╕рдЪрд░) рд╕реЗ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдФрд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдЬрд┐рддрдиреА рдмрд╛рд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкреНрд░реЛрд╕реЗрд╕рд░ рдПрдХ "рдЫрд╡рд┐" (= рдлреНрд░реЗрдо рдмрдлрд░) рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЙрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдФрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдлреНрд░реЗрдо рджрд░ ( рдиреЛрдЯ: рдлреНрд░реЗрдо рджрд░ ) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдлрд╝реНрд░реЗрдо рдХреЗ рдмреНрд▓реЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд╛рдкрд╛ рдЬрд╛рддрд╛ рд╣реИ ( рдЙрджрд╛ред 60 рдлрд╝реНрд░реЗрдо рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдпрд╛ 60fps )ред


рдЖрдк рдореБрдЭрд╕реЗ рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕ рд▓реЗрдЦ рдХреЛ GPU / рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдФрд░ рдПрдХ рднреМрддрд┐рдХ рдЧреНрд▓рд╛рд╕ рд╕реЗрдВрд╕рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд 2-рдЖрдпрд╛рдореА рдЫрд╡рд┐ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХреНрдпреЛрдВ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдФрд░ рдирд┐рдпрдорд┐рдд рд╕реНрдкрдВрджрди рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╕рдВрдмрдВрдз рд╣реИ?


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


рдХреЛрдб рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдмреАрдЪ рдЗрдВрдЯрд░рдлреЗрд╕


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



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


рдлрд╝реНрд▓рдЯрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рдПрдХ рдиреАрд▓реЗ рд░рдВрдЧ рдХреА рдПрдХ рдЕрдореВрд░реНрдд рдкрд░рдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╝реНрд▓рдЯрд░ рдЗрдВрдЬрди (рдиреАрд▓реЗ рд░рдВрдЧ рдореЗрдВ) рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддрд╛ рд╣реИред рдПрдмреНрд╕реНрдЯреНрд░реИрдХреНрд╢рди рдХрд╛ рдпрд╣ рд╕реНрддрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рд╛рде рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП рдХрдИ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред


рдЕрдореВрд░реНрдд рдХреЗ рдЗрд╕ рд╕реНрддрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреА, рдлрд╝реНрд▓рдЯрд░ рдЗрдВрдЬрди рдлрд╝реНрд▓рдЯрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрдм:


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

рдлрд╝реНрд▓рдЯрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рдлрд╝реНрд▓рдЯрд░ рдЗрдВрдЬрди рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ


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


рдЕрдкрд╡рд╛рдж:


  • рдЗрд╢рд╛рд░реЗ / рдЗрд╢рд╛рд░реЗ (= рдХрд╛рдВрдЪ рдкрд░ рдШрдЯрдирд╛)
  • рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕рдВрджреЗрд╢ (= рдХрд┐рд╕реА рдЙрдкрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╕рдВрджреЗрд╢, рдЬреИрд╕реЗ GPS)
  • рдбрд┐рд╡рд╛рдЗрд╕ рд╕рдВрджреЗрд╢ (= рд╕рдВрджреЗрд╢ рдЬреЛ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕, рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рднреЗрдЬреЗ рдЧрдП рдЕрдиреБрдкреНрд░рдпреЛрдЧ, рдореЗрдореЛрд░реА рдЕрд▓рд░реНрдЯ, рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ ...)
  • рднрд╡рд┐рд╖реНрдп рдпрд╛ http рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдБ

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


рдЖрдк рдореБрдЭрд╕реЗ рдкреВрдЫрддреЗ рд╣реИрдВ: "рдпрджрд┐ рдЗрд╢рд╛рд░реЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рджреГрд╢реНрдп рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, рдпрд╛ рдпрджрд┐ рдореИрдВ рдХрд╛рд░реНрдп рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдорд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рджреГрд╢реНрдп рдкрд░рд┐рд╡рд░реНрддрди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдиреАрдореЗрд╢рди) рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?"


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


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


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


рдЖрдВрддрд░рд┐рдХ рддрдВрддреНрд░ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдиреАрдореЗрд╢рди рджреЗрдЦреЗрдВ:



рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг (рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдмрд╛рдж рдореЗрдВ рдЖрдПрдЧрд╛):


  • рдХреБрдЫ рдмрд╛рд╣рд░реА рдШрдЯрдирд╛рдПрдВ (рдЗрд╢рд╛рд░рд╛, http-response, рдЖрджрд┐) рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╡рд╛рдпрджрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдмрдирд╛рддрд╛ рд╣реИред рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрджреЗрд╢ рдлрд╝реНрд▓рдЯрд░ рдЗрдВрдЬрди (= рд╢реЗрдбреНрдпреВрд▓ рдлрд╝реНрд░реЗрдо ) рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ
  • рдЬрдм рдлрд╝реНрд▓рдЯрд░ рдЗрдВрдЬрди рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рд╢реБрд░реБрдЖрддреА рдлрд╝реНрд░реЗрдо рдЕрдиреБрд░реЛрдз рдмрдирд╛рддрд╛ рд╣реИ
  • рдпрд╣ рд╢реБрд░реБрдЖрддреА рдлрд╝реНрд░реЗрдо рдЕрдиреБрд░реЛрдз рдлрд╝реНрд▓рдЯрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЯрд┐рдХрд░реНрд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдиреАрдореЗрд╢рди)
  • рдпреЗ рдХрд╛рд░реНрдп рдмрд╛рдж рдореЗрдВ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг: рдПрдиреАрдореЗрд╢рди рдиреЗ рдЗрд╕рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╛рдж рдореЗрдВ рдПрдХ рдФрд░ рдЖрд░рдВрднрд┐рдХ рдлрд╝реНрд░реЗрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛)
  • рдЕрдЧрд▓рд╛, рдлрд╝реНрд▓рдЯрд░ рдЗрдВрдЬрди рдПрдХ рдбреНрд░реЙ рдлрд╝реНрд░реЗрдо рднреЗрдЬрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдлрд╝реНрд▓рдЯрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдЖрдХрд╛рд░ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд▓реЗрдЖрдЙрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрдп рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдЧрд╛
  • рдЗрди рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╡рд╣ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд▓реЗрдЖрдЙрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдЬреБрдбрд╝реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реИ
  • рдпрджрд┐ рд╕реНрдХреНрд░реАрди рдкрд░ рдХреБрдЫ рд╣реИ рдЬрд┐рд╕реЗ рдЦреАрдВрдЪрдирд╛ рд╣реИ, рддреЛ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рджреГрд╢реНрдп ( рджреГрд╢реНрдп ) рдлрд╝реНрд▓рдЯрд░ рдЗрдВрдЬрди рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╕реНрдХреНрд░реАрди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдЧрд╛
  • рдлрд╝реНрд▓рдЯрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рддрдм рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рдмрд╛рдж рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ (= рдкреЛрд╕реНрдЯрдлрд╝реНрд░реЗрдо рдХреЙрд▓рдмреИрдХ), рдФрд░ рдмрд╛рдж рдХреЗ рдЕрдиреНрдп рдХрд╛рд░реНрдп рдЬреЛ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИрдВ
  • ... рдФрд░ рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ

RenderView рдФрд░ RenderObject


рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЧреЛрддрд╛ рд▓рдЧрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЯреНрд░реА рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдкреЗрд╢ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред


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


рдпреЗ рджреГрд╢реНрдп рднрд╛рдЧ RenderObject рдирд╛рдордХ рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ , рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:


  • рдЖрдХрд╛рд░, рд╕реНрдерд┐рддрд┐, рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЗ рд╕рд╛рде-рд╕рд╛рде "рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╕рд╛рдордЧреНрд░реА" рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕реНрдХреНрд░реАрди рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреНрд╖реЗрддреНрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛
  • рд╕реНрдХреНрд░реАрди рдХреЗ рдЙрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдирд╛ рдЬреЛ рдЗрд╢рд╛рд░реЛрдВ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (= рдлрд┐рдВрдЧрд░ рдЯрдЪ)

рд╕рднреА рд░реЗрдВрдбрд░рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдПрдХ рдкреЗрдбрд╝ рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдПрдХ рд░реЗрдВрдбрд░ рдЯреНрд░реА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╡реГрдХреНрд╖ (= рдореВрд▓ ) рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╣рдо рдПрдХ RenderView рдкрд╛рддреЗ рд╣реИрдВред


RenderView , Render Tree рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рддрд╣ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ RenderObject рдХрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдВрд╕реНрдХрд░рдг рд╣реИред


рдиреЗрддреНрд░рд╣реАрди, рд╣рдо рдЗрд╕ рд╕рдм рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


рд╡рд┐рдЬреЗрдЯ рдФрд░ рд░реЗрдВрдбрд░рдСрдмрдЬреЗрдХреНрдЯ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзреЛрдВ рдкрд░ рдмрд╛рдж рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред рдЗрд╕ рдмреАрдЪ, рдпрд╣ рдереЛрдбрд╝рд╛ рдЧрд╣рд░рд╛ рдЬрд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ ...


рдЗрдирд┐рд╢рд┐рдпрд▓ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ


рдЬрдм рдлрд╝реНрд▓рдЯрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ main() рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЕрдВрддрддрдГ runApp(Widget app) рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред


рдЬрдм runApp() рд╡рд┐рдзрд┐ runApp() рддреЛ runApp() рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реНрд╡рдпрдВ рдФрд░ рдлрд╝реНрд▓рдЯрд░ рдЗрдВрдЬрди рдХреЗ рдмреАрдЪ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИред рдЗрди рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ ( рдиреЛрдЯ: рдмрд╛рдЗрдВрдбрд┐рдВрдЧ ) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред


рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╛ рдкрд░рд┐рдЪрдп


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


рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдХреНрд╖реЗрддреНрд░ рджреНрд╡рд╛рд░рд╛ рд╕рдореВрд╣реАрдХреГрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпреЛрдВ, рдХрд╛рд░реНрдпреЛрдВ, рдШрдЯрдирд╛рдУрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред


рдЗрд╕ рд▓реЗрдЦрди рдХреЗ рд╕рдордп, рдлрд╝реНрд▓рдЯрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ 8 рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд╣реИрдВред


рдиреАрдЪреЗ рдЙрдирдореЗрдВ рд╕реЗ 4 рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛:


  • SchedulerBinding
  • рдмрдВрдзрди рдмрд╛рдБрдзрдирд╛
  • рд░реЗрдВрдбрд░рд░ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ
  • рд╡рд┐рдЬреЗрдЯреНрд╕ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ

рдкреВрд░реНрдгрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╢реЗрд╖ 4 рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░реВрдВрдЧрд╛:


  • ServicesBinding : рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЪреИрдирд▓ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬреЗ рдЧрдП рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░
  • рдкреЗрдВрдЯрд┐рдВрдЧрдмрд╛рдЗрдВрдбрд┐рдВрдЧ : рдЗрдореЗрдЬ рдХреИрд╢ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░
  • рд╢рдмреНрджрд╛рд░реНрде : рдмрдВрдзрди : рд╢рдмреНрджрд╛рд░реНрде рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣рд░ рдЪреАрдЬ рдХреЗ рдмрд╛рдж рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЖрд░рдХреНрд╖рд┐рдд
  • TestWidgetsFlutterBinding : рд╡рд┐рдЬреЗрдЯ рдкрд░реАрдХреНрд╖рдг рдкреБрд╕реНрддрдХрд╛рд▓рдп рджреНрд╡рд╛рд░рд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛

рдЖрдк WidgetsFlutterBinding рдХрд╛ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ "рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдЗрдирд┐рд▓рд╛рдЗрдЬрд╝рд░ " рд╣реИ ред


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



рдЖрдЗрдП рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ "рдХреЛрд░" рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ рджреЗрдЦреЗрдВред


SchedulerBinding


рдЗрд╕ рдмрдВрдзрди рдХреА рджреЛ рдореБрдЦреНрдп рдЬрд┐рдореНрдореЗрджрд╛рд░рд┐рдпрд╛рдВ рд╣реИрдВ:


  • рд╕реНрдкрдВрджрди рдЗрдВрдЬрди рдХрд╣реЗрдВ: "рдЕрд░реЗ! рдЕрдЧрд▓реА рдмрд╛рд░ рдЬрдм рдЖрдк рд╡реНрдпрд╕реНрдд рдирд╣реАрдВ рд╣реЛрдВ, рддреЛ рдореБрдЭреЗ рдЬрдЧрд╛рдПрдВ рддрд╛рдХрд┐ рдореИрдВ рдереЛрдбрд╝рд╛ рдХрд╛рдо рдХрд░ рд╕рдХреВрдВ рдФрд░ рдЖрдкрдХреЛ рдмрддрд╛ рд╕рдХреВрдВ рдХрд┐ рдХреНрдпрд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╣реИ, рдпрд╛ рдЕрдЧрд░ рдореБрдЭреЗ рдЖрдкрдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рддреЛ рдореБрдЭреЗ рдмрд╛рдж рдореЗрдВ рдХреЙрд▓ рдХрд░реЗрдВ ..."
  • рд╕реБрдиреЗрдВ рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ "рдкрд░реЗрд╢рд╛рди рдЬрд╛рдЧреГрддрд┐" рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдВ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ)

рд╢реЗрдбреНрдпреВрд▓рд░рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдПрдХ рд╡реЗрдХ-рдЕрдк рдХреЙрд▓ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрдм рдХрд░рддрд╛ рд╣реИ ?


  • рдЬрдм рдЯрд┐рдХрд░ рдХреЛ рдирдпрд╛ рдЯрд┐рдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛


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


  • рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рдХрдм рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реИ


    рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рдРрд╕реА рдШрдЯрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рджреГрд╢реНрдп рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреА рд╣реИ (рдЙрджрд╛рд╣рд░рдг: рд╕реНрдХреНрд░реАрди рдХреЗ рдПрдХ рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рд░рдВрдЧ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛, рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдирд╛, рд╕реНрдХреНрд░реАрди рд╕реЗ рдХреБрдЫ рдЬреЛрдбрд╝рдирд╛ / рдирд┐рдХрд╛рд▓рдирд╛), рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд╕реНрдХреНрд░реАрди рдкрд░ рдЕрдкрдбреЗрдЯ рдХреА рдЧрдИ рдЫрд╡рд┐ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХрджрдо рдЙрдард╛рдиреЗ рд╣реЛрдВрдЧреЗред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЬрдм рдЗрд╕ рддрд░рд╣ рдХрд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдлрд╝реНрд▓рдЯрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рдлрд╝реНрдпреВрд▓рд░ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝реНрд░реЗрдо рдХреЛ рд╢реЗрдбреНрдпреВрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реЗрдбреНрдпреВрд▓рд░ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред (рдмрд╛рдж рдореЗрдВ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)



рдмрдВрдзрди рдмрд╛рдБрдзрдирд╛


рдпрд╣ рдмрд╛рдзреНрдпрдХрд╛рд░реА "рдЙрдВрдЧрд▓реА" (= рдЗрд╢рд╛рд░рд╛ ) рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЗрдВрдЬрди рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрдирддрд╛ рд╣реИред


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


рд░реЗрдВрдбрд░рд░ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ


рдпрд╣ рдмрдВрдзрди рдлрд╝реНрд▓рдЯрд░ рдЗрдВрдЬрди рдФрд░ рд░реЗрдВрдбрд░ рдЯреНрд░реА рдХреЗ рдмреАрдЪ рдХреА рдХрдбрд╝реА рд╣реИред рд╡рд╣ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ:


  • рджреГрд╢реНрдп рдкреНрд░рднрд╛рд╡ рдФрд░ / рдпрд╛ рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЬрди рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕реБрдирдирд╛
  • рдЗрдВрдЬрди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрджреЗрд╢ рдЬреЛ рдбрд┐рд╕реНрдкреНрд▓реЗ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛

рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, RendererBinding PipelineOwner рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдФрд░ RenderView рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ ред


PipelineOwner рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░рд╛ рд╣реИ рдЬреЛ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдШрдЯрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ RenderObject рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЗрди рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рд╕рдордиреНрд╡рдп рдХрд░рддрд╛ рд╣реИред


рд╡рд┐рдЬреЗрдЯреНрд╕ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ


рдпрд╣ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕реБрдирддрд╛ рд╣реИ рдЬреЛ рднрд╛рд╖рд╛ (= рд╕реНрдерд╛рдиреАрдп ) рдФрд░ рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред


рдЫреЛрдЯрд╛ рдиреЛрдЯ

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рд╕реНрдкрдВрджрди рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдПрдХ рдмрд╛рдж рдХреЗ рдЪрд░рдг рдореЗрдВ , рд╕рднреА рд╢рдмреНрджрд╛рд░реНрде рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕реЗрдореЗрдВрдЯрд┐рдХреНрд╕рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ , рд▓реЗрдХрд┐рди рдЗрд╕ рд▓реЗрдЦрди рдХреЗ рд╕рдордп, рдпрд╣ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд┐рдЬреЗрдЯреНрд╕ рд╡рд┐рдЧреЗрдЯреНрд╕ рдФрд░ рдлрд╝реНрд▓рдЯрд░ рдЗрдВрдЬрди рдХреЗ рдмреАрдЪ рдХреА рдХрдбрд╝реА рд╣реИред рд╡рд╣ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ:


  • рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреА рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкреНрд░рдмрдВрдзрди
  • рдХреЙрд▓ рд░реЗрдВрдбрд░ рдХрд░реЗрдВ

рд╡рд┐рдЬреЗрдЯ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг BuildOwner рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


BuildOwner рдЯреНрд░реИрдХ рд░рдЦрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рд╡рд┐рдЬреЗрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ, рдФрд░ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рдЬреЗрдЯ рд╕рдВрд░рдЪрдирд╛ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред


рднрд╛рдЧ 2. рд╡рд┐рдЬреЗрдЯ рд╕реЗ рдкрд┐рдХреНрд╕реЗрд▓ рддрдХ


рдЕрдм рдЬрдм рд╣рдордиреЗ рдлрд╝реНрд▓рдЯрд░ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдХрд╛рд░реНрдп рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рд╕реАрдЦ рд▓реА рд╣реИрдВ, рддреЛ рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред


рд╕рднреА рдлрд╝реНрд▓рдЯрд░ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЖрдк рдкрдврд╝реЗрдВрдЧреЗ рдХрд┐ рд╕рднреА рд╡рд┐рдЬреЗрдЯ (рд╡рд┐рдЬреЗрдЯ)ред


рдпрд╣ рд▓рдЧрднрдЧ рд╕рд╣реА рд╣реИред рд▓реЗрдХрд┐рди рдереЛрдбрд╝рд╛ рдФрд░ рд╕рдЯреАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдХрд╣рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛:


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

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


рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡рд┐рдиреНрдпрд╛рд╕


рдпрджрд┐ рдЖрдк рд╕реНрдкрдВрджрди рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╡рд┐рдЬреЗрдЯ рд╡рд░реНрдЧ рдХреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗред


 @immutable abstract class Widget extends DiagnosticableTree { const Widget({ this.key }); final Key key; ... } 

рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ?


рдПрдиреЛрдЯреЗрд╢рди "@immutable" рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдФрд░ рд╣рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдЬреЗрдЯ рд╡рд░реНрдЧ рдореЗрдВ рдХрд┐рд╕реА рднреА рдЪрд░ рдХреЛ рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЕрдВрддрд┐рдо рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП : " рд╣рд░ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдФрд░ рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ред" рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╡рд┐рдЬреЗрдЯ рдЕрдм рдЕрдкрдиреЗ рдЖрдВрддрд░рд┐рдХ рдЪрд░ рдХреЛ рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛ред


рдЪреВрдВрдХрд┐ рд╡рд┐рдЬреЗрдЯ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдПрдХ рд╕реНрдерд┐рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреА рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рд╕рдВрд░рдЪрдирд╛


рдЬрдм рдЖрдк рдлрд╝реНрд▓рдЯрд░ рдХреЗ рд╕рд╛рде рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдкрдиреА рд╕реНрдХреНрд░реАрди рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╡рд┐рдЧреЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:


 Widget build(BuildContext context){ return SafeArea( child: Scaffold( appBar: AppBar( title: Text('My title'), ), body: Container( child: Center( child: Text('Centered Text'), ), ), ), ); } 

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



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкреНрд░рд╕реНрддреБрдд рдЖрд░реЗрдЦ рдПрдХ рдкреЗрдбрд╝ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ SafeArea рдЗрд╕рдХреА рдЬрдбрд╝ рд╣реИред


рдкреЗрдбрд╝реЛрдВ рдХреЗ рдкреАрдЫреЗ рдЬрдВрдЧрд▓


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


 Widget build(BuildContext context){ return MyOwnWidget(); } 

рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдЬреЗрдЯ "MyOwnWidget" рдЦреБрдж SafeArea , рдкрд╛рдбрд╝ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐


рдПрдХ рд╡рд┐рдЬреЗрдЯ рдПрдХ рдкрддреНрддреА, рдПрдХ рдкреЗрдбрд╝ рдореЗрдВ рдПрдХ рдЧрд╛рдБрда, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЦреБрдж рдкреЗрдбрд╝ рдпрд╛, рдХреНрдпреЛрдВ рдирд╣реАрдВ, рдкреЗрдбрд╝реЛрдВ рдХрд╛ рдПрдХ рдЬрдВрдЧрд▓ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░ рд╕рдХрддрд╛ рд╣реИ ...

рдПрдХ рдкреЗрдбрд╝ рдореЗрдВ рддрддреНрд╡ рдХреЛ рд╕рдордЭрдирд╛


рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рд▓реЗрдирд╛-рджреЗрдирд╛ рд╣реИ?


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


рдЗрд╕ рдмрд┐рдВрджреБ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдиреЗрд╕реНрдЯреЗрдб рдЧреБрдбрд╝рд┐рдпрд╛ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: рдЬрдм рдмрдВрдж рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдХреЗрд╡рд▓ 1 рдЧреБрдбрд╝рд┐рдпрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдПрдХ рдФрд░ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдмрджрд▓реЗ рдореЗрдВ рдПрдХ рдФрд░ рд╣реЛрддрд╛ рд╣реИ ...



рдЬрдм рд╕реНрдкрдВрджрди рд╕рднреА рд╡рд┐рдЬреЗрдЯ (рд╕реНрдХреНрд░реАрди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛) рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рднреА рдЧреБрдбрд╝рд┐рдпрд╛ (рд╕рдВрдкреВрд░реНрдг рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛) рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдЬреИрд╕рд╛ рд╣реЛрдЧрд╛ред


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



рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг

рднрд╛рд╖рд╛ "рд╡рд┐рдЬреЗрдЯ рдЯреНрд░реА" рдХреЗрд╡рд▓ рд╕рдордЭрдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕реНрдкрдВрджрди рдореЗрдВ рдХреЛрдИ рд╡рд┐рдЬреЗрдЯ рдЯреНрд░реА рдирд╣реАрдВ рд╣реИ!

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, "рддрддреНрд╡реЛрдВ рдХрд╛ рд╡реГрдХреНрд╖" рдХрд╣рдирд╛ рдЕрдзрд┐рдХ рд╕рд╣реА рд╣реЛрдЧрд╛

рдпрд╣ рдПрдХ рддрддреНрд╡ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдкреЗрд╢ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред


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

рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рддрддреНрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВ рдЬреЛ рдПрдХ рдиреЛрдб рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдФрд░ рд╕рдВрднрд╡рддрдГ рдПрдХ рдмрдЪреНрдЪрд╛ рд╣реИред рдорд╛рддрд╛-рдкрд┐рддрд╛-рдмрдЪреНрдЪреЗ рдХреЗ рд░рд┐рд╢реНрддреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝рдХрд░, рд╣рдореЗрдВ рдПрдХ рдкреЗрдбрд╝ рдХреА рд╕рдВрд░рдЪрдирд╛ рдорд┐рд▓рддреА рд╣реИред



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рддрддреНрд╡ рдПрдХ рд╡рд┐рдЬреЗрдЯ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рд░реЗрдВрдбрд░рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рднреА рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ ред


рдЗрд╕рд╕реЗ рднреА рдмреЗрд╣рддрд░ ... рддрддреНрд╡ рдЙрд╕ рд╡рд┐рдЬреЗрдЯ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдиреЗ рдЗрд╕ рддрддреНрд╡ рдХреЛ рдмрдирд╛рдпрд╛ рд╣реИ !

рдЖрдЗрдП рд╕рдВрдХреНрд╖реЗрдк:


  • рдХреЛрдИ рд╡рд┐рдЬреЗрдЯ рдЯреНрд░реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рддрддреНрд╡ рдЯреНрд░реА рд╣реИ
  • рд╡рд┐рдЬреЗрдЯреНрд╕ рджреНрд╡рд╛рд░рд╛ рддрддреНрд╡ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред
  • рдЖрдЗрдЯрдо рдЙрд╕ рд╡рд┐рдЬреЗрдЯ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдиреЗ рдЗрд╕реЗ рдмрдирд╛рдпрд╛ рд╣реИред
  • рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд░рд┐рд╢реНрддреЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рддрддреНрд╡
  • рдПрдХ рдЖрдЗрдЯрдо рдореЗрдВ "рдмрдЪреНрдЪрд╛" рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
  • рддрддреНрд╡ рдПрдХ рд░реЗрдВрдбрд░рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдУрд░ рднреА рдЗрд╢рд╛рд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред

рддрддреНрд╡ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдмреНрд▓реЙрдХ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдХреИрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред

рдмреЗрд╣рддрд░ рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд┐рд╕реА рддрддреНрд╡ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╣рд╛рдБ рдлрд┐рдЯ рд╣реЛрддреА рд╣реИ, рдЖрдЗрдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреГрд╢реНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рджреЗрдЦреЗрдВ:



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рддрддреНрд╡ рдкреЗрдбрд╝ рд╡рд┐рдЧреЗрдЯреНрд╕ рдФрд░ рд░реЗрдВрдбрд░рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдмреАрдЪ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдмрдВрдз рд╣реИред


рд▓реЗрдХрд┐рди рд╡рд┐рдЬреЗрдЯ рдПрдХ рддрддреНрд╡ рдХреНрдпреЛрдВ рдмрдирд╛рддрд╛ рд╣реИ?


рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреА 3 рд╢реНрд░реЗрдгрд┐рдпрд╛рдВ


рд╕реНрдкрдВрджрди рдореЗрдВ, рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЛ 3 рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВ (рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рдЙрдиреНрд╣реЗрдВ рд╡рд░реНрдЧреАрдХреГрдд рдХрд░рдиреЗ рдХрд╛ рдореЗрд░рд╛ рддрд░реАрдХрд╛ рд╣реИ) :


  • рдкреНрд░рддрд┐рдирд┐рдзрд┐


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


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


  • рд░реЗрдВрдбрд░рд░


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


  • рдЕрдВрдЧ


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


    рдЙрджрд╛рд╣рд░рдг: RaisedButton , Scaffold , Text , GestureDetector , рдХрдВрдЯреЗрдирд░ ...




рдпрд╣ рдкреАрдбреАрдПрдл рдлрд╛рдЗрд▓ рд╢реНрд░реЗрдгреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд░реНрдЧреАрдХреГрдд рдХрд┐рдП рдЧрдП рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддреА рд╣реИред


рдпрд╣ рдЕрд▓рдЧрд╛рд╡ рдХреНрдпреЛрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ? рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рдЬреЗрдЯ рдХреА рд╢реНрд░реЗрдгреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╕рдВрдмрдВрдзрд┐рдд рддрддреНрд╡ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ ...


рдЖрдЗрдЯрдо рдкреНрд░рдХрд╛рд░


рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рддрддреНрд╡ рд╣реИрдВ:



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдКрдкрд░ рдЪрд┐рддреНрд░ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рддрддреНрд╡реЛрдВ рдХреЛ 2 рдореБрдЦреНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:


  • ComponentElement


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


  • RenderObjectElement


    рдпреЗ рддрддреНрд╡ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдЫрд╡рд┐ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВред



рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛! рдЗрддрдиреА рдЬрд╛рдирдХрд╛рд░реА, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдХреИрд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдХреНрдпреЛрдВ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ?


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


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

рддрддреНрд╡ рдЕрдорд╛рдиреНрдпрдХрд░рдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:


  • setState рдХрд╛ рдЙрдкрдпреЛрдЧ setState , рдЬреЛ рдкреВрд░реЗ рд╕реНрдЯреЗрдЯрдлреБрд▓рдореЗрдВрдЯ рдХреЛ рдЕрдорд╛рдиреНрдп рдХрд░рддрд╛ рд╣реИ (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╕реНрдЯреЗрдЯрдлреБрд▓рд╡реЗрдЯ рдирд╣реАрдВ рдХрд╣рддрд╛ рд╣реВрдВ)
  • рдкреНрд░реЙрдХреНрд╕реАрдЗрд▓рдореЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрдирд╣реЗрд░рд┐рдЯрд╡рд┐рдбрдЧреЗрдЯ ), рдЬреЛ рдХрд┐рд╕реА рднреА рддрддреНрд╡ рдХреЛ рдЕрдорд╛рдиреНрдп рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдкреНрд░реЙрдХреНрд╕реА рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ

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


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


  • рдЗрд╕рдХрд╛ рдЖрдХрд╛рд░, рд╕реНрдерд┐рддрд┐, рдЬреНрдпрд╛рдорд┐рддрд┐ рдмрджрд▓ рд░рд╣рд╛ рд╣реИ ...
  • рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдЖрдк рд╕рд┐рд░реНрдл рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛ рд░рдВрдЧ, рдлрд╝реЙрдиреНрдЯ рд╢реИрд▓реА рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рдХреБрдЫ рдХреЛ рдкреБрди: рдЕрдВрдХрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ ...

рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдорд╛рдиреНрдпрдХрд░рдг рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╡рд╕реНрддреБрдУрдВ (рд░реЗрдВрдбрд░рдСрдмреНрдЬреЗрдХреНрдЯ) рдХреА рд╕реВрдЪреА рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рд░реЗрдВрдбрд░рдСрдмрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рд▓рд┐рдВрдХ рд╣реИ, рдЬрд┐рд╕реЗ рдкреБрди: рдирд┐рд░реНрдорд┐рдд рдпрд╛ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред


рдЕрдорд╛рдиреНрдпрдХрд░рдг рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд╢реЗрдбреНрдпреВрд▓рд░рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЗрд╕реЗ рдпрд╛рдж рд░рдЦреЗрдВ?) рдПрдХ рдирдП рдлреНрд░реЗрдо рдХреЛ рд╢реЗрдбреНрдпреВрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реНрд▓рдЯрд░ рдЗрдВрдЬрди рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред


рдпрд╣ рдареАрдХ рд╡рд╣реА рдХреНрд╖рдг рд╣реИ рдЬрдм рдлрд╝реНрд▓рдЯрд░ рдЗрдВрдЬрди "рдЬрдЧрд╛рддрд╛ рд╣реИ" рд╢реЗрдбреНрдпреВрд▓рд░ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдФрд░ рд╕рднреА рдЬрд╛рджреВ рд╣реЛрддрд╛ рд╣реИ ...


рдСрдирдлреНрд░реЗрдо ()


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


рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЖрдВрд╢рд┐рдХ рдЕрдиреБрдХреНрд░рдо рдЖрд░реЗрдЦ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╢реЗрдбреНрдпреВрд▓рд░ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ рдлрд╝реНрд▓рдЯрд░ рдЗрдВрдЬрди рд╕реЗ onDrawFrame () рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред



рдЪрд░рдг 1. рддрддреНрд╡


рд╡рд┐рдЬреЗрдЯрдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ , рдФрд░ рдпрд╣ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдкрд╣рд▓реЗ рддрддреНрд╡реЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИред WidgetsBinding buildOwner рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ buildScope рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ BuildOwner рдЖрдЗрдЯрдо рдЯреНрд░реА рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдпрд╣ рд╡рд┐рдзрд┐ рдЧрдВрджреЗ рддрддреНрд╡реЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рддреА рд╣реИ рдФрд░ рдЙрдирдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреА рд╣реИред


рдЗрд╕ rebuild() рд╡рд┐рдзрд┐ ( rebuild() ) рдХреЗ рдореБрдЦреНрдп рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИрдВ:


  1. рд╡рд┐рдЬреЗрдЯ рдХреЗ build() рдкрджреНрдзрддрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ build() рдЗрд╕ рддрддреНрд╡ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ) (= Widget build (BuildContext context) {...} рд╡рд┐рдзрд┐) рдХреЛ рдмреБрд▓рд╛рдХрд░ рддрддреНрд╡ (рдЗрд╕ рд╕рдордп рдХрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧреЗрдЧрд╛) рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЕрдиреБрд░реЛрдз рд╣реИред рдпрд╣ build() рд╡рд┐рдзрд┐ рдПрдХ рдирдпрд╛ рд╡рд┐рдЬреЗрдЯ рд▓реМрдЯрд╛рдПрдЧреА
  2. рдпрджрд┐ рддрддреНрд╡ рдореЗрдВ "рдмрдЪреНрдЪреЗ" рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдирдП рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рддрддреНрд╡ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ) ( рдзреНрдпрд╛рди рджреЗрдВ: inflateWidget ), рдЕрдиреНрдпрдерд╛
  3. рдирдП рд╡рд┐рдЬреЗрдЯ рдХреА рддреБрд▓рдирд╛ рддрддреНрд╡ рдХреЗ рдмрдЪреНрдЪреЗ рджреНрд╡рд╛рд░рд╛ рд╕рдВрджрд░реНрднрд┐рдд рдХреА рдЧрдИ рд╣реИ
    • рдпрджрд┐ рд╡реЗ рд╡рд┐рдирд┐рдореЗрдп рд╣реИрдВ (= рдПрдХ рд╣реА рд╡рд┐рдЬреЗрдЯ рдкреНрд░рдХрд╛рд░ рдФрд░ рдХреБрдВрдЬреА ), рддреЛ рдЕрджреНрдпрддрди рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдмрдЪреНрдЪрд╛ рдмрдЪ рдЬрд╛рддрд╛ рд╣реИред
    • рдпрджрд┐ рд╡реЗ рд╡рд┐рдирд┐рдореЗрдп рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдмрдЪреНрдЪреЗ рдХреЛ рддреНрдпрд╛рдЧ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ( ~ рдЦрд╛рд░рд┐рдЬ ) рдФрд░ рдирдП рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рддрддреНрд╡ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
  4. рдпрд╣ рдирдпрд╛ рдЖрдЗрдЯрдо рдЖрдЗрдЯрдо рдХреЗ рдПрдХ рдмрдЪреНрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдореБрд╣рд┐рдо рд╢реБрд░реВ рдХреА рд╣реИред ( рдШреБрдбрд╝рд╕рд╡рд╛рд░) = рддрддреНрд╡ рд╡реГрдХреНрд╖ рдореЗрдВ рдбрд╛рд▓рд╛ рдЧрдпрд╛)

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдиреАрдореЗрд╢рди рдЗрд╕ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЛ рдереЛрдбрд╝рд╛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред



рд╡рд┐рдЬреЗрдЯ рдФрд░ рддрддреНрд╡реЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ


рдПрдХ рдирдП рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рддрддреНрд╡ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рдЬреЗрдЯ рд╢реНрд░реЗрдгреА рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН:


  • InheritedWidget -> InheritedElement
  • StatefulWidget -> рд╕реНрдЯреЗрдЯрдлреБрд▓рдореЗрдВрдЯ
  • рд╕реНрдЯреЗрдЯрд▓реЗрд╕рд╡рд┐рдЬреЗрдЯ -> рд╕реНрдЯреЗрдЯрд▓реЗрд╕рд▓реЗрд╕рдореЗрдВрдЯ
  • InheritedModel -> InheritedModelElement
  • InheritedNotifier -> InheritedNotifierElement
  • рд▓реАрдлрд╝рд░реЗрдВрдбрд░рдСрдмреНрдЬреЗрдХреНрдЯрд╡рд┐рдЬреЗрдЯ -> рд▓реАрдлрд╝рд░реЗрдВрдбрд░рдСрдмреНрдЬреЗрдХреНрдЯрд╡рд┐рдкреНрд▓рдореЗрдВрдЯ
  • SingleChildRenderObjectWidget -> SingleChildRenderObjectElement
  • MultiChildRenderObjectWidget -> MultiChildRenderObjectElement
  • ParentDataWidget -> ParentDataElement

рдЗрди рдкреНрд░рдХрд╛рд░ рдХреЗ рддрддреНрд╡реЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛ рдЕрдкрдирд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:


  • рд╕реНрдЯреЗрдЯрдлреБрд▓рдореЗрдВрдЯ , рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдкрд░ widget.createState() рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛, рдЬреЛ рдПрдХ рд╕реНрдЯреЗрдЯ рдмрдирд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдПрд▓рд┐рдореЗрдВрдЯ рдХреЗ рд╕рд╛рде рд╕рдВрдмрджреНрдз рдХрд░реЗрдЧрд╛
  • рдЬрдм RenderObjectElement рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рддрддреНрд╡ рдорд╛рдЙрдВрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ RenderObject рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣ рд░реЗрдВрдбрд░рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд░реЗрдВрдбрд░ рдЯреНрд░реА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рддрддреНрд╡ рд╕реЗ рд╕рдВрдмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЪрд░рдг 2. рд░реЗрдВрдбрд░рдСрдмреНрдЬреЗрдХреНрдЯ


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


рдЪреВрдВрдХрд┐ RendererBinding , Render Tree рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, WidgetsBinding drawFrame рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред


рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдЖрдВрд╢рд┐рдХ рдЖрд░реЗрдЦ рдбреНрд░рд╛рдлреНрд░реЗрдо () рдЕрдиреБрд░реЛрдз рдХреЗ рджреМрд░рд╛рди рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред



рдЗрд╕ рдХрджрдо рдкрд░, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд░рд┐рдпрд╛рдПрдВ рдХреА рдЬрд╛рддреА рд╣реИрдВ:


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

рдЗрд╕ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЗ рдЕрдВрдд рдореЗрдВ, рдбрд┐рд╡рд╛рдЗрд╕ рд╕реНрдХреНрд░реАрди рддрд╛рдЬрд╝рд╛ рд╣реЛ рдЬрд╛рддреА рд╣реИред


рднрд╛рдЧ 3: рдЗрд╢рд╛рд░реЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛


рдЗрд╢рд╛рд░реЛрдВ (= рдХрд╛рдВрдЪ рдкрд░ рдЙрдВрдЧрд▓реА рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдШрдЯрдирд╛рдПрдВ ) рдХреЛ GestureBinding рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред


рдЬрдм рдлрд╝реНрд▓рдЯрд░ рдЗрдВрдЬрди рд╡рд┐рдВрдбреЛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдЗрд╢рд╛рд░реЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдШрдЯрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рднреЗрдЬрддрд╛ рд╣реИред PointerDataPacket API, GestureBinding рдЗрд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдХреБрдЫ рдмрдлрд░рд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░:


  1. рдлрд╝реНрд▓рдЯрд░ рдЗрдВрдЬрди рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд┐рдХреНрд╕реЗрд▓ рдЕрдиреБрдкрд╛рдд рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдирд╡рд░реНрдЯ рдХрд░рддрд╛ рд╣реИ , рдФрд░ рдлрд┐рд░
  2. рд░реЗрдВрдбрд░ рд╡реНрдпреВ рд╕реЗ рд╕рднреА рд░реЗрдВрдбрд░рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ, рдЬреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдЗрд╡реЗрдВрдЯ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрддреА рд╣реИ
  3. рдлрд┐рд░ рд░реЗрдВрдбрд░рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдкрд░рд┐рдгрд╛рдореА рд╕реВрдЪреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рдШрдЯрдирд╛ рднреЗрдЬрддрд╛ рд╣реИ
  4. рдпрджрд┐ рд░реЗрдВрдбрд░рдСрдмрдЬреЗрдХреНрдЯ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП "рд╕реБрдирддрд╛ рд╣реИ", рддреЛ рд╡рд╣ рдЗрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ

рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЕрдм рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдЖрдпрд╛ рдХрд┐ рдХрд┐рддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ ред


рднрд╛рдЧ 4: рдПрдирд┐рдореЗрд╢рди


рд▓реЗрдЦ рдХрд╛ рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рдПрдиреАрдореЗрд╢рди рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдФрд░ рдЯрд┐рдХрд░ рдХреА рдЧрд╣рд░реА рд╕рдордЭ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред


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


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


рдкреНрд░рддреНрдпреЗрдХ рдЯрд┐рдХ рдХреЛ рдПрдХ "рдЗрдЪреНрдЫреБрдХ" рдирд┐рдпрдВрддреНрд░рдХ рджреНрд╡рд╛рд░рд╛ рдЗрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдПрдиреАрдореЗрд╢рди рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЯрд┐рдХрд░ "рдЕрдХреНрд╖рдо" рд╣реИ, рдЕрдиреНрдпрдерд╛ рдЯрд┐рдХрд░ рдПрдХ рд╢реЗрдбреНрдпреВрд▓рд░рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ рдПрдХ рдирдпрд╛ рдХреЙрд▓рдмреИрдХ рд╢реЗрдбреНрдпреВрд▓ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЗрд╕реА рддрд░рд╣тАж


рдкреВрд░реА рддрд╕реНрд╡реАрд░


рдЕрдм рд╣рдордиреЗ рд╕реАрдЦрд╛ рд╣реИ рдХрд┐ рд╕реНрдкрдВрджрди рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:



BuildContext


рдЕрдВрдд рдореЗрдВ, рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЖрд░реЗрдЦ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ, рдФрд░ рдореВрд▓ рддрддреНрд╡ рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:


 abstract class Element extends DiagnosticableTree implements BuildContext { ... } 

рд╣рдо рдмрд╣реБрдд рдкреНрд░рд╕рд┐рджреНрдз BuildContext рджреЗрдЦрддреЗ рд╣реИрдВ! рд▓реЗрдХрд┐рди рдпрд╣ рдХреНрдпрд╛ рд╣реИ?


рдмрд┐рд▓реНрдбрдХреЙрдирдЯреЗрдХреНрд╕реНрдЯ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ рдЬреЛ рдХрдИ рдЧреЗрдЯрд░реНрд╕ рдФрд░ рддрд░реАрдХреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдПрдХ рддрддреНрд╡ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬреНрдпрд╛рджрд╛рддрд░ BuildContext рд╕реНрдЯреЗрдЯрдлреБрд▓рд╡рдЧреЗрдЯ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЗрдЯрд▓реЗрд╕рд╡рд┐рдбрдЧреЗрдЯ рдпрд╛ рд╕реНрдЯреЗрдЯ рдХреЗ build() рдкрджреНрдзрддрд┐ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


BuildContext рддрддреНрд╡ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ
  • рд╡рд┐рдЬреЗрдЯ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ ( build рдпрд╛ builder рддрд░реАрдХреЛрдВ рдХреЗ рдЕрдВрджрд░)
  • StatefulWidget рд░рд╛рдЬреНрдп рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рд╕рдВрджрд░реНрдн рдЪрд░ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддреЗ рд╣реИрдВред

рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд▓рдЧрд╛рддрд╛рд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗ рдмрд┐рдирд╛ рднреА рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред


рдмрд┐рд▓реНрдбрдХреЙрдирдЯреЗрдХреНрд╕реНрдЯ рдХрд┐рддрдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?


BuildContext , , , BuildContext , :


  • RenderObject , (, Renderer , -)
  • RenderObject
  • . , of (, MediaQuery.of(context) , Theme.of(context) тАж)


, , BuildContext тАУ , . StatelessWidget , StatefulWidget , setState() , BuildContext .



, !

тАУ , StatelessWidget .
, , StatefulWidget .

 void main(){ runApp(MaterialApp(home: TestPage(),)); } class TestPage extends StatelessWidget { // final because a Widget is immutable (remember?) final bag = {"first": true}; @override Widget build(BuildContext context){ return Scaffold( appBar: AppBar(title: Text('Stateless ??')), body: Container( child: Center( child: GestureDetector( child: Container( width: 50.0, height: 50.0, color: bag["first"] ? Colors.red : Colors.blue, ), onTap: (){ bag["first"] = !bag["first"]; // // This is the trick // (context as Element).markNeedsBuild(); } ), ), ), ); } } 

, setState() , : _element.markNeedsBuild() .


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


: " ". , , Flutter , , , , . , , Widget , Element , BuildContext , RenderObject , . , .


. .


PS , () .
PSS Flutter internals Didier Boelens, )

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


All Articles