Flutter: рд░рдирдЯрд╛рдЗрдо рдкрд░ рдПрд╕реЗрдЯ рд▓реЛрдб рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 2 рдЕрдЧре░ 2017  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: flutter/flutter

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

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

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

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

рдПрдлрд╡рд╛рдИрдЖрдИ @yjbanov

P5 assets framework passed first triage tool

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рдо рдЬреНрдЮрд╛рдд рд╕рдВрдкрддреНрддрд┐ рдирд╛рдореЛрдВ, рдпрд╛ рдХреБрдЫ рдРрд╕реЗ рдирд╛рдореЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХреЛ рд╕реНрд╡рдд: рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

рдирдорд╕реНрддреЗ:

рдореИрдВ NetEase рдХрдВрдкрдиреА рдХреА рдлреНрд▓рд╛рдИ-рдорд┐рдХреНрд╕ рдЯреАрдо рдХрд╛ рд╕рджрд╕реНрдп рд╣реВрдВред рдореЗрд░реА рдЯреАрдо рдиреЗ рдПрдХ рд╕реНрдкрдВрджрди рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдг рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛: Flr(Flutter-R) рдЙрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВред

Flr рдПрдХ рд╕реНрдкрдВрджрди рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдмрдВрдзрдХ рдЙрдкрдХрд░рдг рд╣реИ, рдЬреЛ рдлрд╝реНрд▓рдЯрд░ рдбреЗрд╡рд▓рдкрд░ рдХреЛ pubspec.yaml рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ r.g.dart рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЙрд╕рдХреЗ рдмрд╛рдж Android рдореЗрдВ R.java рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реИ рд╕реНрдкрдВрджрди рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИред r.g.dart рдХреЗ рд╕рд╛рде, рд╕реНрдкрдВрджрди рдбреЗрд╡рд▓рдкрд░ рдПрд╕реЗрдЯ рдХреЛ рдЗрд╕рдХреЗ рдПрд╕реЗрдЯ рдЖрдИрдбреА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдХреЗ рдХреЛрдб рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ:

import 'package:flutter_r_demo/r.g.dart';

// test_sameName.png
var normalImageWidget = Image(
  width: 200,
  height: 120,
  image: R.image.test_sameName(),
);

// test_sameName.gif
var gifImageWidget = Image(
  image: R.mage.test_sameName_gif(),
);

// test.svg
var svgImageWidget = Image(
  width: 100,
  height: 100,
  image: R.svg.test(width: 100, height: 100),
);

// test.json
var jsonString = await R.text.test_json();

// test.yaml
var yamlString = await R.text.test_yaml();

рдкреАрдПрд╕: рд╣рд╛рдБ, рдпрд╣ рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рдПрдПрдкреАрдЯреА (рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕реЗрдЯ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдЯреВрд▓) рдХреА рддрд░рд╣ рд╣реИред

рдЕрдм рддрдХ, Flr рдиреЗ Android Studio рдкреНрд▓рдЧрдЗрди, CLI рдФрд░ VSCode рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рд╣реИ:

  1. Flr Android Studio рдкреНрд▓рдЧрдЗрди рд╕рдВрд╕реНрдХрд░рдг

  2. рдПрдлрдПрд▓рдЖрд░ рд╕реАрдПрд▓рдЖрдИ рд╕рдВрд╕реНрдХрд░рдг

  3. Flr VSCode рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕рдВрд╕реНрдХрд░рдг

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ppolasek picture ppolasek  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

sethladd picture sethladd  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

aegis123 picture aegis123  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

hadjloo picture hadjloo  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

eseidelGoogle picture eseidelGoogle  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ