рд╕реНрдкрдВрджрди: рдпрд╣ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реИ

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

рдЖрдИрдПрдордПрдЪрдУ рд╣реЛрдЧрд╛, рдЬреЛ рдЖрдкрдХреЛ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рджреЗрдЧрд╛, рдФрд░ рдХреНрдпрд╛ рдпрд╣ рдореБрдлреНрдд рдорд╛рдирд╡-рдШрдВрдЯреЗ рдЦрд░реНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред

рдореИрдВ рдХреНрдпрд╛ рджреЗрдЦрдирд╛ / рдЖрдЬрд╝рдорд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛:

  1. рдЧрд░реНрдо рдкреБрдирдГ рд▓реЛрдб
  2. рд╕рдм рдХреБрдЫ рдПрдХ рд╡рд┐рдЬреЗрдЯ рд╣реИ
  3. рдХреНрд░реЙрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо
  4. рдпрд╣рд╛рдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕реБрдВрджрд░ рдПрдиреАрдореЗрд╢рди - рд╕реНрдкрдВрджрди 1.0 рдкреНрд░рд╕реНрддреБрддрд┐

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

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

рдПрдХ рдЧрддрд┐рд╡рд┐рдзрд┐, рдПрдХ рдкреНрд▓рд╕ рдЪрд┐рд╣реНрди рдХреЗ рд╕рд╛рде рдПрдХ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдмрдЯрди, рдЬрд┐рд╕реЗ рджрдмрд╛рдП рдЬрд╛рдиреЗ рдкрд░ рдХрд╛рдЙрдВрдЯрд░ рдмрдврд╝рддрд╛ рд╣реИред

рдЫрд╡рд┐

IMHO рдирдВрдмрд░ 1ред рдЗрдВрдЯрд░рдиреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ


рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рди рджреЗрдЦреЗрдВ, рдлрд┐рд░ рдЙрд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рди рд▓рд┐рдЦреЗрдВред
рдкреНрд░рдХрдЯ рдХреЛ рдЦреЛрд▓рдирд╛, рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рдЖрдкрдХреА рдЖрдВрдЦ рдХреЛ рдкрдХрдбрд╝рддреА рд╣реИ рд╡рд╣ рдПрдХ рд░реЗрдЦрд╛ рд╣реИ
<uses-permission android:name="android.permission.INTERNET"/> 

(рдЧреИрд░-рдПрдВрдбреНрд░реЙрдЗрдб рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд▓рд╛рдЗрди рдЗрдВрдЯрд░рдиреЗрдЯ рддрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрдХреНрд╕реЗрд╕ рджреЗрддреА рд╣реИ)ред

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

  <!-- The INTERNET permission is required for development. Specifically, flutter needs it to communicate with the running application to allow setting breakpoints, to provide hot reload, etc. --> 

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

IMHO тДЦ2ред рд╕реВрддреНрд░


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

рдореВрд▓ рд╡рд┐рд╖рдпреЛрдВ рдореЗрдВ рди рдЪрдврд╝реЗрдВ, рдЖрдзрд╛рд░ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓реЗрдВ рдФрд░ рдЕрдкрдиреА рд╢реИрд▓реА рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдВред
  /// Rather than creating a new text theme, consider using [Typography.black] /// or [Typography.white], which implement the typography styles in the /// material design specification: /// /// <https://material.google.com/style/typography.html#typography-styles> /// /// If you do decide to create your own text theme, consider using one of /// those predefined themes as a starting point for [copyWith] or [apply]. 


рдареАрдХ рд╣реИ, рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рдпрд╣ рджреЗрд╢реА рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рднреА рд╣реИ, рдпрд╣реАрдВ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ:

  class TitleColorThemeCopy extends StatelessWidget { TitleColorThemeCopy({Key key, this.child, this.titleColor}) : super(key: key); final Color titleColor; final Widget child; @override Widget build(BuildContext context) { final ThemeData theme = Theme.of(context); return Theme( data: theme.copyWith( textTheme: theme.textTheme.copyWith( title: theme.textTheme.title.copyWith( color: titleColor, ), ), ), child: child, ); } } 

... рдореБрдЭреЗ рдХреЗрд╡рд▓ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкрд╛рда рдХрд╛ рд░рдВрдЧ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ... рдЗрддрдирд╛ рдХреНрдпреЛрдВ рд▓рд┐рдЦрдирд╛ ...

IMHO рдирдВрдмрд░ 3ред рдЖрд╡реЗрджрди рдХрд╛ рдЖрдХрд╛рд░


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

рд╣рдо рдлреЛрди рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ - рдПрдкреНрд▓рд┐рдХреЗрд╢рди - MyFirstFlutterApp - рдЖрдХрд╛рд░: 40.68 рдПрдордмреАред (рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлреЗрд╕рдмреБрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рд╡рдЬрди рд▓рдЧрднрдЧ 53 рдПрдордмреА рд╣реИ)ред

рдлрд┐рд░ рдХрд╛рдо рдФрд░ рдШрд░ рдХреЗ рдХрд╛рдореЛрдВ рд╕реЗ рдореБрдХреНрдд рдореЗрд░реА рдШрдбрд╝реА рдХреБрдЫ рдФрд░ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЦрддреНрдо рд╣реЛ рдЧрдИред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЗрди IMHO рдиреЗ рд╕реНрдкрдВрджрди рдкрд░ рдкрд╛рд▓рддреВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рддрд╛рд░реАрдЦ рдХреЛ рдереЛрдбрд╝рд╛ рдкреАрдЫреЗ рдзрдХреЗрд▓ рджрд┐рдпрд╛ред

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


All Articles