рдиреЛрд╡реЛрд╕рд┐рдмрд┐рд░реНрд╕реНрдХ рдореЗрдВ рдорд╛рд░реНрдЪ рдХреЗ рдЕрдВрдд рдореЗрдВ, 10 рд╡реАрдВ рд╡рд░реНрд╖рдЧрд╛рдВрда
CodeFest рдХреА рдореГрддреНрдпреБ рд╣реЛ рдЧрдИ ред рдХрд┐рд╕реА рднреА рд╕рдореНрдореЗрд▓рди рдХреА рддрд░рд╣, рд╢рд╛рдпрдж, рдХреЛрдбрдлреЗрд╕реНрдЯрдПрдХреНрд╕ рдиреЗ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЛ "рдореЗрд░реЗ рдкреИрд░ рдЕрдм рдпрд╣рд╛рдВ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ" рд╕реЗ "рдЬреАрд╡рди рднрд░ рдХреА рд╕рджрд╕реНрдпрддрд╛ рдХреИрд╕реЗ рдЦрд░реАрджреЗрдВ?" рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рдерд╛,
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдореАрдХреНрд╖рд╛рдПрдБ рд╣реИрдВ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЕрднреА рднреА рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рдореИрдВ рдЗрд╕ рдХрд╣рд╛рдиреА рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреИрд╕реЗ рд╣рдордиреЗ
рдХреЛрдбрдлреЗрд╕реНрдЯ рд╢реЗрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ (
рдореЛрдмрд╛рдЗрд▓ рдлреЛрди рд╕реЗ рдмреЗрд╣рддрд░ рджреЗрдЦреЗрдВ ): рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдкрд░рд┐рдгрд╛рдо рддрдХред

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

рдПрдХ "рдкрдВрдк-рдУрд╡рд░" рдЕрдиреБрд╕реВрдЪреА рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛрдбрдлреЗрд╕реНрдЯ рдХреЗ рдЖрдпреЛрдЬрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдИ рдереАред рдореИрдВрдиреЗ рд╡реНрд░рд╛рдЗрдХ рдкрд░ рд╡рд┐рдЪрд╛рд░ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдФрд░ рдЬрд▓реНрджреА рд╕реЗ рд╕рдорд╛рди рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдкрд╛рдпрд╛ред рд╣рдордиреЗ рдЕрдиреБрд╕рдВрдзрд╛рди рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХреА, рд╕рдореНрдореЗрд▓рди рд╕реНрдерд▓реЛрдВ рдФрд░ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рджреЗрдЦрд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдордиреЗ рд╡реНрд░реАрдХреЗ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп
рдХрд┐рд░рд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХреАред
рдмреИрдХрд▓реЙрдЧ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдордиреЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдХрд┐ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЗрд╕ рддрд░рд╣ рдХреА рд╣реИ:
- рд░рд┐рдкреЛрд░реНрдЯ рдФрд░ рдЦреЛрдЬ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рд╕рдореНрдореЗрд▓рди рдЕрдиреБрд╕реВрдЪреА;
- рдкрд╕рдВрджреАрджрд╛ рдФрд░ рдЪрдпрдирд┐рдд рдШрдЯрдирд╛рдУрдВ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрдирд╛рдПрдВ;
- рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рд╛рде рд╣реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд▓реЛрдХрдкреНрд░рд┐рдп рдХрд╛рд░реНрдпрдХреНрд░рдо, рд╕рд╛рде рд╣реА рд╕рд╛рде рднрд╛рдЧреАрджрд╛рд░реЛрдВ рдФрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ред
рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╡рд╛рд▓реЗ рдирд┐рдореНрди рдХрд╛рд░реНрдп рдереЗ:
- рд░рд┐рдкреЛрд░реНрдЯ рдкрд░ рдЪрд░реНрдЪрд╛ рддрд╛рдХрд┐ рдЕрдзрд┐рдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд░рд╛рдп рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХреЗрдВ рдФрд░ рдЪрд░реНрдЪрд╛ рдХрд░ рд╕рдХреЗрдВ;
- рдкрд╕рдВрдж рдФрд░ рд▓реЛрдХрдкреНрд░рд┐рдп рд░реЗрдЯрд┐рдВрдЧ рд░рд┐рдкреЛрд░реНрдЯ;
- рдорд╛рдирдЪрд┐рддреНрд░, рдХреЗ рд░реВрдк рдореЗрдВ CodeFest рдорд╣рд╛рди рд╣реИ рдФрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
рддреАрд╕рд░реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рд╕рд╛рде рдЕрднреА рднреА рдХрд╛рд░реНрдп рдереЗ, рдЬрд╣рд╛рдВ рдЕрднреА рднреА рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджрдлрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдЙрдирдХрд╛ рд╕рдордп рдЖ рдЬрд╛рдПрдЧрд╛ред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рд╣рдордиреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдЯреИрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдиреЗ рдЙрддреНрдкрд╛рдж рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЬреЛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЙрд╕реЗ рд▓реЗрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рддрд╛рдХрд┐ рдпрд╣ рджреЗрдЦрдиреЗ рдХрд╛ рдореМрдХрд╛ рдорд┐рд▓реЗ рдХрд┐ рд╡реНрд░реАрдХреЗ рдореЗрдВ рдлреНрд░рдВрдЯрдПрдВрдб рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдо
рдбрд╛рд░реНрдЯ рдкрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ (
рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреНрдпреЛрдВ: рдпрд╣рд╛рдВ рдФрд░ рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ ) рдФрд░ рд╣рдорд╛рд░реЗ рдЬреИрд╕реЗ рдмрдбрд╝реЗ рд╡реЗрдм рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓
рдПрдВрдЧреБрд▓рд░ (
рдпрд╣рд╛рдВ рдмреВрдиреЛрдкрд╕ рд╕реЗ рдкреНрд░реЗрд░рдгрд╛ рдХреЗ 5 рдорд┐рдирдЯ рд╣реИрдВ )ред рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рднрдВрдбрд╛рд░ рдпрд╣рд╛рдБ
github.com/wrike/codefestx рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рдПрдВрдЧреБрд▓рд░ рдРрдк рдореЗрдВ, рд╣рдордиреЗ
Redux рдХреЛ рдЬреЛрдбрд╝рд╛ред рдбрд╛рд░реНрдЯ рдХреЗ рд▓рд┐рдП рдХрдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВ: рд╣рдордиреЗ
Redux.dart рдФрд░
Redux рдПрдкрд┐рдХреНрд╕ рдХреЛ рдкреНрд░рднрд╛рд╡реЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд┐рдпрд╛ред рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, Redux рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдб рдпрд╣рд╛рдБ
github.com/wrike/codefestx/tree/master/lib/src/redux рдкрд░ рд╕реНрдерд┐рдд рд╣реИред
рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
, рд╣рдордиреЗ
рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд_рд╡реЗрд▓реНрдпреВ рдФрд░
рдмрд┐рд▓реНрдЯ -
рдХрд▓реЗрдХреНрд╢рди рдкреИрдХреЗрдЬ рддреИрдпрд╛рд░ рдХрд┐рдП , рдЬреЛ рдХрд╛рдо рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рд░рд▓ рдмрдирд╛рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ -
рдХреЛрдбрдлреЗрд╕реНрдЯрд╕реНрдЯреЗрдЯ , рдФрд░ рдкреИрдХреЗрдЬ рдПрдХ
рдмрд┐рд▓реНрдбрд░ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред
рдПрдХ рд╕рд░рд▓ рдЪрд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЛрдгреАрдп рдФрд░ Redux (
рдореБрдЦреНрдп рдШрдЯрдХ - github.com/wrike/codefestx/blob/master/lib/app_component.dart )
рдореЗрдВ рд╕рдВрдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
рдФрд░ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдПрдХ рдорд╛рдирдХ рдЧрд╛рд░реНрдЯ
рд╕реНрдЯреНрд░реАрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╕рд╛рде рдмрд╛рдВрдзрддреЗ рд╣реИрдВ:
_dispatcher.onAction.listen((action) => _store.dispatch(action)),
_store.onChange.listen((_) => _zone.run(_cdr.markForCheck)),
рдпрд╣реА рд╣реИ, рдЬрдм рдЖрдк рдкреНрд░рдмрдВрдзрдХ рдореЗрдВ рдПрдХ рдХреНрд░рд┐рдпрд╛ рдмрдирд╛рддреЗ
рд╣реИрдВ (
рд╡реЗ рд╕рднреА рдпрд╣рд╛рдВ рд╣реИрдВ ), рддреЛ рдпрд╣ Redux рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рд░рд╛рдЬреНрдп рдмрджрд▓ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рдХреЛрдгреАрдп рдкрд░рд┐рд╡рд░реНрддрди рдЬрд╛рдВрдЪ рдХреЗ рдПрдХ рдЪрдХреНрд░ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред
рд╣рдордиреЗ рд╕реВрдЪрдирд╛рдПрдВ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП 2 рддрдВрддреНрд░ рдмрдирд╛рдП: рдШрдЯрдирд╛рдУрдВ рдХреЗ рдШрдЯрдиреЗ рдХреА рд╕реВрдЪрдирд╛ рдХреЗ рд▓рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ,
PushWoosh рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдкреБрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ (
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ iOS рдкрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рдмрд┐рдирд╛ )ред рдХрдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреА рд░рд┐рд╣рд╛рдИ, рдПрдХ рд╕реЙрдХреЗрдЯ рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░
рд╕реЙрдХреЗрдЯ_io_client рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛
рдЧрдпрд╛ рдерд╛ ред

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

рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдПрдХ рдИрдорд╛рдирджрд╛рд░ рд╕реАрдЖрдИ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд╣рдордиреЗ рдЙрди рдПрдХреАрдХрд░рдг рдХреЗ рдЕрд╡рд╕рд░реЛрдВ рдХреЛ рджреЗрдЦрд╛, рдЬреЛ рдХрд┐
GitHub рдиреЗ Google рдХреНрд▓рд╛рдЙрдб рдмрд┐рд▓реНрдб рдореЗрдВ рдкрд╛рдпрд╛ рд╣реИ: рдЬрдм рд╕реЗ рд╣рдо Google рдЙрддреНрдкрд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддрдм рд╣рдореЗрдВ рдЗрд╕ рдЯреНрд░реИрдХ рдХреЛ рдирд╣реАрдВ рдЫреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХреАрдХрд░рдг рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛
рдХреНрд▓рд╛рдЙрдбрдмрд┐рд▓реНрдб.рдпреНрдпрд╛рдо рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рдХреЙрд▓ рдХрд░рддреА рд╣реИред рд╣рдо рдЙрд╕ рдкрде рдХреЗ рд╕рд╛рде рдЪрд▓реЗ рдЧрдП рдЬрд┐рд╕ рдкрд░ рд╣рдо рдПрдХ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдХреЛ рддреИрдпрд╛рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд╕рд╛рде
рдЬреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВ (рдбрд╛рд░реНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣рдм рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реИ - hub.docker.com/r/google/dart ), рдФрд░ рдлрд┐рд░ рд╣рдо рдЗрд╕реЗ k8 рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдо рд░рд┐рд▓реАрдЬрд╝, рд╕реНрдХреЗрд▓ рдХреЛ рд░реЛрд▓ рдХрд░ рд╕рдХреЗрдВ рдФрд░ рдЕрдиреНрдп рдХрд╛рд▓реНрдкрдирд┐рдХ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХреЗрдВ рд╕реНрдерд┐рддрд┐ред рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рдерд╛, рдпрд╣ рдЙрд╕ рд╢рд╛рдЦрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдереА рдЬрд╣рд╛рдВ рд╣рдо рдХрдорд┐рдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН, рдорд╛рд╕реНрдЯрд░ рдХреЛ рд▓рдбрд╝рд╛рдИ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдФрд░ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рд╢реЗрд╖ рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, k8 рдХреЗ рдмрд┐рдирд╛ рдиреНрдпреВрдирддрдо рдЪрд░рдгреЛрдВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рд╡рд┐рд╖рдп рдХреА
рдпрд╣рд╛рдБ рд╕рдХреНрд░рд┐рдп рдЪрд░реНрдЪрд╛
рд╣реИ , рдФрд░ рд╣рдордиреЗ рдЗрд╕ рдЪрд░реНрдЪрд╛ рд╕реЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдпрд╛ред рд╕реАрдЖрдИ рдиреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рдХрднреА рдЕрд╕рдлрд▓ рдирд╣реАрдВ рд╣реБрдПред
рдорд░рд╣рдо рдореЗрдВ рдЙрдбрд╝рдирд╛
рд╣рдорд╛рд░реА рд╕рдлрд▓рддрд╛рдУрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдорддрджрд╛рди рдХрд░рддреЗ рд╕рдордп рд▓реЛрдЧреЛрдВ рдХреЛ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рди рдХрд░реЗрдВ - рдХреБрдЫ рдХреЛ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ (
рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ )ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ "рдкрд╕рдВрдж" рдирд╣реАрдВ рдорд┐рд▓реЗ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рд╕реНрдкреАрдХрд░ рдЪреИрдВрдкрд┐рдпрди рдХреЛ рдмрдзрд╛рдИ рджреАред

рд╣рдо рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рд╣рд╕ рдореЗрдВ рднреА iOS рдХреА рд╕рдЦреНрдд рд╕реАрдорд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЧрдП, рдФрд░ рдпрд╣ рдХрд┐
рд╡реЗрдм рдХреЗ рд▓рд┐рдП рдкреБрд╢ рдХрд░рдиреЗ рдХрд╛
рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рдХреЗ рд▓рдЧрднрдЧ рдЖрдзреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ iPhone рдХреЗ рд╕рд╛рде рдереЗред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдо рдЙрдиреНрд╣реЗрдВ рдиреЛрдЯрд┐рд╕ рдирд╣реАрдВ рднреЗрдЬ рдкрд╛рдПред
рдФрд░ рдЯреАрдо рдиреЗ рдФрд░ рдХреНрдпрд╛ рдкрд░реЗрд╢рд╛рди рдХрд┐рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, - рд╣рдордиреЗ рдЕрдкрдиреА рд╕рднреА рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдХреБрдЫ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╕рдореНрдореЗрд▓рди рдореЗрдВ рд╕рд╣реА рд░реЛрд▓ рдЖрдЙрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдХреБрдЫ рдЕрднреА рднреА рдмреИрдХрд▓реЙрдЧ рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВред
рдкрд░рд┐рдгрд╛рдо
рдЖрдпреЛрдЬрдХреЛрдВ рдХреЛ рдзрдиреНрдпрд╡рд╛рдж рдХрд┐ рдЕрдиреБрд╕реВрдЪреА рдХрд╛ рд▓рд┐рдВрдХ рд╕рдореНрдореЗрд▓рди рдХреЗ рдкреНрд░рддрд┐рднрд╛рдЧреА рдХреЗ рдореЗрдореЛ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред рд╕рдореНрдореЗрд▓рди рдХреЗ рджреМрд░рд╛рди, 1100 рд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдиреЗ рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред ~ 120 рдШрдЯрдирд╛рдУрдВ рдХреЗ рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ, рд╣рдордиреЗ рдПрдХ рдФрд░ ~ 50 "рд▓реЛрдХ" рдЬреЛрдбрд╝рд╛ред рд▓рдЧрднрдЧ 75% рд╕рддреНрд░ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдереЗ, рд╣рдордиреЗ 500 рд╕реЗ рдЕрдзрд┐рдХ рдкреБрд╢ рд╕реВрдЪрдирд╛рдПрдВ рднреЗрдЬреАрдВ, рд╕рдореНрдореЗрд▓рди рдХреЗ рджреМрд░рд╛рди 3 рд░рд┐рд▓реАрдЬрд╝ рдЬрд╛рд░реА рдХрд┐рдП, рдФрд░ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдФрд░ рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдмрд╣реБрдд рдЦреБрд╢реА рдорд┐рд▓реАред

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