<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Toupawa Blog]]></title><description><![CDATA[A Blog of Software Developer]]></description><link>https://toupawa.com/</link><image><url>https://toupawa.com/favicon.png</url><title>Toupawa Blog</title><link>https://toupawa.com/</link></image><generator>Ghost 4.1</generator><lastBuildDate>Mon, 06 Apr 2026 13:43:12 GMT</lastBuildDate><atom:link href="https://toupawa.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[สร้าง Web Application ด้วย Vite + React และ TypeScript]]></title><description><![CDATA[แบ่งปันวิธีการสร้าง Web Application โดยใช้ Vite และในบทความนี้เราจะสร้าง React.js ขึ้นมาพัฒนาร่วมกับ TypeScript ซึ่งเป็นภาษาที่กำลังมาแรง]]></description><link>https://toupawa.com/create-an-web-application-with-vite-and-react-and-typescript/</link><guid isPermaLink="false">643baa2bd973e677e02f2c16</guid><category><![CDATA[React.js]]></category><category><![CDATA[Vite]]></category><dc:creator><![CDATA[TPW]]></dc:creator><pubDate>Fri, 21 Apr 2023 00:09:00 GMT</pubDate><media:content url="https://toupawa.com/content/images/2023/04/vite_react.png" medium="image"/><content:encoded><![CDATA[<img src="https://toupawa.com/content/images/2023/04/vite_react.png" alt="&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; Web Application &#xE14;&#xE49;&#xE27;&#xE22; Vite + React &#xE41;&#xE25;&#xE30; TypeScript"><p>&#xE2B;&#xE32;&#xE01;&#xE43;&#xE04;&#xE23;&#xE17;&#xE35;&#xE48;&#xE01;&#xE33;&#xE25;&#xE31;&#xE07;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; React.js &#xE41;&#xE25;&#xE30; TypeScript &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE23;&#xE48;&#xE27;&#xE21;&#xE01;&#xE31;&#xE19; &#xE27;&#xE34;&#xE18;&#xE35;&#xE2B;&#xE19;&#xE36;&#xE48;&#xE07;&#xE17;&#xE35;&#xE48;&#xE23;&#xE27;&#xE14;&#xE40;&#xE23;&#xE47;&#xE27; &#xE04;&#xE37;&#xE2D;&#xE01;&#xE32;&#xE23;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07;&#xE1C;&#xE48;&#xE32;&#xE19; <code>Vite</code> &#xE19;&#xE31;&#xE48;&#xE19;&#xE40;&#xE2D;&#xE07;</p><p>Vite &#xE04;&#xE37;&#xE2D; Frontend Tooling &#xE17;&#xE35;&#xE48;&#xE0A;&#xE48;&#xE27;&#xE22;&#xE2D;&#xE33;&#xE19;&#xE27;&#xE22;&#xE04;&#xE27;&#xE32;&#xE21;&#xE2A;&#xE30;&#xE14;&#xE27;&#xE01;&#xE43;&#xE19;&#xE01;&#xE32;&#xE23;&#xE02;&#xE36;&#xE49;&#xE19;&#xE42;&#xE1B;&#xE23;&#xE40;&#xE08;&#xE47;&#xE01;&#xE15;&#xE4C;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE23;&#xE27;&#xE14;&#xE40;&#xE23;&#xE47;&#xE27; &#xE42;&#xE14;&#xE22;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01; option &#xE41;&#xE04;&#xE48;&#xE44;&#xE21;&#xE48;&#xE01;&#xE35;&#xE48;&#xE02;&#xE49;&#xE2D; &#xE01;&#xE47;&#xE08;&#xE30;&#xE44;&#xE14;&#xE49; project bundle &#xE21;&#xE32;&#xE1E;&#xE23;&#xE49;&#xE2D;&#xE21;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19;&#xE17;&#xE31;&#xE19;&#xE17;&#xE35; </p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://vitejs.dev/guide/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Vite</div><div class="kg-bookmark-description">Next Generation Frontend Tooling</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://vitejs.dev/logo.svg" alt="&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; Web Application &#xE14;&#xE49;&#xE27;&#xE22; Vite + React &#xE41;&#xE25;&#xE30; TypeScript"><span class="kg-bookmark-author">ViteMastodonTwitterDiscordGitHubMastodonTwitterDiscordGitHub</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://vitejs.dev/og-image.png" alt="&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; Web Application &#xE14;&#xE49;&#xE27;&#xE22; Vite + React &#xE41;&#xE25;&#xE30; TypeScript"></div></a></figure><p>&#xE21;&#xE32;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE15;&#xE49;&#xE19;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; Application &#xE01;&#xE31;&#xE19;&#xE17;&#xE35;&#xE48;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;</p><pre><code>npm create vite@latest</code></pre><p>&#xE15;&#xE48;&#xE2D;&#xE21;&#xE32; &#xE01;&#xE14; y &#xE17;&#xE35;&#xE48; <code>Ok to proceed?</code> &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01; choice &#xE15;&#xE32;&#xE21;&#xE19;&#xE35;&#xE49;</p><pre><code>Need to install the following packages:
  create-vite@4.2.0
Ok to proceed? (y) y
&#x2714; Project name: &#x2026; typescript-react
&#x2714; Select a framework: &#x203A; React
&#x2714; Select a variant: &#x203A; TypeScript

Scaffolding project in /Users/washira/typescript-react...

Done. Now run:

  cd typescript-react
  npm install
  npm run dev
</code></pre><p>&#xE43;&#xE19;&#xE42;&#xE1B;&#xE23;&#xE40;&#xE08;&#xE47;&#xE01;&#xE15;&#xE4C; &#xE40;&#xE23;&#xE32;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE27;&#xE48;&#xE32; <code>typescript-react</code> &#xE41;&#xE25;&#xE30;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01; Framework &#xE40;&#xE1B;&#xE47;&#xE19; <code>React</code> &#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19; &#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE20;&#xE32;&#xE29;&#xE32;&#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE43;&#xE0A;&#xE49;&#xE1E;&#xE31;&#xE12;&#xE19;&#xE32; &#xE04;&#xE37;&#xE2D; <code>TypeScript</code> &#xE15;&#xE32;&#xE21;&#xE25;&#xE33;&#xE14;&#xE31;&#xE1A;</p><p>&#xE40;&#xE19;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE08;&#xE32;&#xE01; Vite &#xE44;&#xE21;&#xE48;&#xE44;&#xE14;&#xE49;&#xE43;&#xE2B;&#xE49; <code>node modules</code> &#xE21;&#xE32;&#xE14;&#xE49;&#xE27;&#xE22; &#xE42;&#xE14;&#xE22;&#xE21;&#xE35;&#xE40;&#xE1E;&#xE35;&#xE22;&#xE07; <code>package.json</code> &#xE21;&#xE32;&#xE40;&#xE17;&#xE48;&#xE32;&#xE19;&#xE31;&#xE49;&#xE19; &#xE40;&#xE23;&#xE32;&#xE08;&#xE36;&#xE07;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07;&#xE40;&#xE2D;&#xE07; &#xE40;&#xE02;&#xE49;&#xE32;&#xE44;&#xE1B;&#xE17;&#xE35;&#xE48; directory &#xE02;&#xE2D;&#xE07;&#xE42;&#xE1B;&#xE23;&#xE40;&#xE08;&#xE47;&#xE01;&#xE15;&#xE4C; &#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19; &#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; <code>node modules</code> &#xE14;&#xE49;&#xE27;&#xE22;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;</p><pre><code>npm install</code></pre><p>&#xE41;&#xE25;&#xE30;&#xE23;&#xE31;&#xE19;&#xE42;&#xE1B;&#xE23;&#xE40;&#xE08;&#xE47;&#xE01;&#xE15;&#xE4C;&#xE1A;&#xE19; local &#xE02;&#xE2D;&#xE07;&#xE40;&#xE23;&#xE32;&#xE17;&#xE35;&#xE48;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;</p><pre><code>npm run dev</code></pre><p>&#xE08;&#xE30;&#xE21;&#xE35;&#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21;&#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE1B;&#xE23;&#xE30;&#xE21;&#xE32;&#xE13;&#xE19;&#xE35;&#xE49;</p><pre><code>VITE v4.2.1  ready in 395 ms

  &#x279C;  Local:   http://127.0.0.1:5173/
  &#x279C;  Network: use --host to expose
  &#x279C;  press h to show help</code></pre><p>&#xE40;&#xE1B;&#xE34;&#xE14; internet browser &#xE41;&#xE25;&#xE49;&#xE27;&#xE43;&#xE2A;&#xE48; url &#xE17;&#xE35;&#xE48; <a href="http://127.0.0.1:5173/"><code>http://127.0.0.1:5173/</code></a> &#xE15;&#xE32;&#xE21;&#xE17;&#xE35;&#xE48;&#xE23;&#xE30;&#xE1A;&#xE38;&#xE43;&#xE19;&#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21; &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE40;&#xE2B;&#xE47;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE40;&#xE27;&#xE47;&#xE1A;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE14;&#xE31;&#xE07;&#xE19;&#xE35;&#xE49;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2023/04/vite_react_npm_run_dev.png" class="kg-image" alt="&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; Web Application &#xE14;&#xE49;&#xE27;&#xE22; Vite + React &#xE41;&#xE25;&#xE30; TypeScript" loading="lazy" width="2000" height="1094" srcset="https://toupawa.com/content/images/size/w600/2023/04/vite_react_npm_run_dev.png 600w, https://toupawa.com/content/images/size/w1000/2023/04/vite_react_npm_run_dev.png 1000w, https://toupawa.com/content/images/size/w1600/2023/04/vite_react_npm_run_dev.png 1600w, https://toupawa.com/content/images/size/w2400/2023/04/vite_react_npm_run_dev.png 2400w" sizes="(min-width: 720px) 720px"><figcaption>&#xE2B;&#xE19;&#xE49;&#xE32;&#xE40;&#xE27;&#xE47;&#xE1A; React &#xE17;&#xE35;&#xE48;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE21;&#xE32;&#xE08;&#xE32;&#xE01; Vite</figcaption></figure><p>&#xE16;&#xE49;&#xE32;&#xE40;&#xE23;&#xE32;&#xE2D;&#xE22;&#xE32;&#xE01;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19; port &#xE43;&#xE2B;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE25;&#xE02;&#xE2D;&#xE37;&#xE48;&#xE19;&#xE17;&#xE35;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23; &#xE43;&#xE2B;&#xE49;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE21;&#xE42;&#xE04;&#xE49;&#xE14;&#xE17;&#xE35;&#xE48; <code>vite.config.ts</code> &#xE14;&#xE31;&#xE07;&#xE19;&#xE35;&#xE49;</p><pre><code>// https://vitejs.dev/config/
export default defineConfig({
  server: { port: 3000 }, 		// &#xE40;&#xE1E;&#xE34;&#xE48;&#xE21;&#xE1A;&#xE23;&#xE23;&#xE17;&#xE31;&#xE14;&#xE19;&#xE35;&#xE49;
  plugins: [react()],
})</code></pre><p>&#xE19;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE27;&#xE34;&#xE18;&#xE35;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE25;&#xE30;&#xE15;&#xE31;&#xE49;&#xE07;&#xE04;&#xE48;&#xE32;&#xE40;&#xE1A;&#xE37;&#xE49;&#xE2D;&#xE07;&#xE15;&#xE49;&#xE19;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE02;&#xE36;&#xE49;&#xE19;&#xE42;&#xE1B;&#xE23;&#xE40;&#xE08;&#xE47;&#xE01;&#xE15;&#xE4C;&#xE14;&#xE49;&#xE27;&#xE22; React &#xE44;&#xE14;&#xE49;&#xE44;&#xE27;&#xE21;&#xE32;&#xE01; &#xE40;&#xE1E;&#xE23;&#xE32;&#xE30; Vite &#xE21;&#xE35;&#xE04;&#xE27;&#xE32;&#xE21;&#xE40;&#xE1A;&#xE32; &#xE17;&#xE33;&#xE43;&#xE2B;&#xE49;&#xE1B;&#xE23;&#xE30;&#xE2B;&#xE22;&#xE31;&#xE14;&#xE1E;&#xE37;&#xE49;&#xE19;&#xE17;&#xE35;&#xE48; &#xE41;&#xE25;&#xE30; render &#xE44;&#xE27;&#xE14;&#xE35; &#xE1A;&#xE27;&#xE01;&#xE01;&#xE31;&#xE1A;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE1E;&#xE31;&#xE12;&#xE19;&#xE32;&#xE14;&#xE49;&#xE27;&#xE22; TypsScript &#xE44;&#xE14;&#xE49; &#xE44;&#xE21;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE15;&#xE31;&#xE49;&#xE07;&#xE04;&#xE48;&#xE32;&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21;&#xE40;&#xE15;&#xE34;&#xE21;&#xE40;&#xE25;&#xE22; &#xE01;&#xE47;&#xE19;&#xE31;&#xE1A;&#xE27;&#xE48;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE2D;&#xE35;&#xE01;&#xE2B;&#xE19;&#xE36;&#xE48;&#xE07;&#xE02;&#xE49;&#xE2D;&#xE14;&#xE35;&#xE02;&#xE2D;&#xE07; Vite &#xE17;&#xE35;&#xE48;&#xE19;&#xE48;&#xE32;&#xE2A;&#xE19;&#xE43;&#xE08;&#xE04;&#xE23;&#xE31;&#xE1A;</p>]]></content:encoded></item><item><title><![CDATA[การตั้งค่า dockerfile และ docker-compose เพื่อรัน Node.js และ MongoDB บน Docker Container]]></title><description><![CDATA[วิธีการตั้งค่า dockerfile และ docker-compose ของโปรเจ็กต์ที่พัฒนาด้วย Node.js ให้เชื่อมต่อกับ MongoDB โดยรันบน Docker Container ทั้งหมด]]></description><link>https://toupawa.com/how-to-run-node-js-and-mongodb-as-docker-container/</link><guid isPermaLink="false">64255053d973e677e02f29d0</guid><category><![CDATA[Docker]]></category><category><![CDATA[MongoDB]]></category><category><![CDATA[Node.js]]></category><dc:creator><![CDATA[TPW]]></dc:creator><pubDate>Mon, 10 Apr 2023 01:09:00 GMT</pubDate><media:content url="https://toupawa.com/content/images/2023/03/Node.js-Docker-MongoDB.png" medium="image"/><content:encoded><![CDATA[<img src="https://toupawa.com/content/images/2023/03/Node.js-Docker-MongoDB.png" alt="&#xE01;&#xE32;&#xE23;&#xE15;&#xE31;&#xE49;&#xE07;&#xE04;&#xE48;&#xE32; dockerfile &#xE41;&#xE25;&#xE30; docker-compose &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE23;&#xE31;&#xE19; Node.js &#xE41;&#xE25;&#xE30; MongoDB &#xE1A;&#xE19; Docker Container"><p>&#xE43;&#xE19;&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE19;&#xE35;&#xE49; &#xE08;&#xE30;&#xE1A;&#xE31;&#xE19;&#xE17;&#xE36;&#xE01;&#xE27;&#xE34;&#xE18;&#xE35;&#xE01;&#xE32;&#xE23;&#xE15;&#xE31;&#xE49;&#xE07;&#xE04;&#xE48;&#xE32; dockerfile &#xE41;&#xE25;&#xE30; docker-compose &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE17;&#xE14;&#xE2A;&#xE2D;&#xE1A;&#xE41;&#xE25;&#xE30;&#xE1D;&#xE36;&#xE01;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19; Docker &#xE41;&#xE25;&#xE30;&#xE15;&#xE48;&#xE2D;&#xE22;&#xE2D;&#xE14;&#xE40;&#xE1B;&#xE47;&#xE19; Microservices &#xE43;&#xE19;&#xE2D;&#xE19;&#xE32;&#xE04;&#xE15; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE1C;&#xE21;&#xE40;&#xE2B;&#xE47;&#xE19;&#xE27;&#xE48;&#xE32; &#xE21;&#xE35;&#xE04;&#xE27;&#xE32;&#xE21;&#xE19;&#xE48;&#xE32;&#xE2A;&#xE19;&#xE43;&#xE08;&#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE40;&#xE2D;&#xE32;&#xE21;&#xE32;&#xE41;&#xE1A;&#xE48;&#xE07;&#xE1B;&#xE31;&#xE19;&#xE1B;&#xE23;&#xE30;&#xE2A;&#xE1A;&#xE01;&#xE32;&#xE23;&#xE13;&#xE4C;&#xE15;&#xE23;&#xE07;&#xE19;&#xE35;&#xE49;&#xE43;&#xE2B;&#xE49;&#xE17;&#xE38;&#xE01;&#xE04;&#xE19;&#xE44;&#xE14;&#xE49;&#xE2D;&#xE48;&#xE32;&#xE19;&#xE01;&#xE31;&#xE19;&#xE04;&#xE23;&#xE31;&#xE1A;</p><p>&#xE43;&#xE19;&#xE01;&#xE23;&#xE13;&#xE35;&#xE19;&#xE35;&#xE49; &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE44;&#xE21;&#xE48;&#xE43;&#xE0A;&#xE49; Node.js &#xE40;&#xE1B;&#xE47;&#xE19; Runtime &#xE1A;&#xE19;&#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE02;&#xE2D;&#xE07;&#xE15;&#xE31;&#xE27;&#xE40;&#xE2D;&#xE07;&#xE40;&#xE25;&#xE22; &#xE23;&#xE27;&#xE21;&#xE16;&#xE36;&#xE07; MongoDB &#xE14;&#xE49;&#xE27;&#xE22; &#xE17;&#xE38;&#xE01;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE08;&#xE30;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE1C;&#xE48;&#xE32;&#xE19; Docker &#xE40;&#xE17;&#xE48;&#xE32;&#xE19;&#xE31;&#xE49;&#xE19; &#xE08;&#xE38;&#xE14;&#xE1B;&#xE23;&#xE30;&#xE2A;&#xE07;&#xE04;&#xE4C;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE17;&#xE14;&#xE2A;&#xE2D;&#xE1A;&#xE01;&#xE32;&#xE23;&#xE23;&#xE31;&#xE19;&#xE17;&#xE38;&#xE01; Server &#xE42;&#xE14;&#xE22;&#xE43;&#xE0A;&#xE49; Docker Container</p><h2 id="%E0%B8%95%E0%B8%B1%E0%B9%89%E0%B8%87%E0%B8%84%E0%B9%88%E0%B8%B2%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%80%E0%B8%88%E0%B9%87%E0%B8%81%E0%B8%95%E0%B9%8C">&#xE15;&#xE31;&#xE49;&#xE07;&#xE04;&#xE48;&#xE32;&#xE42;&#xE1B;&#xE23;&#xE40;&#xE08;&#xE47;&#xE01;&#xE15;&#xE4C;</h2><p>&#xE43;&#xE19;&#xE42;&#xE1B;&#xE23;&#xE40;&#xE08;&#xE47;&#xE01;&#xE15;&#xE4C;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07; &#xE40;&#xE23;&#xE32;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; APIs &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19;&#xE40;&#xE01;&#xE35;&#xE48;&#xE22;&#xE27;&#xE01;&#xE31;&#xE1A; &#xE23;&#xE30;&#xE1A;&#xE1A;&#xE08;&#xE2D;&#xE14;&#xE23;&#xE16; &#xE02;&#xE2D;&#xE15;&#xE31;&#xE49;&#xE07;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE42;&#xE1B;&#xE23;&#xE40;&#xE08;&#xE47;&#xE01;&#xE15;&#xE4C;&#xE27;&#xE48;&#xE32; <code>parking-lot-backend-app</code> &#xE25;&#xE30;&#xE01;&#xE31;&#xE19;&#xE19;&#xE30;&#xE2E;&#xE30;</p><p>&#xE20;&#xE32;&#xE22;&#xE43;&#xE19;&#xE42;&#xE1B;&#xE23;&#xE40;&#xE08;&#xE47;&#xE01;&#xE15;&#xE4C; &#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE15;&#xE31;&#xE49;&#xE07;&#xE04;&#xE48;&#xE32;&#xE20;&#xE32;&#xE22;&#xE43;&#xE19;&#xE44;&#xE1F;&#xE25;&#xE4C; <code>.env</code> &#xE40;&#xE01;&#xE35;&#xE48;&#xE22;&#xE27;&#xE01;&#xE31;&#xE1A; MongoDB &#xE14;&#xE31;&#xE07;&#xE19;&#xE35;&#xE49;</p><pre><code>DB_HOST=mongo
DB_PORT=27017
DB_NAME=&lt;DB_NAME&gt;
DB_USER=&lt;DB_USERNAME&gt;
DB_PASS=&lt;DB_PASSWORD&gt;</code></pre><p>&#xE15;&#xE48;&#xE2D;&#xE21;&#xE32; &#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; <code>dockerfile</code> &#xE01;&#xE31;&#xE19;&#xE01;&#xE48;&#xE2D;&#xE19;&#xE14;&#xE35;&#xE01;&#xE27;&#xE48;&#xE32;</p><pre><code>FROM node:12
# FROM &#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01; Base Image &#xE08;&#xE32;&#xE01; Docker Hub &#xE17;&#xE35;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE2A;&#xE20;&#xE32;&#xE1E;&#xE41;&#xE27;&#xE14;&#xE25;&#xE49;&#xE2D;&#xE21;

LABEL maintainer=&quot;admin&quot;

LABEL description=&quot;This dockerfile for install the parking-lot-backend.&quot;

WORKDIR /app
# WORKDIR &#xE04;&#xE34;&#xE37;&#xE2D;&#xE01;&#xE32;&#xE23;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14; directory &#xE02;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19; 
# &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE2B;&#xE49;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;&#xE2D;&#xE37;&#xE48;&#xE19;&#xE46;&#xE02;&#xE2D;&#xE07; Docker &#xE44;&#xE1B;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE17;&#xE35;&#xE48;&#xE19;&#xE31;&#xE48;&#xE19; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE43;&#xE19;&#xE17;&#xE35;&#xE48;&#xE19;&#xE35;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19; /app

COPY package.json ./
# &#xE04;&#xE31;&#xE14;&#xE25;&#xE2D;&#xE01; package.json &#xE44;&#xE1B;&#xE43;&#xE2A;&#xE48;&#xE17;&#xE35;&#xE48; ./

COPY package-lock.json ./
# &#xE04;&#xE31;&#xE14;&#xE25;&#xE2D;&#xE01; package-lock.json &#xE44;&#xE1B;&#xE43;&#xE2A;&#xE48;&#xE17;&#xE35;&#xE48; ./

RUN npm install
# &#xE43;&#xE19;&#xE17;&#xE35;&#xE48;&#xE19;&#xE35;&#xE49; &#xE04;&#xE37;&#xE2D; &#xE08;&#xE32;&#xE01; ./ &#xE44;&#xE1B;&#xE2B;&#xE32; ./

COPY ./ ./
# COPY &#xE04;&#xE37;&#xE2D;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;&#xE17;&#xE35;&#xE48;&#xE04;&#xE31;&#xE14;&#xE25;&#xE2D;&#xE01;&#xE42;&#xE04;&#xE49;&#xE14;&#xE08;&#xE32;&#xE01; directory &#xE15;&#xE49;&#xE19;&#xE17;&#xE32;&#xE07; &#xE44;&#xE1B;&#xE2B;&#xE32; &#xE1B;&#xE25;&#xE32;&#xE22;&#xE17;&#xE32;&#xE07; 
# &#xE43;&#xE19;&#xE17;&#xE35;&#xE48;&#xE19;&#xE35;&#xE49; &#xE04;&#xE37;&#xE2D; &#xE08;&#xE32;&#xE01; ./ &#xE44;&#xE1B;&#xE2B;&#xE32; ./

ENV NODE_ENV production

CMD [&quot;npm&quot;, &quot;run&quot;, &quot;dev&quot;]
# CMD &#xE04;&#xE35;&#xE2D; &#xE01;&#xE32;&#xE23;&#xE43;&#xE2A;&#xE48;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE23;&#xE31;&#xE19;&#xE42;&#xE1B;&#xE23;&#xE41;&#xE01;&#xE23;&#xE21; &#xE08;&#xE32;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE04;&#xE37;&#xE2D; &#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07; &quot;npm run dev&quot;
</code></pre><p>&#xE25;&#xE31;&#xE01;&#xE29;&#xE13;&#xE30;&#xE01;&#xE32;&#xE23;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19; Dockerfile &#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE01;&#xE32;&#xE23;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE23;&#xE35;&#xE22;&#xE07;&#xE25;&#xE33;&#xE14;&#xE31;&#xE1A;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE41;&#xE1A;&#xE1A;&#xE1A;&#xE19;&#xE25;&#xE07;&#xE25;&#xE48;&#xE32;&#xE07; &#xE23;&#xE32;&#xE22;&#xE25;&#xE30;&#xE40;&#xE2D;&#xE35;&#xE22;&#xE14;&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21;&#xE40;&#xE15;&#xE34;&#xE21;&#xE28;&#xE36;&#xE01;&#xE29;&#xE32;&#xE44;&#xE14;&#xE49;<a href="https://docs.docker.com/engine/reference/builder/">&#xE17;&#xE35;&#xE48;&#xE19;&#xE35;&#xE48;</a></p><p>&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; <code>docker-compose.yml</code> &#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32; &#xE42;&#xE14;&#xE22;&#xE21;&#xE35;&#xE23;&#xE32;&#xE22;&#xE25;&#xE30;&#xE40;&#xE2D;&#xE35;&#xE22;&#xE14;&#xE14;&#xE31;&#xE07;&#xE19;&#xE35;&#xE49;</p><pre><code>version: &apos;3&apos;
services:
  app:
    container_name: parking-lot
    restart: always
    build: .
    ports:
      - &apos;80:3000&apos;
    external_links: 
      - mongo
  mongo: 
    container_name: mongo
    image: mongo
    ports: 
    - &apos;27017:27017&apos;</code></pre><p>&#xE08;&#xE32;&#xE01;&#xE43;&#xE19;&#xE44;&#xE1F;&#xE25;&#xE4C; Docker Compose &#xE19;&#xE35;&#xE49; &#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE04;&#xE48;&#xE32;&#xE15;&#xE48;&#xE32;&#xE07;&#xE46;&#xE14;&#xE31;&#xE07;&#xE19;&#xE35;&#xE49;<br>- <code>version</code> &#xE02;&#xE2D;&#xE07; Compose file format<br>- <code>services</code> &#xE04;&#xE37;&#xE2D; &#xE01;&#xE32;&#xE23;&#xE1B;&#xE23;&#xE30;&#xE01;&#xE32;&#xE28; service &#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE23;&#xE31;&#xE19;&#xE17;&#xE31;&#xE49;&#xE07;&#xE2B;&#xE21;&#xE14;<br>- <code>container-name</code> &#xE04;&#xE37;&#xE2D; &#xE01;&#xE32;&#xE23;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE0A;&#xE37;&#xE48;&#xE2D; container &#xE02;&#xE2D;&#xE07;&#xE41;&#xE15;&#xE48;&#xE25;&#xE30; service<br>- <code>image</code> &#xE04;&#xE37;&#xE2D;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE02;&#xE2D;&#xE07; Docker Image &#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE43;&#xE0A;&#xE49;<br>- <code>ports</code> &#xE04;&#xE37;&#xE2D;&#xE01;&#xE32;&#xE23;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14; port &#xE42;&#xE14;&#xE22;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE41;&#xE1A;&#xE1A; &lt;external_of_container&gt;:&lt;internal_of_container&gt;<br>- <code>external_links</code> &#xE04;&#xE37;&#xE2D;&#xE01;&#xE32;&#xE23;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14; &#xE27;&#xE48;&#xE32; app &#xE08;&#xE30;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE23;&#xE48;&#xE27;&#xE21;&#xE01;&#xE31;&#xE19;&#xE01;&#xE31;&#xE1A; container &#xE0A;&#xE37;&#xE48;&#xE2D;&#xE2D;&#xE30;&#xE44;&#xE23; &#xE16;&#xE49;&#xE32; container &#xE19;&#xE31;&#xE49;&#xE19;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE43;&#xE19; Compose &#xE40;&#xE14;&#xE35;&#xE22;&#xE27;&#xE01;&#xE31;&#xE19; &#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;&#xE19;&#xE35;&#xE49;&#xE08;&#xE30;&#xE16;&#xE39;&#xE01; ignore &#xE44;&#xE1B;</p><p>&#xE43;&#xE19;&#xE01;&#xE23;&#xE13;&#xE35;&#xE19;&#xE35;&#xE49; &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE21;&#xE35; Service &#xE2D;&#xE22;&#xE39;&#xE48; 2 &#xE15;&#xE31;&#xE27; &#xE04;&#xE37;&#xE2D; <code>parking-lot</code> &#xE41;&#xE25;&#xE30; <code>mongo</code> &#xE0B;&#xE36;&#xE48;&#xE07;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19; server &#xE43;&#xE2B;&#xE49;&#xE01;&#xE31;&#xE1A; MongoDB &#xE17;&#xE33;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE17;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE10;&#xE32;&#xE19;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE02;&#xE2D;&#xE07; app</p><h2 id="start-container">Start Container</h2><p>&#xE21;&#xE32;&#xE40;&#xE0A;&#xE47;&#xE04; Container &#xE17;&#xE35;&#xE48;&#xE21;&#xE35;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE43;&#xE19;&#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE01;&#xE48;&#xE2D;&#xE19;&#xE17;&#xE33;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; &#xE14;&#xE49;&#xE27;&#xE22; <code>docker-compose</code></p><pre><code>docker ps -a</code></pre><p>&#xE14;&#xE39;&#xE27;&#xE48;&#xE32;&#xE44;&#xE21;&#xE48;&#xE21;&#xE35; Container </p><pre><code>CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</code></pre><p>&#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19; &#xE40;&#xE23;&#xE32;&#xE17;&#xE33;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; Container &#xE42;&#xE14;&#xE22;&#xE43;&#xE0A;&#xE49;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;&#xE19;&#xE35;&#xE49;&#xE17;&#xE35;&#xE48; directory path &#xE02;&#xE2D;&#xE07;&#xE42;&#xE1B;&#xE23;&#xE40;&#xE08;&#xE47;&#xE01;&#xE15;&#xE4C;</p><pre><code>docker-compose up</code></pre><p>&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE44;&#xE14;&#xE49; Result &#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p><pre><code>[+] Running 2/2
 &#x283F; Container mongo        Created                                                                                     0.1s
 &#x283F; Container parking-lot  Created                                                                                     0.1s
Attaching to mongo, parking-lot
parking-lot  |
parking-lot  | &gt; parking-lot@0.0.1 dev /app
parking-lot  | &gt; nodemon ./bin/www
parking-lot  |
parking-lot  | [nodemon] 2.0.21
parking-lot  | [nodemon] to restart at any time, enter `rs`
parking-lot  | [nodemon] watching path(s): *.*
parking-lot  | [nodemon] watching extensions: js,mjs,json
parking-lot  | [nodemon] starting `node ./bin/www`
mongo        | {&quot;t&quot;:{&quot;$date&quot;:&quot;2023-04-09T10:07:55.820+00:00&quot;},&quot;s&quot;:&quot;I&quot;,  &quot;c&quot;:&quot;CONTROL&quot;,  &quot;id&quot;:23285,   &quot;ctx&quot;:&quot;-&quot;,&quot;msg&quot;:&quot;Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols &apos;none&apos;&quot;}
mongo        | {&quot;t&quot;:{&quot;$date&quot;:&quot;2023-04-09T10:07:55.821+00:00&quot;},&quot;s&quot;:&quot;I&quot;,  &quot;c&quot;:&quot;NETWORK&quot;,  &quot;id&quot;:4915701, &quot;ctx&quot;:&quot;-&quot;,&quot;msg&quot;:&quot;Initialized wire specification&quot;,&quot;attr&quot;:{&quot;spec&quot;:{&quot;incomingExternalClient&quot;:{&quot;minWireVersion&quot;:0,&quot;maxWireVersion&quot;:17},&quot;incomingInternalClient&quot;:{&quot;minWireVersion&quot;:0,&quot;maxWireVersion&quot;:17},&quot;outgoing&quot;:{&quot;minWireVersion&quot;:6,&quot;maxWireVersion&quot;:17},&quot;isInternalClient&quot;:true}}}</code></pre><p>&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE40;&#xE2B;&#xE47;&#xE19;&#xE27;&#xE48;&#xE32; Container &#xE02;&#xE2D;&#xE07;&#xE42;&#xE1B;&#xE23;&#xE40;&#xE08;&#xE47;&#xE01;&#xE15;&#xE4C;&#xE41;&#xE25;&#xE30;&#xE02;&#xE2D;&#xE07; mongo image &#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE44;&#xE14;&#xE49;&#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE35;&#xE22;&#xE1A;&#xE23;&#xE49;&#xE2D;&#xE22;</p><p>&#xE25;&#xE2D;&#xE07;&#xE40;&#xE0A;&#xE47;&#xE04; Container &#xE2D;&#xE35;&#xE01;&#xE23;&#xE2D;&#xE1A;</p><pre><code>CONTAINER ID   IMAGE                     COMMAND                  CREATED          STATUS          PORTS                      NAMES
be6b3a88e153   parking-lot-backend-app   &quot;docker-entrypoint.s&#x2026;&quot;   20 seconds ago   Up 19 seconds   0.0.0.0:80-&gt;3000/tcp       parking-lot
244faa10158d   mongo                     &quot;docker-entrypoint.s&#x2026;&quot;   20 seconds ago   Up 19 seconds   0.0.0.0:27017-&gt;27017/tcp   mongo</code></pre><p>&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE40;&#xE2B;&#xE47;&#xE19;&#xE27;&#xE48;&#xE32; &#xE0A;&#xE37;&#xE48;&#xE2D; Container &#xE02;&#xE2D;&#xE07;&#xE42;&#xE1B;&#xE23;&#xE40;&#xE08;&#xE47;&#xE01;&#xE15;&#xE4C;&#xE08;&#xE30;&#xE21;&#xE35;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE15;&#xE32;&#xE21;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE15;&#xE31;&#xE49;&#xE07;&#xE43;&#xE19; docker-compose &#xE44;&#xE1F;&#xE25;&#xE4C; &#xE2A;&#xE48;&#xE27;&#xE19; Image &#xE08;&#xE30;&#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE01;&#xE31;&#xE1A;&#xE0A;&#xE37;&#xE48;&#xE2D; Directory</p><p>&#xE2B;&#xE25;&#xE31;&#xE07;&#xE08;&#xE32;&#xE01;&#xE19;&#xE35;&#xE49; &#xE40;&#xE23;&#xE32;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE23;&#xE31;&#xE19;&#xE42;&#xE1B;&#xE23;&#xE40;&#xE08;&#xE47;&#xE01;&#xE15;&#xE4C;&#xE44;&#xE14;&#xE49;&#xE41;&#xE25;&#xE49;&#xE27; &#xE41;&#xE25;&#xE30;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE01;&#xE47;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE40;&#xE01;&#xE47;&#xE1A;&#xE44;&#xE27;&#xE49;&#xE17;&#xE35;&#xE48; Container &#xE02;&#xE2D;&#xE07; mongo</p><h3 id="%E0%B8%81%E0%B8%B2%E0%B8%A3-stop-container-%E0%B9%81%E0%B8%A5%E0%B8%B0-start-container-%E0%B8%AD%E0%B8%B5%E0%B8%81%E0%B8%84%E0%B8%A3%E0%B8%B1%E0%B9%89%E0%B8%87">&#xE01;&#xE32;&#xE23; Stop Container &#xE41;&#xE25;&#xE30; Start Container &#xE2D;&#xE35;&#xE01;&#xE04;&#xE23;&#xE31;&#xE49;&#xE07;</h3><p>&#xE40;&#xE23;&#xE32;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE2B;&#xE22;&#xE38;&#xE14;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE02;&#xE2D;&#xE07; Container &#xE17;&#xE31;&#xE49;&#xE07;&#xE2A;&#xE2D;&#xE07;&#xE44;&#xE14;&#xE49;&#xE42;&#xE14;&#xE22;&#xE01;&#xE32;&#xE23;&#xE01;&#xE14; control + c &#xE17;&#xE35;&#xE48;&#xE2B;&#xE19;&#xE49;&#xE32; Command Line &#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32; Start docker-compose &#xE44;&#xE27;&#xE49;&#xE01;&#xE48;&#xE2D;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE44;&#xE14;&#xE49;</p><p>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE01;&#xE25;&#xE31;&#xE1A;&#xE21;&#xE32;&#xE40;&#xE0A;&#xE47;&#xE04; &#xE14;&#xE49;&#xE27;&#xE22; <code>docker ps</code> &#xE08;&#xE30;&#xE40;&#xE2B;&#xE47;&#xE19;&#xE27;&#xE48;&#xE32;&#xE44;&#xE21;&#xE48;&#xE21;&#xE35; Container &#xE17;&#xE35;&#xE48;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE41;&#xE25;&#xE49;&#xE27;</p><pre><code>CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</code></pre><p>&#xE0B;&#xE36;&#xE48;&#xE07; Container &#xE44;&#xE14;&#xE49;&#xE16;&#xE39;&#xE01;&#xE2B;&#xE22;&#xE38;&#xE14;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE44;&#xE27;&#xE49;&#xE40;&#xE17;&#xE48;&#xE32;&#xE19;&#xE31;&#xE49;&#xE19; &#xE41;&#xE15;&#xE48;&#xE40;&#xE23;&#xE32;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16; Start Container &#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE44;&#xE14;&#xE49;&#xE2D;&#xE35;&#xE01;&#xE04;&#xE23;&#xE31;&#xE49;&#xE07; &#xE14;&#xE49;&#xE27;&#xE22;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;</p><pre><code>docker container start parking-lot mongo</code></pre><p>&#xE08;&#xE30;&#xE40;&#xE2B;&#xE47;&#xE19;&#xE0A;&#xE37;&#xE48;&#xE2D; Container &#xE41;&#xE2A;&#xE14;&#xE07;&#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32; &#xE16;&#xE37;&#xE2D;&#xE27;&#xE48;&#xE32;&#xE01;&#xE25;&#xE31;&#xE1A;&#xE21;&#xE32;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE2D;&#xE35;&#xE01;&#xE04;&#xE23;&#xE31;&#xE49;&#xE07;&#xE40;&#xE23;&#xE35;&#xE22;&#xE1A;&#xE23;&#xE49;&#xE2D;&#xE22;</p><pre><code>parking-lot
mongo</code></pre><p>&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE27;&#xE48;&#xE32;&#xE08;&#xE30;&#xE2A;&#xE31;&#xE48;&#xE07;&#xE01;&#xE32;&#xE23;&#xE23;&#xE31;&#xE19; Container &#xE14;&#xE49;&#xE27;&#xE22;&#xE27;&#xE34;&#xE18;&#xE35; <code>docker-compose up</code> &#xE17;&#xE35;&#xE48; Directory Path &#xE01;&#xE47;&#xE44;&#xE14;&#xE49;&#xE40;&#xE0A;&#xE48;&#xE19;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;&#xE01;&#xE31;&#xE19;</p><h2 id="%E0%B8%AA%E0%B8%A3%E0%B8%B8%E0%B8%9B">&#xE2A;&#xE23;&#xE38;&#xE1B;</h2><p>&#xE19;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE1E;&#xE35;&#xE22;&#xE07;&#xE01;&#xE32;&#xE23;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE15;&#xE49;&#xE19;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19; Docker &#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE1B;&#xE23;&#xE30;&#xE15;&#xE39;&#xE1A;&#xE32;&#xE19;&#xE41;&#xE23;&#xE01; &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE02;&#xE49;&#xE32;&#xE2A;&#xE39;&#xE48;&#xE42;&#xE25;&#xE01;&#xE02;&#xE2D;&#xE07; Microservices &#xE40;&#xE17;&#xE48;&#xE32;&#xE19;&#xE31;&#xE49;&#xE19; &#xE1C;&#xE21;&#xE1A;&#xE31;&#xE19;&#xE17;&#xE36;&#xE01;&#xE27;&#xE34;&#xE18;&#xE35;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE1A;&#xE32;&#xE07;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49; &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE17;&#xE1A;&#xE17;&#xE27;&#xE19;&#xE04;&#xE27;&#xE32;&#xE21;&#xE08;&#xE33;&#xE15;&#xE31;&#xE27;&#xE40;&#xE2D;&#xE07; &#xE41;&#xE25;&#xE30;&#xE40;&#xE1C;&#xE37;&#xE48;&#xE2D;&#xE27;&#xE48;&#xE32;&#xE08;&#xE30;&#xE21;&#xE35;&#xE1B;&#xE23;&#xE30;&#xE42;&#xE22;&#xE0A;&#xE19;&#xE4C;&#xE43;&#xE2B;&#xE49;&#xE01;&#xE31;&#xE1A;&#xE1C;&#xE39;&#xE49;&#xE17;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE21;&#xE37;&#xE2D;&#xE43;&#xE2B;&#xE21;&#xE48;&#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE01;&#xE31;&#xE19;&#xE44;&#xE14;&#xE49;&#xE40;&#xE2B;&#xE47;&#xE19;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE1B;&#xE43;&#xE0A;&#xE49;&#xE01;&#xE31;&#xE1A;&#xE07;&#xE32;&#xE19;&#xE02;&#xE2D;&#xE07;&#xE15;&#xE31;&#xE27;&#xE40;&#xE2D;&#xE07; &#xE41;&#xE25;&#xE49;&#xE27;&#xE1E;&#xE1A;&#xE01;&#xE31;&#xE19;&#xE43;&#xE2B;&#xE21;&#xE48;&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE04;&#xE23;&#xE31;&#xE1A;</p><h3 id="%E0%B8%AD%E0%B9%89%E0%B8%B2%E0%B8%87%E0%B8%AD%E0%B8%B4%E0%B8%87">&#xE2D;&#xE49;&#xE32;&#xE07;&#xE2D;&#xE34;&#xE07;</h3><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://docs.docker.com/compose/compose-file/compose-versioning/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Compose file versions and upgrading</div><div class="kg-bookmark-description">Compose file reference</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://docs.docker.com/assets/favicons/docs@2x.ico" alt="&#xE01;&#xE32;&#xE23;&#xE15;&#xE31;&#xE49;&#xE07;&#xE04;&#xE48;&#xE32; dockerfile &#xE41;&#xE25;&#xE30; docker-compose &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE23;&#xE31;&#xE19; Node.js &#xE41;&#xE25;&#xE30; MongoDB &#xE1A;&#xE19; Docker Container"><span class="kg-bookmark-author">Docker Documentation</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://docs.docker.com/assets/favicons/docs@2x.ico" alt="&#xE01;&#xE32;&#xE23;&#xE15;&#xE31;&#xE49;&#xE07;&#xE04;&#xE48;&#xE32; dockerfile &#xE41;&#xE25;&#xE30; docker-compose &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE23;&#xE31;&#xE19; Node.js &#xE41;&#xE25;&#xE30; MongoDB &#xE1A;&#xE19; Docker Container"></div></a></figure><hr><p>&#xE0A;&#xE48;&#xE27;&#xE07;&#xE02;&#xE32;&#xE22;&#xE02;&#xE2D;&#xE07;</p><figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/OEdjHTXkpms?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen title="ONEFASTWEB &#xE17;&#xE33;&#xE2D;&#xE30;&#xE44;&#xE23;&#xE19;&#xE30; &#xE04;&#xE25;&#xE34;&#xE1B;&#xE19;&#xE35;&#xE49;&#xE21;&#xE35;&#xE04;&#xE33;&#xE15;&#xE2D;&#xE1A;"></iframe></figure><p>&#xE15;&#xE2D;&#xE19;&#xE19;&#xE35;&#xE49;&#xE40;&#xE23;&#xE32;&#xE21;&#xE35;&#xE1A;&#xE23;&#xE34;&#xE01;&#xE32;&#xE23;&#xE23;&#xE31;&#xE1A;&#xE17;&#xE33;&#xE40;&#xE27;&#xE47;&#xE1A;&#xE44;&#xE0B;&#xE15;&#xE4C;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE08;&#xE38;&#xE14;&#xE1B;&#xE23;&#xE30;&#xE2A;&#xE07;&#xE04;&#xE4C;&#xE15;&#xE48;&#xE32;&#xE07;&#xE46; &#xE40;&#xE0A;&#xE48;&#xE19;<br>- &#xE23;&#xE49;&#xE32;&#xE19;&#xE04;&#xE49;&#xE32;&#xE2D;&#xE2D;&#xE19;&#xE44;&#xE25;&#xE19;&#xE4C; <br>- &#xE42;&#xE1B;&#xE23;&#xE42;&#xE21;&#xE17;&#xE1A;&#xE23;&#xE34;&#xE29;&#xE31;&#xE17; <br>- &#xE40;&#xE27;&#xE47;&#xE1A;&#xE1A;&#xE25;&#xE47;&#xE2D;&#xE01;&#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19;&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21; <br>- &#xE2B;&#xE19;&#xE49;&#xE32;&#xE02;&#xE32;&#xE22;&#xE02;&#xE2D;&#xE07;&#xE41;&#xE1A;&#xE1A;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27; (Single Page) <br>&#xE41;&#xE25;&#xE30;&#xE2D;&#xE37;&#xE48;&#xE19;&#xE46; &#xE42;&#xE14;&#xE22;&#xE43;&#xE0A;&#xE49; <a href="https://wordpress.org/">Wordpress</a> &#xE40;&#xE1B;&#xE47;&#xE19;&#xE42;&#xE04;&#xE23;&#xE07;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE2B;&#xE25;&#xE31;&#xE07;&#xE1A;&#xE49;&#xE32;&#xE19;&#xE41;&#xE25;&#xE30;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE1A;&#xE49;&#xE32;&#xE19; &#xE17;&#xE33;&#xE43;&#xE2B;&#xE49;&#xE14;&#xE39;&#xE41;&#xE25;&#xE23;&#xE31;&#xE01;&#xE29;&#xE32;&#xE07;&#xE48;&#xE32;&#xE22;&#xE43;&#xE19;&#xE23;&#xE30;&#xE22;&#xE30;&#xE22;&#xE32;&#xE27;<br>&#xE04;&#xE38;&#xE13;&#xE44;&#xE21;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE21;&#xE35;&#xE41;&#xE1A;&#xE1A;&#xE21;&#xE32;&#xE01;&#xE48;&#xE2D;&#xE19; &#xE44;&#xE21;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE44;&#xE23; &#xE40;&#xE23;&#xE32;&#xE21;&#xE35;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE40;&#xE27;&#xE47;&#xE1A;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE21;&#xE32;&#xE43;&#xE2B;&#xE49;&#xE04;&#xE38;&#xE13;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE2B;&#xE25;&#xE32;&#xE22;&#xE2A;&#xE34;&#xE1A;&#xE41;&#xE1A;&#xE1A; &#xE23;&#xE32;&#xE04;&#xE32;&#xE04;&#xE38;&#xE49;&#xE21;&#xE04;&#xE48;&#xE32; &#xE41;&#xE25;&#xE30;&#xE2A;&#xE48;&#xE07;&#xE21;&#xE2D;&#xE1A;&#xE07;&#xE32;&#xE19;&#xE44;&#xE27; &#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE40;&#xE02;&#xE49;&#xE32;&#xE21;&#xE32;&#xE14;&#xE39;&#xE23;&#xE32;&#xE22;&#xE25;&#xE30;&#xE40;&#xE2D;&#xE35;&#xE22;&#xE14; &#xE41;&#xE25;&#xE30;&#xE2A;&#xE2D;&#xE1A;&#xE16;&#xE32;&#xE21;-&#xE1E;&#xE39;&#xE14;&#xE04;&#xE38;&#xE22;&#xE44;&#xE14;&#xE49;&#xE17;&#xE35;&#xE48;&#xE40;&#xE27;&#xE47;&#xE1A;&#xE44;&#xE0B;&#xE15;&#xE4C;&#xE02;&#xE2D;&#xE07; <a href="https://onefastweb.com/">OneFastWeb</a> &#xE44;&#xE14;&#xE49;&#xE40;&#xE25;&#xE22;&#xE04;&#xE23;&#xE31;&#xE1A; &#xE02;&#xE2D;&#xE1A;&#xE04;&#xE38;&#xE13;&#xE04;&#xE23;&#xE31;&#xE1A;</p><hr>]]></content:encoded></item><item><title><![CDATA[วิธีการแก้ไขปัญหา Asynchronous Function บน React.js Hook (useEfffect) ด้วยวิธี IIFE]]></title><description><![CDATA[บทความบันทึกการทำงาน เพี่อแก้ไขปัญหาเกี่ยวกับ Error ที่เกิดขึ้นจากการใช้ Asynchronous Function ใน React Hook useEffect (TypeError: func.apply is not a function) โดยใช้วิธีการ IIFE]]></description><link>https://toupawa.com/fix-async-function-error-on-react-useeffect-with-iife/</link><guid isPermaLink="false">64215b46d973e677e02f2851</guid><category><![CDATA[React.js]]></category><dc:creator><![CDATA[TPW]]></dc:creator><pubDate>Wed, 29 Mar 2023 01:00:00 GMT</pubDate><media:content url="https://toupawa.com/content/images/2023/03/React-Hook-Error.png" medium="image"/><content:encoded><![CDATA[<img src="https://toupawa.com/content/images/2023/03/React-Hook-Error.png" alt="&#xE27;&#xE34;&#xE18;&#xE35;&#xE01;&#xE32;&#xE23;&#xE41;&#xE01;&#xE49;&#xE44;&#xE02;&#xE1B;&#xE31;&#xE0D;&#xE2B;&#xE32; Asynchronous Function &#xE1A;&#xE19; React.js Hook (useEfffect) &#xE14;&#xE49;&#xE27;&#xE22;&#xE27;&#xE34;&#xE18;&#xE35; IIFE"><p>&#xE40;&#xE01;&#xE23;&#xE34;&#xE48;&#xE19;&#xE01;&#xE48;&#xE2D;&#xE19;&#xE27;&#xE48;&#xE32; &#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE19;&#xE35;&#xE49;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE2A;&#xE31;&#xE49;&#xE19;&#xE46; &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE1A;&#xE31;&#xE19;&#xE17;&#xE36;&#xE01;&#xE01;&#xE32;&#xE23;&#xE41;&#xE01;&#xE49;&#xE44;&#xE02;&#xE1B;&#xE31;&#xE0D;&#xE2B;&#xE32;&#xE43;&#xE19;&#xE01;&#xE23;&#xE13;&#xE35; &#xE42;&#xE14;&#xE22;&#xE01;&#xE48;&#xE2D;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE19;&#xE35;&#xE49; &#xE1C;&#xE21;&#xE44;&#xE14;&#xE49;&#xE21;&#xE35;&#xE1B;&#xE23;&#xE30;&#xE2A;&#xE1A;&#xE01;&#xE32;&#xE23;&#xE13;&#xE4C;&#xE40;&#xE01;&#xE35;&#xE48;&#xE22;&#xE27;&#xE01;&#xE31;&#xE1A;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19; Asynchronous Function &#xE08;&#xE33;&#xE1E;&#xE27;&#xE01; Promise() &#xE20;&#xE32;&#xE22;&#xE43;&#xE19; useEffect &#xE0B;&#xE36;&#xE48;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19; React.js Hook &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE08;&#xE32;&#xE01; APIs &#xE21;&#xE32;&#xE40;&#xE01;&#xE47;&#xE1A;&#xE44;&#xE27;&#xE49;&#xE43;&#xE19; State </p><p>&#xE22;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE08;&#xE32;&#xE01;&#xE42;&#xE04;&#xE49;&#xE14;&#xE02;&#xE49;&#xE32;&#xE07;&#xE25;&#xE48;&#xE32;&#xE07;&#xE19;&#xE35;&#xE49; &#xE40;&#xE1B;&#xE47;&#xE19;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE2B;&#xE19;&#xE36;&#xE48;&#xE07;&#xE2D;&#xE31;&#xE19; &#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE04;&#xE37;&#xE2D; &#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE43;&#xE0A;&#xE49;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19; fetch() &#xE0B;&#xE36;&#xE48;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE2B;&#xE19;&#xE36;&#xE48;&#xE07;&#xE43;&#xE19; Native Javascript Promise Function &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE08;&#xE32;&#xE01; APIs &#xE1C;&#xE48;&#xE32;&#xE19; HTTP Request &#xE17;&#xE31;&#xE48;&#xE27;&#xE46;&#xE44;&#xE1B; &#xE41;&#xE25;&#xE30;&#xE04;&#xE32;&#xE22; Response &#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19; Json Object</p><pre><code>const [data, setData] = useState()
const getDataFromAPI = async () =&gt; {
    var myHeaders = new Headers();
    myHeaders.append(&quot;Content-Type&quot;, &quot;application/json&quot;);
    await fetch(`${process.env.REACT_APP_CUSTOM_API}`, {
      method: &apos;GET&apos;,
      headers: myHeaders,
    })
      .then(response =&gt; response.json())
      .then(response =&gt; setData(response))
      .catch((error) =&gt; {
        console.error(&apos;Error:&apos;, error);
      })
  }</code></pre><p>&#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19; &#xE40;&#xE23;&#xE32;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE43;&#xE0A;&#xE49;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE14;&#xE31;&#xE07;&#xE01;&#xE25;&#xE48;&#xE32;&#xE27; &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE01;&#xE47;&#xE1A;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49;&#xE17;&#xE35;&#xE48; State &#xE40;&#xE23;&#xE32;&#xE01;&#xE47;&#xE08;&#xE30;&#xE43;&#xE2B;&#xE49;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE21;&#xE31;&#xE19;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23; Render &#xE42;&#xE14;&#xE22; React Hook Function &#xE04;&#xE37;&#xE2D; <code>useEffect()</code></p><p>&#xE41;&#xE15;&#xE48; fetch &#xE40;&#xE1B;&#xE47;&#xE19;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE41;&#xE1A;&#xE1A; asynchronous &#xE08;&#xE36;&#xE07;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49; async await &#xE21;&#xE32;&#xE0A;&#xE48;&#xE27;&#xE22;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE1C;&#xE48;&#xE32;&#xE19;return &#xE02;&#xE2D;&#xE07; callback function &#xE14;&#xE31;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19; &#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19;&#xE1A;&#xE19; useEffect() &#xE08;&#xE36;&#xE07;&#xE19;&#xE48;&#xE32;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE1B;&#xE23;&#xE30;&#xE21;&#xE32;&#xE13;&#xE19;&#xE35;&#xE49;</p><pre><code>React.useEffect(async() =&gt; {
	await getDataFromAPI();
}, []);</code></pre><p>&#xE41;&#xE15;&#xE48;&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE25;&#xE2D;&#xE07; Render &#xE14;&#xE39;&#xE41;&#xE25;&#xE49;&#xE27; &#xE1E;&#xE1A;&#xE27;&#xE48;&#xE32; &#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19; &#xE40;&#xE01;&#xE34;&#xE14; Error &#xE02;&#xE36;&#xE49;&#xE19;&#xE1A;&#xE19; console &#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p><pre><code>TypeError: func.apply is not a function</code></pre><p>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE25;&#xE2D;&#xE07;&#xE2B;&#xE32;&#xE27;&#xE34;&#xE18;&#xE35;&#xE41;&#xE01;&#xE49;&#xE1B;&#xE31;&#xE0D;&#xE2B;&#xE32;&#xE14;&#xE39; &#xE08;&#xE36;&#xE07;&#xE04;&#xE49;&#xE19;&#xE1E;&#xE1A;&#xE27;&#xE48;&#xE32; useEffect() &#xE08;&#xE30;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE44;&#xE14;&#xE49;&#xE15;&#xE32;&#xE21;&#xE1B;&#xE01;&#xE15;&#xE34; &#xE01;&#xE31;&#xE1A;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE17;&#xE35;&#xE48;&#xE44;&#xE21;&#xE48;&#xE43;&#xE0A;&#xE48; Asynchronous &#xE14;&#xE31;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19;&#xE21;&#xE31;&#xE19;&#xE08;&#xE36;&#xE07;&#xE21;&#xE2D;&#xE07;&#xE27;&#xE48;&#xE32; getDataFromAPI() &#xE44;&#xE21;&#xE48;&#xE43;&#xE0A;&#xE48;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19; &#xE41;&#xE19;&#xE27;&#xE17;&#xE32;&#xE07;&#xE01;&#xE32;&#xE23;&#xE41;&#xE01;&#xE49;&#xE1B;&#xE31;&#xE0D;&#xE2B;&#xE32;&#xE04;&#xE37;&#xE2D; &#xE15;&#xE49;&#xE2D;&#xE07;&#xE43;&#xE2B;&#xE49;&#xE21;&#xE31;&#xE19;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE20;&#xE32;&#xE22;&#xE43;&#xE19;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE2D;&#xE37;&#xE48;&#xE19;&#xE01;&#xE48;&#xE2D;&#xE19; &#xE42;&#xE14;&#xE22;&#xE43;&#xE0A;&#xE49; <code>IIFE</code></p><p>IIFE &#xE22;&#xE48;&#xE2D;&#xE21;&#xE32;&#xE08;&#xE32;&#xE01; Immediately Invoked Function Expression &#xE40;&#xE1B;&#xE47;&#xE19;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE2B;&#xE19;&#xE36;&#xE48;&#xE07;&#xE17;&#xE35;&#xE48;&#xE21;&#xE35;&#xE04;&#xE38;&#xE13;&#xE2A;&#xE21;&#xE1A;&#xE31;&#xE15;&#xE34;&#xE43;&#xE19;&#xE01;&#xE32;&#xE23;&#xE23;&#xE31;&#xE19;&#xE17;&#xE31;&#xE19;&#xE17;&#xE35;&#xE17;&#xE35;&#xE48;&#xE16;&#xE39;&#xE01;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32; &#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p><pre><code>(function () {
  // &#x2026;
})();

(() =&gt; {
  // &#x2026;
})();

(async () =&gt; {
  // &#x2026;
})();</code></pre><p>&#xE14;&#xE31;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19; &#xE40;&#xE23;&#xE32;&#xE08;&#xE36;&#xE07;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19; useEffect() &#xE43;&#xE2B;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;&#xE41;&#xE17;&#xE19;</p><pre><code>React.useEffect(() =&gt; {
	(async () =&gt; {
		await getDataFromAPI();
	})()
}, []);</code></pre><p>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE25;&#xE2D;&#xE07;&#xE23;&#xE31;&#xE19;&#xE2D;&#xE35;&#xE01;&#xE04;&#xE23;&#xE31;&#xE49;&#xE07; &#xE01;&#xE47;&#xE08;&#xE30;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE14;&#xE36;&#xE07;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE44;&#xE14;&#xE49;&#xE41;&#xE25;&#xE49;&#xE27; &#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE40;&#xE01;&#xE47;&#xE1A;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE17;&#xE35;&#xE48;&#xE44;&#xE14;&#xE49;&#xE23;&#xE31;&#xE1A;&#xE21;&#xE32;&#xE44;&#xE27;&#xE49;&#xE43;&#xE19; State &#xE44;&#xE14;&#xE49;&#xE40;&#xE23;&#xE35;&#xE22;&#xE1A;&#xE23;&#xE49;&#xE2D;&#xE22; &#xE1B;&#xE34;&#xE14;&#xE04;&#xE14;&#xE35;</p><p>&#xE2D;&#xE49;&#xE32;&#xE07;&#xE2D;&#xE34;&#xE07;<br><a href="https://stackoverflow.com/questions/63570597/typeerror-func-apply-is-not-a-function">https://stackoverflow.com/questions/63570597/typeerror-func-apply-is-not-a-function</a><br><a href="https://developer.mozilla.org/en-US/docs/Glossary/IIFE">https://developer.mozilla.org/en-US/docs/Glossary/IIFE</a><br><a href="https://rapidapi.com/guides/fetch-api-async-await">https://rapidapi.com/guides/fetch-api-async-await</a></p><hr><p>&#xE0A;&#xE48;&#xE27;&#xE07;&#xE02;&#xE32;&#xE22;&#xE02;&#xE2D;&#xE07;</p><p>&#xE15;&#xE2D;&#xE19;&#xE19;&#xE35;&#xE49;&#xE40;&#xE23;&#xE32;&#xE21;&#xE35;&#xE1A;&#xE23;&#xE34;&#xE01;&#xE32;&#xE23;&#xE23;&#xE31;&#xE1A;&#xE17;&#xE33;&#xE40;&#xE27;&#xE47;&#xE1A;&#xE44;&#xE0B;&#xE15;&#xE4C;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE08;&#xE38;&#xE14;&#xE1B;&#xE23;&#xE30;&#xE2A;&#xE07;&#xE04;&#xE4C;&#xE15;&#xE48;&#xE32;&#xE07;&#xE46; &#xE40;&#xE0A;&#xE48;&#xE19; <br>- &#xE23;&#xE49;&#xE32;&#xE19;&#xE04;&#xE49;&#xE32;&#xE2D;&#xE2D;&#xE19;&#xE44;&#xE25;&#xE19;&#xE4C; <br>- &#xE42;&#xE1B;&#xE23;&#xE42;&#xE21;&#xE17;&#xE1A;&#xE23;&#xE34;&#xE29;&#xE31;&#xE17; <br>- &#xE40;&#xE27;&#xE47;&#xE1A;&#xE1A;&#xE25;&#xE47;&#xE2D;&#xE01;&#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19;&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21; <br>- &#xE2B;&#xE19;&#xE49;&#xE32;&#xE02;&#xE32;&#xE22;&#xE02;&#xE2D;&#xE07;&#xE41;&#xE1A;&#xE1A;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27; (Single Page) <br>&#xE41;&#xE25;&#xE30;&#xE2D;&#xE37;&#xE48;&#xE19;&#xE46; &#xE42;&#xE14;&#xE22;&#xE43;&#xE0A;&#xE49; <a href="https://wordpress.org/">Wordpress</a> &#xE40;&#xE1B;&#xE47;&#xE19;&#xE42;&#xE04;&#xE23;&#xE07;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE2B;&#xE25;&#xE31;&#xE07;&#xE1A;&#xE49;&#xE32;&#xE19;&#xE41;&#xE25;&#xE30;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE1A;&#xE49;&#xE32;&#xE19; &#xE17;&#xE33;&#xE43;&#xE2B;&#xE49;&#xE14;&#xE39;&#xE41;&#xE25;&#xE23;&#xE31;&#xE01;&#xE29;&#xE32;&#xE07;&#xE48;&#xE32;&#xE22;&#xE43;&#xE19;&#xE23;&#xE30;&#xE22;&#xE30;&#xE22;&#xE32;&#xE27;<br>&#xE04;&#xE38;&#xE13;&#xE44;&#xE21;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE21;&#xE35;&#xE41;&#xE1A;&#xE1A;&#xE21;&#xE32;&#xE01;&#xE48;&#xE2D;&#xE19; &#xE44;&#xE21;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE44;&#xE23; &#xE40;&#xE23;&#xE32;&#xE21;&#xE35;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE40;&#xE27;&#xE47;&#xE1A;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE21;&#xE32;&#xE43;&#xE2B;&#xE49;&#xE04;&#xE38;&#xE13;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE2B;&#xE25;&#xE32;&#xE22;&#xE2A;&#xE34;&#xE1A;&#xE41;&#xE1A;&#xE1A; &#xE23;&#xE32;&#xE04;&#xE32;&#xE04;&#xE38;&#xE49;&#xE21;&#xE04;&#xE48;&#xE32; &#xE41;&#xE25;&#xE30;&#xE2A;&#xE48;&#xE07;&#xE21;&#xE2D;&#xE1A;&#xE07;&#xE32;&#xE19;&#xE44;&#xE27; &#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE40;&#xE02;&#xE49;&#xE32;&#xE21;&#xE32;&#xE14;&#xE39;&#xE23;&#xE32;&#xE22;&#xE25;&#xE30;&#xE40;&#xE2D;&#xE35;&#xE22;&#xE14; &#xE41;&#xE25;&#xE30;&#xE2A;&#xE2D;&#xE1A;&#xE16;&#xE32;&#xE21;-&#xE1E;&#xE39;&#xE14;&#xE04;&#xE38;&#xE22;&#xE44;&#xE14;&#xE49;&#xE17;&#xE35;&#xE48;&#xE40;&#xE27;&#xE47;&#xE1A;&#xE44;&#xE0B;&#xE15;&#xE4C;&#xE02;&#xE2D;&#xE07; <a href="https://onefastweb.com/">OneFastWeb</a> &#xE44;&#xE14;&#xE49;&#xE40;&#xE25;&#xE22;&#xE04;&#xE23;&#xE31;&#xE1A; &#xE02;&#xE2D;&#xE1A;&#xE04;&#xE38;&#xE13;&#xE04;&#xE23;&#xE31;&#xE1A;</p><hr>]]></content:encoded></item><item><title><![CDATA[วิธีสลับ Node.js หลายๆ version ในเครื่องเดียว โดยไม่ต้องลงใหม่ซ้ำๆ (วิธีใช้ n – Interactively Manage Your Node.js Versions)]]></title><description><![CDATA[วิธีสลับ Node.js Versions โดยการใช้ (n – Interactively Manage Your Node.js Versions) เพื่อแก้ปัญหาการสลับ Node.js versions โดยไม่ต้อง upgrade หรือ downgrade version บ่อยๆ]]></description><link>https://toupawa.com/how-to-use-the-interactively-manage-your-nodejs-versions-library/</link><guid isPermaLink="false">64085a08d973e677e02f2618</guid><category><![CDATA[Node.js]]></category><dc:creator><![CDATA[TPW]]></dc:creator><pubDate>Thu, 09 Mar 2023 02:09:00 GMT</pubDate><media:content url="https://toupawa.com/content/images/2023/03/node-js-npm.png" medium="image"/><content:encoded><![CDATA[<img src="https://toupawa.com/content/images/2023/03/node-js-npm.png" alt="&#xE27;&#xE34;&#xE18;&#xE35;&#xE2A;&#xE25;&#xE31;&#xE1A; Node.js &#xE2B;&#xE25;&#xE32;&#xE22;&#xE46; version &#xE43;&#xE19;&#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27; &#xE42;&#xE14;&#xE22;&#xE44;&#xE21;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE25;&#xE07;&#xE43;&#xE2B;&#xE21;&#xE48;&#xE0B;&#xE49;&#xE33;&#xE46; (&#xE27;&#xE34;&#xE18;&#xE35;&#xE43;&#xE0A;&#xE49; n &#x2013; Interactively Manage Your Node.js Versions)"><p>&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19; Node.js &#xE43;&#xE19;&#xE1B;&#xE31;&#xE08;&#xE08;&#xE38;&#xE1A;&#xE31;&#xE19;&#xE19;&#xE35;&#xE49; &#xE2B;&#xE25;&#xE32;&#xE22;&#xE46;&#xE04;&#xE23;&#xE31;&#xE49;&#xE07;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE2D;&#xE32;&#xE08;&#xE08;&#xE30;&#xE08;&#xE33;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE40;&#xE02;&#xE49;&#xE32;&#xE44;&#xE1B;&#xE41;&#xE01;&#xE49;&#xE07;&#xE32;&#xE19;&#xE40;&#xE01;&#xE48;&#xE32;&#xE46;&#xE17;&#xE35;&#xE48;&#xE40;&#xE04;&#xE22;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE42;&#xE14;&#xE22;&#xE43;&#xE0A;&#xE49; Node.js &#xE40;&#xE27;&#xE2D;&#xE23;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE40;&#xE01;&#xE48;&#xE32;&#xE46; &#xE17;&#xE33;&#xE43;&#xE2B;&#xE49;&#xE44;&#xE21;&#xE48;&#xE21;&#xE35;&#xE17;&#xE32;&#xE07;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE16;&#xE2D;&#xE22;&#xE44;&#xE1B; downgrade &#xE15;&#xE31;&#xE27; Node &#xE43;&#xE2B;&#xE49;&#xE2A;&#xE2D;&#xE14;&#xE04;&#xE25;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE31;&#xE1A;&#xE07;&#xE32;&#xE19;&#xE19;&#xE31;&#xE49;&#xE19; &#xE41;&#xE15;&#xE48;&#xE16;&#xE49;&#xE32;&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE41;&#xE01;&#xE49;&#xE07;&#xE32;&#xE19;&#xE19;&#xE31;&#xE49;&#xE19;&#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE41;&#xE25;&#xE49;&#xE27; &#xE01;&#xE47;&#xE08;&#xE30;&#xE25;&#xE33;&#xE1A;&#xE32;&#xE01;&#xE2D;&#xE35;&#xE01; &#xE16;&#xE49;&#xE32;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE25;&#xE31;&#xE1A;&#xE21;&#xE32; upgrade &#xE40;&#xE27;&#xE2D;&#xE23;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE40;&#xE14;&#xE34;&#xE21; &#xE41;&#xE25;&#xE30;&#xE16;&#xE49;&#xE32;&#xE43;&#xE19;&#xE2D;&#xE19;&#xE32;&#xE04;&#xE15;&#xE08;&#xE30;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE25;&#xE31;&#xE1A;&#xE21;&#xE32;&#xE41;&#xE01;&#xE49;&#xE07;&#xE32;&#xE19;&#xE40;&#xE01;&#xE48;&#xE32;&#xE2D;&#xE35;&#xE01;&#xE23;&#xE2D;&#xE1A; &#xE01;&#xE47;&#xE15;&#xE49;&#xE2D;&#xE07; downgrade &#xE2D;&#xE35;&#xE01;&#xE23;&#xE2D;&#xE1A;&#xE2B;&#xE19;&#xE36;&#xE48;&#xE07; &#xE01;&#xE47;&#xE14;&#xE39;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE17;&#xE35;&#xE48;&#xE19;&#xE48;&#xE32;&#xE25;&#xE33;&#xE1A;&#xE32;&#xE01;&#xE44;&#xE1B;&#xE2B;&#xE19;&#xE48;&#xE2D;&#xE22;</p><p>&#xE40;&#xE25;&#xE22;&#xE02;&#xE2D;&#xE40;&#xE2A;&#xE19;&#xE2D;&#xE2B;&#xE19;&#xE36;&#xE48;&#xE07;&#xE43;&#xE19;&#xE27;&#xE34;&#xE18;&#xE35;&#xE17;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE40;&#xE27;&#xE2D;&#xE23;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE02;&#xE2D;&#xE07; Node &#xE42;&#xE14;&#xE22;&#xE44;&#xE21;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE25;&#xE07;&#xE01;&#xE25;&#xE31;&#xE1A;&#xE44;&#xE1B;&#xE01;&#xE25;&#xE31;&#xE1A;&#xE21;&#xE32;&#xE43;&#xE2B;&#xE49;&#xE27;&#xE38;&#xE48;&#xE19;&#xE27;&#xE32;&#xE22; &#xE2B;&#xE19;&#xE36;&#xE48;&#xE07;&#xE43;&#xE19;&#xE19;&#xE31;&#xE49;&#xE19; &#xE04;&#xE37;&#xE2D;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49; package &#xE17;&#xE35;&#xE48;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE27;&#xE48;&#xE32; n (&#xE43;&#xE0A;&#xE49;&#xE41;&#xE25;&#xE49;&#xE27;&#xE04;&#xE23;&#xE31;&#xE1A; n &#xE15;&#xE31;&#xE27;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;&#xE2B;&#xE49;&#xE27;&#xE19;&#xE46;&#xE19;&#xE35;&#xE48;&#xE41;&#xE2B;&#xE25;&#xE30;) &#xE17;&#xE35;&#xE48;&#xE08;&#xE23;&#xE34;&#xE07;&#xE40;&#xE04;&#xE49;&#xE32;&#xE21;&#xE35;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE15;&#xE47;&#xE21;&#xE04;&#xE37;&#xE2D; <code>n</code> &#x2013; Interactively Manage Your Node.js Versions &#xE41;&#xE15;&#xE48;&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE21;&#xE31;&#xE19;&#xE27;&#xE48;&#xE32; n &#xE19;&#xE35;&#xE48;&#xE41;&#xE2B;&#xE25;&#xE30; &#xE07;&#xE48;&#xE32;&#xE22;&#xE14;&#xE35;</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.npmjs.com/package/n"><div class="kg-bookmark-content"><div class="kg-bookmark-title">n</div><div class="kg-bookmark-description">Interactively Manage All Your Node Versions. Latest version: 9.0.1, last published: 4 months ago. Start using n in your project by running `npm i n`. There are 23 other projects in the npm registry using n.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://static.npmjs.com/1996fcfdf7ca81ea795f67f093d7f449.png" alt="&#xE27;&#xE34;&#xE18;&#xE35;&#xE2A;&#xE25;&#xE31;&#xE1A; Node.js &#xE2B;&#xE25;&#xE32;&#xE22;&#xE46; version &#xE43;&#xE19;&#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27; &#xE42;&#xE14;&#xE22;&#xE44;&#xE21;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE25;&#xE07;&#xE43;&#xE2B;&#xE21;&#xE48;&#xE0B;&#xE49;&#xE33;&#xE46; (&#xE27;&#xE34;&#xE18;&#xE35;&#xE43;&#xE0A;&#xE49; n &#x2013; Interactively Manage Your Node.js Versions)"><span class="kg-bookmark-author">npm</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://static.npmjs.com/338e4905a2684ca96e08c7780fc68412.png" alt="&#xE27;&#xE34;&#xE18;&#xE35;&#xE2A;&#xE25;&#xE31;&#xE1A; Node.js &#xE2B;&#xE25;&#xE32;&#xE22;&#xE46; version &#xE43;&#xE19;&#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27; &#xE42;&#xE14;&#xE22;&#xE44;&#xE21;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE25;&#xE07;&#xE43;&#xE2B;&#xE21;&#xE48;&#xE0B;&#xE49;&#xE33;&#xE46; (&#xE27;&#xE34;&#xE18;&#xE35;&#xE43;&#xE0A;&#xE49; n &#x2013; Interactively Manage Your Node.js Versions)"></div></a></figure><p>&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19; &#xE01;&#xE47;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07;&#xE41;&#xE1A;&#xE1A; global &#xE44;&#xE14;&#xE49;&#xE40;&#xE25;&#xE22; </p><pre><code>npm install -g n</code></pre><p>&#xE16;&#xE49;&#xE32;&#xE43;&#xE0A;&#xE49; MacOS &#xE2D;&#xE22;&#xE39;&#xE48; &#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07;&#xE1C;&#xE48;&#xE32;&#xE19; brew &#xE01;&#xE47;&#xE2A;&#xE30;&#xE14;&#xE27;&#xE01;&#xE14;&#xE35;&#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE01;&#xE31;&#xE19;</p><pre><code>brew install n</code></pre><p>&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE02;&#xE2D;&#xE07; n &#xE43;&#xE2B;&#xE49;&#xE04;&#xE34;&#xE14;&#xE27;&#xE48;&#xE32;&#xE21;&#xE31;&#xE19;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE15;&#xE31;&#xE27;&#xE40;&#xE01;&#xE47;&#xE1A;&#xE25;&#xE34;&#xE2A;&#xE15;&#xE4C;&#xE02;&#xE2D;&#xE07; Node &#xE2B;&#xE25;&#xE32;&#xE22;&#xE46;&#xE40;&#xE27;&#xE2D;&#xE23;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49; &#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE09;&#xE30;&#xE19;&#xE31;&#xE49;&#xE19; &#xE15;&#xE2D;&#xE19;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; n &#xE04;&#xE23;&#xE31;&#xE49;&#xE07;&#xE41;&#xE23;&#xE01; &#xE15;&#xE31;&#xE27;&#xE21;&#xE31;&#xE19;&#xE01;&#xE47;&#xE22;&#xE31;&#xE07;&#xE44;&#xE21;&#xE48;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE1A;&#xE31;&#xE19;&#xE17;&#xE36;&#xE01;&#xE2D;&#xE30;&#xE44;&#xE23;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49; &#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE25;&#xE34;&#xE2A;&#xE15;&#xE4C;&#xE40;&#xE1B;&#xE25;&#xE48;&#xE32;&#xE46;</p><h2 id="%E0%B8%95%E0%B8%B4%E0%B8%94%E0%B8%95%E0%B8%B1%E0%B9%89%E0%B8%87-nodejs-version">&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Node.js version</h2><p>&#xE27;&#xE34;&#xE18;&#xE35;&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21;&#xE25;&#xE34;&#xE2A;&#xE15;&#xE4C;&#xE02;&#xE2D;&#xE07; Node version &#xE43;&#xE19; n &#xE01;&#xE47;&#xE1E;&#xE34;&#xE21;&#xE1E;&#xE4C;&#xE41;&#xE04;&#xE48; n &#xE41;&#xE25;&#xE49;&#xE27;&#xE15;&#xE32;&#xE21;&#xE14;&#xE49;&#xE27;&#xE22;&#xE40;&#xE25;&#xE02;&#xE40;&#xE27;&#xE2D;&#xE23;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19; &#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49; <br><code>n &lt;NODE_VERSION&gt;</code><br>&#xE40;&#xE0A;&#xE48;&#xE19;</p><pre><code>n 16.18.1
n 18.12.1
n 19.2.0</code></pre><p>&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE27;&#xE48;&#xE32; &#xE15;&#xE34;&#xE14; <code>Error: sudo required (or change ownership, or define N_PREFIX)</code> &#xE01;&#xE47;&#xE43;&#xE2A;&#xE48; sudo &#xE02;&#xE49;&#xE32;&#xE07;&#xE2B;&#xE19;&#xE49;&#xE32; &#xE41;&#xE25;&#xE49;&#xE27;&#xE01;&#xE23;&#xE2D;&#xE01; password</p><pre><code>sudo n 16.18.1
Password:</code></pre><p>&#xE40;&#xE0A;&#xE47;&#xE04;&#xE25;&#xE34;&#xE2A;&#xE15;&#xE4C; Node version &#xE17;&#xE35;&#xE48;&#xE21;&#xE35;&#xE1A;&#xE19; n &#xE42;&#xE14;&#xE22;&#xE40;&#xE27;&#xE2D;&#xE23;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE43;&#xE0A;&#xE49;&#xE2D;&#xE22;&#xE39;&#xE48; &#xE13; &#xE1B;&#xE31;&#xE08;&#xE08;&#xE38;&#xE1A;&#xE31;&#xE19;&#xE08;&#xE30;&#xE21;&#xE35; o &#xE41;&#xE2A;&#xE14;&#xE07;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE02;&#xE49;&#xE32;&#xE07;&#xE2B;&#xE19;&#xE49;&#xE32;</p><pre><code>$ n

  node/16.18.1
  node/18.12.1
&#x3BF; node/19.2.0

Use up/down arrow keys to select a version, return key to install, d to delete, q to quit</code></pre><p>&#xE2A;&#xE21;&#xE21;&#xE15;&#xE34;&#xE27;&#xE48;&#xE32; &#xE13; &#xE1B;&#xE31;&#xE08;&#xE08;&#xE38;&#xE1A;&#xE31;&#xE19; &#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE40;&#xE23;&#xE32;&#xE43;&#xE0A;&#xE49;&#xE40;&#xE27;&#xE2D;&#xE23;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19; 19.2.0 &#xE41;&#xE25;&#xE49;&#xE27;&#xE2D;&#xE22;&#xE32;&#xE01;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE44;&#xE1B;&#xE43;&#xE0A;&#xE49;&#xE2D;&#xE31;&#xE19;&#xE2D;&#xE37;&#xE48;&#xE19; &#xE01;&#xE47;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE40;&#xE25;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE25;&#xE39;&#xE01;&#xE28;&#xE23;&#xE02;&#xE36;&#xE49;&#xE19;-&#xE25;&#xE07; &#xE43;&#xE2B;&#xE49;&#xE15;&#xE31;&#xE27; o &#xE21;&#xE31;&#xE19;&#xE40;&#xE25;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE1B;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE40;&#xE25;&#xE02;&#xE40;&#xE27;&#xE2D;&#xE23;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23; &#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19;&#xE01;&#xE14; Enter &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE27;&#xE2D;&#xE23;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE43;&#xE2B;&#xE21;&#xE48; &#xE41;&#xE04;&#xE48;&#xE19;&#xE35;&#xE49;&#xE40;&#xE2D;&#xE07; &#xE40;&#xE23;&#xE35;&#xE22;&#xE1A;&#xE23;&#xE49;&#xE2D;&#xE22;&#xE25;&#xE30;</p><p>&#xE2B;&#xE25;&#xE31;&#xE07;&#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19; &#xE25;&#xE2D;&#xE07;&#xE40;&#xE0A;&#xE47;&#xE04;&#xE40;&#xE27;&#xE2D;&#xE23;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE14;&#xE39; &#xE01;&#xE47;&#xE08;&#xE30;&#xE1E;&#xE1A;&#xE27;&#xE48;&#xE32; Node &#xE44;&#xE14;&#xE49;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE2D;&#xE31;&#xE19;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE40;&#xE23;&#xE35;&#xE22;&#xE1A;&#xE23;&#xE49;&#xE2D;&#xE22;&#xE41;&#xE25;&#xE49;&#xE27;</p><pre><code>node -v
v18.12.1</code></pre><h2 id="%E0%B8%A5%E0%B8%9A%E0%B9%80%E0%B8%A7%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%8A%E0%B8%B1%E0%B9%88%E0%B8%99%E0%B8%AD%E0%B8%AD%E0%B8%81">&#xE25;&#xE1A;&#xE40;&#xE27;&#xE2D;&#xE23;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE2D;&#xE2D;&#xE01;</h2><p>&#xE43;&#xE0A;&#xE49;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07; <code>n rm &lt;NODE_VERSION&gt;</code> &#xE01;&#xE47;&#xE25;&#xE1A;&#xE2D;&#xE2D;&#xE01;&#xE44;&#xE14;&#xE49;&#xE40;&#xE25;&#xE22;&#xE17;&#xE31;&#xE19;&#xE17;&#xE35;<br>&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE08;&#xE30;&#xE25;&#xE1A;&#xE17;&#xE35;&#xE25;&#xE30;&#xE2B;&#xE25;&#xE32;&#xE22;&#xE46;&#xE2D;&#xE31;&#xE19;&#xE01;&#xE47;&#xE44;&#xE14;&#xE49; &#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p><pre><code>n rm 16.18.1 v19.2.0</code></pre><p>(&#xE40;&#xE23;&#xE32;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE23;&#xE30;&#xE1A;&#xE38;&#xE40;&#xE25;&#xE02;&#xE40;&#xE27;&#xE2D;&#xE23;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19; &#xE42;&#xE14;&#xE22;&#xE43;&#xE2A;&#xE48; v &#xE19;&#xE33;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE44;&#xE21;&#xE48;&#xE43;&#xE2A;&#xE48;&#xE01;&#xE47;&#xE44;&#xE14;&#xE49;)</p><p> &#xE2B;&#xE23;&#xE37;&#xE2D;&#xE27;&#xE48;&#xE32;&#xE08;&#xE30;&#xE25;&#xE1A;&#xE17;&#xE38;&#xE01;&#xE46;&#xE2D;&#xE31;&#xE19;&#xE2D;&#xE2D;&#xE01;&#xE01;&#xE47;&#xE44;&#xE14;&#xE49; &#xE22;&#xE01;&#xE40;&#xE27;&#xE49;&#xE19;&#xE2D;&#xE31;&#xE19;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19;&#xE2D;&#xE22;&#xE39;&#xE48;</p><pre><code>n prune</code></pre><h2 id="%E0%B8%AA%E0%B8%A3%E0%B8%B8%E0%B8%9B">&#xE2A;&#xE23;&#xE38;&#xE1B;</h2><p>Node Library &#xE15;&#xE31;&#xE27;&#xE19;&#xE35;&#xE49;&#xE01;&#xE47;&#xE04;&#xE48;&#xE2D;&#xE19;&#xE02;&#xE49;&#xE32;&#xE07;&#xE2A;&#xE30;&#xE14;&#xE27;&#xE01;&#xE40;&#xE25;&#xE22;&#xE17;&#xE35;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27; &#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19;&#xE2B;&#xE25;&#xE32;&#xE01;&#xE2B;&#xE25;&#xE32;&#xE22;&#xE40;&#xE27;&#xE2D;&#xE23;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19; &#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE23;&#xE2D;&#xE07;&#xE23;&#xE31;&#xE1A;&#xE01;&#xE31;&#xE1A;&#xE07;&#xE32;&#xE19;&#xE15;&#xE48;&#xE32;&#xE07;&#xE46;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE2D;&#xE14;&#xE04;&#xE25;&#xE49;&#xE2D;&#xE07;&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE44;&#xE14;&#xE49;&#xE23;&#xE31;&#xE1A;&#xE1C;&#xE25;&#xE01;&#xE23;&#xE30;&#xE17;&#xE1A;&#xE01;&#xE31;&#xE1A;&#xE40;&#xE27;&#xE2D;&#xE23;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE02;&#xE2D;&#xE07; Node &#xE40;&#xE2D;&#xE07; &#xE42;&#xE14;&#xE22;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE44;&#xE21;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07; &#xE2D;&#xE31;&#xE1E;&#xE40;&#xE01;&#xE23;&#xE14; &#xE14;&#xE32;&#xE27;&#xE19;&#xE4C;&#xE40;&#xE01;&#xE23;&#xE14;&#xE44;&#xE1B;&#xE21;&#xE32;&#xE43;&#xE2B;&#xE49;&#xE27;&#xE38;&#xE48;&#xE19;&#xE27;&#xE32;&#xE22; &#xE16;&#xE49;&#xE32;&#xE44;&#xE21;&#xE48;&#xE16;&#xE36;&#xE07;&#xE01;&#xE31;&#xE1A;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE17;&#xE33; Container &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE41;&#xE22;&#xE01; Environment &#xE43;&#xE0A;&#xE49;&#xE27;&#xE34;&#xE18;&#xE35;&#xE19;&#xE35;&#xE49;&#xE01;&#xE47;&#xE40;&#xE2B;&#xE21;&#xE32;&#xE30;&#xE14;&#xE35;&#xE04;&#xE23;&#xE31;&#xE1A;</p><p>&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19; n &#xE40;&#xE1E;&#xE34;&#xE48;&#xE21;&#xE40;&#xE15;&#xE34;&#xE21; &#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE40;&#xE02;&#xE49;&#xE32;&#xE44;&#xE1B;&#xE14;&#xE39;&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21;&#xE44;&#xE14;&#xE49;&#xE17;&#xE35;&#xE48;<a href="https://www.npmjs.com/package/n">&#xE2B;&#xE19;&#xE49;&#xE32;&#xE40;&#xE27;&#xE47;&#xE1A;</a>&#xE44;&#xE14;&#xE49;&#xE40;&#xE25;&#xE22;</p><hr><p>&#xE0A;&#xE48;&#xE27;&#xE07;&#xE02;&#xE32;&#xE22;&#xE02;&#xE2D;&#xE07;</p><p>&#xE15;&#xE2D;&#xE19;&#xE19;&#xE35;&#xE49;&#xE40;&#xE23;&#xE32;&#xE21;&#xE35;&#xE1A;&#xE23;&#xE34;&#xE01;&#xE32;&#xE23;&#xE23;&#xE31;&#xE1A;&#xE17;&#xE33;&#xE40;&#xE27;&#xE47;&#xE1A;&#xE44;&#xE0B;&#xE15;&#xE4C;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE08;&#xE38;&#xE14;&#xE1B;&#xE23;&#xE30;&#xE2A;&#xE07;&#xE04;&#xE4C;&#xE15;&#xE48;&#xE32;&#xE07;&#xE46; &#xE40;&#xE0A;&#xE48;&#xE19; <br>- &#xE23;&#xE49;&#xE32;&#xE19;&#xE04;&#xE49;&#xE32;&#xE2D;&#xE2D;&#xE19;&#xE44;&#xE25;&#xE19;&#xE4C; <br>- &#xE42;&#xE1B;&#xE23;&#xE42;&#xE21;&#xE17;&#xE1A;&#xE23;&#xE34;&#xE29;&#xE31;&#xE17; <br>- &#xE40;&#xE27;&#xE47;&#xE1A;&#xE1A;&#xE25;&#xE47;&#xE2D;&#xE01;&#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19;&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21; <br>- &#xE2B;&#xE19;&#xE49;&#xE32;&#xE02;&#xE32;&#xE22;&#xE02;&#xE2D;&#xE07;&#xE41;&#xE1A;&#xE1A;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27; (Single Page) <br>&#xE41;&#xE25;&#xE30;&#xE2D;&#xE37;&#xE48;&#xE19;&#xE46; &#xE42;&#xE14;&#xE22;&#xE43;&#xE0A;&#xE49; <a href="https://wordpress.org/">Wordpress</a> &#xE40;&#xE1B;&#xE47;&#xE19;&#xE42;&#xE04;&#xE23;&#xE07;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE2B;&#xE25;&#xE31;&#xE07;&#xE1A;&#xE49;&#xE32;&#xE19;&#xE41;&#xE25;&#xE30;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE1A;&#xE49;&#xE32;&#xE19; &#xE17;&#xE33;&#xE43;&#xE2B;&#xE49;&#xE14;&#xE39;&#xE41;&#xE25;&#xE23;&#xE31;&#xE01;&#xE29;&#xE32;&#xE07;&#xE48;&#xE32;&#xE22;&#xE43;&#xE19;&#xE23;&#xE30;&#xE22;&#xE30;&#xE22;&#xE32;&#xE27;<br>&#xE04;&#xE38;&#xE13;&#xE44;&#xE21;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE21;&#xE35;&#xE41;&#xE1A;&#xE1A;&#xE21;&#xE32;&#xE01;&#xE48;&#xE2D;&#xE19; &#xE44;&#xE21;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE44;&#xE23; &#xE40;&#xE23;&#xE32;&#xE21;&#xE35;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE40;&#xE27;&#xE47;&#xE1A;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE21;&#xE32;&#xE43;&#xE2B;&#xE49;&#xE04;&#xE38;&#xE13;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE2B;&#xE25;&#xE32;&#xE22;&#xE2A;&#xE34;&#xE1A;&#xE41;&#xE1A;&#xE1A; &#xE23;&#xE32;&#xE04;&#xE32;&#xE04;&#xE38;&#xE49;&#xE21;&#xE04;&#xE48;&#xE32; &#xE41;&#xE25;&#xE30;&#xE2A;&#xE48;&#xE07;&#xE21;&#xE2D;&#xE1A;&#xE07;&#xE32;&#xE19;&#xE44;&#xE27; &#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE40;&#xE02;&#xE49;&#xE32;&#xE21;&#xE32;&#xE14;&#xE39;&#xE23;&#xE32;&#xE22;&#xE25;&#xE30;&#xE40;&#xE2D;&#xE35;&#xE22;&#xE14; &#xE41;&#xE25;&#xE30;&#xE2A;&#xE2D;&#xE1A;&#xE16;&#xE32;&#xE21;-&#xE1E;&#xE39;&#xE14;&#xE04;&#xE38;&#xE22;&#xE44;&#xE14;&#xE49;&#xE17;&#xE35;&#xE48;&#xE40;&#xE27;&#xE47;&#xE1A;&#xE44;&#xE0B;&#xE15;&#xE4C;&#xE02;&#xE2D;&#xE07; <a href="https://onefastweb.com/">OneFastWeb</a> &#xE44;&#xE14;&#xE49;&#xE40;&#xE25;&#xE22;&#xE04;&#xE23;&#xE31;&#xE1A; &#xE02;&#xE2D;&#xE1A;&#xE04;&#xE38;&#xE13;&#xE04;&#xE23;&#xE31;&#xE1A;</p>]]></content:encoded></item><item><title><![CDATA[[รีวิว]เมื่อหนุ่มโรงงาน ย้ายสายไปทำงานเป็นโปรแกรมเมอร์]]></title><description><![CDATA[รีวิวการย้ายสายงานมาเป็นโปรแกรมเมอร์ จากคนที่ไม่เคยเขียนโค้ดมาก่อน จนมาเป็น โปรแกรมเมอร์อาชีพ เริ่มมาจากจุดเปลี่ยนเล็กๆของชีวิต]]></description><link>https://toupawa.com/review-a-worker-man-who-become-to-be-a-programmer/</link><guid isPermaLink="false">6170d336245b8904dac7ff61</guid><category><![CDATA[general]]></category><dc:creator><![CDATA[Washira Suyajai]]></dc:creator><pubDate>Thu, 05 Jan 2023 03:40:48 GMT</pubDate><media:content url="https://toupawa.com/content/images/2023/01/rear-view-of-young-black-man-concentrating-on-deco-2022-11-01-22-19-13-utc.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://toupawa.com/content/images/2023/01/rear-view-of-young-black-man-concentrating-on-deco-2022-11-01-22-19-13-utc.jpg" alt="[&#xE23;&#xE35;&#xE27;&#xE34;&#xE27;]&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE2B;&#xE19;&#xE38;&#xE48;&#xE21;&#xE42;&#xE23;&#xE07;&#xE07;&#xE32;&#xE19; &#xE22;&#xE49;&#xE32;&#xE22;&#xE2A;&#xE32;&#xE22;&#xE44;&#xE1B;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE42;&#xE1B;&#xE23;&#xE41;&#xE01;&#xE23;&#xE21;&#xE40;&#xE21;&#xE2D;&#xE23;&#xE4C;"><p>&#xE2A;&#xE27;&#xE31;&#xE2A;&#xE14;&#xE35;&#xE04;&#xE23;&#xE31;&#xE1A; &#xE2B;&#xE25;&#xE31;&#xE07;&#xE08;&#xE32;&#xE01;&#xE17;&#xE35;&#xE48;&#xE1C;&#xE21;&#xE44;&#xE14;&#xE49;&#xE1B;&#xE25;&#xE48;&#xE2D;&#xE22;&#xE43;&#xE2B;&#xE49;&#xE1A;&#xE25;&#xE47;&#xE2D;&#xE01;&#xE02;&#xE2D;&#xE07;&#xE15;&#xE31;&#xE27;&#xE40;&#xE2D;&#xE07;&#xE27;&#xE48;&#xE32;&#xE07;&#xE21;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE27;&#xE25;&#xE32;&#xE19;&#xE32;&#xE19;&#xE2B;&#xE25;&#xE32;&#xE22;&#xE40;&#xE14;&#xE37;&#xE2D;&#xE19; &#xE21;&#xE35;&#xE2A;&#xE2D;&#xE07;&#xE2A;&#xE32;&#xE40;&#xE2B;&#xE15;&#xE38; &#xE2A;&#xE48;&#xE27;&#xE19;&#xE2B;&#xE19;&#xE36;&#xE48;&#xE07;&#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE27;&#xE48;&#xE32;&#xE02;&#xE35;&#xE49;&#xE40;&#xE01;&#xE35;&#xE22;&#xE08;(&#xE22;&#xE2D;&#xE21;&#xE23;&#xE31;&#xE1A;&#xE42;&#xE14;&#xE22;&#xE14;&#xE35;) &#xE2D;&#xE35;&#xE01;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE2B;&#xE19;&#xE36;&#xE48;&#xE07;&#xE01;&#xE47;&#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE27;&#xE48;&#xE32;&#xE1C;&#xE21;&#xE19;&#xE31;&#xE49;&#xE19;&#xE44;&#xE14;&#xE49;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE43;&#xE2B;&#xE21;&#xE48; &#xE43;&#xE19;&#xE2A;&#xE32;&#xE22;&#xE07;&#xE32;&#xE19;&#xE43;&#xE2B;&#xE21;&#xE48; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE43;&#xE19;&#xE0A;&#xE48;&#xE27;&#xE07;&#xE19;&#xE35;&#xE49;&#xE19;&#xE31;&#xE49;&#xE19;&#xE01;&#xE47;&#xE08;&#xE30;&#xE21;&#xE35;&#xE2A;&#xE35;&#xE2A;&#xE31;&#xE19;&#xE41;&#xE15;&#xE01;&#xE15;&#xE48;&#xE32;&#xE07;&#xE08;&#xE32;&#xE01;&#xE07;&#xE32;&#xE19;&#xE17;&#xE35;&#xE48;&#xE15;&#xE31;&#xE27;&#xE40;&#xE2D;&#xE07;&#xE40;&#xE04;&#xE22;&#xE04;&#xE38;&#xE49;&#xE19;&#xE0A;&#xE34;&#xE19;&#xE21;&#xE32;&#xE2B;&#xE25;&#xE32;&#xE22;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07; &#xE08;&#xE36;&#xE07;&#xE02;&#xE2D;&#xE2D;&#xE19;&#xE38;&#xE0D;&#xE32;&#xE15;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19;&#xE23;&#xE35;&#xE27;&#xE34;&#xE27;&#xE0A;&#xE48;&#xE27;&#xE07;&#xE2B;&#xE19;&#xE36;&#xE48;&#xE07;&#xE02;&#xE2D;&#xE07;&#xE0A;&#xE35;&#xE27;&#xE34;&#xE15;&#xE15;&#xE31;&#xE27;&#xE40;&#xE2D;&#xE07;&#xE2A;&#xE31;&#xE01;&#xE04;&#xE23;&#xE31;&#xE49;&#xE07; &#xE2D;&#xE48;&#xE32;&#xE19;&#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE22;&#xE46;&#xE0A;&#xE34;&#xE27;&#xE46; &#xE16;&#xE37;&#xE2D;&#xE27;&#xE48;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE01;&#xE32;&#xE23;&#xE40;&#xE25;&#xE48;&#xE32;&#xE2A;&#xE39;&#xE48;&#xE01;&#xE31;&#xE19;&#xE1F;&#xE31;&#xE07;&#xE41;&#xE25;&#xE49;&#xE27;&#xE01;&#xE31;&#xE19;&#xE19;&#xE30;&#xE2E;&#xE30;</p><!--kg-card-begin: markdown--><h2 id="%E0%B8%9C%E0%B8%A1%E0%B9%80%E0%B8%9B%E0%B9%87%E0%B8%99%E0%B9%83%E0%B8%84%E0%B8%A3">&#xE1C;&#xE21;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE43;&#xE04;&#xE23;</h2>
<!--kg-card-end: markdown--><p>&#xE01;&#xE48;&#xE2D;&#xE19;&#xE08;&#xE30;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE15;&#xE49;&#xE19;&#xE17;&#xE35;&#xE48;&#xE23;&#xE35;&#xE27;&#xE34;&#xE27;&#xE44;&#xE1B;&#xE16;&#xE36;&#xE07;&#xE01;&#xE32;&#xE23;&#xE44;&#xE14;&#xE49;&#xE07;&#xE32;&#xE19;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE42;&#xE1B;&#xE23;&#xE41;&#xE01;&#xE23;&#xE21;&#xE40;&#xE21;&#xE2D;&#xE23;&#xE4C; &#xE15;&#xE49;&#xE2D;&#xE07;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE15;&#xE49;&#xE19;&#xE17;&#xE49;&#xE32;&#xE27;&#xE04;&#xE27;&#xE32;&#xE21;&#xE15;&#xE31;&#xE27;&#xE40;&#xE2D;&#xE07;&#xE0B;&#xE30;&#xE2B;&#xE19;&#xE48;&#xE2D;&#xE22; &#xE1C;&#xE21;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE0A;&#xE32;&#xE22;&#xE04;&#xE19;&#xE2B;&#xE19;&#xE36;&#xE48;&#xE07; &#xE1C;&#xE39;&#xE49;&#xE17;&#xE35;&#xE48;&#xE08;&#xE1A;&#xE08;&#xE32;&#xE01;&#xE23;&#xE31;&#xE49;&#xE27;&#xE21;&#xE2B;&#xE32;&#xE25;&#xE31;&#xE22;&#xE41;&#xE25;&#xE49;&#xE27;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE43;&#xE19;&#xE42;&#xE23;&#xE07;&#xE07;&#xE32;&#xE19;&#xE2D;&#xE38;&#xE15;&#xE2A;&#xE32;&#xE2B;&#xE01;&#xE23;&#xE23;&#xE21; &#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE17;&#xE35;&#xE48;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE21;&#xE32;&#xE2B;&#xE25;&#xE32;&#xE22;&#xE17;&#xE35;&#xE48;&#xE41;&#xE25;&#xE49;&#xE27; &#xE17;&#xE31;&#xE49;&#xE07;&#xE42;&#xE0B;&#xE19;&#xE42;&#xE23;&#xE07;&#xE07;&#xE32;&#xE19;&#xE43;&#xE19;&#xE19;&#xE34;&#xE04;&#xE21;&#xE2D;&#xE38;&#xE15;&#xE2A;&#xE32;&#xE2B;&#xE01;&#xE23;&#xE23;&#xE21;&#xE41;&#xE16;&#xE27;&#xE20;&#xE32;&#xE04;&#xE15;&#xE30;&#xE27;&#xE31;&#xE19;&#xE2D;&#xE2D;&#xE01; &#xE20;&#xE32;&#xE04;&#xE01;&#xE25;&#xE32;&#xE07; &#xE44;&#xE14;&#xE49;&#xE40;&#xE23;&#xE35;&#xE22;&#xE19;&#xE23;&#xE39;&#xE49;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE43;&#xE19;&#xE25;&#xE31;&#xE01;&#xE29;&#xE13;&#xE30;&#xE2D;&#xE07;&#xE04;&#xE4C;&#xE01;&#xE23;&#xE02;&#xE19;&#xE32;&#xE14;&#xE43;&#xE2B;&#xE0D;&#xE48; &#xE1E;&#xE19;&#xE31;&#xE01;&#xE07;&#xE32;&#xE19;&#xE2B;&#xE25;&#xE31;&#xE01;&#xE1E;&#xE31;&#xE19;&#xE2B;&#xE25;&#xE31;&#xE01;&#xE2B;&#xE21;&#xE37;&#xE48;&#xE19;&#xE04;&#xE19; &#xE40;&#xE23;&#xE35;&#xE22;&#xE19;&#xE23;&#xE39;&#xE49;&#xE17;&#xE31;&#xE49;&#xE07;&#xE23;&#xE30;&#xE1A;&#xE1A;&#xE01;&#xE32;&#xE23;&#xE1C;&#xE25;&#xE34;&#xE15; &#xE41;&#xE25;&#xE30;&#xE21;&#xE32;&#xE15;&#xE23;&#xE10;&#xE32;&#xE19;&#xE01;&#xE32;&#xE23;&#xE1C;&#xE25;&#xE34;&#xE15;&#xE21;&#xE32;&#xE2B;&#xE25;&#xE32;&#xE22;&#xE2B;&#xE25;&#xE31;&#xE01;&#xE2A;&#xE39;&#xE15;&#xE23; &#xE04;&#xE25;&#xE38;&#xE01;&#xE04;&#xE25;&#xE35;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE15;&#xE31;&#xE49;&#xE07;&#xE41;&#xE15;&#xE48;&#xE23;&#xE30;&#xE14;&#xE31;&#xE1A;&#xE42;&#xE2D;&#xE40;&#xE1B;&#xE2D;&#xE40;&#xE23;&#xE40;&#xE15;&#xE2D;&#xE23;&#xE4C;&#xE21;&#xE32;&#xE08;&#xE19;&#xE16;&#xE36;&#xE07;&#xE0B;&#xE38;&#xE1B;&#xE40;&#xE1B;&#xE2D;&#xE23;&#xE4C;&#xE44;&#xE27;&#xE40;&#xE0B;&#xE2D;&#xE23;&#xE4C; &#xE23;&#xE39;&#xE49;&#xE27;&#xE34;&#xE18;&#xE35;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE17;&#xE32;&#xE07;&#xE1A;&#xE31;&#xE0D;&#xE0A;&#xE35;&#xE21;&#xE32;&#xE1A;&#xE49;&#xE32;&#xE07; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE1E;&#xE2D;&#xE08;&#xE30;&#xE2A;&#xE23;&#xE38;&#xE1B;&#xE01;&#xE31;&#xE1A;&#xE15;&#xE31;&#xE27;&#xE40;&#xE2D;&#xE07;&#xE44;&#xE14;&#xE49;&#xE27;&#xE48;&#xE32; &#xE44;&#xE21;&#xE48;&#xE27;&#xE48;&#xE32;&#xE04;&#xE38;&#xE13;&#xE08;&#xE30;&#xE44;&#xE1B;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE17;&#xE35;&#xE48;&#xE42;&#xE23;&#xE07;&#xE07;&#xE32;&#xE19;&#xE43;&#xE14;&#xE01;&#xE47;&#xE15;&#xE32;&#xE21; &#xE04;&#xE38;&#xE13;&#xE01;&#xE47;&#xE08;&#xE30;&#xE19;&#xE36;&#xE01;&#xE20;&#xE32;&#xE1E;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE20;&#xE32;&#xE22;&#xE43;&#xE19;&#xE42;&#xE23;&#xE07;&#xE07;&#xE32;&#xE19;&#xE19;&#xE31;&#xE49;&#xE19;&#xE2D;&#xE2D;&#xE01;&#xE17;&#xE31;&#xE19;&#xE17;&#xE35;&#xE15;&#xE31;&#xE49;&#xE07;&#xE41;&#xE15;&#xE48;&#xE27;&#xE31;&#xE19;&#xE41;&#xE23;&#xE01; &#xE17;&#xE35;&#xE48;&#xE40;&#xE2B;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE47;&#xE40;&#xE02;&#xE49;&#xE32;&#xE44;&#xE1B;&#xE40;&#xE23;&#xE35;&#xE22;&#xE19;&#xE23;&#xE39;&#xE49;&#xE23;&#xE32;&#xE22;&#xE25;&#xE30;&#xE40;&#xE2D;&#xE35;&#xE22;&#xE14;&#xE20;&#xE32;&#xE22;&#xE43;&#xE19;&#xE17;&#xE35;&#xE2B;&#xE25;&#xE31;&#xE07; </p><p>&#xE2D;&#xE31;&#xE19;&#xE17;&#xE35;&#xE48;&#xE08;&#xE23;&#xE34;&#xE07;&#xE21;&#xE31;&#xE19;&#xE01;&#xE47;&#xE14;&#xE35;&#xE19;&#xE30; &#xE01;&#xE31;&#xE1A;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE43;&#xE19;&#xE07;&#xE32;&#xE19;&#xE17;&#xE35;&#xE48;&#xE21;&#xE35;&#xE23;&#xE30;&#xE1A;&#xE1A; &#xE17;&#xE33;&#xE43;&#xE19;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE07;&#xE32;&#xE19;&#xE17;&#xE35;&#xE48;&#xE15;&#xE31;&#xE27;&#xE40;&#xE2D;&#xE07;&#xE23;&#xE31;&#xE1A;&#xE1C;&#xE34;&#xE14;&#xE0A;&#xE2D;&#xE1A;&#xE44;&#xE1B;&#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE22;&#xE46; &#xE40;&#xE0A;&#xE49;&#xE32;&#xE21;&#xE32;&#xE40;&#xE02;&#xE49;&#xE32;&#xE07;&#xE32;&#xE19;&#xE01;&#xE47;&#xE41;&#xE2A;&#xE01;&#xE19;&#xE1A;&#xE31;&#xE15;&#xE23;&#xE40;&#xE02;&#xE49;&#xE32;&#xE07;&#xE32;&#xE19; &#xE2B;&#xE21;&#xE14;&#xE40;&#xE27;&#xE25;&#xE32; &#xE2D;&#xE2D;&#xE14;&#xE14;&#xE31;&#xE07;&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE44;&#xE2B;&#xE23;&#xE48;&#xE01;&#xE47;&#xE40;&#xE25;&#xE34;&#xE01;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19; &#xE41;&#xE2A;&#xE01;&#xE19;&#xE1A;&#xE31;&#xE15;&#xE23;&#xE2D;&#xE2D;&#xE01; &#xE02;&#xE36;&#xE49;&#xE19;&#xE23;&#xE16;&#xE1E;&#xE19;&#xE31;&#xE01;&#xE07;&#xE32;&#xE19;&#xE01;&#xE25;&#xE31;&#xE1A;&#xE17;&#xE35;&#xE48;&#xE1E;&#xE31;&#xE01; &#xE41;&#xE15;&#xE48;&#xE1C;&#xE21;&#xE2D;&#xE32;&#xE08;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE04;&#xE19;&#xE02;&#xE35;&#xE49;&#xE40;&#xE1A;&#xE37;&#xE48;&#xE2D;&#xE41;&#xE2B;&#xE25;&#xE30; &#xE44;&#xE21;&#xE48;&#xE0A;&#xE2D;&#xE1A;&#xE0A;&#xE35;&#xE27;&#xE34;&#xE15;&#xE27;&#xE19;&#xE25;&#xE39;&#xE1B;&#xE44;&#xE1B;&#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE22;&#xE46;&#xE40;&#xE17;&#xE48;&#xE32;&#xE44;&#xE2B;&#xE23;&#xE48; &#xE16;&#xE36;&#xE07;&#xE08;&#xE30;&#xE23;&#xE32;&#xE22;&#xE44;&#xE14;&#xE49;&#xE21;&#xE31;&#xE48;&#xE19;&#xE04;&#xE07; &#xE41;&#xE15;&#xE48;&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE17;&#xE33;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;&#xE44;&#xE1B;&#xE08;&#xE19;&#xE41;&#xE01;&#xE48;&#xE40;&#xE25;&#xE22;&#xE2B;&#xE23;&#xE2D; &#xE44;&#xE21;&#xE48;&#xE40;&#xE2D;&#xE32;&#xE14;&#xE35;&#xE01;&#xE27;&#xE48;&#xE32; &#xE2D;&#xE22;&#xE32;&#xE01;&#xE2B;&#xE32;&#xE2D;&#xE30;&#xE44;&#xE23;&#xE43;&#xE2B;&#xE21;&#xE48;&#xE46;&#xE17;&#xE33;&#xE14;&#xE35;&#xE01;&#xE27;&#xE48;&#xE32; &#xE02;&#xE2D;&#xE2D;&#xE2D;&#xE01;&#xE44;&#xE1B;&#xE08;&#xE32;&#xE01;&#xE27;&#xE31;&#xE07;&#xE27;&#xE19;&#xE0A;&#xE35;&#xE27;&#xE34;&#xE15;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;&#xE14;&#xE35;&#xE01;&#xE27;&#xE48;&#xE32; &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE44;&#xE1B;&#xE17;&#xE33;&#xE2D;&#xE30;&#xE44;&#xE23;&#xE14;&#xE35;?</p><!--kg-card-begin: markdown--><h2 id="%E0%B9%80%E0%B8%A3%E0%B8%B4%E0%B9%88%E0%B8%A1%E0%B8%95%E0%B9%89%E0%B8%99%E0%B8%A1%E0%B8%B2%E0%B8%97%E0%B8%B2%E0%B8%87%E0%B8%99%E0%B8%B5%E0%B9%89%E0%B9%84%E0%B8%94%E0%B9%89%E0%B8%A2%E0%B8%B1%E0%B8%87%E0%B9%84%E0%B8%87">&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE15;&#xE49;&#xE19;&#xE21;&#xE32;&#xE17;&#xE32;&#xE07;&#xE19;&#xE35;&#xE49;&#xE44;&#xE14;&#xE49;&#xE22;&#xE31;&#xE07;&#xE44;&#xE07;</h2>
<!--kg-card-end: markdown--><p>&#xE21;&#xE31;&#xE19;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE04;&#xE27;&#xE32;&#xE21;&#xE1A;&#xE31;&#xE07;&#xE40;&#xE2D;&#xE34;&#xE0D;&#xE17;&#xE35;&#xE48;&#xE15;&#xE2D;&#xE19;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE43;&#xE19;&#xE42;&#xE23;&#xE07;&#xE07;&#xE32;&#xE19; &#xE44;&#xE14;&#xE49;&#xE21;&#xE35;&#xE42;&#xE2D;&#xE01;&#xE32;&#xE2A;&#xE44;&#xE14;&#xE49;&#xE17;&#xE33;&#xE40;&#xE01;&#xE35;&#xE48;&#xE22;&#xE27;&#xE01;&#xE31;&#xE1A; Pivot Table &#xE02;&#xE2D;&#xE07; Excel &#xE41;&#xE25;&#xE30;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21;&#xE23;&#xE30;&#xE14;&#xE31;&#xE1A;&#xE04;&#xE27;&#xE32;&#xE21;&#xE22;&#xE32;&#xE01;&#xE02;&#xE2D;&#xE07;&#xE15;&#xE31;&#xE27;&#xE40;&#xE2D;&#xE07;&#xE14;&#xE49;&#xE27;&#xE22;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33; macro &#xE17;&#xE35;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE40;&#xE23;&#xE35;&#xE22;&#xE19;&#xE23;&#xE39;&#xE49;&#xE20;&#xE32;&#xE29;&#xE32; VBA &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE2D;&#xE32;&#xE21;&#xE32;&#xE43;&#xE0A;&#xE49;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; logic &#xE1A;&#xE32;&#xE07;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE01;&#xE31;&#xE1A;&#xE02;&#xE38;&#xE14;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE17;&#xE35;&#xE48;&#xE21;&#xE35; &#xE2B;&#xE23;&#xE37;&#xE2D;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE01;&#xE32;&#xE23;&#xE44;&#xE14;&#xE49;&#xE04;&#xE25;&#xE38;&#xE01;&#xE04;&#xE25;&#xE35;&#xE01;&#xE31;&#xE1A; AS/400 &#xE17;&#xE35;&#xE48;&#xE43;&#xE0A;&#xE49;&#xE43;&#xE19;&#xE01;&#xE32;&#xE23;&#xE40;&#xE01;&#xE47;&#xE1A;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25; Inventory &#xE19;&#xE31;&#xE49;&#xE19; &#xE01;&#xE47;&#xE44;&#xE14;&#xE49;&#xE08;&#xE38;&#xE14;&#xE1B;&#xE23;&#xE30;&#xE01;&#xE32;&#xE22;&#xE04;&#xE27;&#xE32;&#xE21;&#xE2D;&#xE22;&#xE32;&#xE01;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE43;&#xE19;&#xE2A;&#xE32;&#xE22;&#xE07;&#xE32;&#xE19;&#xE44;&#xE2D;&#xE17;&#xE35;&#xE02;&#xE2D;&#xE07;&#xE1C;&#xE21;&#xE21;&#xE32;&#xE01; &#xE14;&#xE31;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19;&#xE1C;&#xE21;&#xE08;&#xE36;&#xE07;&#xE15;&#xE31;&#xE49;&#xE07;&#xE21;&#xE31;&#xE48;&#xE19;&#xE01;&#xE31;&#xE1A;&#xE15;&#xE31;&#xE27;&#xE40;&#xE2D;&#xE07;&#xE27;&#xE48;&#xE32; &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE40;&#xE1A;&#xE19;&#xE40;&#xE02;&#xE47;&#xE21;&#xE0A;&#xE35;&#xE27;&#xE34;&#xE15;&#xE44;&#xE1B;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE19;&#xE35;&#xE49;&#xE43;&#xE2B;&#xE49;&#xE44;&#xE14;&#xE49;!!!</p><p>&#xE01;&#xE32;&#xE23;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE15;&#xE49;&#xE19;&#xE40;&#xE23;&#xE35;&#xE22;&#xE19;&#xE23;&#xE39;&#xE49;&#xE27;&#xE34;&#xE0A;&#xE32;&#xE15;&#xE48;&#xE32;&#xE07;&#xE46;&#xE43;&#xE19;&#xE14;&#xE49;&#xE32;&#xE19;&#xE19;&#xE35;&#xE49;&#xE01;&#xE47;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE15;&#xE49;&#xE19;&#xE02;&#xE36;&#xE49;&#xE19;&#xE17;&#xE31;&#xE19;&#xE17;&#xE35; &#xE1C;&#xE21;&#xE2B;&#xE21;&#xE01;&#xE21;&#xE38;&#xE48;&#xE19;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE01;&#xE31;&#xE1A;&#xE01;&#xE32;&#xE23;&#xE2D;&#xE48;&#xE32;&#xE19;&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE02;&#xE2D;&#xE07;&#xE40;&#xE14;&#xE1F;&#xE17;&#xE35;&#xE48;&#xE40;&#xE01;&#xE48;&#xE07;&#xE46;&#xE2B;&#xE23;&#xE37;&#xE2D; &#xE14;&#xE39;&#xE22;&#xE39;&#xE17;&#xE39;&#xE1B;&#xE02;&#xE2D;&#xE07;&#xE40;&#xE14;&#xE1F;&#xE17;&#xE31;&#xE49;&#xE07;&#xE44;&#xE17;&#xE22;&#xE41;&#xE25;&#xE30;&#xE15;&#xE48;&#xE32;&#xE07;&#xE1B;&#xE23;&#xE30;&#xE40;&#xE17;&#xE28;&#xE40;&#xE22;&#xE2D;&#xE30;&#xE21;&#xE32;&#xE01;&#xE46; &#xE41;&#xE25;&#xE30;&#xE43;&#xE19;&#xE04;&#xE2D;&#xE21;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE15;&#xE31;&#xE27;&#xE01;&#xE47;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE21;&#xE35;&#xE42;&#xE1B;&#xE23;&#xE41;&#xE01;&#xE23;&#xE21; editor &#xE40;&#xE0A;&#xE48;&#xE19; Vscode, Sublime &#xE2D;&#xE30;&#xE44;&#xE23;&#xE1E;&#xE27;&#xE01;&#xE19;&#xE35;&#xE49;&#xE21;&#xE32;&#xE01;&#xE02;&#xE36;&#xE49;&#xE19; &#xE41;&#xE15;&#xE48;&#xE40;&#xE2D;&#xE32;&#xE08;&#xE23;&#xE34;&#xE07;&#xE46;&#xE43;&#xE0A;&#xE49;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE15;&#xE31;&#xE27;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27; &#xE15;&#xE31;&#xE27;&#xE2D;&#xE37;&#xE48;&#xE19;&#xE46;&#xE17;&#xE35;&#xE48;&#xE25;&#xE2D;&#xE07;&#xE42;&#xE2B;&#xE25;&#xE14;&#xE21;&#xE32;&#xE43;&#xE0A;&#xE49;&#xE41;&#xE25;&#xE49;&#xE27;&#xE44;&#xE21;&#xE48;&#xE16;&#xE39;&#xE01;&#xE43;&#xE08;&#xE01;&#xE47;&#xE25;&#xE1A;&#xE17;&#xE34;&#xE49;&#xE07; &#xE2A;&#xE48;&#xE27;&#xE19;&#xE43;&#xE19; Internet browser &#xE01;&#xE47;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE21;&#xE35; history &#xE02;&#xE2D;&#xE07; Stackoverflow, Medium, Udemy &#xE2B;&#xE23;&#xE37;&#xE2D; &#xE40;&#xE27;&#xE47;&#xE1A; tutorial &#xE40;&#xE01;&#xE47;&#xE1A;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE1B;&#xE36;&#xE01;&#xE46; &#xE1C;&#xE21;&#xE21;&#xE32;&#xE40;&#xE23;&#xE35;&#xE22;&#xE19;&#xE23;&#xE39;&#xE49;&#xE27;&#xE48;&#xE32; &#xE01;&#xE32;&#xE23;&#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE40;&#xE0A;&#xE35;&#xE48;&#xE22;&#xE27;&#xE0A;&#xE32;&#xE0D;&#xE43;&#xE19;&#xE07;&#xE32;&#xE19;&#xE2A;&#xE32;&#xE22;&#xE19;&#xE35;&#xE49; &#xE04;&#xE37;&#xE2D;&#xE01;&#xE32;&#xE23;&#xE1D;&#xE36;&#xE01;&#xE17;&#xE33;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE1A;&#xE48;&#xE2D;&#xE22;&#xE46;&#xE04;&#xE23;&#xE31;&#xE49;&#xE07; &#xE40;&#xE08;&#xE2D;&#xE1A;&#xE31;&#xE4A;&#xE01;&#xE2B;&#xE25;&#xE32;&#xE01;&#xE2B;&#xE25;&#xE32;&#xE22;&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A; &#xE08;&#xE30;&#xE17;&#xE33;&#xE43;&#xE2B;&#xE49;&#xE21;&#xE38;&#xE21;&#xE21;&#xE2D;&#xE07;&#xE01;&#xE27;&#xE49;&#xE32;&#xE07;&#xE44;&#xE01;&#xE25;&#xE21;&#xE32;&#xE01;&#xE02;&#xE36;&#xE49;&#xE19; &#xE14;&#xE31;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19;&#xE1C;&#xE21;&#xE08;&#xE36;&#xE07;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE2B;&#xE32;&#xE17;&#xE32;&#xE07;&#xE1D;&#xE36;&#xE01;&#xE1D;&#xE19;&#xE15;&#xE31;&#xE27;&#xE40;&#xE2D;&#xE07; &#xE41;&#xE25;&#xE30;&#xE43;&#xE19;&#xE0A;&#xE35;&#xE27;&#xE34;&#xE15;&#xE08;&#xE23;&#xE34;&#xE07;&#xE40;&#xE23;&#xE32;&#xE44;&#xE21;&#xE48;&#xE21;&#xE35;&#xE2B;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE25;&#xE40;&#xE27;&#xE25;&#xE32;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49;&#xE1D;&#xE36;&#xE01;&#xE15;&#xE19;&#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE43;&#xE19;&#xE01;&#xE32;&#xE23;&#xE4C;&#xE15;&#xE39;&#xE19; &#xE1C;&#xE21;&#xE40;&#xE25;&#xE22;&#xE15;&#xE31;&#xE14;&#xE2A;&#xE34;&#xE19;&#xE43;&#xE08;&#xE15;&#xE37;&#xE48;&#xE19;&#xE40;&#xE0A;&#xE49;&#xE32;&#xE01;&#xE27;&#xE48;&#xE32;&#xE1B;&#xE01;&#xE15;&#xE34; &#xE08;&#xE32;&#xE01;&#xE17;&#xE35;&#xE48;&#xE15;&#xE37;&#xE48;&#xE19;&#xE2B;&#xE01;&#xE42;&#xE21;&#xE07; &#xE41;&#xE25;&#xE49;&#xE27;&#xE21;&#xE32;&#xE02;&#xE36;&#xE49;&#xE19;&#xE23;&#xE16;&#xE42;&#xE23;&#xE07;&#xE07;&#xE32;&#xE19;&#xE40;&#xE27;&#xE25;&#xE32;&#xE2B;&#xE01;&#xE42;&#xE21;&#xE07;&#xE04;&#xE23;&#xE36;&#xE48;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19; &#xE1C;&#xE21;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE21;&#xE32;&#xE15;&#xE37;&#xE48;&#xE19;&#xE15;&#xE35;&#xE2A;&#xE35;&#xE48;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE1D;&#xE36;&#xE01;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19;&#xE42;&#xE04;&#xE49;&#xE14; &#xE17;&#xE33;&#xE43;&#xE2B;&#xE49;&#xE43;&#xE19;&#xE41;&#xE15;&#xE48;&#xE25;&#xE30;&#xE27;&#xE31;&#xE19; &#xE1C;&#xE21;&#xE21;&#xE35;&#xE40;&#xE27;&#xE25;&#xE32;&#xE1D;&#xE36;&#xE01;&#xE15;&#xE31;&#xE27;&#xE40;&#xE2D;&#xE07;&#xE27;&#xE31;&#xE19;&#xE25;&#xE30; 3 &#xE0A;&#xE21;. &#xE42;&#xE14;&#xE22;&#xE17;&#xE38;&#xE01;&#xE27;&#xE31;&#xE19;&#xE17;&#xE35;&#xE48;&#xE1C;&#xE21;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19;&#xE42;&#xE04;&#xE49;&#xE14;&#xE2D;&#xE30;&#xE44;&#xE23;&#xE44;&#xE1B; &#xE1C;&#xE21;&#xE01;&#xE47;&#xE08;&#xE30; push &#xE42;&#xE04;&#xE49;&#xE14;&#xE40;&#xE01;&#xE47;&#xE1A;&#xE44;&#xE27;&#xE49;&#xE1A;&#xE19; Github &#xE40;&#xE1C;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49;&#xE43;&#xE0A;&#xE49;&#xE43;&#xE19;&#xE2D;&#xE19;&#xE32;&#xE04;&#xE15;</p><p>&#xE01;&#xE32;&#xE23;&#xE1D;&#xE36;&#xE01;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19;&#xE42;&#xE04;&#xE49;&#xE14;&#xE02;&#xE2D;&#xE07;&#xE1C;&#xE21;&#xE19;&#xE31;&#xE49;&#xE19; &#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE15;&#xE49;&#xE19;&#xE08;&#xE32;&#xE01;&#xE01;&#xE32;&#xE23;&#xE1D;&#xE36;&#xE01;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19;&#xE40;&#xE01;&#xE35;&#xE48;&#xE22;&#xE27;&#xE01;&#xE31;&#xE1A; logic &#xE01;&#xE48;&#xE2D;&#xE19;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE2D;&#xE31;&#xE19;&#xE14;&#xE31;&#xE1A;&#xE41;&#xE23;&#xE01; &#xE20;&#xE32;&#xE29;&#xE32;&#xE41;&#xE23;&#xE01;&#xE17;&#xE35;&#xE48;&#xE1C;&#xE21;&#xE43;&#xE0A;&#xE49;&#xE1D;&#xE36;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19; &#xE04;&#xE37;&#xE2D; Python &#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE07;&#xE48;&#xE32;&#xE22; &#xE21;&#xE35; Learning Curve &#xE15;&#xE48;&#xE33; &#xE17;&#xE33;&#xE43;&#xE2B;&#xE49;&#xE01;&#xE33;&#xE41;&#xE1E;&#xE07;&#xE20;&#xE32;&#xE29;&#xE32;&#xE44;&#xE21;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE2D;&#xE38;&#xE1B;&#xE2A;&#xE23;&#xE23;&#xE04;&#xE43;&#xE19;&#xE01;&#xE32;&#xE23;&#xE1D;&#xE36;&#xE01; logic &#xE21;&#xE32;&#xE01;&#xE19;&#xE31;&#xE01; &#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19; &#xE01;&#xE47;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE1D;&#xE36;&#xE01;&#xE20;&#xE32;&#xE29;&#xE32;&#xE2D;&#xE37;&#xE48;&#xE19; &#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE21;&#xE2D;&#xE07;&#xE40;&#xE2B;&#xE47;&#xE19;&#xE27;&#xE48;&#xE32; &#xE40;&#xE23;&#xE32;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE08;&#xE30;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE2D;&#xE30;&#xE44;&#xE23;&#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32; &#xE41;&#xE25;&#xE49;&#xE27;&#xE21;&#xE31;&#xE19;&#xE08;&#xE33;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE43;&#xE0A;&#xE49;&#xE20;&#xE32;&#xE29;&#xE32;&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE21;&#xE37;&#xE2D;&#xE2D;&#xE30;&#xE44;&#xE23;&#xE43;&#xE19;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; &#xE22;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE40;&#xE0A;&#xE48;&#xE19;</p><ul><li>&#xE43;&#xE0A;&#xE49; HTML CSS Javascript &#xE43;&#xE19;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE40;&#xE27;&#xE47;&#xE1A; &#xE16;&#xE49;&#xE32;&#xE40;&#xE27;&#xE47;&#xE1A;&#xE1B;&#xE01;&#xE15;&#xE34;&#xE17;&#xE31;&#xE48;&#xE27;&#xE44;&#xE1B; &#xE40;&#xE17;&#xE48;&#xE32;&#xE19;&#xE35;&#xE49;&#xE01;&#xE47;&#xE40;&#xE1E;&#xE35;&#xE22;&#xE07;&#xE1E;&#xE2D;</li><li>&#xE16;&#xE49;&#xE32;&#xE40;&#xE27;&#xE47;&#xE1A;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE2D;&#xE22;&#xE32;&#xE01;&#xE43;&#xE2B;&#xE49;&#xE21;&#xE31;&#xE19;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE2D;&#xE30;&#xE44;&#xE23;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE21;&#xE32;&#xE01;&#xE01;&#xE27;&#xE48;&#xE32; plain HTML &#xE01;&#xE47;&#xE08;&#xE30;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE43;&#xE0A;&#xE49; ReactJS &#xE43;&#xE19;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE40;&#xE27;&#xE47;&#xE1A; &#xE40;&#xE0A;&#xE48;&#xE19; &#xE01;&#xE32;&#xE23;&#xE17;&#xE33; Router, SPA (Single Page Application), Reusable Component &#xE16;&#xE49;&#xE32;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE43;&#xE2B;&#xE49;&#xE1A;&#xE32;&#xE07; element &#xE02;&#xE2D;&#xE07;&#xE40;&#xE27;&#xE47;&#xE1A; &#xE21;&#xE31;&#xE19;&#xE16;&#xE39;&#xE01;&#xE43;&#xE0A;&#xE49;&#xE43;&#xE19;&#xE17;&#xE35;&#xE48;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE2D;&#xE37;&#xE48;&#xE19;&#xE46;&#xE14;&#xE49;&#xE27;&#xE22; &#xE42;&#xE14;&#xE22;&#xE44;&#xE21;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE43;&#xE2B;&#xE21;&#xE48;</li><li>&#xE2A;&#xE48;&#xE27;&#xE19;&#xE2B;&#xE25;&#xE31;&#xE07;&#xE1A;&#xE49;&#xE32;&#xE19; &#xE01;&#xE32;&#xE23;&#xE08;&#xE31;&#xE14;&#xE01;&#xE32;&#xE23;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25; &#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE28;&#xE36;&#xE01;&#xE29;&#xE32; NodeJS &#xE41;&#xE25;&#xE30; Library &#xE02;&#xE2D;&#xE07;&#xE21;&#xE31;&#xE19; &#xE40;&#xE0A;&#xE48;&#xE19; Express, Mongoose &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE08;&#xE31;&#xE14;&#xE01;&#xE32;&#xE23;&#xE01;&#xE31;&#xE1A;&#xE10;&#xE32;&#xE19;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE02;&#xE2D;&#xE07; MongoDB</li><li>&#xE19;&#xE2D;&#xE01;&#xE40;&#xE2B;&#xE19;&#xE37;&#xE2D;&#xE08;&#xE32;&#xE01;&#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE40;&#xE27;&#xE47;&#xE1A; &#xE22;&#xE31;&#xE07;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE28;&#xE36;&#xE01;&#xE29;&#xE32;&#xE40;&#xE01;&#xE35;&#xE48;&#xE22;&#xE27;&#xE01;&#xE31;&#xE1A;&#xE40;&#xE17;&#xE04;&#xE42;&#xE19;&#xE42;&#xE25;&#xE22;&#xE35;&#xE2D;&#xE37;&#xE48;&#xE19;&#xE46;&#xE2D;&#xE35;&#xE01; &#xE40;&#xE0A;&#xE48;&#xE19; mobile app &#xE1D;&#xE36;&#xE01;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19; Flutter, React Native &#xE04;&#xE37;&#xE2D; &#xE21;&#xE32;&#xE08;&#xE19;&#xE16;&#xE36;&#xE07;&#xE15;&#xE2D;&#xE19;&#xE19;&#xE35;&#xE49;&#xE01;&#xE47;&#xE22;&#xE31;&#xE07;&#xE44;&#xE21;&#xE48;&#xE44;&#xE14;&#xE49;&#xE40;&#xE2D;&#xE32;&#xE21;&#xE32;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19;&#xE08;&#xE23;&#xE34;&#xE07;&#xE46;&#xE0B;&#xE31;&#xE01;&#xE17;&#xE35; &#xE41;&#xE15;&#xE48;&#xE01;&#xE47;&#xE40;&#xE23;&#xE35;&#xE22;&#xE19;&#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE04;&#xE27;&#xE32;&#xE21;&#xE2A;&#xE19;&#xE43;&#xE08;&#xE02;&#xE2D;&#xE07;&#xE15;&#xE31;&#xE27;&#xE40;&#xE2D;&#xE07;&#xE25;&#xE49;&#xE27;&#xE19;&#xE46;&#xE40;&#xE25;&#xE22;</li><li>&#xE1D;&#xE36;&#xE01;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19; version control &#xE43;&#xE2B;&#xE49;&#xE04;&#xE25;&#xE48;&#xE2D;&#xE07;&#xE46; &#xE1E;&#xE27;&#xE01; Git &#xE19;&#xE35;&#xE48; &#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE1E;&#xE37;&#xE49;&#xE19;&#xE10;&#xE32;&#xE19;&#xE02;&#xE2D;&#xE07;&#xE40;&#xE14;&#xE1F;&#xE40;&#xE25;&#xE22; &#xE1A;&#xE32;&#xE07;&#xE17;&#xE35;&#xE21;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49; Docker &#xE14;&#xE49;&#xE27;&#xE22; &#xE41;&#xE15;&#xE48;&#xE01;&#xE47;&#xE19;&#xE31;&#xE48;&#xE19;&#xE41;&#xE2B;&#xE25;&#xE30; &#xE40;&#xE2D;&#xE32;&#xE41;&#xE04;&#xE48; Git &#xE01;&#xE48;&#xE2D;&#xE19;&#xE25;&#xE30;&#xE01;&#xE31;&#xE19; &#xE16;&#xE49;&#xE32;&#xE21;&#xE35;&#xE42;&#xE2D;&#xE01;&#xE32;&#xE2A;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19;&#xE04;&#xE48;&#xE2D;&#xE22;&#xE1D;&#xE36;&#xE01;</li></ul><p>&#xE2B;&#xE25;&#xE31;&#xE07;&#xE08;&#xE32;&#xE01;&#xE1D;&#xE36;&#xE01;&#xE15;&#xE19;&#xE21;&#xE32;&#xE0B;&#xE31;&#xE01;&#xE1E;&#xE31;&#xE01;&#xE41;&#xE25;&#xE49;&#xE27; &#xE2A;&#xE40;&#xE15;&#xE1B;&#xE15;&#xE48;&#xE2D;&#xE44;&#xE1B;&#xE04;&#xE37;&#xE2D;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE08;&#xE23;&#xE34;&#xE07; &#xE41;&#xE25;&#xE30;&#xE08;&#xE32;&#xE01;&#xE19;&#xE35;&#xE49;&#xE04;&#xE37;&#xE2D;&#xE01;&#xE32;&#xE23;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE40;&#xE2A;&#xE49;&#xE19;&#xE17;&#xE32;&#xE07;&#xE40;&#xE14;&#xE34;&#xE19;&#xE0A;&#xE35;&#xE27;&#xE34;&#xE15;&#xE02;&#xE2D;&#xE07;&#xE15;&#xE31;&#xE27;&#xE40;&#xE2D;&#xE07;&#xE08;&#xE23;&#xE34;&#xE07;&#xE46;&#xE08;&#xE31;&#xE07;&#xE46;&#xE41;&#xE25;&#xE49;&#xE27; </p><!--kg-card-begin: markdown--><h2 id="%E0%B8%81%E0%B9%88%E0%B8%AD%E0%B8%99%E0%B9%80%E0%B8%A3%E0%B8%B4%E0%B9%88%E0%B8%A1%E0%B8%97%E0%B8%B3%E0%B8%87%E0%B8%B2%E0%B8%99%E0%B9%80%E0%B8%94%E0%B8%9F%E0%B8%88%E0%B8%A3%E0%B8%B4%E0%B8%87%E0%B8%88%E0%B8%B1%E0%B8%87">&#xE01;&#xE48;&#xE2D;&#xE19;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE40;&#xE14;&#xE1F;&#xE08;&#xE23;&#xE34;&#xE07;&#xE08;&#xE31;&#xE07;</h2>
<!--kg-card-end: markdown--><p>&#xE41;&#xE15;&#xE48;&#xE01;&#xE48;&#xE2D;&#xE19;&#xE08;&#xE30;&#xE44;&#xE14;&#xE49;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE40;&#xE14;&#xE1F;&#xE08;&#xE23;&#xE34;&#xE07;&#xE46;&#xE19;&#xE31;&#xE49;&#xE19; &#xE2A;&#xE34;&#xE48;&#xE07;&#xE17;&#xE35;&#xE48;&#xE22;&#xE32;&#xE01;&#xE22;&#xE34;&#xE48;&#xE07;&#xE01;&#xE27;&#xE48;&#xE32;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19; &#xE04;&#xE37;&#xE2D;&#xE01;&#xE32;&#xE23;&#xE2B;&#xE32;&#xE07;&#xE32;&#xE19;&#xE04;&#xE23;&#xE31;&#xE1A; &#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE27;&#xE48;&#xE32; &#xE15;&#xE32;&#xE21;&#xE1A;&#xE23;&#xE34;&#xE29;&#xE31;&#xE17; software house &#xE2B;&#xE23;&#xE37;&#xE2D; &#xE1A;&#xE23;&#xE34;&#xE29;&#xE31;&#xE17;&#xE1C;&#xE39;&#xE49;&#xE43;&#xE2B;&#xE49;&#xE1A;&#xE23;&#xE34;&#xE01;&#xE32;&#xE23;&#xE23;&#xE31;&#xE1A;&#xE17;&#xE33;&#xE42;&#xE1B;&#xE23;&#xE41;&#xE01;&#xE23;&#xE21;&#xE15;&#xE48;&#xE32;&#xE07;&#xE46;&#xE43;&#xE19;&#xE44;&#xE17;&#xE22;&#xE19;&#xE31;&#xE49;&#xE19; &#xE21;&#xE31;&#xE01;&#xE08;&#xE30;&#xE43;&#xE2B;&#xE49;&#xE04;&#xE27;&#xE32;&#xE21;&#xE2A;&#xE19;&#xE43;&#xE08;&#xE01;&#xE31;&#xE1A;&#xE1C;&#xE39;&#xE49;&#xE2A;&#xE21;&#xE31;&#xE04;&#xE23;&#xE07;&#xE32;&#xE19;&#xE17;&#xE35;&#xE48;&#xE21;&#xE35;&#xE1B;&#xE23;&#xE30;&#xE2A;&#xE1A;&#xE01;&#xE32;&#xE23;&#xE13;&#xE4C;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE2A;&#xE32;&#xE22;&#xE15;&#xE23;&#xE07;&#xE21;&#xE32;&#xE21;&#xE32;&#xE01;&#xE01;&#xE27;&#xE48;&#xE32; &#xE04;&#xE19;&#xE17;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE2A;&#xE32;&#xE22;&#xE07;&#xE32;&#xE19; &#xE19;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE08;&#xE23;&#xE34;&#xE07;&#xE17;&#xE35;&#xE48;&#xE1C;&#xE21;&#xE44;&#xE14;&#xE49;&#xE40;&#xE08;&#xE2D;&#xE04;&#xE23;&#xE31;&#xE1A; &#xE41;&#xE25;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE2A;&#xE34;&#xE48;&#xE07;&#xE17;&#xE35;&#xE48;&#xE1A;&#xE31;&#xE48;&#xE19;&#xE17;&#xE2D;&#xE19;&#xE01;&#xE33;&#xE25;&#xE31;&#xE07;&#xE43;&#xE08;&#xE02;&#xE2D;&#xE07;&#xE1C;&#xE21;&#xE21;&#xE32;&#xE01; &#xE16;&#xE36;&#xE07;&#xE41;&#xE21;&#xE49;&#xE27;&#xE48;&#xE32; &#xE1C;&#xE39;&#xE49;&#xE2A;&#xE31;&#xE21;&#xE20;&#xE32;&#xE29;&#xE13;&#xE4C;&#xE08;&#xE30;&#xE44;&#xE21;&#xE48;&#xE2A;&#xE19;&#xE43;&#xE08;&#xE27;&#xE38;&#xE12;&#xE34; &#xE41;&#xE15;&#xE48;&#xE40;&#xE04;&#xE49;&#xE32;&#xE2A;&#xE19;&#xE43;&#xE08;&#xE04;&#xE27;&#xE32;&#xE21;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16; &#xE41;&#xE25;&#xE30;&#xE2D;&#xE32;&#xE22;&#xE38; (&#xE2A;&#xE48;&#xE27;&#xE19;&#xE43;&#xE2B;&#xE0D;&#xE48;&#xE17;&#xE35;&#xE48;&#xE40;&#xE2B;&#xE47;&#xE19;&#xE04;&#xE37;&#xE2D; &#xE44;&#xE21;&#xE48;&#xE40;&#xE01;&#xE34;&#xE19; 35 &#xE1B;&#xE35;&#xE04;&#xE23;&#xE31;&#xE1A; &#xE41;&#xE15;&#xE48; &#xE13; &#xE15;&#xE2D;&#xE19;&#xE19;&#xE31;&#xE49;&#xE19;&#xE1C;&#xE21; 28 &#xE1B;&#xE35; &#xE41;&#xE1B;&#xE25;&#xE27;&#xE48;&#xE32;&#xE40;&#xE2B;&#xE25;&#xE37;&#xE2D;&#xE40;&#xE27;&#xE25;&#xE32;&#xE2D;&#xE35;&#xE01;&#xE44;&#xE21;&#xE48;&#xE21;&#xE32;&#xE01;&#xE41;&#xE25;&#xE49;&#xE27; &#xE15;&#xE2D;&#xE19;&#xE19;&#xE31;&#xE49;&#xE19;&#xE17;&#xE35;&#xE48;&#xE19;&#xE36;&#xE01;&#xE44;&#xE14;&#xE49; &#xE01;&#xE47;&#xE17;&#xE33;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE02;&#xE49;&#xE32;&#xE43;&#xE08;&#xE2A;&#xE31;&#xE08;&#xE18;&#xE23;&#xE23;&#xE21;&#xE04;&#xE27;&#xE32;&#xE21;&#xE2B;&#xE21;&#xE32;&#xE22;&#xE02;&#xE2D;&#xE07;&#xE04;&#xE33;&#xE27;&#xE48;&#xE32; &quot;&#xE40;&#xE27;&#xE25;&#xE32;&#xE21;&#xE35;&#xE21;&#xE39;&#xE25;&#xE04;&#xE48;&#xE32;&quot; &#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE17;&#xE31;&#xE19;&#xE17;&#xE35;)</p><p>&#xE16;&#xE36;&#xE07;&#xE41;&#xE21;&#xE49;&#xE27;&#xE48;&#xE32;&#xE08;&#xE30;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE15;&#xE49;&#xE19;&#xE44;&#xE14;&#xE49;&#xE0A;&#xE49;&#xE32;&#xE01;&#xE27;&#xE48;&#xE32;&#xE04;&#xE19;&#xE2D;&#xE37;&#xE48;&#xE19;&#xE46;&#xE17;&#xE35;&#xE48;&#xE40;&#xE04;&#xE49;&#xE32;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE01;&#xE31;&#xE19;&#xE21;&#xE32;&#xE01;&#xE48;&#xE2D;&#xE19;&#xE15;&#xE31;&#xE49;&#xE07;&#xE41;&#xE15;&#xE48;&#xE2D;&#xE32;&#xE22;&#xE38; 22 - 23 &#xE41;&#xE25;&#xE49;&#xE27;&#xE01;&#xE47;&#xE15;&#xE32;&#xE21; &#xE41;&#xE15;&#xE48;&#xE1C;&#xE21;&#xE01;&#xE47;&#xE22;&#xE31;&#xE07;&#xE2D;&#xE22;&#xE32;&#xE01;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE14;&#xE1F;&#xE14;&#xE49;&#xE27;&#xE22;&#xE04;&#xE27;&#xE32;&#xE21;&#xE15;&#xE31;&#xE49;&#xE07;&#xE21;&#xE31;&#xE48;&#xE19;&#xE21;&#xE32;&#xE01; &#xE43;&#xE08;&#xE21;&#xE31;&#xE19;&#xE23;&#xE31;&#xE01; &#xE40;&#xE25;&#xE22;&#xE22;&#xE31;&#xE07;&#xE04;&#xE34;&#xE14;&#xE27;&#xE48;&#xE32;&#xE1E;&#xE2D;&#xE21;&#xE35;&#xE42;&#xE2D;&#xE01;&#xE32;&#xE2A;&#xE2D;&#xE22;&#xE39;&#xE48; &#xE43;&#xE19;&#xE15;&#xE2D;&#xE19;&#xE19;&#xE31;&#xE49;&#xE19;&#xE01;&#xE47;&#xE22;&#xE31;&#xE07;&#xE44;&#xE21;&#xE48;&#xE22;&#xE2D;&#xE21;&#xE41;&#xE1E;&#xE49;&#xE04;&#xE23;&#xE31;&#xE1A; &#xE1E;&#xE22;&#xE32;&#xE22;&#xE32;&#xE21;&#xE2B;&#xE32;&#xE2A;&#xE21;&#xE31;&#xE04;&#xE23;&#xE07;&#xE32;&#xE19;&#xE44;&#xE1B;&#xE1E;&#xE23;&#xE49;&#xE2D;&#xE21;&#xE46;&#xE01;&#xE31;&#xE1A;&#xE17;&#xE33;&#xE42;&#xE1B;&#xE23;&#xE40;&#xE08;&#xE47;&#xE04;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE2D;&#xE31;&#xE1E;&#xE40;&#xE23;&#xE0B;&#xE39;&#xE40;&#xE21;&#xE48;&#xE02;&#xE2D;&#xE07;&#xE40;&#xE23;&#xE32;&#xE44;&#xE1B;&#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE22;&#xE46; &#xE1E;&#xE22;&#xE32;&#xE22;&#xE32;&#xE21;&#xE17;&#xE33;&#xE42;&#xE08;&#xE17;&#xE22;&#xE4C;&#xE08;&#xE32;&#xE01;&#xE23;&#xE35;&#xE27;&#xE34;&#xE27;&#xE2A;&#xE31;&#xE21;&#xE20;&#xE32;&#xE29;&#xE13;&#xE4C;&#xE07;&#xE32;&#xE19;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE44;&#xE1B;&#xE2D;&#xE48;&#xE32;&#xE19;&#xE15;&#xE32;&#xE21;&#xE01;&#xE25;&#xE38;&#xE48;&#xE21;&#xE04;&#xE2D;&#xE21;&#xE21;&#xE39;&#xE1A;&#xE49;&#xE32;&#xE07; &#xE41;&#xE2B;&#xE25;&#xE48;&#xE07;&#xE40;&#xE23;&#xE35;&#xE22;&#xE19;&#xE23;&#xE39;&#xE49;&#xE1F;&#xE23;&#xE35;&#xE19;&#xE35;&#xE48;&#xE44;&#xE21;&#xE48;&#xE21;&#xE35;&#xE1E;&#xE25;&#xE32;&#xE14; &#xE40;&#xE01;&#xE47;&#xE1A;&#xE2B;&#xE21;&#xE14;&#xE17;&#xE38;&#xE01;&#xE17;&#xE35;&#xE48; &#xE44;&#xE14;&#xE49;&#xE41;&#xE01;&#xE49;&#xE42;&#xE08;&#xE17;&#xE22;&#xE4C; &#xE41;&#xE01;&#xE49;&#xE1A;&#xE31;&#xE04; &#xE1E;&#xE2D;&#xE41;&#xE01;&#xE49;&#xE44;&#xE14;&#xE49; &#xE43;&#xE08;&#xE01;&#xE47;&#xE1F;&#xE39; &#xE21;&#xE35;&#xE01;&#xE33;&#xE25;&#xE31;&#xE07;&#xE43;&#xE08;&#xE17;&#xE33;&#xE42;&#xE08;&#xE17;&#xE22;&#xE4C;&#xE02;&#xE49;&#xE2D;&#xE2D;&#xE37;&#xE48;&#xE19;&#xE15;&#xE48;&#xE2D;&#xE44;&#xE1B; &#xE40;&#xE15;&#xE23;&#xE35;&#xE22;&#xE21;&#xE15;&#xE31;&#xE27;&#xE40;&#xE2D;&#xE07;&#xE43;&#xE2B;&#xE49;&#xE1E;&#xE23;&#xE49;&#xE2D;&#xE21;&#xE21;&#xE32;&#xE01;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE38;&#xE14; &#xE40;&#xE1C;&#xE37;&#xE48;&#xE2D;&#xE16;&#xE49;&#xE32;&#xE21;&#xE35;&#xE42;&#xE2D;&#xE01;&#xE32;&#xE2A;&#xE21;&#xE32;&#xE16;&#xE36;&#xE07;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE40;&#xE23;&#xE32; &#xE41;&#xE25;&#xE49;&#xE27;&#xE1C;&#xE21;&#xE08;&#xE30;&#xE44;&#xE21;&#xE48;&#xE1E;&#xE25;&#xE32;&#xE14;&#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE15;&#xE30;&#xE04;&#xE23;&#xE38;&#xE1A;&#xE44;&#xE27;&#xE49;&#xE43;&#xE2B;&#xE49;&#xE21;&#xE31;&#xE48;&#xE19;&#xE46;</p><!--kg-card-begin: markdown--><h2 id="%E0%B9%80%E0%B8%82%E0%B9%89%E0%B8%B2%E0%B8%AA%E0%B8%99%E0%B8%B2%E0%B8%A1%E0%B8%AA%E0%B8%B1%E0%B8%A1%E0%B8%A0%E0%B8%B2%E0%B8%A9%E0%B8%93%E0%B9%8C%E0%B8%87%E0%B8%B2%E0%B8%99">&#xE40;&#xE02;&#xE49;&#xE32;&#xE2A;&#xE19;&#xE32;&#xE21;&#xE2A;&#xE31;&#xE21;&#xE20;&#xE32;&#xE29;&#xE13;&#xE4C;&#xE07;&#xE32;&#xE19;</h2>
<!--kg-card-end: markdown--><p>&#xE41;&#xE25;&#xE30;&#xE41;&#xE25;&#xE49;&#xE27;&#xE42;&#xE2D;&#xE01;&#xE32;&#xE2A;&#xE01;&#xE47;&#xE21;&#xE32;&#xE16;&#xE36;&#xE07;&#xE08;&#xE19;&#xE44;&#xE14;&#xE49;&#xE04;&#xE23;&#xE31;&#xE1A; &#xE21;&#xE35;&#xE1A;&#xE23;&#xE34;&#xE29;&#xE31;&#xE17;&#xE2A;&#xE2D;&#xE07;&#xE41;&#xE2B;&#xE48;&#xE07;&#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE1C;&#xE21;&#xE44;&#xE1B;&#xE2A;&#xE31;&#xE21;&#xE20;&#xE32;&#xE29;&#xE13;&#xE4C;&#xE1E;&#xE23;&#xE49;&#xE2D;&#xE21;&#xE01;&#xE31;&#xE19;&#xE43;&#xE19;&#xE27;&#xE31;&#xE19;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27; &#xE41;&#xE2B;&#xE48;&#xE07;&#xE2B;&#xE19;&#xE36;&#xE48;&#xE07;&#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE44;&#xE1B;&#xE15;&#xE2D;&#xE19;&#xE40;&#xE0A;&#xE49;&#xE32; &#xE2D;&#xE35;&#xE01;&#xE41;&#xE2B;&#xE48;&#xE07;&#xE2B;&#xE19;&#xE36;&#xE48;&#xE07;&#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE44;&#xE1B;&#xE15;&#xE2D;&#xE19;&#xE1A;&#xE48;&#xE32;&#xE22; &#xE2D;&#xE38;&#xE1B;&#xE2A;&#xE23;&#xE23;&#xE04;&#xE02;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE44;&#xE1B;&#xE2A;&#xE31;&#xE21;&#xE20;&#xE32;&#xE29;&#xE13;&#xE4C;&#xE04;&#xE37;&#xE2D; &#xE17;&#xE35;&#xE48;&#xE41;&#xE23;&#xE01;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE43;&#xE08;&#xE01;&#xE25;&#xE32;&#xE07;&#xE01;&#xE23;&#xE38;&#xE07; &#xE2A;&#xE48;&#xE27;&#xE19;&#xE2D;&#xE35;&#xE01;&#xE17;&#xE35;&#xE48;&#xE19;&#xE36;&#xE07;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE0A;&#xE32;&#xE19;&#xE40;&#xE21;&#xE37;&#xE2D;&#xE07; &#xE41;&#xE15;&#xE48;&#xE22;&#xE31;&#xE07;&#xE42;&#xE0A;&#xE04;&#xE14;&#xE35;&#xE17;&#xE35;&#xE48; &#xE17;&#xE35;&#xE48;&#xE2A;&#xE2D;&#xE07; &#xE13; &#xE02;&#xE13;&#xE30;&#xE19;&#xE31;&#xE49;&#xE19;&#xE40;&#xE04;&#xE49;&#xE32; WFH &#xE2D;&#xE22;&#xE39;&#xE48; &#xE40;&#xE25;&#xE22;&#xE19;&#xE31;&#xE14;&#xE2A;&#xE31;&#xE21;&#xE20;&#xE32;&#xE29;&#xE13;&#xE4C;&#xE17;&#xE32;&#xE07; video call &#xE41;&#xE17;&#xE19; &#xE16;&#xE36;&#xE07;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19;&#xE01;&#xE47;&#xE15;&#xE32;&#xE21; &#xE01;&#xE32;&#xE23;&#xE40;&#xE15;&#xE23;&#xE35;&#xE22;&#xE21;&#xE15;&#xE31;&#xE27;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE44;&#xE1B;&#xE2A;&#xE31;&#xE21;&#xE20;&#xE32;&#xE29;&#xE13;&#xE4C;&#xE07;&#xE32;&#xE19;&#xE2A;&#xE2D;&#xE07;&#xE17;&#xE35;&#xE48;&#xE43;&#xE19;&#xE27;&#xE31;&#xE19;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;&#xE01;&#xE31;&#xE19; &#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE21;&#xE37;&#xE2D;&#xE43;&#xE2B;&#xE21;&#xE48;&#xE16;&#xE2D;&#xE14;&#xE14;&#xE49;&#xE32;&#xE21;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE1C;&#xE21; &#xE01;&#xE47;&#xE44;&#xE21;&#xE48;&#xE43;&#xE0A;&#xE48;&#xE40;&#xE25;&#xE48;&#xE19;&#xE46;&#xE40;&#xE25;&#xE22;&#xE17;&#xE35;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27; &#xE2D;&#xE32;&#xE23;&#xE21;&#xE13;&#xE4C;&#xE23;&#xE32;&#xE27;&#xE01;&#xE31;&#xE1A;&#xE27;&#xE48;&#xE32;&#xE22;&#xE19;&#xE49;&#xE33;&#xE42;&#xE25;&#xE04;&#xE23;&#xE36;&#xE48;&#xE07;&#xE41;&#xE25;&#xE49;&#xE27;&#xE21;&#xE32;&#xE27;&#xE34;&#xE48;&#xE07;&#xE15;&#xE48;&#xE2D;&#xE2A;&#xE34;&#xE1A;&#xE42;&#xE25;&#xE43;&#xE19;&#xE44;&#xE15;&#xE23;&#xE01;&#xE35;&#xE2C;&#xE32;&#xE40;&#xE25;&#xE22;&#xE41;&#xE2B;&#xE25;&#xE30;</p><p>&#xE01;&#xE32;&#xE23;&#xE2A;&#xE31;&#xE21;&#xE20;&#xE32;&#xE29;&#xE13;&#xE4C;&#xE17;&#xE35;&#xE48;&#xE41;&#xE23;&#xE01;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE44;&#xE1B;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE23;&#xE32;&#xE1A;&#xE23;&#xE37;&#xE48;&#xE19;&#xE04;&#xE23;&#xE31;&#xE1A; &#xE1C;&#xE39;&#xE49;&#xE2A;&#xE31;&#xE21;&#xE20;&#xE32;&#xE29;&#xE13;&#xE4C;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE04;&#xE19;&#xE44;&#xE17;&#xE22; &#xE2D;&#xE32;&#xE22;&#xE38;&#xE1E;&#xE2D;&#xE46;&#xE01;&#xE31;&#xE19;&#xE01;&#xE31;&#xE1A;&#xE1C;&#xE21; &#xE04;&#xE38;&#xE22;&#xE07;&#xE48;&#xE32;&#xE22; &#xE16;&#xE32;&#xE21;&#xE44;&#xE21;&#xE48;&#xE22;&#xE32;&#xE01; &#xE40;&#xE04;&#xE49;&#xE32;&#xE2D;&#xE36;&#xE49;&#xE07;&#xE17;&#xE35;&#xE48;&#xE1C;&#xE21;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19;&#xE42;&#xE04;&#xE49;&#xE14;&#xE40;&#xE2D;&#xE07;&#xE25;&#xE07; Github &#xE40;&#xE22;&#xE2D;&#xE30;&#xE08;&#xE19;&#xE40;&#xE04;&#xE49;&#xE32;&#xE02;&#xE2D; follow account &#xE1C;&#xE21;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49;&#xE40;&#xE25;&#xE22;&#xE17;&#xE35;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27; &#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE08;&#xE1A;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE19;&#xE17;&#xE19;&#xE32; &#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE08;&#xE32;&#xE01;&#xE2B;&#xE49;&#xE2D;&#xE07; &#xE1C;&#xE21;&#xE04;&#xE48;&#xE2D;&#xE19;&#xE02;&#xE49;&#xE32;&#xE07;&#xE21;&#xE35;&#xE04;&#xE27;&#xE32;&#xE21;&#xE21;&#xE31;&#xE48;&#xE19;&#xE43;&#xE08;&#xE27;&#xE48;&#xE32;&#xE2D;&#xE32;&#xE08;&#xE08;&#xE30;&#xE44;&#xE14;&#xE49;&#xE07;&#xE32;&#xE19;&#xE17;&#xE35;&#xE48;&#xE19;&#xE35;&#xE48;&#xE21;&#xE32;&#xE01; &#xE41;&#xE15;&#xE48;&#xE21;&#xE35;&#xE40;&#xE27;&#xE25;&#xE32;&#xE1F;&#xE34;&#xE19;&#xE01;&#xE31;&#xE1A;&#xE04;&#xE27;&#xE32;&#xE21;&#xE21;&#xE31;&#xE48;&#xE19;&#xE43;&#xE08;&#xE41;&#xE04;&#xE48;&#xE41;&#xE1B;&#xE4A;&#xE1A;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;&#xE40;&#xE17;&#xE48;&#xE32;&#xE19;&#xE31;&#xE49;&#xE19; &#xE01;&#xE47;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE23;&#xE35;&#xE1A;&#xE40;&#xE15;&#xE23;&#xE35;&#xE22;&#xE21;&#xE15;&#xE31;&#xE27;&#xE2A;&#xE31;&#xE21;&#xE20;&#xE32;&#xE29;&#xE13;&#xE4C;&#xE07;&#xE32;&#xE19;&#xE17;&#xE35;&#xE48;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE2D;&#xE07;&#xE15;&#xE48;&#xE2D;&#xE17;&#xE31;&#xE19;&#xE17;&#xE35; &#xE1C;&#xE21;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE23;&#xE35;&#xE1A;&#xE2B;&#xE32;&#xE17;&#xE35;&#xE48;&#xE40;&#xE07;&#xE35;&#xE22;&#xE1A;&#xE46;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE15;&#xE23;&#xE35;&#xE22;&#xE21;&#xE01;&#xE32;&#xE23; video call &#xE04;&#xE27;&#xE32;&#xE21;&#xE0B;&#xE27;&#xE22;&#xE01;&#xE47;&#xE1A;&#xE31;&#xE07;&#xE40;&#xE01;&#xE34;&#xE14;&#xE02;&#xE36;&#xE49;&#xE19;&#xE2D;&#xE35;&#xE01; &#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE42;&#xE17;&#xE23;&#xE28;&#xE31;&#xE1E;&#xE17;&#xE4C;&#xE21;&#xE37;&#xE2D;&#xE16;&#xE37;&#xE2D;&#xE17;&#xE35;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE43;&#xE0A;&#xE49;&#xE27;&#xE34;&#xE14;&#xE35;&#xE42;&#xE2D;&#xE14;&#xE31;&#xE19;&#xE41;&#xE1A;&#xE15;&#xE08;&#xE30;&#xE2B;&#xE21;&#xE14;! &#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE41;&#xE1A;&#xE15;&#xE21;&#xE31;&#xE19;&#xE40;&#xE2A;&#xE37;&#xE48;&#xE2D;&#xE21; &#xE40;&#xE25;&#xE22;&#xE25;&#xE14;&#xE2E;&#xE27;&#xE1A;&#xE46;&#xE44;&#xE27;&#xE21;&#xE32;&#xE01; &#xE07;&#xE32;&#xE19;&#xE2B;&#xE22;&#xE32;&#xE1A;&#xE17;&#xE31;&#xE19;&#xE17;&#xE35;&#xE04;&#xE23;&#xE31;&#xE1A; &#xE1C;&#xE21;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE27;&#xE34;&#xE48;&#xE07;&#xE44;&#xE1B;&#xE2B;&#xE32;&#xE15;&#xE39;&#xE49;&#xE02;&#xE32;&#xE22;&#xE21;&#xE37;&#xE2D;&#xE16;&#xE37;&#xE2D;&#xE41;&#xE16;&#xE27;&#xE46;&#xE19;&#xE31;&#xE49;&#xE19; &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE0B;&#xE37;&#xE49;&#xE2D;&#xE2A;&#xE32;&#xE22;&#xE0A;&#xE32;&#xE23;&#xE4C;&#xE08;&#xE41;&#xE1A;&#xE15; &#xE40;&#xE2D;&#xE32;&#xE23;&#xE32;&#xE04;&#xE32;&#xE16;&#xE39;&#xE01;&#xE46;&#xE44;&#xE27;&#xE01;&#xE48;&#xE2D;&#xE19; &#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE15;&#xE31;&#xE07;&#xE15;&#xE4C;&#xE01;&#xE47;&#xE44;&#xE21;&#xE48;&#xE04;&#xE48;&#xE2D;&#xE22;&#xE21;&#xE35;&#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE01;&#xE31;&#xE19; &#xE2A;&#xE23;&#xE38;&#xE1B;&#xE27;&#xE48;&#xE32;&#xE27;&#xE31;&#xE19;&#xE19;&#xE31;&#xE49;&#xE19;&#xE17;&#xE31;&#xE49;&#xE07;&#xE27;&#xE31;&#xE19;&#xE40;&#xE15;&#xE47;&#xE21;&#xE44;&#xE1B;&#xE14;&#xE49;&#xE27;&#xE22;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE31;&#xE21;&#xE20;&#xE32;&#xE29;&#xE13;&#xE4C;&#xE04;&#xE23;&#xE31;&#xE1A;</p><p>&#xE1C;&#xE21;&#xE43;&#xE0A;&#xE49;&#xE40;&#xE27;&#xE25;&#xE32;&#xE44;&#xE21;&#xE48;&#xE19;&#xE32;&#xE19;&#xE43;&#xE19;&#xE01;&#xE32;&#xE23;&#xE23;&#xE39;&#xE49;&#xE1C;&#xE25;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE31;&#xE21;&#xE20;&#xE32;&#xE29;&#xE13;&#xE4C;&#xE02;&#xE2D;&#xE07;&#xE15;&#xE31;&#xE27;&#xE40;&#xE2D;&#xE07; &#xE17;&#xE35;&#xE48;&#xE41;&#xE23;&#xE01;&#xE17;&#xE35;&#xE48;&#xE1C;&#xE21;&#xE21;&#xE31;&#xE48;&#xE19;&#xE43;&#xE08;&#xE19;&#xE31;&#xE01;&#xE2B;&#xE19;&#xE32;&#xE19;&#xE31;&#xE49;&#xE19; &#xE44;&#xE21;&#xE48;&#xE1C;&#xE48;&#xE32;&#xE19;!!! &#xE1C;&#xE21;&#xE01;&#xE47;&#xE44;&#xE21;&#xE48;&#xE23;&#xE39;&#xE49;&#xE27;&#xE48;&#xE32;&#xE17;&#xE33;&#xE44;&#xE21;&#xE19;&#xE30; &#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE40;&#xE04;&#xE49;&#xE32;&#xE01;&#xE47;&#xE44;&#xE21;&#xE48;&#xE44;&#xE14;&#xE49;&#xE1A;&#xE2D;&#xE01; &#xE2D;&#xE31;&#xE19;&#xE17;&#xE35;&#xE48;&#xE08;&#xE23;&#xE34;&#xE07;&#xE04;&#xE37;&#xE2D;&#xE40;&#xE04;&#xE49;&#xE32;&#xE2B;&#xE32;&#xE22;&#xE44;&#xE1B;&#xE40;&#xE25;&#xE22; &#xE40;&#xE07;&#xE35;&#xE22;&#xE1A;&#xE44;&#xE1B;&#xE40;&#xE25;&#xE22;&#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE01;&#xE31;&#xE1A;&#xE17;&#xE35;&#xE48; HR &#xE17;&#xE31;&#xE48;&#xE27;&#xE44;&#xE1B;&#xE40;&#xE04;&#xE49;&#xE32;&#xE17;&#xE33;&#xE01;&#xE31;&#xE19; ~ &#xE42;&#xE2D;&#xE40;&#xE04; &#xE44;&#xE21;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE44;&#xE23; &#xE40;&#xE23;&#xE32;&#xE1E;&#xE22;&#xE32;&#xE22;&#xE32;&#xE21;&#xE40;&#xE15;&#xE47;&#xE21;&#xE17;&#xE35;&#xE48;&#xE41;&#xE25;&#xE49;&#xE27; &#xE15;&#xE2D;&#xE19;&#xE19;&#xE31;&#xE49;&#xE19;&#xE01;&#xE47;&#xE1B;&#xE25;&#xE2D;&#xE1A;&#xE43;&#xE08;&#xE15;&#xE31;&#xE27;&#xE40;&#xE2D;&#xE07;&#xE27;&#xE48;&#xE32; &#xE16;&#xE36;&#xE07;&#xE22;&#xE31;&#xE07;&#xE44;&#xE21;&#xE48;&#xE44;&#xE14;&#xE49; &#xE41;&#xE15;&#xE48;&#xE40;&#xE23;&#xE32;&#xE01;&#xE47;&#xE21;&#xE35;&#xE07;&#xE32;&#xE19;&#xE40;&#xE14;&#xE34;&#xE21;&#xE19;&#xE48;&#xE30;&#xE19;&#xE30; &#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE40;&#xE14;&#xE34;&#xE21;&#xE44;&#xE1B;&#xE01;&#xE48;&#xE2D;&#xE19;&#xE2D;&#xE35;&#xE01;&#xE2A;&#xE31;&#xE01;&#xE1E;&#xE31;&#xE01;&#xE01;&#xE47;&#xE44;&#xE21;&#xE48;&#xE41;&#xE22;&#xE48;&#xE40;&#xE17;&#xE48;&#xE32;&#xE44;&#xE2B;&#xE23;&#xE48;&#xE2B;&#xE23;&#xE2D;&#xE01;</p><p>&#xE41;&#xE15;&#xE48;&#xE27;&#xE48;&#xE32; &#xE25;&#xE37;&#xE21;&#xE44;&#xE1B;&#xE23;&#xE36;&#xE40;&#xE1B;&#xE25;&#xE48;&#xE32;&#xE27;&#xE48;&#xE32;&#xE40;&#xE23;&#xE32;&#xE22;&#xE31;&#xE07;&#xE40;&#xE2B;&#xE25;&#xE37;&#xE2D;&#xE2D;&#xE35;&#xE01;&#xE17;&#xE35;&#xE48;&#xE19;&#xE36;&#xE07;&#xE43;&#xE2B;&#xE49;&#xE25;&#xE38;&#xE49;&#xE19; &#xE43;&#xE0A;&#xE48;&#xE41;&#xE25;&#xE49;&#xE27;&#xE04;&#xE23;&#xE31;&#xE1A; &#xA0;&#xE41;&#xE25;&#xE30;&#xE27;&#xE31;&#xE19;&#xE18;&#xE23;&#xE23;&#xE21;&#xE14;&#xE32;&#xE27;&#xE31;&#xE19;&#xE19;&#xE36;&#xE07; &#xE02;&#xE13;&#xE30;&#xE17;&#xE35;&#xE48;&#xE1C;&#xE21;&#xE01;&#xE33;&#xE25;&#xE31;&#xE07;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE1B;&#xE31;&#xE08;&#xE08;&#xE38;&#xE1A;&#xE31;&#xE19;&#xE15;&#xE32;&#xE21;&#xE1B;&#xE01;&#xE15;&#xE34;&#xE19;&#xE31;&#xE49;&#xE19; &#xE01;&#xE47;&#xE21;&#xE35;&#xE2A;&#xE32;&#xE22;&#xE42;&#xE17;&#xE23;&#xE40;&#xE02;&#xE49;&#xE32;&#xE21;&#xE32; &#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE1A;&#xE2D;&#xE23;&#xE4C;&#xE41;&#xE1B;&#xE25;&#xE01; &#xE1C;&#xE21;&#xE01;&#xE47;&#xE01;&#xE14;&#xE23;&#xE31;&#xE1A;&#xE44;&#xE1B;&#xE41;&#xE1A;&#xE1A;&#xE44;&#xE21;&#xE48;&#xE21;&#xE35;&#xE2A;&#xE15;&#xE34;&#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE01;&#xE33;&#xE25;&#xE31;&#xE07;&#xE27;&#xE38;&#xE48;&#xE19;&#xE01;&#xE31;&#xE1A;&#xE07;&#xE32;&#xE19; &#xE2A;&#xE23;&#xE38;&#xE1B;&#xE27;&#xE48;&#xE32;&#xE1B;&#xE25;&#xE32;&#xE22;&#xE2A;&#xE32;&#xE22;&#xE21;&#xE32;&#xE08;&#xE32;&#xE01; HR &#xE02;&#xE2D;&#xE07;&#xE1A;&#xE23;&#xE34;&#xE29;&#xE31;&#xE17;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE44;&#xE1B;&#xE2A;&#xE31;&#xE21;&#xE20;&#xE32;&#xE29;&#xE13;&#xE4C;&#xE17;&#xE35;&#xE48;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE2D;&#xE07; &#xE17;&#xE35;&#xE48;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE25;&#xE37;&#xE21;&#xE44;&#xE1B;&#xE41;&#xE25;&#xE49;&#xE27;&#xE27;&#xE48;&#xE32;&#xE40;&#xE04;&#xE22;&#xE44;&#xE1B; &#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE42;&#xE2D;&#xE01;&#xE32;&#xE2A;&#xE44;&#xE14;&#xE49;&#xE07;&#xE32;&#xE19;&#xE17;&#xE35;&#xE48;&#xE19;&#xE31;&#xE48;&#xE19;&#xE21;&#xE31;&#xE19;&#xE19;&#xE49;&#xE2D;&#xE22;&#xE27;&#xE48;&#xE32;&#xE17;&#xE35;&#xE48;&#xE41;&#xE23;&#xE01;&#xE21;&#xE32;&#xE01; (&#xE15;&#xE32;&#xE21;&#xE04;&#xE27;&#xE32;&#xE21;&#xE23;&#xE39;&#xE49;&#xE2A;&#xE36;&#xE01;&#xE15;&#xE31;&#xE27;&#xE40;&#xE2D;&#xE07;) &#xE41;&#xE15;&#xE48;&#xE1A;&#xE23;&#xE34;&#xE29;&#xE31;&#xE17;&#xE19;&#xE31;&#xE49;&#xE19;&#xE01;&#xE25;&#xE31;&#xE1A;&#xE40;&#xE2B;&#xE47;&#xE19;&#xE2D;&#xE30;&#xE44;&#xE23;&#xE1A;&#xE32;&#xE07;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE43;&#xE19;&#xE15;&#xE31;&#xE27;&#xE1C;&#xE21; &#xE41;&#xE25;&#xE30;&#xE15;&#xE31;&#xE14;&#xE2A;&#xE34;&#xE19;&#xE43;&#xE08;&#xE23;&#xE31;&#xE1A;&#xE1C;&#xE21;&#xE40;&#xE02;&#xE49;&#xE32;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19; &#xE27;&#xE34;&#xE19;&#xE32;&#xE17;&#xE35;&#xE17;&#xE35;&#xE48;&#xE23;&#xE39;&#xE49;&#xE15;&#xE31;&#xE27;&#xE27;&#xE48;&#xE32; &#xE40;&#xE23;&#xE32;&#xE01;&#xE33;&#xE25;&#xE31;&#xE07;&#xE08;&#xE30;&#xE44;&#xE14;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE42;&#xE1B;&#xE23;&#xE41;&#xE01;&#xE23;&#xE21;&#xE40;&#xE21;&#xE2D;&#xE23;&#xE4C;&#xE21;&#xE37;&#xE2D;&#xE2D;&#xE32;&#xE0A;&#xE35;&#xE1E;&#xE41;&#xE25;&#xE49;&#xE27;&#xE19;&#xE30;&#xE40;&#xE27;&#xE49;&#xE22; &#xE42;&#xE25;&#xE01;&#xE43;&#xE1A;&#xE43;&#xE2B;&#xE21;&#xE48;&#xE01;&#xE33;&#xE25;&#xE31;&#xE07;&#xE40;&#xE1B;&#xE34;&#xE14;&#xE1B;&#xE23;&#xE30;&#xE15;&#xE39;&#xE15;&#xE49;&#xE2D;&#xE19;&#xE23;&#xE31;&#xE1A;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE23;&#xE32;&#xE40;&#xE02;&#xE49;&#xE32;&#xE44;&#xE1B; &#xE1C;&#xE21;&#xE14;&#xE35;&#xE43;&#xE08;&#xE21;&#xE32;&#xE01; &#xE43;&#xE19;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE38;&#xE14;&#xE1C;&#xE25;&#xE1C;&#xE25;&#xE34;&#xE15;&#xE02;&#xE2D;&#xE07;&#xE04;&#xE27;&#xE32;&#xE21;&#xE21;&#xE35;&#xE27;&#xE34;&#xE19;&#xE31;&#xE22;&#xE15;&#xE25;&#xE2D;&#xE14;&#xE2B;&#xE25;&#xE32;&#xE22;&#xE40;&#xE14;&#xE37;&#xE2D;&#xE19;&#xE01;&#xE47;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32; &#xE41;&#xE15;&#xE48;&#xE19;&#xE35;&#xE48;&#xE21;&#xE31;&#xE19;&#xE08;&#xE30;&#xE44;&#xE21;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE08;&#xE38;&#xE14;&#xE2A;&#xE34;&#xE49;&#xE19;&#xE2A;&#xE38;&#xE14;&#xE41;&#xE19;&#xE48;&#xE19;&#xE2D;&#xE19; &#xE21;&#xE31;&#xE19;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE41;&#xE04;&#xE48;&#xE08;&#xE38;&#xE14;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE15;&#xE49;&#xE19;&#xE02;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE01;&#xE49;&#xE32;&#xE27;&#xE40;&#xE02;&#xE49;&#xE32;&#xE44;&#xE1B;&#xE2A;&#xE39;&#xE48;&#xE22;&#xE38;&#xE17;&#xE18;&#xE20;&#xE1E;&#xE02;&#xE2D;&#xE07;&#xE27;&#xE07;&#xE01;&#xE32;&#xE23;&#xE44;&#xE2D;&#xE17;&#xE35; &#xE17;&#xE35;&#xE48; Novice &#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE1C;&#xE21;&#xE08;&#xE30;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE40;&#xE08;&#xE2D;&#xE15;&#xE48;&#xE2D;&#xE08;&#xE32;&#xE01;&#xE19;&#xE35;&#xE49;</p><figure class="kg-card kg-image-card"><img src="https://toupawa.com/content/images/2023/01/pointing-at-computer-screen-2022-11-14-06-39-27-utc.jpg" class="kg-image" alt="[&#xE23;&#xE35;&#xE27;&#xE34;&#xE27;]&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE2B;&#xE19;&#xE38;&#xE48;&#xE21;&#xE42;&#xE23;&#xE07;&#xE07;&#xE32;&#xE19; &#xE22;&#xE49;&#xE32;&#xE22;&#xE2A;&#xE32;&#xE22;&#xE44;&#xE1B;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE42;&#xE1B;&#xE23;&#xE41;&#xE01;&#xE23;&#xE21;&#xE40;&#xE21;&#xE2D;&#xE23;&#xE4C;" loading="lazy" width="2000" height="1335" srcset="https://toupawa.com/content/images/size/w600/2023/01/pointing-at-computer-screen-2022-11-14-06-39-27-utc.jpg 600w, https://toupawa.com/content/images/size/w1000/2023/01/pointing-at-computer-screen-2022-11-14-06-39-27-utc.jpg 1000w, https://toupawa.com/content/images/size/w1600/2023/01/pointing-at-computer-screen-2022-11-14-06-39-27-utc.jpg 1600w, https://toupawa.com/content/images/size/w2400/2023/01/pointing-at-computer-screen-2022-11-14-06-39-27-utc.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><h2 id="%E0%B8%97%E0%B8%B3%E0%B8%87%E0%B8%B2%E0%B8%99%E0%B9%84%E0%B8%9B%E0%B9%81%E0%B8%A5%E0%B9%89%E0%B8%A7%E0%B9%80%E0%B8%9B%E0%B9%87%E0%B8%99%E0%B8%A2%E0%B8%B1%E0%B8%87%E0%B9%84%E0%B8%87">&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE44;&#xE1B;&#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE22;&#xE31;&#xE07;&#xE44;&#xE07;</h2>
<!--kg-card-end: markdown--><p>&#xE2B;&#xE25;&#xE31;&#xE07;&#xE08;&#xE32;&#xE01;&#xE17;&#xE35;&#xE48;&#xE1C;&#xE21;&#xE44;&#xE14;&#xE49;&#xE40;&#xE02;&#xE49;&#xE32;&#xE21;&#xE32;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE42;&#xE1B;&#xE23;&#xE41;&#xE01;&#xE23;&#xE21;&#xE40;&#xE21;&#xE2D;&#xE23;&#xE4C;&#xE08;&#xE23;&#xE34;&#xE07;&#xE08;&#xE31;&#xE07;&#xE41;&#xE25;&#xE49;&#xE27; &#xE01;&#xE47;&#xE21;&#xE35;&#xE04;&#xE27;&#xE32;&#xE21;&#xE40;&#xE02;&#xE49;&#xE32;&#xE43;&#xE08;&#xE43;&#xE19;&#xE20;&#xE32;&#xE1E;&#xE23;&#xE27;&#xE21;&#xE02;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE23;&#xE30;&#xE1A;&#xE1A;&#xE43;&#xE2B;&#xE0D;&#xE48;&#xE46;&#xE21;&#xE32;&#xE01;&#xE02;&#xE36;&#xE49;&#xE19; &#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE44;&#xE14;&#xE49;&#xE25;&#xE2D;&#xE07;&#xE43;&#xE0A;&#xE49; Tool &#xE43;&#xE2B;&#xE21;&#xE48;&#xE46;&#xE21;&#xE32;&#xE01;&#xE02;&#xE36;&#xE49;&#xE19; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE1B;&#xE23;&#xE30;&#xE2A;&#xE1A;&#xE01;&#xE32;&#xE23;&#xE13;&#xE4C;&#xE17;&#xE35;&#xE48;&#xE44;&#xE14;&#xE49;&#xE19;&#xE31;&#xE49;&#xE19; &#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE2A;&#xE34;&#xE48;&#xE07;&#xE17;&#xE35;&#xE48;&#xE2B;&#xE32;&#xE44;&#xE21;&#xE48;&#xE44;&#xE14;&#xE49;&#xE08;&#xE32;&#xE01;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE42;&#xE1B;&#xE23;&#xE40;&#xE08;&#xE04;&#xE40;&#xE14;&#xE35;&#xE48;&#xE22;&#xE27; &#xE2B;&#xE23;&#xE37;&#xE2D;&#xE07;&#xE32;&#xE19;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE15;&#xE31;&#xE27;&#xE40;&#xE25;&#xE22;&#xE04;&#xE23;&#xE31;&#xE1A; &#xE04;&#xE37;&#xE2D;&#xE27;&#xE48;&#xE32;&#xE15;&#xE32;&#xE21;&#xE15;&#xE23;&#xE07;&#xE21;&#xE31;&#xE19;&#xE40;&#xE2B;&#xE19;&#xE37;&#xE48;&#xE2D;&#xE22;&#xE02;&#xE36;&#xE49;&#xE19;&#xE19;&#xE30; &#xE1B;&#xE27;&#xE14;&#xE2B;&#xE25;&#xE31;&#xE07;&#xE21;&#xE32;&#xE01;&#xE02;&#xE36;&#xE49;&#xE19;&#xE14;&#xE49;&#xE27;&#xE22; &#xE41;&#xE15;&#xE48;&#xE14;&#xE49;&#xE27;&#xE22;&#xE40;&#xE19;&#xE37;&#xE49;&#xE2D;&#xE07;&#xE32;&#xE19;&#xE21;&#xE31;&#xE19;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE0A;&#xE2D;&#xE1A; &#xE01;&#xE47;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE17;&#xE33;&#xE44;&#xE14;&#xE49;&#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE22;&#xE46;&#xE43;&#xE19;&#xE17;&#xE38;&#xE01;&#xE46;&#xE27;&#xE31;&#xE19;&#xE17;&#xE35;&#xE48;&#xE15;&#xE37;&#xE48;&#xE19; &#xE44;&#xE21;&#xE48;&#xE23;&#xE39;&#xE49;&#xE2A;&#xE36;&#xE01;&#xE40;&#xE1A;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE32;&#xE19;&#xE41;&#xE1A;&#xE1A;&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE01;&#xE48;&#xE2D;&#xE19;&#xE2D;&#xE35;&#xE01;&#xE15;&#xE48;&#xE2D;&#xE44;&#xE1B;</p><!--kg-card-begin: markdown--><h2 id="%E0%B8%AB%E0%B8%A5%E0%B8%B1%E0%B8%87%E0%B8%88%E0%B8%B2%E0%B8%81%E0%B8%99%E0%B8%B5%E0%B9%89%E0%B8%A5%E0%B9%88%E0%B8%B0">&#xE2B;&#xE25;&#xE31;&#xE07;&#xE08;&#xE32;&#xE01;&#xE19;&#xE35;&#xE49;&#xE25;&#xE48;&#xE30;</h2>
<!--kg-card-end: markdown--><p>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE44;&#xE1B;&#xE2A;&#xE31;&#xE01;&#xE1E;&#xE31;&#xE01; &#xE40;&#xE23;&#xE32;&#xE01;&#xE47;&#xE21;&#xE31;&#xE01;&#xE08;&#xE30;&#xE2B;&#xE32;&#xE04;&#xE27;&#xE32;&#xE21;&#xE17;&#xE49;&#xE32;&#xE17;&#xE32;&#xE22;&#xE43;&#xE2B;&#xE21;&#xE48;&#xE46;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE40;&#xE2A;&#xE21;&#xE2D; &#xE02;&#xE2D;&#xE07;&#xE1C;&#xE21;&#xE40;&#xE2D;&#xE07;&#xE01;&#xE47;&#xE40;&#xE0A;&#xE48;&#xE19;&#xE01;&#xE31;&#xE19; &#xE1C;&#xE21;&#xE44;&#xE14;&#xE49;&#xE15;&#xE31;&#xE49;&#xE07;&#xE40;&#xE1B;&#xE49;&#xE32;&#xE2B;&#xE21;&#xE32;&#xE22;&#xE44;&#xE27;&#xE49;&#xE27;&#xE48;&#xE32; &#xE08;&#xE30;&#xE2A;&#xE2D;&#xE1A; certificate &#xE43;&#xE2B;&#xE49;&#xE44;&#xE14;&#xE49;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE19;&#xE49;&#xE2D;&#xE22;&#xE46;&#xE2B;&#xE19;&#xE36;&#xE48;&#xE07;&#xE43;&#xE1A;&#xE02;&#xE36;&#xE49;&#xE19;&#xE44;&#xE1B; &#xE42;&#xE14;&#xE22;&#xE40;&#xE1B;&#xE47;&#xE19; global cert &#xE17;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE23;&#xE39;&#xE49;&#xE08;&#xE31;&#xE01;&#xE01;&#xE31;&#xE19; &#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE40;&#xE0A;&#xE48;&#xE19; AWS, GCP &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE23;&#xE32;&#xE21;&#xE35; verified skill &#xE44;&#xE1B;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE43;&#xE19;&#xE23;&#xE30;&#xE14;&#xE31;&#xE1A;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE39;&#xE07;&#xE02;&#xE36;&#xE49;&#xE19;&#xE44;&#xE1B; &#xE41;&#xE25;&#xE30;&#xE2D;&#xE32;&#xE08;&#xE08;&#xE30;&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21;&#xE40;&#xE15;&#xE34;&#xE21;&#xE04;&#xE27;&#xE32;&#xE21;&#xE23;&#xE39;&#xE49;&#xE14;&#xE49;&#xE32;&#xE19;&#xE2D;&#xE37;&#xE48;&#xE19;&#xE46;&#xE43;&#xE2B;&#xE49;&#xE21;&#xE32;&#xE01;&#xE02;&#xE36;&#xE49;&#xE19; &#xE17;&#xE31;&#xE49;&#xE07;&#xE43;&#xE19;&#xE14;&#xE49;&#xE32;&#xE19; hard skill &#xE41;&#xE25;&#xE30; soft skill &#xE04;&#xE23;&#xE31;&#xE1A;</p><p>&#xE17;&#xE31;&#xE49;&#xE07;&#xE2B;&#xE21;&#xE14;&#xE19;&#xE35;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19; &#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE23;&#xE32;&#xE27;&#xE04;&#xE23;&#xE48;&#xE32;&#xE27;&#xE46; (~&#xE40;&#xE2B;&#xE23;&#xE2D;&#xE2D;&#xE2D;) &#xE02;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE40;&#xE14;&#xE34;&#xE19;&#xE17;&#xE32;&#xE07;&#xE21;&#xE32;&#xE16;&#xE36;&#xE07;&#xE40;&#xE2A;&#xE49;&#xE19;&#xE17;&#xE32;&#xE07;&#xE2A;&#xE32;&#xE22;&#xE42;&#xE1B;&#xE23;&#xE41;&#xE01;&#xE23;&#xE21;&#xE40;&#xE21;&#xE2D;&#xE23;&#xE4C;&#xE02;&#xE2D;&#xE07;&#xE1C;&#xE21; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE21;&#xE35;&#xE17;&#xE31;&#xE49;&#xE07;&#xE04;&#xE27;&#xE32;&#xE21;&#xE2A;&#xE38;&#xE02; &#xE04;&#xE27;&#xE32;&#xE21;&#xE17;&#xE38;&#xE01;&#xE02;&#xE4C;&#xE1B;&#xE19;&#xE46;&#xE01;&#xE31;&#xE19;&#xE44;&#xE1B; &#xE1C;&#xE21;&#xE40;&#xE2D;&#xE07;&#xE01;&#xE47;&#xE44;&#xE21;&#xE48;&#xE43;&#xE0A;&#xE48;&#xE04;&#xE19;&#xE17;&#xE35;&#xE48;&#xE40;&#xE01;&#xE48;&#xE07;&#xE21;&#xE32;&#xE01;&#xE21;&#xE32;&#xE22;&#xE2D;&#xE30;&#xE44;&#xE23; &#xE41;&#xE15;&#xE48;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE1B;&#xE49;&#xE32;&#xE2B;&#xE21;&#xE32;&#xE22;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE23;&#xE31;&#xE01;&#xE41;&#xE25;&#xE49;&#xE27; &#xE02;&#xE2D;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE23;&#xE32;&#xE15;&#xE31;&#xE49;&#xE07;&#xE43;&#xE08;&#xE17;&#xE33;&#xE15;&#xE31;&#xE27;&#xE40;&#xE2D;&#xE07;&#xE43;&#xE2B;&#xE49;&#xE1E;&#xE23;&#xE49;&#xE2D;&#xE21; &#xE16;&#xE49;&#xE32;&#xE21;&#xE35;&#xE42;&#xE2D;&#xE01;&#xE32;&#xE2A; &#xE02;&#xE2D;&#xE41;&#xE04;&#xE48;&#xE04;&#xE23;&#xE31;&#xE49;&#xE07;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;&#xE17;&#xE35;&#xE48;&#xE21;&#xE31;&#xE19;&#xE08;&#xE30;&#xE21;&#xE32;&#xE2B;&#xE32;&#xE40;&#xE23;&#xE32; &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE44;&#xE21;&#xE48;&#xE25;&#xE31;&#xE07;&#xE40;&#xE25;&#xE40;&#xE25;&#xE22;&#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE04;&#xE27;&#xE49;&#xE32;&#xE21;&#xE31;&#xE19;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49;&#xE04;&#xE23;&#xE31;&#xE1A; &#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE23;&#xE35;&#xE27;&#xE34;&#xE27;&#xE19;&#xE35;&#xE49; &#xE01;&#xE47;&#xE02;&#xE2D;&#xE08;&#xE1A;&#xE40;&#xE1E;&#xE35;&#xE22;&#xE07;&#xE40;&#xE17;&#xE48;&#xE32;&#xE19;&#xE35;&#xE49;&#xE04;&#xE23;&#xE31;&#xE1A; &#xE41;&#xE25;&#xE49;&#xE27;&#xE1E;&#xE1A;&#xE01;&#xE31;&#xE19;&#xE43;&#xE2B;&#xE21;&#xE48;&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE04;&#xE23;&#xE31;&#xE1A; &#xE2A;&#xE31;&#xE0D;&#xE0D;&#xE32;&#xE27;&#xE48;&#xE32;&#xE2B;&#xE25;&#xE31;&#xE07;&#xE08;&#xE32;&#xE01;&#xE19;&#xE35;&#xE49;&#xE08;&#xE30;&#xE01;&#xE25;&#xE31;&#xE1A;&#xE21;&#xE32;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19;&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE25;&#xE07;&#xE40;&#xE27;&#xE47;&#xE1A;&#xE43;&#xE2B;&#xE49;&#xE21;&#xE32;&#xE01;&#xE02;&#xE36;&#xE49;&#xE19; &#xE1A;&#xE32;&#xE22;&#xE22;</p>]]></content:encoded></item><item><title><![CDATA[CRUD Rest API โดยใช้ Express ของ Node.js]]></title><description><![CDATA[การใช้ Node.js เพื่อสร้าง Rest API เชื่อมต่อ MongoDB เบื้องต้น]]></description><link>https://toupawa.com/crud-rest-api-using-express-of-node-js/</link><guid isPermaLink="false">60a59ed8245b8904dac7fe24</guid><category><![CDATA[Node.js]]></category><category><![CDATA[web]]></category><category><![CDATA[MongoDB]]></category><dc:creator><![CDATA[TPW]]></dc:creator><pubDate>Mon, 24 May 2021 01:00:00 GMT</pubDate><media:content url="https://toupawa.com/content/images/2021/05/crud-express-mongo.png" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://toupawa.com/content/images/2021/05/crud-express-mongo.png" alt="CRUD Rest API &#xE42;&#xE14;&#xE22;&#xE43;&#xE0A;&#xE49; Express &#xE02;&#xE2D;&#xE07; Node.js"><p>&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE19;&#xE35;&#xE49; &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE01;&#xE25;&#xE31;&#xE1A;&#xE21;&#xE32;&#xE1E;&#xE39;&#xE14;&#xE16;&#xE36;&#xE07;&#xE42;&#xE25;&#xE01;&#xE02;&#xE2D;&#xE07; Node &#xE2D;&#xE35;&#xE01;&#xE04;&#xE23;&#xE31;&#xE49;&#xE07; &#xE2B;&#xE25;&#xE31;&#xE07;&#xE08;&#xE32;&#xE01;&#xE17;&#xE35;&#xE48;&#xE44;&#xE1B;&#xE07;&#xE21;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE01;&#xE31;&#xE1A; Flutter &#xE21;&#xE32;&#xE1E;&#xE31;&#xE01;&#xE43;&#xE2B;&#xE0D;&#xE48;&#xE46; (&#xE0B;&#xE36;&#xE48;&#xE07;&#xE2A;&#xE19;&#xE38;&#xE01;&#xE21;&#xE32;&#xE01; &#xE41;&#xE25;&#xE30;&#xE01;&#xE33;&#xE25;&#xE31;&#xE07;&#xE08;&#xE30;&#xE21;&#xE35; Flutter 2 &#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE14;&#xE49;&#xE27;&#xE22; &#xE40;&#xE2B;&#xE47;&#xE19;&#xE27;&#xE48;&#xE32;&#xE04;&#xE23;&#xE32;&#xE27;&#xE19;&#xE35;&#xE49;&#xE23;&#xE2D;&#xE07;&#xE23;&#xE31;&#xE1A; web &#xE41;&#xE1A;&#xE1A;&#xE40;&#xE15;&#xE47;&#xE21;&#xE2A;&#xE15;&#xE23;&#xE35;&#xE21;) &#xE43;&#xE19;&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE19;&#xE35;&#xE49;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE01;&#xE32;&#xE23;&#xE08;&#xE14;&#xE1A;&#xE31;&#xE19;&#xE17;&#xE36;&#xE01;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; <strong>Rest API</strong> &#xE43;&#xE0A;&#xE49;&#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A; &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;, &#xE14;&#xE36;&#xE07;, &#xE41;&#xE01;&#xE49;&#xE44;&#xE02; &#xE41;&#xE25;&#xE30;&#xE25;&#xE1A;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25; (Create, Read, Update, Delete : CRUD)<br>
&#xE42;&#xE14;&#xE22;&#xE40;&#xE23;&#xE32;&#xE44;&#xE14;&#xE49;&#xE21;&#xE35;&#xE42;&#xE2D;&#xE01;&#xE32;&#xE2A;&#xE19;&#xE31;&#xE48;&#xE07;&#xE14;&#xE39;&#xE04;&#xE25;&#xE34;&#xE1B;&#xE2A;&#xE2D;&#xE19;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; CRUD &#xE41;&#xE25;&#xE30;&#xE43;&#xE0A;&#xE49;&#xE01;&#xE31;&#xE1A; React &#xE02;&#xE2D;&#xE07; <a href="http://https://www.youtube.com/watch?v=-RCZ0rZvoAU">&#xE04;&#xE38;&#xE13;&#xE1B;&#xE0F;&#xE34;&#xE20;&#xE32;&#xE13;</a> &#xE40;&#xE04;&#xE49;&#xE32;&#xE2A;&#xE2D;&#xE19;&#xE04;&#xE48;&#xE2D;&#xE19;&#xE02;&#xE49;&#xE32;&#xE07;&#xE14;&#xE35;&#xE40;&#xE25;&#xE22; &#xE40;&#xE04;&#xE25;&#xE35;&#xE22;&#xE23;&#xE4C;&#xE21;&#xE32;&#xE01; &#xE43;&#xE19;&#xE04;&#xE25;&#xE34;&#xE1B;&#xE21;&#xE35;&#xE2A;&#xE2D;&#xE19;&#xE27;&#xE34;&#xE18;&#xE35;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; Backend Application &#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19; API &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE23;&#xE2D; Request &#xE01;&#xE32;&#xE23;&#xE23;&#xE31;&#xE1A;-&#xE2A;&#xE48;&#xE07;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE08;&#xE32;&#xE01; Frontend &#xE04;&#xE37;&#xE2D; React &#xE19;&#xE31;&#xE48;&#xE19;&#xE40;&#xE2D;&#xE07; &#xE14;&#xE31;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; API &#xE02;&#xE2D;&#xE2A;&#xE23;&#xE38;&#xE1B;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE02;&#xE31;&#xE49;&#xE19;&#xE15;&#xE2D;&#xE19;&#xE14;&#xE31;&#xE07;&#xE15;&#xE48;&#xE2D;&#xE44;&#xE1B;&#xE19;&#xE35;&#xE49; &#xE44;&#xE1B;&#xE14;&#xE39;&#xE01;&#xE31;&#xE19;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E0%B8%95%E0%B8%B4%E0%B8%94%E0%B8%95%E0%B8%B1%E0%B9%89%E0%B8%87-node-%E0%B9%81%E0%B8%A5%E0%B8%B0-libraries">&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Node &#xE41;&#xE25;&#xE30; Libraries</h2>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE08;&#xE32;&#xE01;&#xE40;&#xE23;&#xE32;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; folder &#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE01;&#xE48;&#xE2D;&#xE19; &#xE40;&#xE1B;&#xE34;&#xE14; Terminal &#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32; direct &#xE44;&#xE1B;&#xE22;&#xE31;&#xE07; folder &#xE41;&#xE25;&#xE49;&#xE27;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; json file &#xE41;&#xE25;&#xE30; library &#xE02;&#xE2D;&#xE07; Node &#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE42;&#xE14;&#xE22;&#xE43;&#xE0A;&#xE49;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;</p>
<pre><code>npm init
</code></pre>
<p>&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE16;&#xE49;&#xE32;&#xE2D;&#xE22;&#xE32;&#xE01;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE41;&#xE1A;&#xE1A; set dafault &#xE40;&#xE25;&#xE22;&#xE01;&#xE47;&#xE43;&#xE0A;&#xE49;</p>
<pre><code>npm init -y
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE23;&#xE2D;&#xE08;&#xE19;&#xE42;&#xE2B;&#xE25;&#xE14;&#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE41;&#xE25;&#xE49;&#xE27; &#xE43;&#xE2B;&#xE49;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; library 4 &#xE2D;&#xE31;&#xE19;&#xE04;&#xE37;&#xE2D; <code>body-parser</code>, <code>cors</code>, <code>express</code>, <code>mongoose</code></p>
<pre><code>npm i body-parser cors express mongoose
</code></pre>
<p>&#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19; &#xE17;&#xE33;&#xE01;&#xE32;&#xE23;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; nodemon &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE2B;&#xE49;&#xE23;&#xE31;&#xE19;&#xE44;&#xE1F;&#xE25;&#xE4C;&#xE44;&#xE14;&#xE49;&#xE41;&#xE1A;&#xE1A;&#xE15;&#xE48;&#xE2D;&#xE40;&#xE19;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE44;&#xE21;&#xE48;&#xE2B;&#xE25;&#xE38;&#xE14; &#xE16;&#xE36;&#xE07;&#xE41;&#xE21;&#xE49;&#xE23;&#xE30;&#xE2B;&#xE27;&#xE48;&#xE32;&#xE07;&#xE17;&#xE32;&#xE07;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE42;&#xE04;&#xE49;&#xE14; &#xE08;&#xE30;&#xE40;&#xE08;&#xE2D; error &#xE43;&#xE14;&#xE46;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>npm i nodemon --save-dev
</code></pre>
<p>&#xE17;&#xE35;&#xE48;&#xE43;&#xE2A;&#xE48; <code>--save-dev</code> &#xE40;&#xE1E;&#xE34;&#xE48;&#xE21;&#xE40;&#xE02;&#xE49;&#xE32;&#xE21;&#xE32;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE43;&#xE2B;&#xE49;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; nodemon &#xE43;&#xE2B;&#xE49;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE43;&#xE19;&#xE42;&#xE2B;&#xE21;&#xE14; development</p>
<p>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE41;&#xE25;&#xE49;&#xE27; &#xE40;&#xE02;&#xE49;&#xE32;&#xE44;&#xE1B;&#xE40;&#xE0A;&#xE47;&#xE04;&#xE01;&#xE32;&#xE23;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07;&#xE44;&#xE14;&#xE49;&#xE17;&#xE35;&#xE48; <code>package.json</code></p>
<p>&#xE40;&#xE02;&#xE49;&#xE32;&#xE44;&#xE1B;&#xE43;&#xE19;&#xE2A;&#xE48;&#xE27;&#xE19; scripts &#xE43;&#xE2B;&#xE49;&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21; server key &#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<pre><code>&quot;server&quot;: &quot;nodemon index&quot;
</code></pre>
<p>&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE0A;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;&#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE2A;&#xE31;&#xE48;&#xE07;&#xE23;&#xE31;&#xE19;&#xE14;&#xE49;&#xE27;&#xE22; nodemon start file index &#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE19;&#xE31;&#xE48;&#xE19;&#xE40;&#xE2D;&#xE07; &#xE40;&#xE27;&#xE25;&#xE32;&#xE2A;&#xE31;&#xE48;&#xE07;&#xE23;&#xE31;&#xE19;&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE43;&#xE0A;&#xE49;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;&#xE19;&#xE35;&#xE49;</p>
<pre><code>npm run server
</code></pre>
<p>Node &#xE08;&#xE30;&#xE44;&#xE1B;&#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE43;&#xE0A;&#xE49; scripts &#xE15;&#xE23;&#xE07;&#xE2A;&#xE48;&#xE27;&#xE19; sever &#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE44;&#xE14;&#xE49;&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21;&#xE40;&#xE02;&#xE49;&#xE32;&#xE44;&#xE1B;&#xE43;&#xE2B;&#xE49;&#xE21;&#xE32;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19; &#xE41;&#xE25;&#xE30;&#xE08;&#xE30;&#xE2A;&#xE15;&#xE32;&#xE23;&#xE4C;&#xE17;&#xE15;&#xE32;&#xE21;&#xE17;&#xE35;&#xE48;&#xE44;&#xE14;&#xE49;&#xE2D;&#xE18;&#xE34;&#xE1A;&#xE32;&#xE22;&#xE44;&#xE1B;&#xE02;&#xE49;&#xE32;&#xE07;&#xE1A;&#xE19;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="%E0%B9%80%E0%B8%82%E0%B8%B5%E0%B8%A2%E0%B8%99-api">&#xE40;&#xE02;&#xE35;&#xE22;&#xE19; API</h2>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE17;&#xE33;&#xE01;&#xE32;&#xE23;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07;&#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE41;&#xE25;&#xE49;&#xE27; &#xE15;&#xE48;&#xE2D;&#xE21;&#xE32;&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE17;&#xE33;&#xE01;&#xE32;&#xE23;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19; API &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE2B;&#xE49; client &#xE22;&#xE34;&#xE07;&#xE04;&#xE33;&#xE02;&#xE2D; (request) &#xE21;&#xE32;&#xE22;&#xE31;&#xE07; server &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE2A;&#xE48;&#xE07;&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE23;&#xE31;&#xE1A;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25; &#xE23;&#xE27;&#xE21;&#xE17;&#xE31;&#xE49;&#xE07;&#xE22;&#xE31;&#xE07;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE41;&#xE01;&#xE49;&#xE44;&#xE02;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE48;&#xE07;&#xE21;&#xE32;&#xE01;&#xE48;&#xE2D;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32; &#xE41;&#xE25;&#xE30;&#xE25;&#xE1A;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE44;&#xE21;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE44;&#xE14;&#xE49; &#xE0B;&#xE36;&#xE48;&#xE07; Node &#xE01;&#xE47;&#xE2D;&#xE19;&#xE38;&#xE0D;&#xE32;&#xE15;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19; API &#xE41;&#xE1A;&#xE1A; free style &#xE08;&#xE30;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19;&#xE17;&#xE38;&#xE01;&#xE46; module &#xE44;&#xE27;&#xE49;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;&#xE01;&#xE31;&#xE19;&#xE2B;&#xE21;&#xE14;&#xE01;&#xE47;&#xE44;&#xE14;&#xE49; &#xE2B;&#xE23;&#xE37;&#xE2D;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19;&#xE41;&#xE22;&#xE01;&#xE41;&#xE25;&#xE49;&#xE27;&#xE04;&#xE48;&#xE2D;&#xE22;&#xE40;&#xE2D;&#xE32;&#xE21;&#xE32;&#xE1B;&#xE23;&#xE30;&#xE01;&#xE2D;&#xE1A;&#xE23;&#xE48;&#xE32;&#xE07;&#xE01;&#xE31;&#xE19;&#xE01;&#xE47;&#xE44;&#xE14;&#xE49; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE19;&#xE35;&#xE49;&#xE08;&#xE30;&#xE02;&#xE2D;&#xE43;&#xE0A;&#xE49;&#xE27;&#xE34;&#xE18;&#xE35;&#xE2B;&#xE25;&#xE31;&#xE07; &#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE07;&#xE48;&#xE32;&#xE22;&#xE15;&#xE48;&#xE2D;&#xE01;&#xE32;&#xE23;&#xE2D;&#xE48;&#xE32;&#xE19;&#xE42;&#xE04;&#xE49;&#xE14;&#xE43;&#xE19;&#xE20;&#xE32;&#xE22;&#xE20;&#xE32;&#xE04;&#xE2B;&#xE19;&#xE49;&#xE32; &#xE27;&#xE48;&#xE32;&#xE41;&#xE25;&#xE49;&#xE27;&#xE01;&#xE47;&#xE21;&#xE32;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE17;&#xE33;&#xE15;&#xE32;&#xE21;&#xE02;&#xE31;&#xE49;&#xE19;&#xE15;&#xE2D;&#xE19;&#xE14;&#xE31;&#xE07;&#xE15;&#xE48;&#xE2D;&#xE44;&#xE1B;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87-database">&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; database</h3>
<p>&#xE15;&#xE48;&#xE2D;&#xE21;&#xE32;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; database &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE0A;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE17;&#xE35;&#xE48;&#xE40;&#xE01;&#xE47;&#xE1A;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE17;&#xE31;&#xE49;&#xE07;&#xE2B;&#xE21;&#xE14;&#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE23;&#xE31;&#xE1A;&#xE40;&#xE02;&#xE49;&#xE32;&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE2A;&#xE48;&#xE07;&#xE2D;&#xE2D;&#xE01;&#xE44;&#xE1B;&#xE22;&#xE31;&#xE07; client &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE42;&#xE14;&#xE22; &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; file &#xE0A;&#xE37;&#xE48;&#xE2D; <code>db.js</code> &#xE20;&#xE32;&#xE22;&#xE43;&#xE19;&#xE42;&#xE1F;&#xE25;&#xE40;&#xE14;&#xE2D;&#xE23;&#xE4C; database</p>
<pre><code>//db.js
module.exports = {
  db: &quot;mongodb://localhost:27017/reactdb&quot;
};
</code></pre>
<p>&#xE43;&#xE19;&#xE17;&#xE35;&#xE48;&#xE19;&#xE35;&#xE49; &#xE40;&#xE23;&#xE32;&#xE15;&#xE31;&#xE49;&#xE07;&#xE0A;&#xE37;&#xE48;&#xE2D; database &#xE0A;&#xE37;&#xE48;&#xE2D;&#xE27;&#xE48;&#xE32; <code>reactdb</code> &#xE0B;&#xE36;&#xE48;&#xE07;&#xE40;&#xE23;&#xE32;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE15;&#xE31;&#xE49;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE2D;&#xE30;&#xE44;&#xE23;&#xE01;&#xE47;&#xE44;&#xE14;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87-models">&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; models</h3>
<p>&#xE17;&#xE33;&#xE01;&#xE32;&#xE23;&#xE15;&#xE31;&#xE49;&#xE07;&#xE42;&#xE1F;&#xE25;&#xE40;&#xE14;&#xE2D;&#xE23;&#xE4C; &#xE0A;&#xE37;&#xE48;&#xE2D;&#xE27;&#xE48;&#xE32; models &#xE41;&#xE25;&#xE30;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE44;&#xE1F;&#xE25;&#xE4C;&#xE20;&#xE32;&#xE22;&#xE43;&#xE19; &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE1B;&#xE47;&#xE19; schema &#xE2B;&#xE23;&#xE37;&#xE2D;&#xE42;&#xE04;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE01;&#xE32;&#xE23;&#xE08;&#xE31;&#xE14;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE43;&#xE19;&#xE10;&#xE32;&#xE19;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25; &#xE43;&#xE19;&#xE17;&#xE35;&#xE48;&#xE19;&#xE35;&#xE49;&#xE40;&#xE23;&#xE32;&#xE08;&#xE30; import mongoose &#xE40;&#xE02;&#xE49;&#xE32;&#xE21;&#xE32;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19;</p>
<pre><code>//Stormtrooper.js
const mongoose = require(&quot;mongoose&quot;);
const Schema = mongoose.Schema;

let StormtrooperSchema = new Schema(
  {
    name: {
      type: String,
    },
    email: {
      type: String,
    },
    rollno: {
      type: Number,
    },
  },
  { collection: &quot;stormtrooper&quot; }
);

module.exports = mongoose.model(&quot;stormtrooper&quot;, StormtrooperSchema);
</code></pre>
<p>&#xE08;&#xE32;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07; &#xE40;&#xE23;&#xE32;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23; StormtrooperSchema &#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49;&#xE40;&#xE01;&#xE47;&#xE1A;&#xE04;&#xE48;&#xE32;&#xE42;&#xE04;&#xE23;&#xE07;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE17;&#xE35;&#xE48;&#xE2D;&#xE2D;&#xE01;&#xE41;&#xE1A;&#xE1A;&#xE21;&#xE32; &#xE44;&#xE14;&#xE49;&#xE41;&#xE01;&#xE48; <code>name</code> &#xE08;&#xE30;&#xE40;&#xE01;&#xE47;&#xE1A;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A; String, <code>email</code> &#xE40;&#xE01;&#xE47;&#xE1A;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A; String, &#xE41;&#xE25;&#xE30; <code>rollno</code> &#xE40;&#xE01;&#xE47;&#xE1A;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE19;&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A; Number<br>
&#xE2A;&#xE48;&#xE27;&#xE19;&#xE0A;&#xE37;&#xE48;&#xE2D; collection &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE43;&#xE0A;&#xE49;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE27;&#xE48;&#xE32; <code>stormtrooper</code><br>
&#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19;&#xE43;&#xE2B;&#xE49;&#xE2A;&#xE48;&#xE07;&#xE2D;&#xE2D;&#xE01; (export) &#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;<code>mongoose.model()</code> &#xE0B;&#xE36;&#xE48;&#xE07;&#xE43;&#xE2A;&#xE48; argument &#xE2A;&#xE2D;&#xE07;&#xE15;&#xE31;&#xE27; &#xE04;&#xE37;&#xE2D; &#xE0A;&#xE37;&#xE48;&#xE2D; collection &#xE41;&#xE25;&#xE30;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE17;&#xE35;&#xE48;&#xE40;&#xE01;&#xE47;&#xE1A;&#xE04;&#xE48;&#xE32; schema</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87-routes">&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; routes</h3>
<p>&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE17;&#xE33;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; route &#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE0A;&#xE48;&#xE2D;&#xE07;&#xE17;&#xE32;&#xE07;&#xE15;&#xE34;&#xE14;&#xE15;&#xE48;&#xE2D;&#xE01;&#xE31;&#xE1A; server &#xE02;&#xE2D;&#xE07; client &#xE42;&#xE14;&#xE22;&#xE08;&#xE30;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE08;&#xE32;&#xE01;&#xE01;&#xE32;&#xE23; import lib &#xE17;&#xE35;&#xE48;&#xE08;&#xE33;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE02;&#xE49;&#xE32;&#xE21;&#xE32;&#xE01;&#xE48;&#xE2D;&#xE19; &#xE41;&#xE25;&#xE30;&#xE23;&#xE27;&#xE21;&#xE16;&#xE36;&#xE07; schema &#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE44;&#xE1B;&#xE01;&#xE48;&#xE2D;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE14;&#xE49;&#xE27;&#xE22;</p>
<pre><code>let mongoose = require(&quot;mongoose&quot;),
  express = require(&quot;express&quot;),
  router = express.Router();

// Stormtrooper Model
let StormtrooperSchema = require(&quot;../models/Stormtrooper&quot;);
</code></pre>
<p>&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19; <code>post()</code> &#xE42;&#xE14;&#xE22;&#xE20;&#xE32;&#xE22;&#xE43;&#xE19;&#xE21;&#xE35; function &#xE17;&#xE35;&#xE48;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE21;&#xE32;&#xE08;&#xE32;&#xE01; <code>create()</code> &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE1B;&#xE47;&#xE19; middleware function &#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE08;&#xE32;&#xE01; route (&#xE43;&#xE19;&#xE17;&#xE35;&#xE48;&#xE19;&#xE35;&#xE49;&#xE40;&#xE17;&#xE48;&#xE32;&#xE01;&#xE31;&#xE1A; express.Router() &#xE21;&#xE35;&#xE28;&#xE31;&#xE01;&#xE14;&#xE34;&#xE4C;&#xE40;&#xE1B;&#xE47;&#xE19; mini object &#xE02;&#xE2D;&#xE07; app &#xE17;&#xE35;&#xE48;&#xE19;&#xE34;&#xE22;&#xE21;&#xE43;&#xE0A;&#xE49;&#xE01;&#xE31;&#xE19;&#xE2D;&#xE35;&#xE01;&#xE17;&#xE35;)</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>//Create Stormtrooper
router.route(&quot;/create-stormtrooper&quot;).post((req, res, next) =&gt; {
  StormtrooperSchema.create(req.body, (error, data) =&gt; {
    if (error) {
      return next(error);
    } else {
      console.log(data);
      res.json(data);
    }
  });
});
</code></pre>
<p>&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; api &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE2A;&#xE48;&#xE07;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE44;&#xE1B;&#xE22;&#xE31;&#xE07;&#xE1C;&#xE39;&#xE49;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19; &#xE1C;&#xE48;&#xE32;&#xE19; <code>get()</code> &#xE20;&#xE32;&#xE22;&#xE43;&#xE19;&#xE17;&#xE33;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; middleware function &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE2A;&#xE48;&#xE07;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE01;&#xE25;&#xE31;&#xE1A;&#xE44;&#xE1B; &#xE42;&#xE14;&#xE22;&#xE43;&#xE0A;&#xE49; <code>find()</code></p>
<pre><code>//Read Stormtrooper
router.route(&quot;/&quot;).get((req, res) =&gt; {
  StormtrooperSchema.find((error, data) =&gt; {
    if (error) {
      return next(error);
    } else {
      res.json(data);
    }
  });
});
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE08;&#xE30;&#xE2B;&#xE32;&#xE04;&#xE48;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE17;&#xE35;&#xE25;&#xE30; id &#xE01;&#xE47;&#xE17;&#xE33;&#xE44;&#xE14;&#xE49; &#xE42;&#xE14;&#xE22;&#xE43;&#xE0A;&#xE49; <code>findById()</code></p>
<pre><code>//Get Single Stormtrooper
router.route(&quot;/edit-stormtrooper/:id&quot;).get((req, res) =&gt; {
  StormtrooperSchema.findById(req.params.id, (error, data) =&gt; {
    if (error) {
      return next(error);
    } else {
      res.json(data);
    }
  });
});
</code></pre>
<p>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE21;&#xE35; create &#xE01;&#xE31;&#xE1A; read api &#xE41;&#xE25;&#xE49;&#xE27; &#xE01;&#xE47;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE21;&#xE35; api &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE0A;&#xE49; usdate &#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE43;&#xE19; db &#xE14;&#xE49;&#xE27;&#xE22; &#xE01;&#xE32;&#xE23;&#xE2D;&#xE31;&#xE1E;&#xE40;&#xE14;&#xE17;&#xE19;&#xE31;&#xE49;&#xE19; &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE2D;&#xE31;&#xE1E;&#xE40;&#xE14;&#xE17;&#xE17;&#xE35;&#xE25;&#xE30;&#xE2D;&#xE31;&#xE19; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE43;&#xE0A;&#xE49; function <code>findByIdAndUpdate()</code> &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; function &#xE43;&#xE19; <code>put()</code></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>//Update Stormtrooper
router.route(&quot;/update-stormtrooper/:id&quot;).put((req, res, next) =&gt; {
  StormtrooperSchema.findByIdAndUpdate(
    req.params.id,
    {
      $set: req.body,
    },
    (error, data) =&gt; {
      if (error) {
        console.log(error);
        return next(error);
      } else {
        res.json(data);
        console.log(&quot;Stormtrooper successfully updated&quot;);
      }
    }
  );
});
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE2A;&#xE38;&#xE14;&#xE17;&#xE49;&#xE32;&#xE22;&#xE01;&#xE47;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; api &#xE02;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE25;&#xE1A;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE43;&#xE19; db &#xE14;&#xE49;&#xE27;&#xE22; delete() &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE25;&#xE1A;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE17;&#xE35;&#xE25;&#xE30;&#xE2D;&#xE31;&#xE19; &#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE09;&#xE30;&#xE19;&#xE31;&#xE49;&#xE19;&#xE08;&#xE30;&#xE43;&#xE0A;&#xE49; findByIdAndRemove() &#xE40;&#xE1B;&#xE47;&#xE19; function &#xE02;&#xE49;&#xE32;&#xE07;&#xE43;&#xE19; middleware &#xE41;&#xE25;&#xE30;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE40;&#xE07;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE02;&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21; &#xE16;&#xE49;&#xE32;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE48;&#xE07; request &#xE2A;&#xE33;&#xE40;&#xE23;&#xE47;&#xE08; &#xE43;&#xE2B;&#xE49;&#xE2A;&#xE48;&#xE07; status(200) &#xE01;&#xE25;&#xE31;&#xE1A;&#xE21;&#xE32;&#xE14;&#xE49;&#xE27;&#xE22; &#xE41;&#xE25;&#xE49;&#xE27;&#xE15;&#xE48;&#xE2D;&#xE14;&#xE49;&#xE27;&#xE22; msg</p>
<pre><code>//Delete Stormtrooper
router.route(&quot;/delete-stormtrooper/:id&quot;).delete((req, res, next) =&gt; {
  StormtrooperSchema.findByIdAndRemove(req.params.id, (error, data) =&gt; {
    if (error) {
      return next(error);
    } else {
      res.status(200).json({ msg: data });
    }
  });
});
</code></pre>
<p>&#xE1B;&#xE34;&#xE14;&#xE17;&#xE49;&#xE32;&#xE22;&#xE17;&#xE35;&#xE48; export</p>
<pre><code>module.exports = router;
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87-server">&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; Server</h3>
<p>&#xE21;&#xE32;&#xE16;&#xE36;&#xE07;&#xE02;&#xE31;&#xE49;&#xE19;&#xE15;&#xE2D;&#xE19;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE43;&#xE0A;&#xE49; module &#xE15;&#xE48;&#xE32;&#xE07;&#xE46;&#xE17;&#xE35;&#xE48;&#xE44;&#xE14;&#xE49;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE02;&#xE36;&#xE49;&#xE19;&#xE44;&#xE1B;&#xE21;&#xE32;&#xE1B;&#xE23;&#xE30;&#xE01;&#xE2D;&#xE1A;&#xE23;&#xE48;&#xE32;&#xE07;&#xE01;&#xE31;&#xE19;&#xE40;&#xE1B;&#xE47;&#xE19; server &#xE41;&#xE25;&#xE49;&#xE27; &#xE02;&#xE36;&#xE49;&#xE19;&#xE15;&#xE2D;&#xE19;&#xE41;&#xE23;&#xE01;&#xE43;&#xE2B;&#xE49; import &#xE02;&#xE2D;&#xE07;&#xE17;&#xE35;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE43;&#xE0A;&#xE49;&#xE21;&#xE32;&#xE17;&#xE31;&#xE49;&#xE07;&#xE2B;&#xE21;&#xE14;</p>
<pre><code>let express = require(&quot;express&quot;),
  mongoose = require(&quot;mongoose&quot;),
  cors = require(&quot;cors&quot;),
  bodyParser = require(&quot;body-parser&quot;),
  dbConfig = require(&quot;./database/db&quot;);
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>//Express Route
const stormtrooperRoute = require(&quot;./routes/stormtrooper.route&quot;);
</code></pre>
<p>&#xE17;&#xE33;&#xE01;&#xE32;&#xE23; Config mongoose &#xE15;&#xE32;&#xE21;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE14;&#xE49;&#xE32;&#xE19;&#xE25;&#xE48;&#xE32;&#xE07; &#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19; &#xE43;&#xE0A;&#xE49; <code>mongoose.connect()</code> &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE15;&#xE34;&#xE14;&#xE15;&#xE48;&#xE2D; server &#xE40;&#xE02;&#xE49;&#xE32;&#xE01;&#xE31;&#xE1A; db</p>
<pre><code>//Connecting MongoDB Database
mongoose.Promise = global.Promise;
mongoose.connect(dbConfig.db, { 
    useNewUrlParser: true, 
    useUnifiedTopology: true 
}).then(
  () =&gt; {
    console.log(&quot;database successfully connected&quot;);
  },
  (error) =&gt; {
    console.log(&quot;Could not connect to database:&quot; + error);
  }
);
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49; <code>mongoose.Promise = global.Promise</code> &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE2B;&#xE49;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE40;&#xE0B;&#xE15; promise &#xE02;&#xE2D;&#xE07; mongoose library &#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE44;&#xE14;&#xE49; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE43;&#xE19; Mongoose 4 &#xE08;&#xE30;&#xE43;&#xE0A;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19; mpromise <a href="http://https://stackoverflow.com/questions/51862570/mongoose-why-we-make-mongoose-promise-global-promise-when-setting-a-mongoo">&#xE41;&#xE15;&#xE48;&#xE22;&#xE01;&#xE40;&#xE25;&#xE34;&#xE01;&#xE44;&#xE1B;&#xE43;&#xE19; Mongoose 5 &#xE40;&#xE25;&#xE22; Promise &#xE41;&#xE17;&#xE19;</a></p>
<p>&#xE15;&#xE48;&#xE2D;&#xE21;&#xE32; &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; config &#xE42;&#xE14;&#xE22;&#xE43;&#xE0A;&#xE49; <code>app.use()</code> &#xE15;&#xE32;&#xE21;&#xE42;&#xE04;&#xE49;&#xE14;&#xE14;&#xE49;&#xE32;&#xE19;&#xE25;&#xE48;&#xE32;&#xE07;</p>
<pre><code>const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cors());
app.use(&quot;/stormtrooper&quot;, stormtrooperRoute);
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE41;&#xE25;&#xE30;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14; port &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE0A;&#xE49;&#xE15;&#xE34;&#xE14;&#xE15;&#xE48;&#xE2D;&#xE23;&#xE31;&#xE1A;-&#xE2A;&#xE48;&#xE07;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25; &#xE42;&#xE14;&#xE22; client &#xE08;&#xE30;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE22;&#xE34;&#xE07; request &#xE40;&#xE02;&#xE49;&#xE32;&#xE21;&#xE32;&#xE17;&#xE32;&#xE07; port &#xE19;&#xE35;&#xE49; &#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19; &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; listen &#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE23;&#xE2D;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE31;&#xE48;&#xE07;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;</p>
<pre><code>const port = process.env.PORT || 5000;
const server = app.listen(port, () =&gt; {
  console.log(`Server is running in port ${port}`);
});
</code></pre>
<p>&#xE14;&#xE31;&#xE01;&#xE08;&#xE31;&#xE1A; error &#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE40;&#xE01;&#xE34;&#xE14;&#xE02;&#xE36;&#xE49;&#xE19;&#xE08;&#xE32;&#xE01; server</p>
<pre><code>app.use((req, res, next) =&gt; {
  next(createError(404));
});
</code></pre>
<p>&#xE16;&#xE49;&#xE32; server &#xE44;&#xE21;&#xE48;&#xE15;&#xE2D;&#xE1A;&#xE2A;&#xE19;&#xE2D;&#xE07;&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE44;&#xE21;&#xE48;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19; &#xE43;&#xE2B;&#xE49;&#xE2A;&#xE48;&#xE07;&#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21;&#xE01;&#xE25;&#xE31;&#xE1A;&#xE21;&#xE32;&#xE17;&#xE32;&#xE07; console &#xE14;&#xE49;&#xE27;&#xE22;&#xE19;&#xE30;</p>
<pre><code>app.use((err, req, res, next) =&gt; {
  console.error(err.message);
  if (!err.statusCode) err.statusCode = 500;
  res.status(err.statusCode).send(err.message);
});
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="send-request-and-receive-response-with-postman">Send request and receive response with Postman</h2>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; API &#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE41;&#xE25;&#xE49;&#xE27; &#xE43;&#xE2B;&#xE49;&#xE17;&#xE14;&#xE25;&#xE2D;&#xE07;&#xE22;&#xE34;&#xE07; request &#xE1C;&#xE48;&#xE32;&#xE19; entry point &#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49; &#xE40;&#xE0A;&#xE48;&#xE19;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="post">POST</h3>
<p>&#xE2A;&#xE48;&#xE07; request &#xE44;&#xE1B;&#xE17;&#xE35;&#xE48; <code>/stormtrooper/create-stormtrooper</code> &#xE41;&#xE25;&#xE30;&#xE2A;&#xE48;&#xE07; key value &#xE40;&#xE1B;&#xE47;&#xE19; body &#xE44;&#xE1B;&#xE14;&#xE49;&#xE27;&#xE22; &#xE15;&#xE32;&#xE21;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/05/postman-samplepost-json-2.png" class="kg-image" alt="CRUD Rest API &#xE42;&#xE14;&#xE22;&#xE43;&#xE0A;&#xE49; Express &#xE02;&#xE2D;&#xE07; Node.js" loading="lazy" width="1032" height="554" srcset="https://toupawa.com/content/images/size/w600/2021/05/postman-samplepost-json-2.png 600w, https://toupawa.com/content/images/size/w1000/2021/05/postman-samplepost-json-2.png 1000w, https://toupawa.com/content/images/2021/05/postman-samplepost-json-2.png 1032w" sizes="(min-width: 720px) 720px"><figcaption>&#xE2A;&#xE48;&#xE07;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07; Post &#xE41;&#xE25;&#xE49;&#xE27;&#xE2A;&#xE48;&#xE07;&#xE04;&#xE48;&#xE32;&#xE44;&#xE1B;&#xE43;&#xE19; Body</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19; &#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE01;&#xE14;&#xE2A;&#xE48;&#xE07; &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE44;&#xE14;&#xE49;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE48;&#xE07;&#xE44;&#xE1B;&#xE43;&#xE19; body &#xE08;&#xE30;&#xE16;&#xE39;&#xE01;&#xE1A;&#xE31;&#xE19;&#xE17;&#xE36;&#xE01;&#xE25;&#xE07;&#xE43;&#xE19;&#xE10;&#xE32;&#xE19;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/05/postman-samplepost-json-complete.png" class="kg-image" alt="CRUD Rest API &#xE42;&#xE14;&#xE22;&#xE43;&#xE0A;&#xE49; Express &#xE02;&#xE2D;&#xE07; Node.js" loading="lazy" width="1032" height="549" srcset="https://toupawa.com/content/images/size/w600/2021/05/postman-samplepost-json-complete.png 600w, https://toupawa.com/content/images/size/w1000/2021/05/postman-samplepost-json-complete.png 1000w, https://toupawa.com/content/images/2021/05/postman-samplepost-json-complete.png 1032w" sizes="(min-width: 720px) 720px"><figcaption>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE2A;&#xE48;&#xE07;&#xE44;&#xE1B;&#xE40;&#xE23;&#xE35;&#xE22;&#xE1A;&#xE23;&#xE49;&#xE2D;&#xE22;&#xE41;&#xE25;&#xE49;&#xE27;</figcaption></figure><!--kg-card-begin: markdown--><h3 id="get">GET</h3>
<p>&#xE2A;&#xE48;&#xE07; request &#xE44;&#xE1B;&#xE17;&#xE35;&#xE48; <code>/stormtrooper/</code> &#xE08;&#xE30;&#xE44;&#xE14;&#xE49; data &#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE08;&#xE32;&#xE01;&#xE10;&#xE32;&#xE19;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE17;&#xE31;&#xE49;&#xE07;&#xE2B;&#xE21;&#xE14;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/05/postman-get-after-samplepost-json.png" class="kg-image" alt="CRUD Rest API &#xE42;&#xE14;&#xE22;&#xE43;&#xE0A;&#xE49; Express &#xE02;&#xE2D;&#xE07; Node.js" loading="lazy" width="1032" height="554" srcset="https://toupawa.com/content/images/size/w600/2021/05/postman-get-after-samplepost-json.png 600w, https://toupawa.com/content/images/size/w1000/2021/05/postman-get-after-samplepost-json.png 1000w, https://toupawa.com/content/images/2021/05/postman-get-after-samplepost-json.png 1032w" sizes="(min-width: 720px) 720px"><figcaption>&#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE14;&#xE39;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE17;&#xE31;&#xE49;&#xE07;&#xE2B;&#xE21;&#xE14;</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE40;&#xE23;&#xE32;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE2A;&#xE48;&#xE07; request &#xE44;&#xE1B;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE02;&#xE2D; data &#xE17;&#xE35;&#xE25;&#xE30; <code>&lt;id&gt;</code> &#xE44;&#xE14;&#xE49; &#xE08;&#xE32;&#xE01;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE48;&#xE07; request &#xE44;&#xE1B;&#xE17;&#xE35;&#xE48; <code>/stormtrooper/edit-stormtrooper/&lt;id&gt;</code></p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/05/postman-get-after-sampleput-json-retrieve.png" class="kg-image" alt="CRUD Rest API &#xE42;&#xE14;&#xE22;&#xE43;&#xE0A;&#xE49; Express &#xE02;&#xE2D;&#xE07; Node.js" loading="lazy" width="1031" height="552" srcset="https://toupawa.com/content/images/size/w600/2021/05/postman-get-after-sampleput-json-retrieve.png 600w, https://toupawa.com/content/images/size/w1000/2021/05/postman-get-after-sampleput-json-retrieve.png 1000w, https://toupawa.com/content/images/2021/05/postman-get-after-sampleput-json-retrieve.png 1031w" sizes="(min-width: 720px) 720px"><figcaption>&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE08;&#xE30;&#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE14;&#xE39;&#xE17;&#xE35;&#xE25;&#xE30;&#xE23;&#xE32;&#xE22;&#xE01;&#xE32;&#xE23;&#xE01;&#xE47;&#xE44;&#xE14;&#xE49;&#xE19;&#xE30;</figcaption></figure><!--kg-card-begin: markdown--><h3 id="update">UPDATE</h3>
<p>&#xE2A;&#xE48;&#xE07; request &#xE44;&#xE1B;&#xE17;&#xE35;&#xE48; <code>/stormtrooper/update-stormtrooper/&lt;id&gt;</code> &#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19; &#xE43;&#xE19; body &#xE43;&#xE2A;&#xE48;&#xE04;&#xE48;&#xE32; key value &#xE40;&#xE1B;&#xE47;&#xE19;&#xE04;&#xE48;&#xE32;&#xE43;&#xE2B;&#xE21;&#xE48;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/05/postman-sampleput-json.png" class="kg-image" alt="CRUD Rest API &#xE42;&#xE14;&#xE22;&#xE43;&#xE0A;&#xE49; Express &#xE02;&#xE2D;&#xE07; Node.js" loading="lazy" width="1036" height="535" srcset="https://toupawa.com/content/images/size/w600/2021/05/postman-sampleput-json.png 600w, https://toupawa.com/content/images/size/w1000/2021/05/postman-sampleput-json.png 1000w, https://toupawa.com/content/images/2021/05/postman-sampleput-json.png 1036w" sizes="(min-width: 720px) 720px"><figcaption>&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE04;&#xE48;&#xE32;&#xE08;&#xE32;&#xE01;&#xE44;&#xE2D;&#xE14;&#xE35;&#xE17;&#xE35;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/05/postman-sampleput-json-2.png" class="kg-image" alt="CRUD Rest API &#xE42;&#xE14;&#xE22;&#xE43;&#xE0A;&#xE49; Express &#xE02;&#xE2D;&#xE07; Node.js" loading="lazy" width="1025" height="550" srcset="https://toupawa.com/content/images/size/w600/2021/05/postman-sampleput-json-2.png 600w, https://toupawa.com/content/images/size/w1000/2021/05/postman-sampleput-json-2.png 1000w, https://toupawa.com/content/images/2021/05/postman-sampleput-json-2.png 1025w" sizes="(min-width: 720px) 720px"><figcaption>&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE41;&#xE25;&#xE49;&#xE27;</figcaption></figure><!--kg-card-begin: markdown--><h3 id="delete">DELETE</h3>
<p>&#xE17;&#xE33;&#xE44;&#xE14;&#xE49;&#xE42;&#xE14;&#xE22; &#xE2A;&#xE48;&#xE07; request &#xE44;&#xE1B;&#xE17;&#xE35;&#xE48; <code>/stormtrooper/delete-stormtrooper/&lt;id&gt;</code> &#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19; backend &#xE08;&#xE30;&#xE2A;&#xE48;&#xE07; response &#xE21;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19; json object message &#xE15;&#xE32;&#xE21; <code>&lt;id&gt;</code> &#xE17;&#xE35;&#xE48;&#xE42;&#xE14;&#xE19;&#xE25;&#xE1A;&#xE44;&#xE1B;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/05/postman-sampledelete-json.png" class="kg-image" alt="CRUD Rest API &#xE42;&#xE14;&#xE22;&#xE43;&#xE0A;&#xE49; Express &#xE02;&#xE2D;&#xE07; Node.js" loading="lazy" width="1037" height="552" srcset="https://toupawa.com/content/images/size/w600/2021/05/postman-sampledelete-json.png 600w, https://toupawa.com/content/images/size/w1000/2021/05/postman-sampledelete-json.png 1000w, https://toupawa.com/content/images/2021/05/postman-sampledelete-json.png 1037w" sizes="(min-width: 720px) 720px"><figcaption>&#xE2A;&#xE31;&#xE48;&#xE07;&#xE25;&#xE1A; &quot;Bon Jovi&quot;</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/05/postman-get-after-sampledelete-json-1.png" class="kg-image" alt="CRUD Rest API &#xE42;&#xE14;&#xE22;&#xE43;&#xE0A;&#xE49; Express &#xE02;&#xE2D;&#xE07; Node.js" loading="lazy" width="1027" height="551" srcset="https://toupawa.com/content/images/size/w600/2021/05/postman-get-after-sampledelete-json-1.png 600w, https://toupawa.com/content/images/size/w1000/2021/05/postman-get-after-sampledelete-json-1.png 1000w, https://toupawa.com/content/images/2021/05/postman-get-after-sampledelete-json-1.png 1027w" sizes="(min-width: 720px) 720px"><figcaption>&#xE2B;&#xE25;&#xE31;&#xE07;&#xE08;&#xE32;&#xE01;&#xE25;&#xE1A;&#xE44;&#xE1B;&#xE41;&#xE25;&#xE49;&#xE27; &#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE14;&#xE39;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE2D;&#xE35;&#xE01;&#xE17;&#xE35; &#xE01;&#xE47;&#xE1E;&#xE1A;&#xE27;&#xE48;&#xE32; &quot;Bon Jovi&quot; &#xE2B;&#xE32;&#xE22;&#xE44;&#xE1B;&#xE41;&#xE25;&#xE49;&#xE27;</figcaption></figure><!--kg-card-begin: markdown--><h2 id="summary">Summary</h2>
<p>&#xE08;&#xE32;&#xE01;&#xE01;&#xE23;&#xE30;&#xE1A;&#xE27;&#xE19;&#xE27;&#xE34;&#xE18;&#xE35;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; api &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE2B;&#xE49; client &#xE44;&#xE14;&#xE49;&#xE40;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE21;&#xE15;&#xE48;&#xE2D;&#xE01;&#xE31;&#xE1A;&#xE10;&#xE32;&#xE19;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D; &#xE2A;&#xE48;&#xE07; &#xE23;&#xE31;&#xE1A; &#xE41;&#xE01;&#xE49;&#xE44;&#xE02; &#xE41;&#xE25;&#xE30;&#xE25;&#xE1A;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE19;&#xE31;&#xE49;&#xE19; &#xE40;&#xE1B;&#xE47;&#xE19;&#xE1E;&#xE37;&#xE49;&#xE19;&#xE10;&#xE32;&#xE19;&#xE17;&#xE35;&#xE48;&#xE43;&#xE0A;&#xE49;&#xE15;&#xE48;&#xE2D;&#xE22;&#xE2D;&#xE14;&#xE44;&#xE1B;&#xE22;&#xE31;&#xE07;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;&#xE25;&#xE34;&#xE40;&#xE04;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE17;&#xE35;&#xE48;&#xE0B;&#xE31;&#xE1A;&#xE0B;&#xE49;&#xE2D;&#xE19;&#xE15;&#xE48;&#xE2D;&#xE44;&#xE1B;&#xE43;&#xE19;&#xE2D;&#xE19;&#xE32;&#xE04;&#xE15;&#xE44;&#xE14;&#xE49; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE19;&#xE35;&#xE49;&#xE2D;&#xE32;&#xE08;&#xE08;&#xE30;&#xE44;&#xE21;&#xE48;&#xE44;&#xE14;&#xE49;&#xE41;&#xE2A;&#xE14;&#xE07;&#xE27;&#xE34;&#xE18;&#xE35;&#xE01;&#xE32;&#xE23;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE25;&#xE30;&#xE40;&#xE2D;&#xE35;&#xE22;&#xE14; &#xE40;&#xE1E;&#xE35;&#xE22;&#xE07;&#xE41;&#xE04;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE41;&#xE19;&#xE27;&#xE17;&#xE32;&#xE07;&#xE41;&#xE25;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE1A;&#xE31;&#xE19;&#xE17;&#xE36;&#xE01;&#xE04;&#xE27;&#xE32;&#xE21;&#xE17;&#xE23;&#xE07;&#xE08;&#xE33;&#xE44;&#xE27;&#xE49;&#xE40;&#xE17;&#xE48;&#xE32;&#xE19;&#xE31;&#xE49;&#xE19;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="references">References</h2>
<p><a href="https://zellwk.com/blog/crud-express-mongodb/">Building a Simple CRUD app with Node, Express, and MongoDB</a><br>
<a href="https://appdividend.com/2018/11/11/react-crud-example-mern-stack-tutorial/">React CRUD: How To Build React 16 CRUD Example</a><br>
<a href="https://stackoverflow.com/questions/59023482/mern-stack-failed-to-load-resource-neterr-connection-refused">MERN STACK Failed to load resource: net::ERR_CONNECTION_REFUSED</a><br>
<a href="https://www.callicoder.com/node-js-express-mongodb-restful-crud-api-tutorial/">Building a Restful CRUD API with Node.js, Express and MongoDB</a></p>
<h3 id="cover-image">Cover Image</h3>
<p><a href="https://zellwk.com/blog/crud-express-mongodb/">Building a Simple CRUD app with Node, Express, and MongoDB</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Deploying Hosting on Firebase]]></title><description><![CDATA[บันทึกการติดตั้งและ deploy เว็บ บน Firebase Hosting ]]></description><link>https://toupawa.com/deploying-hosting-on-firebase/</link><guid isPermaLink="false">605bb89974fb582548a526d8</guid><category><![CDATA[Firebase]]></category><category><![CDATA[web]]></category><dc:creator><![CDATA[TPW]]></dc:creator><pubDate>Fri, 26 Mar 2021 15:42:11 GMT</pubDate><media:content url="https://toupawa.com/content/images/2021/03/firebase-hosting.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://toupawa.com/content/images/2021/03/firebase-hosting.jpg" alt="Deploying Hosting on Firebase"><p>&#xE43;&#xE19;&#xE01;&#xE32;&#xE23;&#xE1E;&#xE31;&#xE12;&#xE19;&#xE32;&#xE41;&#xE2D;&#xE1E;&#xE1E;&#xE25;&#xE34;&#xE40;&#xE04;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE19;&#xE31;&#xE49;&#xE19; &#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE2B;&#xE25;&#xE48;&#xE32;&#xE19;&#xE31;&#xE01;&#xE1E;&#xE31;&#xE12;&#xE19;&#xE32;&#xE44;&#xE14;&#xE49;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;&#xE43;&#xE14;&#xE46;&#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE0B;&#xE31;&#xE01;&#xE15;&#xE31;&#xE27;&#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE41;&#xE25;&#xE49;&#xE27; &#xE01;&#xE47;&#xE2D;&#xE22;&#xE32;&#xE01;&#xE08;&#xE30;&#xE25;&#xE2D;&#xE07;&#xE40;&#xE2D;&#xE32;&#xE21;&#xE32;&#xE25;&#xE2D;&#xE07; deploy &#xE43;&#xE19; server &#xE08;&#xE23;&#xE34;&#xE07;&#xE46;&#xE14;&#xE39;&#xE1A;&#xE49;&#xE32;&#xE07; &#xE41;&#xE15;&#xE48;&#xE44;&#xE2D;&#xE04;&#xE23;&#xE31;&#xE49;&#xE19;&#xE08;&#xE30;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE2A;&#xE35;&#xE22;&#xE04;&#xE48;&#xE32;&#xE43;&#xE0A;&#xE49;&#xE08;&#xE48;&#xE32;&#xE22; &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE17;&#xE14;&#xE25;&#xE2D;&#xE07;&#xE07;&#xE32;&#xE19;&#xE19;&#xE31;&#xE49;&#xE19;&#xE21;&#xE31;&#xE19;&#xE01;&#xE47;&#xE01;&#xE23;&#xE30;&#xE44;&#xE23;&#xE2D;&#xE22;&#xE39;&#xE48; &#xE14;&#xE31;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19;&#xE08;&#xE36;&#xE07;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE43;&#xE0A;&#xE49; paltform &#xE1F;&#xE23;&#xE35;&#xE08;&#xE36;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE17;&#xE32;&#xE07;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE17;&#xE35;&#xE48;&#xE14;&#xE39;&#xE14;&#xE35;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE38;&#xE14;<br>
&#xE43;&#xE19;&#xE1A;&#xE23;&#xE34;&#xE01;&#xE32;&#xE23;&#xE2D;&#xE31;&#xE19;&#xE2B;&#xE25;&#xE32;&#xE01;&#xE2B;&#xE25;&#xE32;&#xE22;&#xE02;&#xE2D;&#xE07; Google &#xE19;&#xE31;&#xE49;&#xE19; &#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE43;&#xE2B;&#xE49;&#xE1A;&#xE23;&#xE34;&#xE01;&#xE32;&#xE23; hosting &#xE1F;&#xE23;&#xE35; &#xE02;&#xE2D;&#xE07; Firebase &#xE0B;&#xE36;&#xE48;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE17;&#xE32;&#xE07;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE17;&#xE35;&#xE48;&#xE19;&#xE48;&#xE32;&#xE2A;&#xE19;&#xE43;&#xE08;&#xE21;&#xE32;&#xE01; &#xE14;&#xE31;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19;&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE19;&#xE35;&#xE49;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE01;&#xE32;&#xE23;&#xE44;&#xE01;&#xE14;&#xE4C;&#xE27;&#xE34;&#xE18;&#xE35;&#xE19;&#xE33;&#xE42;&#xE04;&#xE49;&#xE14;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE02;&#xE36;&#xE49;&#xE19;&#xE40;&#xE0B;&#xE34;&#xE1F;&#xE40;&#xE27;&#xE2D;&#xE23;&#xE4C; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE08;&#xE30;&#xE21;&#xE35;&#xE27;&#xE34;&#xE18;&#xE35;&#xE01;&#xE32;&#xE23;&#xE14;&#xE31;&#xE07;&#xE15;&#xE48;&#xE2D;&#xE44;&#xE1B;&#xE19;&#xE35;&#xE49;</p>
<p>&#xE01;&#xE48;&#xE2D;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE19;&#xE31;&#xE49;&#xE19; &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; project &#xE17;&#xE35;&#xE48; Firebase &#xE01;&#xE48;&#xE2D;&#xE19; &#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE41;&#xE25;&#xE49;&#xE27; &#xE43;&#xE2B;&#xE49;&#xE40;&#xE23;&#xE32;&#xE40;&#xE1B;&#xE34;&#xE14; Terminal &#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;</p>
<p>&#xE43;&#xE2B;&#xE49; Terminal cd &#xE44;&#xE1B;&#xE2B;&#xE32; path &#xE02;&#xE2D;&#xE07; source code &#xE02;&#xE2D;&#xE07; project &#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14; &#xE15;&#xE48;&#xE2D;&#xE21;&#xE32; &#xE17;&#xE33;&#xE01;&#xE32;&#xE23;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; lib &#xE02;&#xE2D;&#xE07; Firebase &#xE40;&#xE2A;&#xE35;&#xE22;&#xE01;&#xE48;&#xE2D;&#xE19; &#xE43;&#xE19;&#xE17;&#xE35;&#xE48;&#xE19;&#xE35;&#xE48;&#xE04;&#xE37;&#xE2D; firebase-tools &#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07;&#xE42;&#xE14;&#xE22;&#xE43;&#xE0A;&#xE49; npm</p>
<p><code>npm install -g firebase-tools</code></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19; &#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE42;&#xE2B;&#xE25;&#xE14; lib &#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE41;&#xE25;&#xE49;&#xE27; &#xE43;&#xE2B;&#xE49; login Firebase &#xE01;&#xE31;&#xE1A;&#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE02;&#xE2D;&#xE07;&#xE40;&#xE23;&#xE32; &#xE42;&#xE14;&#xE22;&#xE43;&#xE0A;&#xE49;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;</p>
<p><code>firebase login</code></p>
<p>&#xE08;&#xE30;&#xE21;&#xE35;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE15;&#xE48;&#xE32;&#xE07;&#xE40;&#xE1A;&#xE23;&#xE32;&#xE40;&#xE0B;&#xE2D;&#xE23;&#xE4C;&#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE23;&#xE32;&#xE43;&#xE2A;&#xE48; email &#xE41;&#xE25;&#xE30; password &#xE1A;&#xE31;&#xE0D;&#xE0A;&#xE35; Firebase</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/03/02_login_cen.png" class="kg-image" alt="Deploying Hosting on Firebase" loading="lazy" width="1105" height="311" srcset="https://toupawa.com/content/images/size/w600/2021/03/02_login_cen.png 600w, https://toupawa.com/content/images/size/w1000/2021/03/02_login_cen.png 1000w, https://toupawa.com/content/images/2021/03/02_login_cen.png 1105w" sizes="(min-width: 720px) 720px"><figcaption>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D; login &#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE41;&#xE25;&#xE49;&#xE27; &#xE08;&#xE30;&#xE21;&#xE35; &#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21; Success! &#xE1E;&#xE23;&#xE49;&#xE2D;&#xE21;&#xE41;&#xE2A;&#xE14;&#xE07;&#xE2D;&#xE35;&#xE40;&#xE21;&#xE25;&#xE02;&#xE2D;&#xE07;&#xE40;&#xE23;&#xE32;&#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE15;&#xE48;&#xE2D;&#xE21;&#xE32; &#xE43;&#xE2B;&#xE49;&#xE40;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE21;&#xE15;&#xE48;&#xE2D;&#xE42;&#xE1B;&#xE23;&#xE40;&#xE08;&#xE47;&#xE04;&#xE15;&#xE4C;&#xE44;&#xE1F;&#xE25;&#xE4C;&#xE1A;&#xE19;&#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE01;&#xE31;&#xE1A;&#xE42;&#xE1B;&#xE23;&#xE40;&#xE08;&#xE47;&#xE04;&#xE15;&#xE4C;&#xE1A;&#xE19; Firebase &#xE43;&#xE0A;&#xE49;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;</p>
<p><code>firebase init</code></p>
<p>&#xE08;&#xE30;&#xE21;&#xE35; # &#xE40;&#xE23;&#xE35;&#xE22;&#xE07;&#xE01;&#xE31;&#xE19;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE04;&#xE33;&#xE27;&#xE48;&#xE32; Firebase &#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="https://toupawa.com/content/images/2021/03/03_init_cen.png" class="kg-image" alt="Deploying Hosting on Firebase" loading="lazy" width="1106" height="213" srcset="https://toupawa.com/content/images/size/w600/2021/03/03_init_cen.png 600w, https://toupawa.com/content/images/size/w1000/2021/03/03_init_cen.png 1000w, https://toupawa.com/content/images/2021/03/03_init_cen.png 1106w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><p>&#xE08;&#xE30;&#xE21;&#xE35;&#xE04;&#xE33;&#xE16;&#xE32;&#xE21; <em>Are you ready to proceed?</em> &#xE43;&#xE2B;&#xE49;&#xE15;&#xE2D;&#xE1A; Y &#xE2B;&#xE23;&#xE37;&#xE2D; Yes &#xE44;&#xE1B;</p>
<p>&#xE16;&#xE31;&#xE14;&#xE44;&#xE1B;&#xE08;&#xE30;&#xE21;&#xE35;&#xE04;&#xE33;&#xE16;&#xE32;&#xE21;&#xE40;&#xE01;&#xE35;&#xE48;&#xE22;&#xE27;&#xE01;&#xE31;&#xE1A;&#xE01;&#xE32;&#xE23;&#xE15;&#xE31;&#xE49;&#xE07;&#xE04;&#xE48;&#xE32;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19; Firebase &#xE42;&#xE14;&#xE22;&#xE08;&#xE30;&#xE21;&#xE35;&#xE15;&#xE31;&#xE27;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE23;&#xE32;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01; &#xE27;&#xE34;&#xE18;&#xE35;&#xE01;&#xE32;&#xE23;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE04;&#xE37;&#xE2D; &#xE43;&#xE2B;&#xE49;&#xE01;&#xE14;&#xE25;&#xE39;&#xE01;&#xE28;&#xE23;&#xE40;&#xE25;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE02;&#xE36;&#xE49;&#xE19;&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE25;&#xE07;&#xE44;&#xE1B;&#xE22;&#xE31;&#xE07;&#xE15;&#xE31;&#xE27;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01; &#xE41;&#xE25;&#xE49;&#xE27;&#xE01;&#xE14;&#xE1B;&#xE38;&#xE48;&#xE21; <code>space bar</code> &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01; &#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE41;&#xE25;&#xE49;&#xE27;&#xE01;&#xE14;&#xE1B;&#xE38;&#xE48;&#xE21; <code>enter</code></p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="https://toupawa.com/content/images/2021/03/04_shooseInit.png" class="kg-image" alt="Deploying Hosting on Firebase" loading="lazy" width="1101" height="202" srcset="https://toupawa.com/content/images/size/w600/2021/03/04_shooseInit.png 600w, https://toupawa.com/content/images/size/w1000/2021/03/04_shooseInit.png 1000w, https://toupawa.com/content/images/2021/03/04_shooseInit.png 1101w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><p>&#xE04;&#xE33;&#xE16;&#xE32;&#xE21;&#xE15;&#xE48;&#xE2D;&#xE21;&#xE32; &#xE08;&#xE30;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE23;&#xE32;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE42;&#xE1B;&#xE23;&#xE40;&#xE08;&#xE47;&#xE04;&#xE15;&#xE4C;&#xE17;&#xE35;&#xE48;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19; &#xE16;&#xE49;&#xE32;&#xE40;&#xE23;&#xE32;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE25;&#xE49;&#xE27;&#xE01;&#xE47;&#xE01;&#xE14;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE17;&#xE35;&#xE48; <code>Use an existing project</code></p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="https://toupawa.com/content/images/2021/03/05_projectSetup_cen.png" class="kg-image" alt="Deploying Hosting on Firebase" loading="lazy" width="1103" height="296" srcset="https://toupawa.com/content/images/size/w600/2021/03/05_projectSetup_cen.png 600w, https://toupawa.com/content/images/size/w1000/2021/03/05_projectSetup_cen.png 1000w, https://toupawa.com/content/images/2021/03/05_projectSetup_cen.png 1103w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><p>&#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19; &#xE08;&#xE30;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE23;&#xE32;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE42;&#xE1B;&#xE23;&#xE40;&#xE08;&#xE47;&#xE04;&#xE15;&#xE4C;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="https://toupawa.com/content/images/2021/03/06_selectProject_cen.png" class="kg-image" alt="Deploying Hosting on Firebase" loading="lazy" width="1097" height="204" srcset="https://toupawa.com/content/images/size/w600/2021/03/06_selectProject_cen.png 600w, https://toupawa.com/content/images/size/w1000/2021/03/06_selectProject_cen.png 1000w, https://toupawa.com/content/images/2021/03/06_selectProject_cen.png 1097w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><p>&#xE2A;&#xE48;&#xE27;&#xE19;&#xE04;&#xE33;&#xE16;&#xE32;&#xE21;&#xE17;&#xE35;&#xE48;&#xE40;&#xE2B;&#xE25;&#xE37;&#xE2D; &#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE01;&#xE32;&#xE23;&#xE15;&#xE31;&#xE49;&#xE07;&#xE04;&#xE48;&#xE32; Hosting &#xE43;&#xE2B;&#xE49;&#xE40;&#xE23;&#xE32;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE15;&#xE2D;&#xE1A;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE15;&#xE31;&#xE49;&#xE07;&#xE04;&#xE48;&#xE32;&#xE15;&#xE32;&#xE21;&#xE17;&#xE35;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23; &#xE2B;&#xE23;&#xE37;&#xE2D;&#xE01;&#xE14; enter &#xE23;&#xE31;&#xE27;&#xE46; &#xE16;&#xE49;&#xE32;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE43;&#xE2B;&#xE49;&#xE15;&#xE31;&#xE49;&#xE07;&#xE04;&#xE48;&#xE32; default &#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE41;&#xE25;&#xE49;&#xE27;&#xE01;&#xE47;&#xE23;&#xE2D;&#xE43;&#xE2B;&#xE49;&#xE23;&#xE30;&#xE1A;&#xE1A;&#xE17;&#xE33;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; Hosting &#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;</p>
<p><strong>&#xE2B;&#xE21;&#xE32;&#xE22;&#xE40;&#xE2B;&#xE15;&#xE38;</strong> : &#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE1C;&#xE39;&#xE49;&#xE43;&#xE0A;&#xE49; React &#xE15;&#xE23;&#xE07;&#xE04;&#xE33;&#xE16;&#xE32;&#xE21; <strong>&quot;What do you want to use as your public directory?&quot;</strong> &#xE43;&#xE2B;&#xE49;&#xE1E;&#xE34;&#xE21;&#xE1E;&#xE4C;&#xE04;&#xE33;&#xE27;&#xE48;&#xE32; <code>build</code> &#xE25;&#xE07;&#xE44;&#xE1B; &#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE40;&#xE23;&#xE32;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49;&#xE44;&#xE1F;&#xE25;&#xE4C; static &#xE08;&#xE32;&#xE01;&#xE42;&#xE1F;&#xE25;&#xE40;&#xE14;&#xE2D;&#xE23;&#xE4C; build &#xE41;&#xE17;&#xE19; public (&#xE23;&#xE31;&#xE19; npm run build &#xE01;&#xE48;&#xE2D;&#xE19;&#xE02;&#xE31;&#xE49;&#xE19;&#xE15;&#xE2D;&#xE19;&#xE19;&#xE35;&#xE49;)</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="https://toupawa.com/content/images/2021/03/08_hostingSetup_finish.png" class="kg-image" alt="Deploying Hosting on Firebase" loading="lazy" width="1101" height="335" srcset="https://toupawa.com/content/images/size/w600/2021/03/08_hostingSetup_finish.png 600w, https://toupawa.com/content/images/size/w1000/2021/03/08_hostingSetup_finish.png 1000w, https://toupawa.com/content/images/2021/03/08_hostingSetup_finish.png 1101w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><p>&#xE08;&#xE1A;&#xE08;&#xE32;&#xE01;&#xE02;&#xE31;&#xE49;&#xE19;&#xE15;&#xE2D;&#xE19;&#xE19;&#xE35;&#xE49;&#xE04;&#xE37;&#xE2D; Hosting &#xE44;&#xE14;&#xE49;&#xE16;&#xE39;&#xE01;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE41;&#xE25;&#xE49;&#xE27; &#xE43;&#xE2B;&#xE49;&#xE40;&#xE23;&#xE32;&#xE43;&#xE0A;&#xE49;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07; deploy &#xE41;&#xE2D;&#xE1E;&#xE02;&#xE2D;&#xE07;&#xE40;&#xE23;&#xE32;&#xE44;&#xE1B;&#xE22;&#xE31;&#xE07; hosting</p>
<p><code>firebase deploy</code></p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="https://toupawa.com/content/images/2021/03/09_deploy_cen.png" class="kg-image" alt="Deploying Hosting on Firebase" loading="lazy" width="1103" height="345" srcset="https://toupawa.com/content/images/size/w600/2021/03/09_deploy_cen.png 600w, https://toupawa.com/content/images/size/w1000/2021/03/09_deploy_cen.png 1000w, https://toupawa.com/content/images/2021/03/09_deploy_cen.png 1103w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><p>&#xE23;&#xE30;&#xE1A;&#xE1A;&#xE08;&#xE30;&#xE43;&#xE0A;&#xE49;&#xE40;&#xE27;&#xE25;&#xE32;&#xE2A;&#xE31;&#xE01;&#xE04;&#xE23;&#xE39;&#xE48;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D; deploy hosting &#xE08;&#xE19;&#xE21;&#xE35;&#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21;&#xE1A;&#xE2D;&#xE01;&#xE27;&#xE48;&#xE32; Deploy complete! &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE44;&#xE14;&#xE49; Hosting URL &#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19;&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE25;&#xE2D;&#xE07;&#xE40;&#xE02;&#xE49;&#xE32; url &#xE43;&#xE19; browser &#xE08;&#xE30;&#xE44;&#xE14;&#xE49;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="https://toupawa.com/content/images/2021/03/10_1st_index.png" class="kg-image" alt="Deploying Hosting on Firebase" loading="lazy" width="868" height="391" srcset="https://toupawa.com/content/images/size/w600/2021/03/10_1st_index.png 600w, https://toupawa.com/content/images/2021/03/10_1st_index.png 868w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><p>&#xE2D;&#xE31;&#xE19;&#xE19;&#xE35;&#xE49;&#xE04;&#xE37;&#xE2D;&#xE22;&#xE31;&#xE07;&#xE44;&#xE21;&#xE48;&#xE21;&#xE35;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE15;&#xE32;&#xE02;&#xE2D;&#xE07;&#xE41;&#xE2D;&#xE1E;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;</p>
<p>&#xE15;&#xE48;&#xE2D;&#xE08;&#xE32;&#xE01;&#xE19;&#xE35;&#xE49;&#xE04;&#xE37;&#xE2D;&#xE01;&#xE32;&#xE23;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19;&#xE42;&#xE04;&#xE49;&#xE14;&#xE25;&#xE49;&#xE27;&#xE19;&#xE46; &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;&#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE44;&#xE1B;&#xE23;&#xE31;&#xE19;&#xE1A;&#xE19; hosting &#xE40;&#xE23;&#xE32;&#xE02;&#xE2D;&#xE22;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07; &#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE42;&#xE1B;&#xE23;&#xE40;&#xE08;&#xE47;&#xE04;&#xE15;&#xE4C; PWA (Progressive Web App) &#xE41;&#xE1A;&#xE1A;&#xE07;&#xE48;&#xE32;&#xE22;&#xE46;&#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/03/11_change_index.png" class="kg-image" alt="Deploying Hosting on Firebase" loading="lazy" width="1051" height="338" srcset="https://toupawa.com/content/images/size/w600/2021/03/11_change_index.png 600w, https://toupawa.com/content/images/size/w1000/2021/03/11_change_index.png 1000w, https://toupawa.com/content/images/2021/03/11_change_index.png 1051w" sizes="(min-width: 720px) 720px"><figcaption>&#xE25;&#xE2D;&#xE07;&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21;&#xE42;&#xE04;&#xE49;&#xE14; html &#xE25;&#xE07;&#xE44;&#xE1B;</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE41;&#xE25;&#xE49;&#xE27;&#xE01;&#xE47;&#xE01;&#xE14; Save &#xE41;&#xE25;&#xE49;&#xE27;&#xE43;&#xE2A;&#xE48;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07; firebase deploy &#xE2D;&#xE35;&#xE01;&#xE04;&#xE23;&#xE31;&#xE49;&#xE07; &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D; re deploy hosting</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/03/12_re_deploy_cen.png" class="kg-image" alt="Deploying Hosting on Firebase" loading="lazy" width="1109" height="281" srcset="https://toupawa.com/content/images/size/w600/2021/03/12_re_deploy_cen.png 600w, https://toupawa.com/content/images/size/w1000/2021/03/12_re_deploy_cen.png 1000w, https://toupawa.com/content/images/2021/03/12_re_deploy_cen.png 1109w" sizes="(min-width: 720px) 720px"><figcaption>&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE44;&#xE14;&#xE49; url &#xE40;&#xE14;&#xE34;&#xE21;&#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE15;&#xE2D;&#xE19;&#xE41;&#xE23;&#xE01;</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/03/13_index_changed.png" class="kg-image" alt="Deploying Hosting on Firebase" loading="lazy" width="807" height="281" srcset="https://toupawa.com/content/images/size/w600/2021/03/13_index_changed.png 600w, https://toupawa.com/content/images/2021/03/13_index_changed.png 807w" sizes="(min-width: 720px) 720px"><figcaption>&#xE2B;&#xE19;&#xE49;&#xE32;&#xE15;&#xE32;&#xE40;&#xE27;&#xE47;&#xE1A; &#xE2B;&#xE25;&#xE31;&#xE07;&#xE08;&#xE32;&#xE01; re deploy &#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE41;&#xE25;&#xE49;&#xE27;</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE41;&#xE25;&#xE49;&#xE27; &#xE01;&#xE31;&#xE1A;&#xE27;&#xE34;&#xE18;&#xE35;&#xE01;&#xE32;&#xE23; deploy hosting &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19; firebase &#xE40;&#xE1B;&#xE47;&#xE19; free hosting &#xE40;&#xE1B;&#xE47;&#xE19;&#xE1B;&#xE23;&#xE30;&#xE42;&#xE22;&#xE0A;&#xE19;&#xE4C;&#xE21;&#xE32;&#xE01;&#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE1C;&#xE39;&#xE49;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE19;&#xE43;&#xE08;&#xE08;&#xE30;&#xE25;&#xE2D;&#xE07;&#xE40;&#xE17;&#xE2A;&#xE15;&#xE4C;&#xE23;&#xE31;&#xE19;&#xE42;&#xE1B;&#xE23;&#xE41;&#xE01;&#xE23;&#xE21;&#xE1A;&#xE19; production &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE01;&#xE32;&#xE23;&#xE28;&#xE36;&#xE01;&#xE29;&#xE32; &#xE2B;&#xE23;&#xE37;&#xE2D;&#xE43;&#xE0A;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19; prototype &#xE0B;&#xE36;&#xE48;&#xE07;&#xE16;&#xE49;&#xE32;&#xE2B;&#xE32;&#xE01;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE08;&#xE30;&#xE43;&#xE0A;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19; web app &#xE23;&#xE2D;&#xE07;&#xE23;&#xE31;&#xE1A;&#xE42;&#xE2B;&#xE25;&#xE14;&#xE40;&#xE22;&#xE2D;&#xE30;&#xE46; &#xE01;&#xE47;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16; billing &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE0A;&#xE49;&#xE17;&#xE23;&#xE31;&#xE1E;&#xE22;&#xE32;&#xE01;&#xE23;&#xE17;&#xE35;&#xE48;&#xE21;&#xE32;&#xE01;&#xE02;&#xE36;&#xE49;&#xE19;&#xE44;&#xE14;&#xE49; &#xE41;&#xE25;&#xE49;&#xE27;&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE19;&#xE35;&#xE49;&#xE01;&#xE47;&#xE08;&#xE1A;&#xE40;&#xE1E;&#xE35;&#xE22;&#xE07;&#xE40;&#xE17;&#xE48;&#xE32;&#xE19;&#xE35;&#xE49; &#xE2A;&#xE27;&#xE31;&#xE2A;&#xE14;&#xE35;&#xE04;&#xE23;&#xE31;&#xE1A;</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Flutter สร้าง UI แอพพลิเคชั่นร้านค้าออนไลน์ (for My Workshop Record)]]></title><description><![CDATA[Workshop ขั้นตอนการสร้างส่วนหน้าแอพพลิเคชั่นของร้านค้าออนไลน์ ฝึกการออกแบบ widget ต่างๆ]]></description><link>https://toupawa.com/create-ui-shopping-online-with-flutter/</link><guid isPermaLink="false">6041525474fb582548a522d8</guid><category><![CDATA[flutter]]></category><category><![CDATA[Dart]]></category><category><![CDATA[mobile]]></category><dc:creator><![CDATA[TPW]]></dc:creator><pubDate>Mon, 15 Mar 2021 22:19:52 GMT</pubDate><media:content url="https://toupawa.com/content/images/2021/03/Cover.png" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://toupawa.com/content/images/2021/03/Cover.png" alt="Flutter &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; UI &#xE41;&#xE2D;&#xE1E;&#xE1E;&#xE25;&#xE34;&#xE40;&#xE04;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE23;&#xE49;&#xE32;&#xE19;&#xE04;&#xE49;&#xE32;&#xE2D;&#xE2D;&#xE19;&#xE44;&#xE25;&#xE19;&#xE4C; (for My Workshop Record)"><p>&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE19;&#xE35;&#xE49;&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE2D;&#xE18;&#xE34;&#xE1A;&#xE32;&#xE22;&#xE02;&#xE31;&#xE49;&#xE19;&#xE15;&#xE2D;&#xE19;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE2D;&#xE1E;&#xE1E;&#xE25;&#xE34;&#xE40;&#xE04;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE02;&#xE2D;&#xE07;&#xE23;&#xE49;&#xE32;&#xE19;&#xE04;&#xE49;&#xE32;&#xE2D;&#xE2D;&#xE19;&#xE44;&#xE25;&#xE19;&#xE4C; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE15;&#xE32;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE40;&#xE23;&#xE35;&#xE22;&#xE1A;&#xE23;&#xE49;&#xE2D;&#xE22;&#xE41;&#xE25;&#xE49;&#xE27; &#xE40;&#xE2B;&#xE15;&#xE38;&#xE1C;&#xE25;&#xE01;&#xE47;&#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE27;&#xE48;&#xE32;&#xE08;&#xE30;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE1A;&#xE31;&#xE19;&#xE17;&#xE36;&#xE01;&#xE04;&#xE27;&#xE32;&#xE21;&#xE23;&#xE39;&#xE49;&#xE17;&#xE35;&#xE48;&#xE43;&#xE0A;&#xE49;&#xE43;&#xE19;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;&#xE40;&#xE1A;&#xE37;&#xE49;&#xE2D;&#xE07;&#xE15;&#xE49;&#xE19; &#xE1D;&#xE36;&#xE01;&#xE01;&#xE32;&#xE23;&#xE2D;&#xE2D;&#xE01;&#xE41;&#xE1A;&#xE1A; widget &#xE15;&#xE48;&#xE32;&#xE07;&#xE46; &#xE40;&#xE0A;&#xE48;&#xE19; Row, Column, Container, Image, Icon &#xE41;&#xE25;&#xE30;&#xE2D;&#xE35;&#xE01;&#xE2B;&#xE25;&#xE32;&#xE22;&#xE46; widget &#xE1B;&#xE23;&#xE30;&#xE01;&#xE2D;&#xE1A;&#xE01;&#xE31;&#xE1A; &#xE01;&#xE32;&#xE23;&#xE1D;&#xE36;&#xE01;&#xE21;&#xE2D;&#xE07;&#xE41;&#xE2D;&#xE1E;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19; widget &#xE22;&#xE48;&#xE2D;&#xE22;&#xE46; &#xE41;&#xE25;&#xE30;&#xE40;&#xE02;&#xE49;&#xE32;&#xE43;&#xE08;&#xE16;&#xE36;&#xE07;&#xE01;&#xE32;&#xE23;&#xE1B;&#xE23;&#xE30;&#xE01;&#xE2D;&#xE1A;&#xE01;&#xE31;&#xE19;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE41;&#xE2D;&#xE1E;&#xE02;&#xE2D;&#xE07; widget &#xE01;&#xE47;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE17;&#xE31;&#xE01;&#xE29;&#xE30;&#xE17;&#xE35;&#xE48;&#xE19;&#xE31;&#xE01;&#xE1E;&#xE31;&#xE12;&#xE19;&#xE32; Flutter &#xE15;&#xE49;&#xE2D;&#xE07;&#xE1D;&#xE36;&#xE01;&#xE1A;&#xE48;&#xE2D;&#xE22;&#xE46;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE25;&#xE31;&#xE01;&#xE29;&#xE13;&#xE30;&#xE41;&#xE2D;&#xE1E;&#xE1E;&#xE25;&#xE34;&#xE40;&#xE04;&#xE0A;&#xE31;&#xE19;&#xE17;&#xE35;&#xE48;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14; &#xE40;&#xE1B;&#xE47;&#xE19;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<p><a href="https://www.figma.com/proto/bnt5T2cdKlBBimYAP9vzyE/ShoesShopDemo?node-id=1%3A2&amp;scaling=min-zoom">Shopping Online App Wireframe</a></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14; widget &#xE02;&#xE2D;&#xE07; UI &#xE41;&#xE1A;&#xE48;&#xE07;&#xE2D;&#xE2D;&#xE01;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE15;&#xE48;&#xE32;&#xE07;&#xE46; &#xE21;&#xE35;&#xE14;&#xE31;&#xE07;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p><img src="https://toupawa.com/content/images/2021/03/Layout.png" alt="Flutter &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; UI &#xE41;&#xE2D;&#xE1E;&#xE1E;&#xE25;&#xE34;&#xE40;&#xE04;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE23;&#xE49;&#xE32;&#xE19;&#xE04;&#xE49;&#xE32;&#xE2D;&#xE2D;&#xE19;&#xE44;&#xE25;&#xE19;&#xE4C; (for My Workshop Record)" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE21;&#xE35;&#xE41;&#xE1A;&#xE1A;&#xE41;&#xE25;&#xE49;&#xE27; &#xE01;&#xE47;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE15;&#xE49;&#xE19;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE01;&#xE31;&#xE19;&#xE40;&#xE25;&#xE22;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE08;&#xE32;&#xE01; prototype &#xE14;&#xE49;&#xE32;&#xE19;&#xE1A;&#xE19; &#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE23;&#xE01;&#xE02;&#xE2D;&#xE07;&#xE41;&#xE2D;&#xE1E; &#xE08;&#xE30;&#xE21;&#xE35; widget tree diagram &#xE40;&#xE1B;&#xE47;&#xE19;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/03/shopping-1.png" class="kg-image" alt="Flutter &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; UI &#xE41;&#xE2D;&#xE1E;&#xE1E;&#xE25;&#xE34;&#xE40;&#xE04;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE23;&#xE49;&#xE32;&#xE19;&#xE04;&#xE49;&#xE32;&#xE2D;&#xE2D;&#xE19;&#xE44;&#xE25;&#xE19;&#xE4C; (for My Workshop Record)" loading="lazy" width="741" height="561" srcset="https://toupawa.com/content/images/size/w600/2021/03/shopping-1.png 600w, https://toupawa.com/content/images/2021/03/shopping-1.png 741w" sizes="(min-width: 720px) 720px"><figcaption>Widget tree &#xE02;&#xE2D;&#xE07; &#xE40;&#xE1E;&#xE08;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE23;&#xE01;</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/03/summary-1.png" class="kg-image" alt="Flutter &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; UI &#xE41;&#xE2D;&#xE1E;&#xE1E;&#xE25;&#xE34;&#xE40;&#xE04;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE23;&#xE49;&#xE32;&#xE19;&#xE04;&#xE49;&#xE32;&#xE2D;&#xE2D;&#xE19;&#xE44;&#xE25;&#xE19;&#xE4C; (for My Workshop Record)" loading="lazy" width="1321" height="841" srcset="https://toupawa.com/content/images/size/w600/2021/03/summary-1.png 600w, https://toupawa.com/content/images/size/w1000/2021/03/summary-1.png 1000w, https://toupawa.com/content/images/2021/03/summary-1.png 1321w" sizes="(min-width: 720px) 720px"><figcaption>Widget tree &#xE02;&#xE2D;&#xE07; &#xE40;&#xE1E;&#xE08;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE2D;&#xE07;</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE42;&#xE14;&#xE22;&#xE08;&#xE30;&#xE21;&#xE35; widget &#xE17;&#xE35;&#xE48;&#xE2B;&#xE48;&#xE2D;&#xE2B;&#xE38;&#xE49;&#xE21;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE2D;&#xE1E;&#xE17;&#xE31;&#xE49;&#xE07;&#xE2B;&#xE21;&#xE14;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49;&#xE2D;&#xE35;&#xE01;&#xE17;&#xE35;&#xE19;&#xE36;&#xE07; &#xE44;&#xE14;&#xE49;&#xE41;&#xE01;&#xE48;</p>
<p>MaterialApp = widget &#xE17;&#xE35;&#xE48;&#xE2B;&#xE48;&#xE2D;&#xE2B;&#xE38;&#xE49;&#xE21; widget &#xE2D;&#xE37;&#xE48;&#xE19;&#xE46;&#xE2D;&#xE22;&#xE39;&#xE48; &#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE20;&#xE32;&#xE1E;&#xE23;&#xE27;&#xE21;&#xE02;&#xE2D;&#xE07;&#xE41;&#xE2D;&#xE1E;&#xE1E;&#xE25;&#xE34;&#xE40;&#xE04;&#xE0A;&#xE31;&#xE19;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49; &#xE40;&#xE0A;&#xE48;&#xE19; &#xE0A;&#xE37;&#xE48;&#xE2D;&#xE41;&#xE2D;&#xE1E; &#xE2B;&#xE23;&#xE37;&#xE2D; &#xE2A;&#xE48;&#xE27;&#xE19; body &#xE41;&#xE2D;&#xE1E;</p>
<p>&#xE43;&#xE19;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07; &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A; MyApp &#xE17;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19; StatelessWidget &#xE43;&#xE2B;&#xE49;&#xE04;&#xE37;&#xE19;&#xE04;&#xE48;&#xE32;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19; MaterialApp &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE1B;&#xE43;&#xE0A;&#xE49;&#xE2B;&#xE48;&#xE2D;&#xE48;&#xE2B;&#xE38;&#xE49;&#xE21; widget &#xE15;&#xE48;&#xE32;&#xE07;&#xE46;&#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE15;&#xE48;&#xE2D;&#xE08;&#xE32;&#xE01;&#xE19;&#xE35;&#xE49;&#xE43;&#xE2B;&#xE49;&#xE41;&#xE2A;&#xE14;&#xE07;&#xE1C;&#xE25;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE40;&#xE27;&#xE25;&#xE32;&#xE23;&#xE31;&#xE19;&#xE42;&#xE04;&#xE49;&#xE14;</p>
<p>Scaffold = widget &#xE08;&#xE31;&#xE14;&#xE01;&#xE32;&#xE23; layout &#xE2D;&#xE31;&#xE15;&#xE34;&#xE42;&#xE19;&#xE21;&#xE31;&#xE15;&#xE34;&#xE02;&#xE2D;&#xE07;&#xE41;&#xE2D;&#xE1E;&#xE1E;&#xE25;&#xE34;&#xE40;&#xE04;&#xE0A;&#xE31;&#xE48;&#xE19;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE15;&#xE49;&#xE19;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19; widget &#xE17;&#xE35;&#xE48;&#xE2B;&#xE48;&#xE2D;&#xE2B;&#xE38;&#xE49;&#xE21;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE2D;&#xE1E; &#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><script src="https://gist.github.com/Washira/43bdb3c79cba970ee6cf062356438546.js"></script><!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="contents">Contents</h2>
<p><a href="#my-shopping-page">Page 1 : MyShoppingPage</a><br>
--<a href="#column1-row1">Column 1 / Row 1 : &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE16;&#xE1A;&#xE40;&#xE21;&#xE19;&#xE39;</a><br>
--<a href="#column1-row2">Column 1 / Row 2 : &#xE0A;&#xE37;&#xE48;&#xE2D;&#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32; (shoesName)</a><br>
--<a href="#column1-row3">Column 1 / Row 3 : &#xE23;&#xE39;&#xE1B;&#xE41;&#xE2A;&#xE14;&#xE07;&#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32; (shoesImage)</a><br>
--<a href="#column1-row4">Column 1 / Row 4 : Rating &#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32;</a><br>
--<a href="#column1-row5">Column 1 / Row 5 : &#xE23;&#xE32;&#xE04;&#xE32;&#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32; (price)</a><br>
--<a href="#column1-row6">Column 1 / Row 6 : &#xE1B;&#xE38;&#xE48;&#xE21;&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32;&#xE43;&#xE19;&#xE15;&#xE30;&#xE01;&#xE23;&#xE49;&#xE32; (addButton)</a><br>
--<a href="#column1-combine-widget">&#xE23;&#xE27;&#xE21; widget &#xE02;&#xE2D;&#xE07;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE23;&#xE01;</a><br>
--<a href="#create-gap">&#xE0A;&#xE48;&#xE2D;&#xE07;&#xE27;&#xE48;&#xE32;&#xE07;&#xE23;&#xE30;&#xE2B;&#xE27;&#xE48;&#xE32;&#xE07; wiget : gapBetweenWidget</a><br>
<a href="#my-summary-page">Page  : MySummaryPage</a><br>
--<a href="#circle-button-class">&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE27;&#xE07;&#xE01;&#xE25;&#xE21; : CircleButton</a><br>
--<a href="#column2-row1">Column 2 / Row 1 : &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE16;&#xE1A;&#xE40;&#xE21;&#xE19;&#xE39;</a><br>
--<a href="#column2-row2">Column 2 / Row 2 : &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE2B;&#xE31;&#xE27;&#xE02;&#xE49;&#xE2D;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE2A;&#xE23;&#xE38;&#xE1B; : summaryTitle</a><br>
--<a href="#shoes-image-class">&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE23;&#xE39;&#xE1B;&#xE20;&#xE32;&#xE1E;&#xE23;&#xE2D;&#xE07;&#xE40;&#xE17;&#xE49;&#xE32;</a><br>
--<a href="#column2-row3">Column 2 / Row 3 : &#xE23;&#xE32;&#xE22;&#xE25;&#xE30;&#xE40;&#xE2D;&#xE35;&#xE22;&#xE14;&#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32;&#xE17;&#xE35;&#xE48;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;</a><br>
--<a href="#column2-row4">Column 2 / Row 4 : &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE23;&#xE32;&#xE22;&#xE25;&#xE30;&#xE40;&#xE2D;&#xE35;&#xE22;&#xE14;&#xE41;&#xE08;&#xE49;&#xE07;&#xE22;&#xE2D;&#xE14;&#xE0A;&#xE33;&#xE23;&#xE30;</a><br>
--<a href="#accept-button-item-class">&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE2A;&#xE35;&#xE48;&#xE40;&#xE2B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE21;&#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A; Add to cart &#xE41;&#xE25;&#xE30; Checkout</a><br>
--<a href="#column2-row5">Column 2 / Row 5 : &#xE1B;&#xE38;&#xE48;&#xE21;&#xE40;&#xE0A;&#xE47;&#xE04;&#xE40;&#xE2D;&#xE32;&#xE17;&#xE4C;</a><br>
--<a href="#combine-widgets-page2">&#xE1B;&#xE23;&#xE30;&#xE01;&#xE2D;&#xE1A;&#xE23;&#xE48;&#xE32;&#xE07; Page 2</a><br>
<a href="#adjust-menu-bar">&#xE01;&#xE32;&#xE23;&#xE41;&#xE01;&#xE49;&#xE44;&#xE02;&#xE04;&#xE27;&#xE32;&#xE21;&#xE01;&#xE27;&#xE49;&#xE32;&#xE07;&#xE41;&#xE16;&#xE1A;&#xE40;&#xE21;&#xE19;&#xE39;</a><br>
<a href="#connect-pages">&#xE01;&#xE32;&#xE23;&#xE40;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE21;&#xE01;&#xE31;&#xE19;&#xE23;&#xE30;&#xE2B;&#xE27;&#xE48;&#xE32;&#xE07; MyShoppingPage &#xE01;&#xE31;&#xE1A; MySummaryPage</a><br>
--<a href="#push">&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21; Navigator.push()</a><br>
--<a href="#pop">Navigator.pop()</a></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="anamemyshoppingpageamyshoppingpage"><a name="my-shopping-page"></a>&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE23;&#xE01; : MyShoppingPage</h2>
<p>&#xE21;&#xE32;&#xE1E;&#xE39;&#xE14;&#xE16;&#xE36;&#xE07;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE02;&#xE2D;&#xE07;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE23;&#xE01;&#xE01;&#xE31;&#xE19;&#xE1A;&#xE49;&#xE32;&#xE07;</p>
<p>&#xE01;&#xE32;&#xE23;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14; widget &#xE02;&#xE2D;&#xE07;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE23;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19; &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; StatelessWidget class &#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32; &#xE0A;&#xE37;&#xE48;&#xE2D;&#xE27;&#xE48;&#xE32; MyShoppingPage &#xE25;&#xE30;&#xE01;&#xE31;&#xE19; &#xE42;&#xE14;&#xE22;&#xE43;&#xE2B;&#xE49;&#xE21;&#xE31;&#xE19;&#xE1E;&#xE48;&#xE19; Material &#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32; &#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19;&#xE43;&#xE2B;&#xE49; MaterialApp &#xE17;&#xE35;&#xE48;&#xE16;&#xE39;&#xE01;&#xE04;&#xE37;&#xE19;&#xE04;&#xE48;&#xE32;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE08;&#xE32;&#xE01; MyApp &#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19; MyShoppingPage &#xE43;&#xE2B;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE2A;&#xE48;&#xE27;&#xE19; body &#xE02;&#xE2D;&#xE07;&#xE21;&#xE31;&#xE19;</p>
<p>&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE08;&#xE32;&#xE01; &#xE40;&#xE04;&#xE49;&#xE32;&#xE42;&#xE04;&#xE23;&#xE07; widget &#xE02;&#xE2D;&#xE07;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE2D;&#xE1E;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><script src="https://gist.github.com/Washira/559dde58e3d615809269bc865f677eff.js"></script><!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE15;&#xE31;&#xE49;&#xE07;&#xE0A;&#xE37;&#xE48;&#xE2D; widget &#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE23;&#xE01;&#xE27;&#xE48;&#xE32; MyShoppingPage</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="anamecolumn1row1acolumn1row1"><a name="column1-row1"></a>Column 1 / Row 1 : &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE16;&#xE1A;&#xE40;&#xE21;&#xE19;&#xE39;</h3>
<p>&#xE15;&#xE48;&#xE2D;&#xE21;&#xE32;&#xE40;&#xE23;&#xE32;&#xE01;&#xE47;&#xE17;&#xE33;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; widget &#xE2D;&#xE37;&#xE48;&#xE19;&#xE46; &#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE43;&#xE0A;&#xE49;&#xE23;&#xE27;&#xE21;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE2D;&#xE1E;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;</p>
<p>&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE08;&#xE32;&#xE01; &#xE1B;&#xE38;&#xE48;&#xE21;&#xE40;&#xE21;&#xE19;&#xE39;</p>
<h4 id="anamemenubuttonamenubutton"><a name="menu-button"></a>&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE40;&#xE21;&#xE19;&#xE39; (menuButton)</h4>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>var menuButton = Center(
  child: Ink(
    decoration: const ShapeDecoration(
      color: Colors.grey,
      shape: CircleBorder(),
    ),
    child: IconButton(
      icon: Icon(Icons.menu_sharp),
      color: Colors.black,
      onPressed: () {},
    ),
  ),
);
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h4 id="anameacartbutton"><a name></a>&#xE1B;&#xE38;&#xE48;&#xE21;&#xE15;&#xE30;&#xE01;&#xE23;&#xE49;&#xE32;&#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32; (cartButton)</h4>
<p>&#xE1B;&#xE38;&#xE48;&#xE21;&#xE15;&#xE30;&#xE01;&#xE23;&#xE49;&#xE32;&#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32; &#xE40;&#xE1B;&#xE47;&#xE19;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE17;&#xE35;&#xE48;&#xE01;&#xE14;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE02;&#xE49;&#xE32;&#xE44;&#xE1B;&#xE14;&#xE39;&#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE01;&#xE48;&#xE2D;&#xE19;&#xE08;&#xE30;&#xE0A;&#xE33;&#xE23;&#xE30;&#xE40;&#xE07;&#xE34;&#xE19;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>var cartButton = Center(
  child: Ink(
    decoration: const ShapeDecoration(
      color: Colors.grey,
      shape: CircleBorder(),
    ),
    child: IconButton(
      icon: Icon(IconData(59870, fontFamily: &apos;MaterialIcons&apos;)),
      color: Colors.black,
      onPressed: () {},
    ),
  ),
);
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE15;&#xE23;&#xE07; onPressed &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19; &#xE42;&#xE14;&#xE22;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE17;&#xE31;&#xE49;&#xE07;&#xE2A;&#xE2D;&#xE07;&#xE08;&#xE30;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE1A;&#xE19;&#xE41;&#xE16;&#xE27;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;&#xE01;&#xE31;&#xE19; &#xE14;&#xE31;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19;&#xE01;&#xE47;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; Row() &#xE21;&#xE32;&#xE2B;&#xE48;&#xE2D;&#xE2B;&#xE38;&#xE48;&#xE21;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>var menuBar = Row(
  children: [
    menuButton,
    cartButton,
  ],
);
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE25;&#xE2D;&#xE07; debug &#xE14;&#xE39;&#xE23;&#xE39;&#xE1B;&#xE23;&#xE48;&#xE32;&#xE07; widget &#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE27;&#xE48;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE22;&#xE31;&#xE07;&#xE44;&#xE07;&#xE1A;&#xE49;&#xE32;&#xE07;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="https://toupawa.com/content/images/2021/03/menuBar_before_Expanded.png" class="kg-image" alt="Flutter &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; UI &#xE41;&#xE2D;&#xE1E;&#xE1E;&#xE25;&#xE34;&#xE40;&#xE04;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE23;&#xE49;&#xE32;&#xE19;&#xE04;&#xE49;&#xE32;&#xE2D;&#xE2D;&#xE19;&#xE44;&#xE25;&#xE19;&#xE4C; (for My Workshop Record)" loading="lazy" width="956" height="285" srcset="https://toupawa.com/content/images/size/w600/2021/03/menuBar_before_Expanded.png 600w, https://toupawa.com/content/images/2021/03/menuBar_before_Expanded.png 956w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><p>&#xE42;&#xE2D;&#xE40;&#xE04; &#xE44;&#xE14;&#xE49;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE40;&#xE21;&#xE19;&#xE39; &#xE41;&#xE25;&#xE30;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE15;&#xE30;&#xE01;&#xE23;&#xE49;&#xE32;&#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32;&#xE21;&#xE32;&#xE41;&#xE25;&#xE49;&#xE27; &#xE15;&#xE48;&#xE2D;&#xE21;&#xE32; &#xE17;&#xE33;&#xE01;&#xE32;&#xE23;&#xE08;&#xE31;&#xE14;&#xE15;&#xE33;&#xE41;&#xE2B;&#xE19;&#xE48;&#xE07;&#xE43;&#xE2B;&#xE49;&#xE21;&#xE31;&#xE19;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE21;&#xE38;&#xE21;&#xE0B;&#xE49;&#xE32;&#xE22; &#xE41;&#xE25;&#xE30;&#xE21;&#xE38;&#xE21;&#xE02;&#xE27;&#xE32;&#xE02;&#xE2D;&#xE07;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE08;&#xE2D; &#xE02;&#xE31;&#xE49;&#xE19;&#xE15;&#xE2D;&#xE19;&#xE19;&#xE35;&#xE49;&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE43;&#xE0A;&#xE49; Expanded() &#xE40;&#xE02;&#xE49;&#xE32;&#xE21;&#xE32;&#xE08;&#xE31;&#xE14;&#xE01;&#xE32;&#xE23;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>var menuBar = Row(
  children: [
    Expanded(child:Row(children: [menuButton], textDirection: TextDirection.ltr)),
    Expanded(child:Row(children: [cartButton], textDirection: TextDirection.rtl)),
  ],
);
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE43;&#xE2B;&#xE49; <code>Expanded()</code> &#xE2B;&#xE38;&#xE49;&#xE21; <code>Row()</code> &#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49; &#xE41;&#xE25;&#xE49;&#xE27;&#xE02;&#xE49;&#xE32;&#xE07;&#xE43;&#xE19;&#xE19;&#xE31;&#xE49;&#xE19;&#xE08;&#xE30;&#xE21;&#xE35; widget &#xE1B;&#xE38;&#xE48;&#xE21;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE2D;&#xE35;&#xE01;&#xE17;&#xE35;&#xE19;&#xE36;&#xE07; &#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE15;&#xE33;&#xE41;&#xE2B;&#xE19;&#xE48;&#xE07;&#xE43;&#xE2B;&#xE49;&#xE41;&#xE15;&#xE48;&#xE25;&#xE30;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE14;&#xE49;&#xE27;&#xE22; <code>textDirection</code> properties<br>
&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE02;&#xE31;&#xE49;&#xE19;&#xE15;&#xE2D;&#xE19;&#xE19;&#xE35;&#xE49; &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE44;&#xE14;&#xE49;&#xE41;&#xE16;&#xE27;&#xE02;&#xE2D;&#xE07;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE40;&#xE23;&#xE35;&#xE22;&#xE1A;&#xE23;&#xE49;&#xE2D;&#xE22;&#xE41;&#xE25;&#xE49;&#xE27;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="https://toupawa.com/content/images/2021/03/menuBar_after_Expanded.png" class="kg-image" alt="Flutter &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; UI &#xE41;&#xE2D;&#xE1E;&#xE1E;&#xE25;&#xE34;&#xE40;&#xE04;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE23;&#xE49;&#xE32;&#xE19;&#xE04;&#xE49;&#xE32;&#xE2D;&#xE2D;&#xE19;&#xE44;&#xE25;&#xE19;&#xE4C; (for My Workshop Record)" loading="lazy" width="956" height="225" srcset="https://toupawa.com/content/images/size/w600/2021/03/menuBar_after_Expanded.png 600w, https://toupawa.com/content/images/2021/03/menuBar_after_Expanded.png 956w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><h3 id="anamecolumn1row2acolumn1row2shoesname"><a name="column1-row2"></a>Column 1 / Row 2 : &#xE0A;&#xE37;&#xE48;&#xE2D;&#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32; (shoesName)</h3>
<p>&#xE15;&#xE48;&#xE2D;&#xE21;&#xE32; &#xE40;&#xE1B;&#xE47;&#xE19;&#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21;&#xE17;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32;</p>
<pre><code>var shoesName = Text(
  &quot;Space Shoes&quot;,
  style: TextStyle(fontFamily: &apos;Sora&apos;, fontSize: 36),
);
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="anamecolumn1row3acolumn1row3shoesimage"><a name="column1-row3"></a>Column 1 / Row 3 : &#xE23;&#xE39;&#xE1B;&#xE41;&#xE2A;&#xE14;&#xE07;&#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32; (shoesImage)</h3>
<p>&#xE15;&#xE48;&#xE2D;&#xE21;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE23;&#xE39;&#xE1B;&#xE41;&#xE2A;&#xE14;&#xE07;&#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>var shoesImage = Container(
  decoration: BoxDecoration(
      color: const Color.fromARGB(255, 232, 237, 243),
      image: const DecorationImage(
        image: NetworkImage(
            &apos;https://images.pexels.com/photos/2529148/pexels-photo-2529148.jpeg?cs=srgb&amp;dl=pexels-melvin-buezo-2529148.jpg&amp;fm=jpg&apos;),
        fit: BoxFit.cover,
      ),
      border: Border.all(width: 1.0, color: Color.fromARGB(255, 232, 237, 243)),
      borderRadius: BorderRadius.circular(10)),
  width: 297,
  height: 288,
);
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE42;&#xE04;&#xE23;&#xE07;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; widget &#xE2D;&#xE31;&#xE19;&#xE19;&#xE35;&#xE49; &#xE40;&#xE23;&#xE32;&#xE17;&#xE33;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; <code>Container</code> &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE2B;&#xE48;&#xE2D;&#xE2B;&#xE38;&#xE49;&#xE21; image &#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49; &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE02;&#xE2D;&#xE1A;&#xE40;&#xE02;&#xE15;&#xE41;&#xE25;&#xE30;&#xE04;&#xE27;&#xE32;&#xE21;&#xE42;&#xE04;&#xE49;&#xE07;&#xE02;&#xE2D;&#xE07;&#xE02;&#xE2D;&#xE1A;&#xE23;&#xE39;&#xE1B;&#xE44;&#xE14;&#xE49; (&#xE08;&#xE32;&#xE01; properties &#xE17;&#xE35;&#xE48;&#xE0A;&#xE37;&#xE48;&#xE2D; <code>borderRadius</code> &#xE17;&#xE35;&#xE48;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE43;&#xE19; <code>BoxDecoration</code>) &#xE23;&#xE27;&#xE21;&#xE16;&#xE36;&#xE07; &#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE02;&#xE19;&#xE32;&#xE14; (<code>width</code> &#xE41;&#xE25;&#xE30; <code>height</code>) &#xE02;&#xE2D;&#xE07;&#xE23;&#xE39;&#xE1B;&#xE44;&#xE14;&#xE49;&#xE40;&#xE0A;&#xE48;&#xE19;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;&#xE01;&#xE31;&#xE19;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="anamecolumn1row4acolumn1row4rating"><a name="column1-row4"></a>Column 1 / Row 4 : Rating &#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32;</h3>
<p>&#xE15;&#xE48;&#xE2D;&#xE21;&#xE32; &#xE42;&#xE1F;&#xE01;&#xE31;&#xE2A;&#xE01;&#xE31;&#xE19;&#xE15;&#xE48;&#xE2D;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE48;&#xE27;&#xE19; Rating &#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32; &#xE20;&#xE32;&#xE22;&#xE43;&#xE19;&#xE08;&#xE30;&#xE21;&#xE35; widget &#xE22;&#xE48;&#xE2D;&#xE22;&#xE46; &#xE04;&#xE37;&#xE2D; &#xE44;&#xE2D;&#xE04;&#xE48;&#xE2D;&#xE19;&#xE23;&#xE39;&#xE1B;&#xE14;&#xE32;&#xE27; &#xE41;&#xE25;&#xE30; &#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21;&#xE41;&#xE2A;&#xE14;&#xE07;&#xE08;&#xE33;&#xE19;&#xE27;&#xE19;&#xE01;&#xE32;&#xE23;&#xE43;&#xE2B;&#xE49;&#xE04;&#xE30;&#xE41;&#xE19;&#xE19; &#xE40;&#xE23;&#xE32;&#xE01;&#xE47;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; widget &#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE17;&#xE35;&#xE25;&#xE30;&#xE2D;&#xE31;&#xE19;</p>
<p>&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE08;&#xE32;&#xE01; &#xE14;&#xE27;&#xE07;&#xE14;&#xE32;&#xE27;&#xE17;&#xE31;&#xE49;&#xE07;&#xE2B;&#xE49;&#xE32;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>var starRow = Row(
  children: [
    Icon(Icons.star, color: Color.fromARGB(255, 255, 240, 0)),
    Icon(Icons.star, color: Color.fromARGB(255, 255, 240, 0)),
    Icon(Icons.star, color: Color.fromARGB(255, 255, 240, 0)),
    Icon(Icons.star, color: Color.fromARGB(255, 236, 234, 234)),
    Icon(Icons.star, color: Color.fromARGB(255, 236, 234, 234)),
  ],
);
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE08;&#xE30;&#xE21;&#xE35;&#xE14;&#xE32;&#xE27;&#xE2A;&#xE35;&#xE40;&#xE2B;&#xE25;&#xE37;&#xE2D;&#xE07;&#xE2A;&#xE32;&#xE21;&#xE14;&#xE27;&#xE07; &#xE41;&#xE25;&#xE30;&#xE2A;&#xE35;&#xE40;&#xE17;&#xE32;&#xE2A;&#xE2D;&#xE07;&#xE14;&#xE27;&#xE07;</p>
<p>&#xE41;&#xE25;&#xE30;&#xE01;&#xE47; &#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21;</p>
<pre><code>var rating =
    Text(&quot;136 Rating&quot;, style: TextStyle(fontFamily: &apos;Sora&apos;, fontSize: 18));
</code></pre>
<p>&#xE15;&#xE48;&#xE2D;&#xE21;&#xE32;&#xE01;&#xE47;&#xE40;&#xE2D;&#xE32; widget &#xE17;&#xE31;&#xE49;&#xE07;&#xE2A;&#xE2D;&#xE07;&#xE21;&#xE32;&#xE23;&#xE27;&#xE21;&#xE44;&#xE27;&#xE49;&#xE14;&#xE49;&#xE27;&#xE22;&#xE01;&#xE31;&#xE19; &#xE14;&#xE49;&#xE27;&#xE22; <code>Row()</code></p>
<pre><code>var rowOfRating = Row(
    children: [starRow, rating], mainAxisAlignment: MainAxisAlignment.center);
</code></pre>
<p>&#xE15;&#xE31;&#xE49;&#xE07;&#xE04;&#xE48;&#xE32;&#xE43;&#xE2B;&#xE49; widget &#xE2D;&#xE22;&#xE39;&#xE48;&#xE15;&#xE23;&#xE07;&#xE01;&#xE25;&#xE32;&#xE07;&#xE14;&#xE49;&#xE27;&#xE22; mainAxisAlignment &#xE15;&#xE31;&#xE49;&#xE07;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19; center</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="anamecolumn1row5acolumn1row5price"><a name="column1-row5"></a>Column 1 / Row 5 : &#xE23;&#xE32;&#xE04;&#xE32;&#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32; (price)</h3>
<p>&#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE08;&#xE32;&#xE01; Rating &#xE41;&#xE25;&#xE49;&#xE27; &#xE40;&#xE23;&#xE32;&#xE01;&#xE47;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21;&#xE41;&#xE2A;&#xE14;&#xE07;&#xE23;&#xE32;&#xE04;&#xE32;&#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32;</p>
<pre><code>var price =
    Text(&quot;2300 THB&quot;, style: TextStyle(fontFamily: &apos;Sora&apos;, fontSize: 18));
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="anamecolumn1row6acolumn1row6addbutton"><a name="column1-row6"></a>Column 1 / Row 6 : &#xE1B;&#xE38;&#xE48;&#xE21;&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32;&#xE43;&#xE19;&#xE15;&#xE30;&#xE01;&#xE23;&#xE49;&#xE32; (addButton)</h3>
<p>&#xE15;&#xE1A;&#xE17;&#xE49;&#xE32;&#xE22;&#xE14;&#xE49;&#xE27;&#xE22;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32;&#xE43;&#xE19;&#xE15;&#xE30;&#xE01;&#xE23;&#xE49;&#xE32;</p>
<pre><code>var addButton = Container(
  decoration: BoxDecoration(
      color: const Color.fromARGB(255, 91, 229, 97),
      borderRadius: BorderRadius.circular(10)),
  child: new ElevatedButton(
    onPressed: () {},
    child:
        Text(&quot;Add to cart&quot;, style: TextStyle(fontFamily: &apos;Sora&apos;, fontSize: 18)),
    style: ButtonStyle(
      backgroundColor: MaterialStateProperty.all&lt;Color&gt;(Colors.green),
    ),
  ),
  width: 297,
  height: 60,
);
</code></pre>
<p>&#xE1B;&#xE38;&#xE48;&#xE21;&#xE08;&#xE30;&#xE21;&#xE35;&#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21; &quot;Add to cart&quot; &#xE1E;&#xE37;&#xE49;&#xE19;&#xE2A;&#xE35;&#xE40;&#xE02;&#xE35;&#xE22;&#xE27; &#xE2A;&#xE31;&#xE07;&#xE40;&#xE01;&#xE15;&#xE27;&#xE48;&#xE32;&#xE08;&#xE30;&#xE43;&#xE0A;&#xE49; Container &#xE2B;&#xE48;&#xE2D;&#xE2B;&#xE38;&#xE48;&#xE21; <code>ElevatedButton</code> &#xE41;&#xE17;&#xE19;&#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE43;&#xE0A;&#xE49; <code>ElevatedButton</code> &#xE15;&#xE23;&#xE07;&#xE46;&#xE40;&#xE25;&#xE22; &#xE40;&#xE2B;&#xE15;&#xE38;&#xE1C;&#xE25;&#xE40;&#xE1E;&#xE23;&#xE32;&#xE30; &#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE23;&#xE31;&#xE28;&#xE21;&#xE35;&#xE02;&#xE2D;&#xE07;&#xE02;&#xE2D;&#xE1A;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE44;&#xE1B;&#xE15;&#xE32;&#xE21;&#xE41;&#xE1A;&#xE1A; &#xE41;&#xE25;&#xE30;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE02;&#xE19;&#xE32;&#xE14;&#xE14;&#xE49;&#xE27;&#xE22;&#xE19;&#xE31;&#xE48;&#xE19;&#xE40;&#xE2D;&#xE07;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="anamecolumn1combinewidgetawidget"><a name="column1-combine-widget"></a>&#xE23;&#xE27;&#xE21; widget &#xE02;&#xE2D;&#xE07;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE23;&#xE01;</h3>
<p>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; widget &#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE19;&#xE33;&#xE21;&#xE32;&#xE23;&#xE27;&#xE21;&#xE43;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE2A;&#xE14;&#xE07;&#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32;&#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE41;&#xE25;&#xE49;&#xE27; &#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19;&#xE01;&#xE47;&#xE23;&#xE27;&#xE21;&#xE01;&#xE31;&#xE19;&#xE25;&#xE07;&#xE43;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32; MyShoppingPage &#xE44;&#xE14;&#xE49;&#xE40;&#xE25;&#xE22;</p>
<pre><code>class MyShoppingPage extends StatelessWidget {
  MyShoppingPage({Key key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return Material(
      child: Container(
        child: Column(
          children: [
            menuBar,
            shoesName,
            shoesImage,
            rowOfRating,
            price,
            addButton,
          ],
        ),
      ),
    );
  }
}
</code></pre>
<p>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE25;&#xE2D;&#xE07;&#xE23;&#xE31;&#xE19;&#xE14;&#xE39; &#xE08;&#xE30;&#xE44;&#xE14;&#xE49;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE2D;&#xE1E;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE14;&#xE31;&#xE07;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="https://toupawa.com/content/images/2021/03/MyShoppingPage_before_gap.png" class="kg-image" alt="Flutter &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; UI &#xE41;&#xE2D;&#xE1E;&#xE1E;&#xE25;&#xE34;&#xE40;&#xE04;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE23;&#xE49;&#xE32;&#xE19;&#xE04;&#xE49;&#xE32;&#xE2D;&#xE2D;&#xE19;&#xE44;&#xE25;&#xE19;&#xE4C; (for My Workshop Record)" loading="lazy" width="956" height="516" srcset="https://toupawa.com/content/images/size/w600/2021/03/MyShoppingPage_before_gap.png 600w, https://toupawa.com/content/images/2021/03/MyShoppingPage_before_gap.png 956w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><p>&#xE21;&#xE31;&#xE19;&#xE01;&#xE47;&#xE21;&#xE35; widget &#xE17;&#xE35;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE04;&#xE23;&#xE1A;&#xE41;&#xE25;&#xE49;&#xE27;&#xE19;&#xE30; &#xE41;&#xE15;&#xE48;&#xE01;&#xE32;&#xE23;&#xE40;&#xE27;&#xE49;&#xE19;&#xE23;&#xE30;&#xE22;&#xE30;&#xE2B;&#xE48;&#xE32;&#xE07;&#xE22;&#xE31;&#xE07;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE1B;&#xE23;&#xE31;&#xE1A;&#xE1B;&#xE23;&#xE38;&#xE07; &#xE42;&#xE2D;&#xE40;&#xE04; &#xE40;&#xE23;&#xE32;&#xE21;&#xE32;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; widget &#xE17;&#xE35;&#xE48;&#xE43;&#xE0A;&#xE49;&#xE40;&#xE27;&#xE49;&#xE19;&#xE23;&#xE30;&#xE22;&#xE30;&#xE01;&#xE31;&#xE19;&#xE14;&#xE35;&#xE01;&#xE27;&#xE48;&#xE32; (&#xE43;&#xE0A;&#xE48;&#xE41;&#xE25;&#xE49;&#xE27;&#xE04;&#xE23;&#xE31;&#xE1A; &#xE17;&#xE38;&#xE01;&#xE2A;&#xE34;&#xE48;&#xE07;&#xE17;&#xE38;&#xE01;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE43;&#xE19; Flutter &#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE21;&#xE2D;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19; widget &#xE44;&#xE14;&#xE49;&#xE2B;&#xE21;&#xE14; &#xE41;&#xE21;&#xE49;&#xE01;&#xE23;&#xE30;&#xE17;&#xE31;&#xE48;&#xE07;&#xE0A;&#xE48;&#xE2D;&#xE07;&#xE44;&#xE1F;&#xE23;&#xE30;&#xE2B;&#xE27;&#xE48;&#xE32;&#xE07;&#xE1A;&#xE23;&#xE23;&#xE17;&#xE31;&#xE14;) &#xE43;&#xE19;&#xE17;&#xE35;&#xE48;&#xE19;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE43;&#xE0A;&#xE49; widget <code>SizedBox()</code> &#xE40;&#xE1B;&#xE47;&#xE19;&#xE15;&#xE31;&#xE27;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="anamecreategapawigetgapbetweenwidget"><a name="create-gap"></a>&#xE0A;&#xE48;&#xE2D;&#xE07;&#xE27;&#xE48;&#xE32;&#xE07;&#xE23;&#xE30;&#xE2B;&#xE27;&#xE48;&#xE32;&#xE07; wiget : gapBetweenWidget</h3>
<p>&#xE1E;&#xE34;&#xE08;&#xE32;&#xE23;&#xE13;&#xE32;&#xE43;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE2D;&#xE1E; &#xE08;&#xE30;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE23;&#xE30;&#xE22;&#xE30;&#xE2B;&#xE48;&#xE32;&#xE07;&#xE23;&#xE30;&#xE2B;&#xE27;&#xE48;&#xE32;&#xE07; widget &#xE2D;&#xE22;&#xE39;&#xE48;&#xE2B;&#xE25;&#xE32;&#xE22;&#xE08;&#xE38;&#xE14; &#xE14;&#xE31;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19; &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE2D;&#xE2D;&#xE1A;&#xE40;&#xE08;&#xE04;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE2B;&#xE49;&#xE2A;&#xE37;&#xE48;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21;&#xE2B;&#xE21;&#xE32;&#xE22; &#xE41;&#xE25;&#xE49;&#xE27;&#xE14;&#xE36;&#xE07;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE1B;&#xE43;&#xE0A;&#xE49;&#xE19;&#xE48;&#xE32;&#xE08;&#xE30;&#xE2A;&#xE30;&#xE14;&#xE27;&#xE01;&#xE01;&#xE27;&#xE48;&#xE32; &#xE02;&#xE2D;&#xE15;&#xE31;&#xE49;&#xE07;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE27;&#xE48;&#xE32; gapBetweenWidget &#xE25;&#xE30;&#xE01;&#xE31;&#xE19;</p>
<pre><code>var gapBetweenWidget =
    (double width, double height) =&gt; SizedBox(height: height, width: width);
</code></pre>
<p>&#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE41;&#xE25;&#xE49;&#xE27; &#xE40;&#xE23;&#xE32;&#xE01;&#xE49;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE1B;&#xE43;&#xE0A;&#xE49;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE23;&#xE30;&#xE22;&#xE30;&#xE2B;&#xE48;&#xE32;&#xE07;&#xE43;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE2D;&#xE1E;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><script src="https://gist.github.com/Washira/9a89e210d7b7ea95836dd36f38bec1e7.js"></script>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE41;&#xE25;&#xE49;&#xE27; &#xE25;&#xE2D;&#xE07;&#xE23;&#xE31;&#xE19;&#xE14;&#xE39;&#xE2D;&#xE35;&#xE01;&#xE17;&#xE35;&#xE19;&#xE36;&#xE07;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/03/MyShoppingPage_after_gap.png" class="kg-image" alt="Flutter &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; UI &#xE41;&#xE2D;&#xE1E;&#xE1E;&#xE25;&#xE34;&#xE40;&#xE04;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE23;&#xE49;&#xE32;&#xE19;&#xE04;&#xE49;&#xE32;&#xE2D;&#xE2D;&#xE19;&#xE44;&#xE25;&#xE19;&#xE4C; (for My Workshop Record)" loading="lazy" width="957" height="642" srcset="https://toupawa.com/content/images/size/w600/2021/03/MyShoppingPage_after_gap.png 600w, https://toupawa.com/content/images/2021/03/MyShoppingPage_after_gap.png 957w" sizes="(min-width: 720px) 720px"><figcaption>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE1B;&#xE23;&#xE31;&#xE1A;&#xE23;&#xE30;&#xE22;&#xE30;&#xE2B;&#xE48;&#xE32;&#xE07;&#xE41;&#xE25;&#xE49;&#xE27;</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE08;&#xE30;&#xE40;&#xE2B;&#xE47;&#xE19;&#xE27;&#xE48;&#xE32;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE23;&#xE30;&#xE22;&#xE30;&#xE2B;&#xE48;&#xE32;&#xE07;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE2A;&#xE27;&#xE22;&#xE07;&#xE32;&#xE21;&#xE15;&#xE32;&#xE21;&#xE41;&#xE1A;&#xE1A;&#xE17;&#xE35;&#xE48;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49;&#xE41;&#xE25;&#xE49;&#xE27;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="anamemysummarypageamysummarypage"><a name="my-summary-page"></a>&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE2D;&#xE07; : MySummaryPage</h2>
<p>&#xE2A;&#xE48;&#xE27;&#xE19;&#xE02;&#xE2D;&#xE07;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE23;&#xE01;&#xE44;&#xE14;&#xE49;&#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE40;&#xE23;&#xE35;&#xE22;&#xE1A;&#xE23;&#xE49;&#xE2D;&#xE22;&#xE25;&#xE07;&#xE44;&#xE1B;&#xE41;&#xE25;&#xE49;&#xE27; &#xE15;&#xE48;&#xE2D;&#xE21;&#xE32;&#xE01;&#xE47;&#xE17;&#xE33;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; widget &#xE41;&#xE2A;&#xE14;&#xE07;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE2D;&#xE07;&#xE01;&#xE31;&#xE19;<br>
&#xE40;&#xE04;&#xE49;&#xE32;&#xE42;&#xE04;&#xE23;&#xE07; widget &#xE01;&#xE47;&#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE23;&#xE01;&#xE40;&#xE25;&#xE22; &#xE40;&#xE23;&#xE32;&#xE15;&#xE31;&#xE49;&#xE07;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE27;&#xE48;&#xE32; <code>MySummaryPage</code></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><script src="https://gist.github.com/Washira/34c1b9cdba2aa992716341c2bb68b865.js"></script><!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE2B;&#xE19;&#xE49;&#xE32;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE2D;&#xE07;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE17;&#xE35;&#xE48;&#xE43;&#xE0A;&#xE49;&#xE41;&#xE2A;&#xE14;&#xE07;&#xE23;&#xE32;&#xE22;&#xE25;&#xE30;&#xE40;&#xE2D;&#xE35;&#xE22;&#xE14;&#xE02;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32; &#xE41;&#xE25;&#xE30;&#xE23;&#xE32;&#xE04;&#xE32;&#xE23;&#xE27;&#xE21;&#xE17;&#xE35;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE0A;&#xE33;&#xE23;&#xE30; &#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE09;&#xE30;&#xE19;&#xE31;&#xE49;&#xE19; &#xE21;&#xE31;&#xE19;&#xE08;&#xE30;&#xE1B;&#xE23;&#xE30;&#xE01;&#xE2D;&#xE1A;&#xE44;&#xE1B;&#xE14;&#xE49;&#xE27;&#xE22; widget &#xE15;&#xE48;&#xE32;&#xE07;&#xE46; &#xE14;&#xE31;&#xE07;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="anamecirclebuttonclassacirclebutton"><a name="circle-button-class"></a>&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE27;&#xE07;&#xE01;&#xE25;&#xE21; : CircleButton</h3>
<p>&#xE01;&#xE48;&#xE2D;&#xE19;&#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32; &#xE40;&#xE23;&#xE32;&#xE15;&#xE31;&#xE49;&#xE07;&#xE02;&#xE49;&#xE2D;&#xE2A;&#xE31;&#xE07;&#xE40;&#xE01;&#xE15;&#xE27;&#xE48;&#xE32; &#xE23;&#xE39;&#xE1B;&#xE23;&#xE48;&#xE32;&#xE07;&#xE02;&#xE2D;&#xE07;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE21;&#xE31;&#xE19;&#xE01;&#xE47;&#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE46;&#xE01;&#xE31;&#xE19;&#xE01;&#xE31;&#xE1A;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE17;&#xE35;&#xE48;&#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE25;&#xE22;&#xE19;&#xE35;&#xE48;&#xE2B;&#xE27;&#xE48;&#xE32; &#xE40;&#xE1E;&#xE35;&#xE22;&#xE07;&#xE41;&#xE15;&#xE48;&#xE15;&#xE48;&#xE32;&#xE07;&#xE01;&#xE31;&#xE19;&#xE17;&#xE35;&#xE48;&#xE44;&#xE2D;&#xE04;&#xE48;&#xE2D;&#xE19; &#xE41;&#xE25;&#xE30;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE43;&#xE2B;&#xE49;&#xE21;&#xE31;&#xE19;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE40;&#xE17;&#xE48;&#xE32;&#xE19;&#xE31;&#xE49;&#xE19; &#xE07;&#xE31;&#xE49;&#xE19;&#xE40;&#xE23;&#xE32;&#xE01;&#xE47;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE17;&#xE35;&#xE48;&#xE21;&#xE35;&#xE23;&#xE39;&#xE1B;&#xE23;&#xE48;&#xE32;&#xE07;&#xE27;&#xE07;&#xE01;&#xE25;&#xE21;&#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE40;&#xE25;&#xE22;&#xE14;&#xE35;&#xE01;&#xE27;&#xE48;&#xE32;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><script src="https://gist.github.com/Washira/6d1f9ec6f6ecd0d7d631ca12f84ab2dd.js"></script><!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE04;&#xE25;&#xE32;&#xE2A;&#xE0A;&#xE37;&#xE48;&#xE2D; <code>CircleButton</code> &#xE17;&#xE35;&#xE48;&#xE23;&#xE31;&#xE1A; argument &#xE2A;&#xE2D;&#xE07;&#xE15;&#xE31;&#xE27;&#xE04;&#xE37;&#xE2D; <code>iconSharp</code> &#xE17;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE23;&#xE39;&#xE1B;&#xE23;&#xE48;&#xE32;&#xE07;&#xE44;&#xE2D;&#xE04;&#xE48;&#xE2D;&#xE19;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23; &#xE41;&#xE25;&#xE30; <code>onPressedFunc</code> &#xE17;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE43;&#xE2A;&#xE48;&#xE43;&#xE2B;&#xE49;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE01;&#xE14;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE19;&#xE31;&#xE49;&#xE19;</p>
<p>&#xE15;&#xE48;&#xE2D;&#xE21;&#xE32;&#xE01;&#xE47;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE17;&#xE35;&#xE48;&#xE40;&#xE01;&#xE47;&#xE1A;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE40;&#xE1B;&#xE25;&#xE48;&#xE32;&#xE46;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49; &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE0A;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE1E;&#xE32;&#xE23;&#xE32;&#xE21;&#xE34;&#xE40;&#xE15;&#xE2D;&#xE23;&#xE4C; &#xE43;&#xE19;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE22;&#xE31;&#xE07;&#xE44;&#xE21;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE43;&#xE2B;&#xE49;&#xE21;&#xE31;&#xE19;&#xE17;&#xE33;&#xE27;&#xE32;&#xE19;&#xE2D;&#xE30;&#xE44;&#xE23; &#xE40;&#xE27;&#xE25;&#xE32;&#xE01;&#xE14;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE19;&#xE31;&#xE49;&#xE19;&#xE01;&#xE47;&#xE08;&#xE30;&#xE44;&#xE21;&#xE48;&#xE21;&#xE35;&#xE2D;&#xE30;&#xE44;&#xE23;&#xE40;&#xE01;&#xE34;&#xE14;&#xE02;&#xE36;&#xE49;&#xE19;</p>
<pre><code>var blank = () =&gt; {};
</code></pre>
<!--kg-card-end: markdown--><p></p><!--kg-card-begin: markdown--><h3 id="anameareassignmentmenubuttoncartbutton"><a name></a>Reassignment : menuButton, cartButton</h3>
<p>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE21;&#xE35;&#xE04;&#xE25;&#xE32;&#xE2A; <code>CircleButton</code> &#xE21;&#xE32;&#xE43;&#xE2B;&#xE49;&#xE43;&#xE0A;&#xE49;&#xE41;&#xE25;&#xE49;&#xE27; &#xE40;&#xE23;&#xE32;&#xE01;&#xE47;&#xE40;&#xE2D;&#xE32;&#xE21;&#xE32;&#xE43;&#xE0A;&#xE49;&#xE01;&#xE31;&#xE1A;&#xE1B;&#xE38;&#xE48;&#xE21; <code>menuButton</code> &#xE41;&#xE25;&#xE30; <code>cartButton</code> &#xE02;&#xE2D;&#xE07;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE23;&#xE01; &#xE43;&#xE2B;&#xE49;&#xE21;&#xE31;&#xE19;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE21;&#xE32;&#xE15;&#xE23;&#xE10;&#xE32;&#xE19;&#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE01;&#xE31;&#xE19;&#xE40;&#xE25;&#xE22;&#xE14;&#xE35;&#xE1D;&#xE48;&#xE32; &#xE42;&#xE14;&#xE22;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE21;&#xE32;&#xE41;&#xE17;&#xE19;&#xE42;&#xE04;&#xE49;&#xE14;&#xE40;&#xE14;&#xE34;&#xE21;&#xE40;&#xE25;&#xE22;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE25;&#xE14;&#xE1A;&#xE23;&#xE23;&#xE17;&#xE31;&#xE14;</p>
<pre><code>var menuButton = CircleButton(Icons.menu_sharp, blank);

var cartButton = CircleButton(Icons.shopping_cart, blank);
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="anamecolumn2row1acolumn2row1"><a name="column2-row1"></a>Column 2 / Row 1 : &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE16;&#xE1A;&#xE40;&#xE21;&#xE19;&#xE39;</h3>
<h4 id="backbutton">&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE22;&#xE49;&#xE2D;&#xE19;&#xE01;&#xE25;&#xE31;&#xE1A; (backButton)</h4>
<pre><code>var backButton = CircleButton(Icons.navigate_before, blank);
</code></pre>
<p>&#xE23;&#xE31;&#xE1A; argument &#xE21;&#xE32;&#xE2A;&#xE2D;&#xE07;&#xE15;&#xE31;&#xE27;&#xE04;&#xE37;&#xE2D; <code>Icons.navigate_before</code> &#xE17;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE2B;&#xE21;&#xE32;&#xE22;&#xE2B;&#xE31;&#xE27;&#xE25;&#xE39;&#xE01;&#xE28;&#xE23;&#xE0A;&#xE35;&#xE49;&#xE44;&#xE1B;&#xE17;&#xE32;&#xE07;&#xE0B;&#xE49;&#xE32;&#xE22; &#xE41;&#xE25;&#xE30;&#xE2D;&#xE35;&#xE01;&#xE2D;&#xE31;&#xE19;&#xE04;&#xE37;&#xE2D; blank &#xE04;&#xE37;&#xE2D;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE40;&#xE1B;&#xE25;&#xE48;&#xE32;&#xE46;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE40;&#xE15;&#xE23;&#xE35;&#xE22;&#xE21;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49;&#xE19;&#xE31;&#xE48;&#xE19;&#xE40;&#xE2D;&#xE07;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h4 id="userbutton">&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE1C;&#xE39;&#xE49;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19; (userButton)</h4>
<p>&#xE44;&#xE1B;&#xE04;&#xE48;&#xE2D;&#xE19;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE23;&#xE39;&#xE1B;&#xE04;&#xE19; &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE2B;&#xE49;&#xE41;&#xE2A;&#xE14;&#xE07;&#xE16;&#xE36;&#xE07;&#xE15;&#xE31;&#xE27;&#xE02;&#xE2D;&#xE07;&#xE1C;&#xE39;&#xE49;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19; &#xE2B;&#xE23;&#xE37;&#xE2D;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE1C;&#xE39;&#xE49;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19;</p>
<pre><code>var userButton = CircleButton(Icons.person, blank);
</code></pre>
<p>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE2A;&#xE2D;&#xE07;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE41;&#xE25;&#xE49;&#xE27; &#xE01;&#xE47;&#xE40;&#xE2D;&#xE32;&#xE21;&#xE32;&#xE23;&#xE27;&#xE21;&#xE01;&#xE31;&#xE19; &#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE43;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE23;&#xE01;&#xE2D;&#xE48;&#xE32;&#xE41;&#xE2B;&#xE25;&#xE30; &#xE15;&#xE31;&#xE49;&#xE07;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE01;&#xE25;&#xE38;&#xE48;&#xE21;&#xE02;&#xE2D;&#xE07;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE27;&#xE48;&#xE32; <code>menuBarInSummary</code></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>var menuBarInSummary = Row(
  children: [
    Expanded(
        child: Row(children: [backButton], textDirection: TextDirection.ltr)),
    Expanded(
        child: Row(children: [userButton], textDirection: TextDirection.rtl)),
  ],
);
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="anamecolumn2row2acolumn2row2summarytitle"><a name="column2-row2"></a>Column 2 / Row 2 : &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE2B;&#xE31;&#xE27;&#xE02;&#xE49;&#xE2D;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE2A;&#xE23;&#xE38;&#xE1B; : summaryTitle</h3>
<p>&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; <code>Text</code> widget &#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;</p>
<pre><code>var summaryTitle = Text(
  &quot;YOUR CART&quot;,
  style: TextStyle(fontFamily: &apos;Sora&apos;, fontSize: 24),
);
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="anameshoesimageclassa"><a name="shoes-image-class"></a>&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE23;&#xE39;&#xE1B;&#xE20;&#xE32;&#xE1E;&#xE23;&#xE2D;&#xE07;&#xE40;&#xE17;&#xE49;&#xE32;</h3>
<p>&#xE43;&#xE0A;&#xE49;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE44;&#xE1B;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; widget &#xE23;&#xE39;&#xE1B;&#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32;&#xE23;&#xE2D;&#xE07;&#xE40;&#xE17;&#xE49;&#xE32;&#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE43;&#xE0A;&#xE49;&#xE43;&#xE19;&#xE41;&#xE2D;&#xE1E;&#xE17;&#xE31;&#xE49;&#xE07;&#xE2A;&#xE2D;&#xE07;&#xE2B;&#xE19;&#xE49;&#xE32; &#xE15;&#xE31;&#xE49;&#xE07;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE27;&#xE48;&#xE32; ShoesImageItem</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><script src="https://gist.github.com/Washira/42be75f9ebc024d38e39061dfdf22093.js"></script><!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE04;&#xE25;&#xE32;&#xE2A; <code>ShoesImageItem</code> &#xE08;&#xE30;&#xE23;&#xE31;&#xE1A; argument &#xE40;&#xE1E;&#xE35;&#xE22;&#xE07; 2 &#xE15;&#xE31;&#xE27; &#xE04;&#xE27;&#xE32;&#xE21;&#xE01;&#xE27;&#xE49;&#xE32;&#xE07; (<code>width</code>) &#xE41;&#xE25;&#xE30;&#xE04;&#xE27;&#xE32;&#xE21;&#xE2A;&#xE39;&#xE07; (<code>height</code>) &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49;&#xE43;&#xE0A;&#xE49;&#xE1B;&#xE23;&#xE31;&#xE1A;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE02;&#xE49;&#xE32;&#xE01;&#xE31;&#xE1A; layout &#xE43;&#xE19;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE19;&#xE31;&#xE49;&#xE19;&#xE46; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE23;&#xE39;&#xE1B;&#xE20;&#xE32;&#xE1E;&#xE08;&#xE30;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE23;&#xE39;&#xE1B;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;&#xE01;&#xE31;&#xE19;&#xE44;&#xE1B;&#xE40;&#xE25;&#xE22;&#xE44;&#xE21;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19; &#xE01;&#xE32;&#xE23;&#xE41;&#xE2A;&#xE14;&#xE07;&#xE1C;&#xE25;&#xE01;&#xE47;&#xE08;&#xE30;&#xE21;&#xE35;&#xE25;&#xE31;&#xE01;&#xE29;&#xE13;&#xE30;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;&#xE01;&#xE31;&#xE1A; widget <code>shoesImage</code> &#xE17;&#xE35;&#xE48;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE43;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE23;&#xE01;&#xE40;&#xE25;&#xE22;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="anameareassignmentshoesimage"><a name></a>Reassignment : shoesImage</h3>
<p>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE21;&#xE32;&#xE41;&#xE25;&#xE49;&#xE27;&#xE01;&#xE47;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE01;&#xE32;&#xE23;&#xE1B;&#xE23;&#xE30;&#xE01;&#xE32;&#xE28; <code>shoesImage</code> &#xE0B;&#xE30;&#xE43;&#xE2B;&#xE21;&#xE48; &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21;&#xE1B;&#xE23;&#xE30;&#xE2B;&#xE22;&#xE31;&#xE14;</p>
<pre><code>var shoesImage = ShoesImageItem(297, 288);
</code></pre>
<p>&#xE40;&#xE2B;&#xE25;&#xE37;&#xE2D;&#xE41;&#xE04;&#xE48;&#xE19;&#xE35;&#xE49;&#xE40;&#xE2D;&#xE07; &#xE25;&#xE14;&#xE1A;&#xE23;&#xE23;&#xE17;&#xE31;&#xE14;&#xE44;&#xE1B;&#xE44;&#xE14;&#xE49;&#xE40;&#xE22;&#xE2D;&#xE30;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="anamecolumn2row3acolumn2row3"><a name="column2-row3"></a>Column 2 / Row 3 : &#xE23;&#xE32;&#xE22;&#xE25;&#xE30;&#xE40;&#xE2D;&#xE35;&#xE22;&#xE14;&#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32;&#xE17;&#xE35;&#xE48;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;</h3>
<p>&#xE43;&#xE19;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE19;&#xE35;&#xE49; &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE41;&#xE1A;&#xE48;&#xE07;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; widget &#xE22;&#xE48;&#xE2D;&#xE22;&#xE46; &#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE44;&#xE14;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19; &#xE23;&#xE39;&#xE1B;&#xE20;&#xE32;&#xE1E; &#xE0A;&#xE37;&#xE48;&#xE2D;&#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32; &#xE40;&#xE23;&#xE17;&#xE15;&#xE34;&#xE49;&#xE07; &#xE41;&#xE25;&#xE30;&#xE14;&#xE32;&#xE27;</p>
<p>&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; widget &#xE23;&#xE39;&#xE1B;&#xE20;&#xE32;&#xE1E; &#xE0A;&#xE37;&#xE48;&#xE2D;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23; <code>shoesImageInSummary</code></p>
<pre><code>var shoesImageInSummary = ShoesImageItem(125, 121);
</code></pre>
<p>&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; widget &#xE0A;&#xE37;&#xE48;&#xE2D;&#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32; &#xE40;&#xE01;&#xE47;&#xE1A;&#xE04;&#xE48;&#xE32;&#xE43;&#xE19;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23; <code>shoesNameSummary</code></p>
<pre><code>var shoesNameSummary = TextItem(&quot;Space Shoes&quot;, 14);
</code></pre>
<p>&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; widget &#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21;&#xE41;&#xE2A;&#xE14;&#xE07;&#xE40;&#xE23;&#xE17;&#xE15;&#xE34;&#xE49;&#xE07; &#xE40;&#xE01;&#xE47;&#xE1A;&#xE44;&#xE27;&#xE49;&#xE43;&#xE19;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23; <code>ratingInSummary</code></p>
<pre><code>var ratingInSummary = TextItem(&quot;136 Rating&quot;, 10);
</code></pre>
<p>&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; widget &#xE01;&#xE25;&#xE38;&#xE48;&#xE21;&#xE02;&#xE2D;&#xE07;&#xE44;&#xE2D;&#xE04;&#xE48;&#xE2D;&#xE19;&#xE14;&#xE32;&#xE27; &#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE43;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE23;&#xE01; &#xE41;&#xE15;&#xE48;&#xE02;&#xE19;&#xE32;&#xE14;&#xE08;&#xE30;&#xE40;&#xE25;&#xE47;&#xE01;&#xE01;&#xE27;&#xE48;&#xE32;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>var starRowInSummary = Row(
  children: [
    Icon(Icons.star, color: Color.fromARGB(255, 255, 240, 0), size: 15),
    Icon(Icons.star, color: Color.fromARGB(255, 255, 240, 0), size: 15),
    Icon(Icons.star, color: Color.fromARGB(255, 255, 240, 0), size: 15),
    Icon(Icons.star, color: Color.fromARGB(255, 236, 234, 234), size: 15),
    Icon(Icons.star, color: Color.fromARGB(255, 236, 234, 234), size: 15),
  ],
);
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE1B;&#xE23;&#xE31;&#xE1A;&#xE02;&#xE19;&#xE32;&#xE14;&#xE14;&#xE32;&#xE27;&#xE25;&#xE07; &#xE40;&#xE1B;&#xE47;&#xE19; 15 &#xE43;&#xE2B;&#xE49;&#xE2A;&#xE2D;&#xE14;&#xE04;&#xE25;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE31;&#xE1A;&#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE43;&#xE0A;&#xE49;&#xE43;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE19;&#xE35;&#xE49;</p>
<p>&#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE2D;&#xE32; widget &#xE17;&#xE35;&#xE48;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE21;&#xE32;&#xE1B;&#xE23;&#xE30;&#xE01;&#xE2D;&#xE1A;&#xE01;&#xE31;&#xE19; &#xE20;&#xE32;&#xE22;&#xE43;&#xE19; widget <code>Container</code></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>var productDetailInSummary = Container(
    child: Row(
      children: [
        Expanded(
            child: Row(
                children: [shoesImageInSummary],
                textDirection: TextDirection.ltr)),
        Expanded(
            child: Row(children: [
          Column(
              children: [
                shoesNameSummary,
                gapBetweenWidget(0, 50),
                ratingInSummary,
                gapBetweenWidget(0, 20),
                starRowInSummary
              ],
              crossAxisAlignment: CrossAxisAlignment.end,
              mainAxisAlignment: MainAxisAlignment.start)
        ], textDirection: TextDirection.rtl)),
      ],
    ),
    width: 297);
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>widget &#xE16;&#xE39;&#xE01;&#xE40;&#xE01;&#xE47;&#xE1A;&#xE43;&#xE19;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE0A;&#xE37;&#xE48;&#xE2D; <code>productDetailInSummary</code> &#xE21;&#xE35;&#xE04;&#xE27;&#xE32;&#xE21;&#xE01;&#xE27;&#xE49;&#xE32;&#xE07;&#xE40;&#xE17;&#xE48;&#xE32;&#xE01;&#xE31;&#xE1A; widget <code>menuBarInSummary</code> &#xE04;&#xE37;&#xE2D; 297 &#xE15;&#xE32;&#xE21;&#xE41;&#xE1A;&#xE1A;&#xE17;&#xE35;&#xE48;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="anamecolumn2row4acolumn2row4"><a name="column2-row4"></a>Column 2 / Row 4 : &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE23;&#xE32;&#xE22;&#xE25;&#xE30;&#xE40;&#xE2D;&#xE35;&#xE22;&#xE14;&#xE41;&#xE08;&#xE49;&#xE07;&#xE22;&#xE2D;&#xE14;&#xE0A;&#xE33;&#xE23;&#xE30;</h3>
<p>&#xE1B;&#xE23;&#xE30;&#xE01;&#xE32;&#xE28;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23; <code>billing</code> &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE01;&#xE47;&#xE1A;&#xE04;&#xE48;&#xE32; widget <code>Container</code> &#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE1E;&#xE37;&#xE49;&#xE19;&#xE17;&#xE35;&#xE48;&#xE02;&#xE2D;&#xE07;&#xE23;&#xE32;&#xE22;&#xE25;&#xE30;&#xE40;&#xE2D;&#xE35;&#xE22;&#xE14;&#xE21;&#xE39;&#xE25;&#xE04;&#xE48;&#xE32;</p>
<pre><code>var billing = Container(
    decoration: BoxDecoration(
        color: Colors.grey[300], borderRadius: BorderRadius.circular(10)),
    width: 297,
    height: 234);
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="anameacceptbuttonitemclassaaddtocartcheckout"><a name="accept-button-item-class"></a>&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE2A;&#xE35;&#xE48;&#xE40;&#xE2B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE21;&#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A; Add to cart &#xE41;&#xE25;&#xE30; Checkout</h3>
<p>&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A; &#xE0A;&#xE37;&#xE48;&#xE2D;&#xE27;&#xE48;&#xE32; <code>AcceptButtonItem</code> &#xE23;&#xE31;&#xE1A;&#xE04;&#xE48;&#xE32;&#xE2A;&#xE2D;&#xE07;&#xE04;&#xE48;&#xE32;&#xE40;&#xE02;&#xE49;&#xE32;&#xE21;&#xE32; &#xE15;&#xE31;&#xE27;&#xE2B;&#xE19;&#xE36;&#xE48;&#xE07;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21; &#xE2A;&#xE48;&#xE27;&#xE19;&#xE2D;&#xE35;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2B;&#xE19;&#xE36;&#xE48;&#xE07;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19; widget <code>Colors</code> &#xE40;&#xE1B;&#xE47;&#xE19;&#xE2A;&#xE35;&#xE17;&#xE35;&#xE48;&#xE43;&#xE0A;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE1E;&#xE37;&#xE49;&#xE19;&#xE2B;&#xE25;&#xE31;&#xE07;&#xE02;&#xE2D;&#xE07;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE19;&#xE31;&#xE49;&#xE19;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><script src="https://gist.github.com/Washira/95a3b0330d6b2a7542423c4811f9902e.js"></script><!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="anameareassignment"><a name></a>Reassignment : &#xE1B;&#xE38;&#xE48;&#xE21;&#xE01;&#xE14;&#xE22;&#xE37;&#xE19;&#xE22;&#xE31;&#xE19;</h3>
<p>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A; <code>AcceptButtonItem</code> &#xE41;&#xE25;&#xE49;&#xE27; &#xE43;&#xE2B;&#xE49;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE2D;&#xE2D;&#xE1A;&#xE40;&#xE08;&#xE04;&#xE17;&#xE35;&#xE48;&#xE23;&#xE31;&#xE1A;&#xE04;&#xE48;&#xE32;</p>
<pre><code>var addButton = AcceptButtonItem(&quot;Add to cart&quot;, Colors.green);
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="anamecolumn2row5acolumn2row5"><a name="column2-row5"></a>Column 2 / Row 5 : &#xE1B;&#xE38;&#xE48;&#xE21;&#xE40;&#xE0A;&#xE47;&#xE04;&#xE40;&#xE2D;&#xE32;&#xE17;&#xE4C;</h3>
<p>&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE2D;&#xE2D;&#xE1A;&#xE40;&#xE08;&#xE04;&#xE08;&#xE32;&#xE01;&#xE04;&#xE25;&#xE32;&#xE2A; <code>AcceptButtonItem</code> &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE01;&#xE47;&#xE1A;&#xE43;&#xE19;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23; checkoutButton &#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<pre><code>var checkoutButton = AcceptButtonItem(&quot;Checkout&quot;, Colors.red);
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="anamecombinewidgetspage2apage2"><a name="combine-widgets-page2"></a>&#xE1B;&#xE23;&#xE30;&#xE01;&#xE2D;&#xE1A;&#xE23;&#xE48;&#xE32;&#xE07; Page 2</h3>
<p>&#xE19;&#xE33;&#xE40;&#xE2D;&#xE32; widget &#xE17;&#xE31;&#xE49;&#xE07;&#xE2B;&#xE21;&#xE14;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A; Column 2 &#xE21;&#xE32;&#xE23;&#xE27;&#xE21;&#xE01;&#xE31;&#xE19; &#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><script src="https://gist.github.com/Washira/f1f46a9b1facf70e23cfa9acdf71a999.js"></script><!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE25;&#xE2D;&#xE07; debug &#xE2B;&#xE19;&#xE49;&#xE32;&#xE40;&#xE1E;&#xE08;&#xE2A;&#xE2D;&#xE07;&#xE2B;&#xE19;&#xE48;&#xE2D;&#xE22;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE44;&#xE07;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/03/MySummaryPage.png" class="kg-image" alt="Flutter &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; UI &#xE41;&#xE2D;&#xE1E;&#xE1E;&#xE25;&#xE34;&#xE40;&#xE04;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE23;&#xE49;&#xE32;&#xE19;&#xE04;&#xE49;&#xE32;&#xE2D;&#xE2D;&#xE19;&#xE44;&#xE25;&#xE19;&#xE4C; (for My Workshop Record)" loading="lazy" width="957" height="648" srcset="https://toupawa.com/content/images/size/w600/2021/03/MySummaryPage.png 600w, https://toupawa.com/content/images/2021/03/MySummaryPage.png 957w" sizes="(min-width: 720px) 720px"><figcaption>&#xE44;&#xE14;&#xE49;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE2A;&#xE2D;&#xE07;&#xE41;&#xE25;&#xE49;&#xE27; &#xE42;&#xE2D;&#xE40;&#xE04;</figcaption></figure><!--kg-card-begin: markdown--><h2 id="anameadjustmenubara"><a name="adjust-menu-bar"></a>&#xE01;&#xE32;&#xE23;&#xE41;&#xE01;&#xE49;&#xE44;&#xE02;&#xE04;&#xE27;&#xE32;&#xE21;&#xE01;&#xE27;&#xE49;&#xE32;&#xE07;&#xE41;&#xE16;&#xE1A;&#xE40;&#xE21;&#xE19;&#xE39;</h2>
<p>&#xE1B;&#xE31;&#xE0D;&#xE2B;&#xE32;&#xE19;&#xE36;&#xE07;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE1E;&#xE1A;&#xE15;&#xE31;&#xE49;&#xE07;&#xE41;&#xE15;&#xE48;&#xE15;&#xE2D;&#xE19;&#xE41;&#xE23;&#xE01;&#xE41;&#xE15;&#xE48;&#xE40;&#xE23;&#xE32;&#xE44;&#xE21;&#xE48;&#xE2A;&#xE19;&#xE43;&#xE08;&#xE21;&#xE31;&#xE19; &#xE04;&#xE37;&#xE2D; &#xE41;&#xE16;&#xE1A;&#xE40;&#xE21;&#xE19;&#xE39;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; &#xE21;&#xE35;&#xE02;&#xE19;&#xE32;&#xE14;&#xE01;&#xE27;&#xE49;&#xE32;&#xE07;&#xE40;&#xE17;&#xE48;&#xE32;&#xE46;&#xE01;&#xE31;&#xE1A;&#xE02;&#xE19;&#xE32;&#xE14;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE08;&#xE2D;&#xE40;&#xE25;&#xE22; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE17;&#xE35;&#xE48;&#xE08;&#xE23;&#xE34;&#xE07;&#xE01;&#xE47;&#xE44;&#xE21;&#xE48;&#xE43;&#xE0A;&#xE48;&#xE1B;&#xE31;&#xE0D;&#xE2B;&#xE32; &#xE41;&#xE04;&#xE48;&#xE40;&#xE23;&#xE32;&#xE1B;&#xE23;&#xE31;&#xE1A;&#xE02;&#xE19;&#xE32;&#xE14;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE08;&#xE2D;&#xE01;&#xE47;&#xE40;&#xE1E;&#xE35;&#xE22;&#xE07;&#xE1E;&#xE2D; &#xE41;&#xE15;&#xE48;&#xE44;&#xE2B;&#xE19;&#xE46;&#xE01;&#xE47;&#xE21;&#xE32;&#xE16;&#xE36;&#xE07;&#xE19;&#xE35;&#xE48;&#xE25;&#xE30; &#xE02;&#xE2D;&#xE1B;&#xE23;&#xE31;&#xE1A;&#xE02;&#xE19;&#xE32;&#xE14;&#xE43;&#xE2B;&#xE49;&#xE21;&#xE31;&#xE19;&#xE15;&#xE23;&#xE07;&#xE01;&#xE31;&#xE1A;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE46;&#xE21;&#xE31;&#xE19;&#xE15;&#xE31;&#xE49;&#xE07;&#xE41;&#xE15;&#xE48;&#xE15;&#xE2D;&#xE19;&#xE19;&#xE35;&#xE49;&#xE40;&#xE25;&#xE22;&#xE25;&#xE30;&#xE01;&#xE31;&#xE19;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/03/MyShoppingPage_MenuBar_OverSize.png" class="kg-image" alt="Flutter &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; UI &#xE41;&#xE2D;&#xE1E;&#xE1E;&#xE25;&#xE34;&#xE40;&#xE04;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE23;&#xE49;&#xE32;&#xE19;&#xE04;&#xE49;&#xE32;&#xE2D;&#xE2D;&#xE19;&#xE44;&#xE25;&#xE19;&#xE4C; (for My Workshop Record)" loading="lazy" width="957" height="642" srcset="https://toupawa.com/content/images/size/w600/2021/03/MyShoppingPage_MenuBar_OverSize.png 600w, https://toupawa.com/content/images/2021/03/MyShoppingPage_MenuBar_OverSize.png 957w" sizes="(min-width: 720px) 720px"><figcaption>&#xE41;&#xE16;&#xE1A;&#xE40;&#xE21;&#xE19;&#xE39;&#xE01;&#xE27;&#xE49;&#xE32;&#xE07;&#xE40;&#xE01;&#xE34;&#xE19;&#xE44;&#xE1B;</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE43;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE40;&#xE1E;&#xE08; <code>MyShoppingPage</code> &#xE43;&#xE2B;&#xE49;&#xE41;&#xE01;&#xE49; <code>menuBar</code> &#xE42;&#xE14;&#xE22;&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21; Container &#xE04;&#xE23;&#xE2D;&#xE1A;&#xE2D;&#xE35;&#xE01;&#xE17;&#xE35; &#xE41;&#xE25;&#xE49;&#xE27;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14; width &#xE43;&#xE2B;&#xE49;&#xE21;&#xE31;&#xE19;</p>
<pre><code>var menuBar = Container(
  child: Row(
    children: [
      Expanded(
          child: Row(children: [menuButton], textDirection: TextDirection.ltr)),
      Expanded(
          child: Row(children: [cartButton], textDirection: TextDirection.rtl)),
    ],
  ),
  width: 297,
);
</code></pre>
<p>&#xE44;&#xE2B;&#xE19;&#xE14;&#xE39;&#xE0B;&#xE34;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/03/MyShoppingPage_MenuBar_OnSize.png" class="kg-image" alt="Flutter &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; UI &#xE41;&#xE2D;&#xE1E;&#xE1E;&#xE25;&#xE34;&#xE40;&#xE04;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE23;&#xE49;&#xE32;&#xE19;&#xE04;&#xE49;&#xE32;&#xE2D;&#xE2D;&#xE19;&#xE44;&#xE25;&#xE19;&#xE4C; (for My Workshop Record)" loading="lazy" width="956" height="641" srcset="https://toupawa.com/content/images/size/w600/2021/03/MyShoppingPage_MenuBar_OnSize.png 600w, https://toupawa.com/content/images/2021/03/MyShoppingPage_MenuBar_OnSize.png 956w" sizes="(min-width: 720px) 720px"><figcaption>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE1B;&#xE23;&#xE31;&#xE1A;&#xE04;&#xE27;&#xE32;&#xE21;&#xE01;&#xE27;&#xE49;&#xE32;&#xE07;&#xE41;&#xE25;&#xE49;&#xE27;</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE44;&#xE14;&#xE49;&#xE25;&#xE30;</p>
<p>&#xE40;&#xE0A;&#xE48;&#xE19;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;&#xE01;&#xE31;&#xE19;&#xE01;&#xE31;&#xE1A;&#xE2B;&#xE19;&#xE49;&#xE32; <code>MySummaryPage</code></p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="https://toupawa.com/content/images/2021/03/MySummaryPage_MenuBar_OverSize-1.png" class="kg-image" alt="Flutter &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; UI &#xE41;&#xE2D;&#xE1E;&#xE1E;&#xE25;&#xE34;&#xE40;&#xE04;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE23;&#xE49;&#xE32;&#xE19;&#xE04;&#xE49;&#xE32;&#xE2D;&#xE2D;&#xE19;&#xE44;&#xE25;&#xE19;&#xE4C; (for My Workshop Record)" loading="lazy" width="957" height="648" srcset="https://toupawa.com/content/images/size/w600/2021/03/MySummaryPage_MenuBar_OverSize-1.png 600w, https://toupawa.com/content/images/2021/03/MySummaryPage_MenuBar_OverSize-1.png 957w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><p>&#xE17;&#xE33;&#xE41;&#xE1A;&#xE1A;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;&#xE01;&#xE31;&#xE19;&#xE01;&#xE31;&#xE1A;&#xE2B;&#xE19;&#xE49;&#xE32; <code>MySummaryPage</code> &#xE15;&#xE23;&#xE07; <code>menuBarInSummary</code> &#xE14;&#xE49;&#xE27;&#xE22;</p>
<pre><code>var menuBarInSummary = Container(
  child: Row(
    children: [
      Expanded(
          child: Row(children: [backButton], textDirection: TextDirection.ltr)),
      Expanded(
          child: Row(children: [userButton], textDirection: TextDirection.rtl)),
    ],
  ),
  width: 297,
);
</code></pre>
<p>&#xE15;&#xE23;&#xE27;&#xE08;&#xE2A;&#xE2D;&#xE1A;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="https://toupawa.com/content/images/2021/03/MySummaryPage_MenuBar_OnSize.png" class="kg-image" alt="Flutter &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; UI &#xE41;&#xE2D;&#xE1E;&#xE1E;&#xE25;&#xE34;&#xE40;&#xE04;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE23;&#xE49;&#xE32;&#xE19;&#xE04;&#xE49;&#xE32;&#xE2D;&#xE2D;&#xE19;&#xE44;&#xE25;&#xE19;&#xE4C; (for My Workshop Record)" loading="lazy" width="956" height="627" srcset="https://toupawa.com/content/images/size/w600/2021/03/MySummaryPage_MenuBar_OnSize.png 600w, https://toupawa.com/content/images/2021/03/MySummaryPage_MenuBar_OnSize.png 956w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><p>&#xE42;&#xE2D;&#xE40;&#xE04; &#xE1C;&#xE48;&#xE32;&#xE19; &#xE15;&#xE48;&#xE2D;&#xE44;&#xE1B; &#xE44;&#xE1B;&#xE14;&#xE39;&#xE01;&#xE31;&#xE19;&#xE15;&#xE48;&#xE2D;&#xE17;&#xE35;&#xE48; &#xE01;&#xE32;&#xE23;&#xE40;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE21;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE40;&#xE1E;&#xE08;&#xE17;&#xE31;&#xE49;&#xE07;&#xE2A;&#xE2D;&#xE07;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49; &#xE14;&#xE49;&#xE27;&#xE22;&#xE01;&#xE32;&#xE23;&#xE01;&#xE14;&#xE1B;&#xE38;&#xE48;&#xE21;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="anameconnectpagesamyshoppingpagemysummarypage"><a name="connect-pages"></a>&#xE01;&#xE32;&#xE23;&#xE40;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE21;&#xE01;&#xE31;&#xE19;&#xE23;&#xE30;&#xE2B;&#xE27;&#xE48;&#xE32;&#xE07; MyShoppingPage &#xE01;&#xE31;&#xE1A; MySummaryPage</h2>
<p>&#xE43;&#xE19;&#xE01;&#xE32;&#xE23;&#xE2D;&#xE2D;&#xE01;&#xE41;&#xE1A;&#xE1A; &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE43;&#xE2B;&#xE49; &#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE01;&#xE14;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE15;&#xE30;&#xE01;&#xE23;&#xE49;&#xE32;&#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32; &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE33;&#xE44;&#xE1B;&#xE22;&#xE31;&#xE07;&#xE2B;&#xE19;&#xE49;&#xE32; <code>MySummaryPage</code> &#xE14;&#xE31;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19; &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE23;&#xE2D;&#xE43;&#xE2B;&#xE49;&#xE21;&#xE35;&#xE2D;&#xE35;&#xE40;&#xE27;&#xE19;&#xE17;&#xE4C;&#xE40;&#xE01;&#xE34;&#xE14;&#xE02;&#xE36;&#xE49;&#xE19; (Listening) &#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE27;&#xE48;&#xE32; <code>Callback Function</code> &#xE19;&#xE31;&#xE48;&#xE19;&#xE40;&#xE2D;&#xE07;</p>
<p>&#xE43;&#xE19;&#xE01;&#xE32;&#xE23; callback &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE43;&#xE0A;&#xE49; widget &#xE0A;&#xE37;&#xE48;&#xE2D;&#xE27;&#xE48;&#xE32; <code>Navigator</code> &#xE21;&#xE35; 2 &#xE41;&#xE1A;&#xE1A;&#xE04;&#xE37;&#xE2D;</p>
<p><code>Navigator.push()</code> &#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A; &#xE40;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE21;&#xE44;&#xE1B;&#xE22;&#xE31;&#xE07; widget &#xE2B;&#xE19;&#xE49;&#xE32;&#xE16;&#xE31;&#xE14;&#xE44;&#xE1B;</p>
<p><code>Navigator.pop()</code> &#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A; &#xE40;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE21;&#xE01;&#xE25;&#xE31;&#xE1A;&#xE21;&#xE32;&#xE22;&#xE31;&#xE07; widget &#xE2B;&#xE19;&#xE49;&#xE32;&#xE17;&#xE35;&#xE48;&#xE41;&#xE25;&#xE49;&#xE27;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="anamepushanavigatorpush"><a name="push"></a>&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21; Navigator.push()</h3>
<p>&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A;&#xE01;&#xE32;&#xE23;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE43;&#xE19; onPressed properties</p>
<pre><code>onPressed: () {
  Navigator.push(
    context,
    MaterialPageRoute(builder: (context) =&gt; SecondRoute()),
  );
}
</code></pre>
<p>&#xE08;&#xE30;&#xE40;&#xE2B;&#xE47;&#xE19;&#xE27;&#xE48;&#xE32; &#xE15;&#xE49;&#xE2D;&#xE07;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49;&#xE2D;&#xE2D;&#xE1A;&#xE40;&#xE08;&#xE04; context &#xE17;&#xE35;&#xE48;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE21;&#xE32;&#xE08;&#xE32;&#xE01; BuildContext &#xE0B;&#xE36;&#xE48;&#xE07;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE15;&#xE31;&#xE27;&#xE40;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE21;&#xE15;&#xE48;&#xE2D;&#xE01;&#xE31;&#xE1A; reference &#xE01;&#xE31;&#xE1A; widget &#xE17;&#xE31;&#xE49;&#xE07;&#xE2B;&#xE21;&#xE14;&#xE43;&#xE19;&#xE40;&#xE1E;&#xE08;&#xE19;&#xE31;&#xE49;&#xE19;&#xE46;  &#xE14;&#xE31;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19; &#xE08;&#xE33;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE43;&#xE19; widget &#xE02;&#xE2D;&#xE07;&#xE40;&#xE1E;&#xE08; &#xE41;&#xE17;&#xE19;&#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE20;&#xE32;&#xE22;&#xE19;&#xE2D;&#xE01; &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE44;&#xE1B;&#xE43;&#xE0A;&#xE49;&#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19; widget &#xE15;&#xE31;&#xE27;&#xE2D;&#xE37;&#xE48;&#xE19;&#xE46;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE14;&#xE31;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19;&#xE08;&#xE36;&#xE07;&#xE02;&#xE2D;&#xE22;&#xE38;&#xE1A;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23; menuBar &#xE2D;&#xE2D;&#xE01;&#xE08;&#xE32;&#xE01;&#xE2B;&#xE19;&#xE49;&#xE32; MyShoppingPage &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE2D;&#xE32;&#xE04;&#xE48;&#xE32;&#xE02;&#xE2D;&#xE07;&#xE21;&#xE31;&#xE19;&#xE21;&#xE32;&#xE27;&#xE32;&#xE07;&#xE41;&#xE17;&#xE19;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre>
class MyShoppingPage extends StatelessWidget {
  MyShoppingPage({Key key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return Material(
      child: Container(
        child: Column(
          children: [
            <mark>Container(</mark>
                <mark>child: Row(</mark>
                  <mark>children: [</mark>
                    <mark>Expanded(</mark>
                        <mark>child: Row(</mark>
                            <mark>children: [menuButton],</mark>
                            <mark>textDirection: TextDirection.ltr)),</mark>
                    <mark>Expanded(</mark>
                        <mark>child: Row(children: [</mark>
                      <mark>CircleButton(Icons.shopping_cart, () {</mark>
                        <mark>Navigator.push(context,</mark>
                            <mark>MaterialPageRoute(builder: (context) {</mark>
                          <mark>return MySummaryPage();</mark>
                        <mark>}));</mark>
                        <mark>return null;</mark>
                      <mark>})</mark>
                    <mark>], textDirection: TextDirection.rtl)),</mark>
                  <mark>],</mark>
                <mark>),</mark>
                <mark>width: 297)</mark>,
            gapBetweenWidget(0, 30),
            shoesName,
            gapBetweenWidget(0, 20),
            shoesImage,
            gapBetweenWidget(0, 10),
            rowOfRating,
            gapBetweenWidget(0, 10),
            price,
            gapBetweenWidget(0, 10),
            <mark>AcceptButtonItem(&quot;Add to cart&quot;, Colors.green, () {</mark>
              <mark>Navigator.push(context, MaterialPageRoute(builder: (context) {</mark>
                <mark>return MySummaryPage();</mark>
              <mark>}));</mark>
              <mark>return null;</mark>
            <mark>})</mark>,
          ],
        ),
        margin: const EdgeInsets.symmetric(vertical: 4, horizontal: 8),
      ),
    );
  }
}
</pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21; margin &#xE43;&#xE2B;&#xE49;&#xE01;&#xE31;&#xE1A; Container &#xE02;&#xE2D;&#xE07; &#xE41;&#xE16;&#xE1A;&#xE40;&#xE21;&#xE19;&#xE39;&#xE14;&#xE49;&#xE27;&#xE22; &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE2B;&#xE49;&#xE15;&#xE23;&#xE07;&#xE01;&#xE31;&#xE1A;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE2D;&#xE07;</p>
<p>&#xE43;&#xE19;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE02;&#xE2D;&#xE07;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE15;&#xE30;&#xE01;&#xE23;&#xE49;&#xE32;&#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32; &#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE2D;&#xE2D;&#xE1A;&#xE40;&#xE08;&#xE04;&#xE08;&#xE32;&#xE01;&#xE04;&#xE25;&#xE32;&#xE2A; <code>CircleButton</code> &#xE0B;&#xE36;&#xE48;&#xE07; argument &#xE15;&#xE31;&#xE27;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE2D;&#xE07; &#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE44;&#xE27;&#xE49;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE40;&#xE23;&#xE32;&#xE01;&#xE47;&#xE08;&#xE30;&#xE40;&#xE2D;&#xE32;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE17;&#xE35;&#xE48;&#xE04;&#xE23;&#xE2D;&#xE1A; <code>Navigator.push()</code> &#xE25;&#xE07;&#xE44;&#xE1B; &#xE41;&#xE25;&#xE49;&#xE27;&#xE43;&#xE2B;&#xE49;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE19;&#xE31;&#xE49;&#xE19;&#xE04;&#xE37;&#xE19;&#xE04;&#xE48;&#xE32; <code>null</code> &#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE16;&#xE49;&#xE32;&#xE40;&#xE23;&#xE32;&#xE43;&#xE0A;&#xE49; <code>Navigator.push()</code> &#xE41;&#xE17;&#xE19;&#xE25;&#xE07;&#xE44;&#xE1B;&#xE15;&#xE23;&#xE07;&#xE46; &#xE08;&#xE30;&#xE40;&#xE01;&#xE34;&#xE14; error &#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>The argument type &apos;Future&lt;dynamic&gt;&apos; can&apos;t be assigned to the parameter type &apos;Map&lt;dynamic, dynamic&gt; Function()
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE27;&#xE48;&#xE32; <code>Navigator.push()</code> &#xE19;&#xE31;&#xE49;&#xE19;&#xE44;&#xE21;&#xE48;&#xE43;&#xE0A;&#xE48; Function &#xE41;&#xE15;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE0A;&#xE19;&#xE34;&#xE14; Map</p>
<p>&#xE08;&#xE32;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07; &#xE40;&#xE23;&#xE32;&#xE01;&#xE47;&#xE17;&#xE33;&#xE01;&#xE32;&#xE23;&#xE22;&#xE38;&#xE1A;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23; <code>addButton</code> &#xE17;&#xE34;&#xE49;&#xE07;&#xE44;&#xE1B;&#xE40;&#xE0A;&#xE48;&#xE19;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;&#xE01;&#xE31;&#xE19; &#xE43;&#xE19;&#xE01;&#xE23;&#xE13;&#xE35;&#xE17;&#xE35;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE08;&#xE30;&#xE43;&#xE2B;&#xE49;&#xE1B;&#xE38;&#xE48;&#xE21; <code>Add to cart</code> &#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE01;&#xE31;&#xE1A;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE15;&#xE30;&#xE01;&#xE23;&#xE49;&#xE32;&#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32; &#xE04;&#xE37;&#xE2D;&#xE01;&#xE14;&#xE41;&#xE25;&#xE49;&#xE27;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE44;&#xE1B;&#xE22;&#xE31;&#xE07;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE2D;&#xE07;&#xE19;&#xE31;&#xE48;&#xE19;&#xE40;&#xE2D;&#xE07;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="anamepopanavigatorpop"><a name="pop"></a>&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21; Navigator.pop()</h3>
<p>&#xE2A;&#xE48;&#xE27;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32; MySummaryPage &#xE01;&#xE47;&#xE40;&#xE0A;&#xE48;&#xE19;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;&#xE01;&#xE31;&#xE19; &#xE15;&#xE23;&#xE07;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23; menuBarInSummary &#xE01;&#xE47;&#xE08;&#xE30;&#xE16;&#xE39;&#xE01;&#xE22;&#xE38;&#xE1A;&#xE17;&#xE34;&#xE49;&#xE07;&#xE40;&#xE0A;&#xE48;&#xE19;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;&#xE01;&#xE31;&#xE19; &#xE40;&#xE19;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE08;&#xE32;&#xE01;&#xE40;&#xE23;&#xE32;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE43;&#xE2B;&#xE49;&#xE1B;&#xE38;&#xE48;&#xE21; backButton &#xE44;&#xE14;&#xE49;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19; Navigator.pop() &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE2B;&#xE49;&#xE01;&#xE14;&#xE22;&#xE49;&#xE2D;&#xE19;&#xE21;&#xE32;&#xE22;&#xE31;&#xE07;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE17;&#xE35;&#xE48;&#xE41;&#xE25;&#xE49;&#xE27; (&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE23;&#xE01;&#xE19;&#xE31;&#xE48;&#xE19;&#xE41;&#xE2B;&#xE25;&#xE30;)</p>
<p>&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE42;&#xE04;&#xE49;&#xE14;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre>
class MySummaryPage extends StatelessWidget {
  MySummaryPage({Key key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return Material(
      child: Container(
        child: Column(
          children: [
            <mark>Container(</mark>
                <mark>child: Row(</mark>
                  <mark>children: [</mark>
                    <mark>Expanded(</mark>
                        <mark>child: Row(children: [</mark>
                      <mark>CircleButton(Icons.navigate_before, () {</mark>
                        <mark>Navigator.pop(context);</mark>
                        <mark>return null;</mark>
                      <mark>})</mark>
                    <mark>], textDirection: TextDirection.ltr)),</mark>
                   <mark> Expanded(</mark>
                        <mark>child: Row(</mark>
                            <mark>children: [userButton],</mark>
                            <mark>textDirection: TextDirection.rtl)),</mark>
                  <mark>],</mark>
                <mark>),</mark>
                <mark>width: 297)</mark>,
            gapBetweenWidget(0, 30),
            summaryTitle,
            gapBetweenWidget(0, 20),
            productDetailInSummary,
            gapBetweenWidget(0, 20),
            billing,
            gapBetweenWidget(0, 10),
            checkoutButton,
          ],
        ),
        margin: const EdgeInsets.symmetric(vertical: 4, horizontal: 8),
      ),
    );
  }
}
</pre><!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE25;&#xE2D;&#xE07;&#xE01;&#xE14;&#xE23;&#xE31;&#xE19;&#xE14;&#xE39; &#xE08;&#xE30;&#xE21;&#xE35;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE2D;&#xE1E;&#xE1B;&#xE23;&#xE32;&#xE01;&#xE0F;&#xE02;&#xE36;&#xE49;&#xE19; &#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19;&#xE17;&#xE14;&#xE2A;&#xE2D;&#xE1A;&#xE01;&#xE14;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE15;&#xE30;&#xE01;&#xE23;&#xE49;&#xE32;&#xE2A;&#xE34;&#xE19;&#xE04;&#xE49;&#xE32;</p>
<p>&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE2D;&#xE1E;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE44;&#xE14;&#xE49;&#xE1B;&#xE01;&#xE15;&#xE34; &#xE44;&#xE21;&#xE48;&#xE21;&#xE35;&#xE1C;&#xE34;&#xE14;&#xE1E;&#xE25;&#xE32;&#xE14; &#xE41;&#xE15;&#xE48;&#xE40;&#xE23;&#xE32;&#xE1E;&#xE1A;&#xE27;&#xE48;&#xE32; &#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE01;&#xE14;&#xE1B;&#xE38;&#xE48;&#xE21; &#xE2B;&#xE19;&#xE49;&#xE32;&#xE40;&#xE1E;&#xE08;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE40;&#xE1E;&#xE08;&#xE41;&#xE1A;&#xE1A;&#xE2A;&#xE44;&#xE25;&#xE14;&#xE4C;&#xE08;&#xE32;&#xE01;&#xE14;&#xE49;&#xE32;&#xE19;&#xE25;&#xE48;&#xE32;&#xE07; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE16;&#xE49;&#xE32;&#xE44;&#xE21;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE41;&#xE1B;&#xE25;&#xE07; &#xE01;&#xE47;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE08;&#xE1A;&#xE17;&#xE35;&#xE48;&#xE02;&#xE31;&#xE49;&#xE19;&#xE15;&#xE2D;&#xE19;&#xE19;&#xE35;&#xE49;&#xE44;&#xE14;&#xE49; &#xE41;&#xE15;&#xE48;&#xE40;&#xE23;&#xE32;&#xE2D;&#xE22;&#xE32;&#xE01;&#xE43;&#xE2B;&#xE49;&#xE21;&#xE31;&#xE19;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE08;&#xE2D;&#xE41;&#xE1A;&#xE1A;&#xE2A;&#xE44;&#xE25;&#xE14;&#xE4C;&#xE08;&#xE32;&#xE01;&#xE14;&#xE49;&#xE32;&#xE19;&#xE02;&#xE49;&#xE32;&#xE07;&#xE41;&#xE17;&#xE19;</p>
<p>&#xE43;&#xE2B;&#xE49;&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21;&#xE42;&#xE04;&#xE49;&#xE14;&#xE19;&#xE35;&#xE49;&#xE40;&#xE02;&#xE49;&#xE32;&#xE21;&#xE32; &#xE15;&#xE32;&#xE21;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE08;&#xE32;&#xE01; &#xE41;&#xE2B;&#xE25;&#xE48;&#xE07;&#xE2D;&#xE49;&#xE32;&#xE07;&#xE2D;&#xE34;&#xE07;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><script src="https://gist.github.com/Washira/630627b79b4fbfb6d2f0971471edef1b.js"></script><!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE27;&#xE48;&#xE32; <code>createRoute</code> &#xE40;&#xE1B;&#xE47;&#xE19;&#xE0A;&#xE19;&#xE34;&#xE14; <code>Route</code> &#xE17;&#xE35;&#xE48;&#xE20;&#xE32;&#xE22;&#xE43;&#xE19;&#xE08;&#xE30;&#xE04;&#xE37;&#xE19; widget <code>PageRouteBuilder</code>  &#xE42;&#xE14;&#xE22;&#xE43;&#xE19; properties &#xE17;&#xE35;&#xE48;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE27;&#xE48;&#xE32; <code>transitionsBuilder</code> &#xE19;&#xE35;&#xE48;&#xE41;&#xE2B;&#xE25;&#xE30;&#xE17;&#xE35;&#xE48;&#xE43;&#xE0A;&#xE49;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE44;&#xE25;&#xE14;&#xE4C;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE15;&#xE48;&#xE32;&#xE07; &#xE42;&#xE14;&#xE22;&#xE2A;&#xE31;&#xE07;&#xE40;&#xE01;&#xE15;&#xE17;&#xE35;&#xE48;&#xE04;&#xE48;&#xE32; <code>begin</code> &#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49; <code>Offset</code> &#xE41;&#xE25;&#xE49;&#xE27;&#xE15;&#xE31;&#xE49;&#xE07;&#xE04;&#xE48;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19; <em>1.0, 0.0</em> &#xE15;&#xE32;&#xE21;&#xE41;&#xE01;&#xE19; x &#xE41;&#xE01;&#xE19; y &#xE19;&#xE31;&#xE48;&#xE19;&#xE40;&#xE2D;&#xE07;</p>
<p>&#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE17;&#xE35;&#xE48;&#xE04;&#xE23;&#xE2D;&#xE1A; <code>Navigator.push()</code> &#xE02;&#xE2D;&#xE07; <code>MyShoppingPage</code> &#xE40;&#xE1B;&#xE47;&#xE19;&#xE14;&#xE31;&#xE07;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><script src="https://gist.github.com/Washira/c79790f802005d0ae7d537653b759937.js"></script><!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE2A;&#xE48;&#xE27;&#xE19; <code>MySummaryPage</code> &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE44;&#xE21;&#xE48;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE41;&#xE1B;&#xE25;&#xE07;&#xE04;&#xE48;&#xE32;&#xE2D;&#xE30;&#xE44;&#xE23; &#xE43;&#xE0A;&#xE49; <code>Navigator.pop()</code> &#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE40;&#xE14;&#xE34;&#xE21;</p>
<p>&#xE25;&#xE2D;&#xE07;&#xE01;&#xE14;&#xE23;&#xE31;&#xE19;&#xE14;&#xE39;&#xE2D;&#xE35;&#xE01;&#xE04;&#xE23;&#xE31;&#xE49;&#xE07; &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE1E;&#xE1A;&#xE27;&#xE48;&#xE32;&#xE21;&#xE31;&#xE19;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE40;&#xE1E;&#xE08;&#xE41;&#xE1A;&#xE1A;&#xE2A;&#xE44;&#xE25;&#xE14;&#xE4C;&#xE14;&#xE49;&#xE32;&#xE19;&#xE02;&#xE49;&#xE32;&#xE07;&#xE44;&#xE14;&#xE49;&#xE41;&#xE25;&#xE49;&#xE27; &#xE40;&#xE22;&#xE49;</p>
<p>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;&#xE44;&#xE14;&#xE49;&#xE15;&#xE32;&#xE21;&#xE17;&#xE35;&#xE48;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE41;&#xE25;&#xE49;&#xE27; &#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE19;&#xE35;&#xE49;&#xE01;&#xE47;&#xE02;&#xE2D;&#xE08;&#xE1A;&#xE41;&#xE15;&#xE48;&#xE40;&#xE1E;&#xE35;&#xE22;&#xE07;&#xE40;&#xE17;&#xE48;&#xE32;&#xE19;&#xE35;&#xE49;&#xE04;&#xE23;&#xE31;&#xE1A;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="references">References</h3>
<p><a href="https://pub.dev/">Pub Dev</a></p>
<p><a href="https://www.pexels.com/th-th/photo/2529148/">Shoes Image</a></p>
<p><a href="https://flutter.dev/docs/development/ui/widgets/layout">Layout widget</a><br>
<a href="https://flutter.dev/docs/development/ui/layout">Layout</a><br>
<a href="https://flutter.dev/docs/development/ui/widgets/material">Material</a><br>
<a href="https://api.flutter.dev/flutter/material/MaterialApp-class.html">Material App</a><br>
<a href="https://api.flutter.dev/flutter/material/Material-class.html">Material Class</a><br>
<a href="https://api.flutter.dev/flutter/material/Scaffold-class.html">Scaffolf Class</a><br>
<a href="https://api.flutter.dev/flutter/material/AppBar-class.html">AppBar Class</a><br>
<a href="https://api.flutter.dev/flutter/widgets/Container-class.html">Container Class</a><br>
<a href="https://api.flutter.dev/flutter/painting/BoxDecoration-class.html">BoxDecoration Class</a><br>
<a href="https://api.flutter.dev/flutter/dart-ui/Color-class.html">Color Class</a><br>
<a href="https://api.flutter.dev/flutter/widgets/Icon-class.html">Icon Class</a><br>
<a href="https://api.flutter.dev/flutter/material/ElevatedButton-class.html">ElevatedButton Class</a><br>
<a href="https://api.flutter.dev/flutter/material/MaterialStateProperty-class.html">MaterialStateProperty Class</a></p>
<p><a href="https://flutterforyou.com/how-to-change-the-color-of-elevatedbutton-in-flutter/">How to change the color of elevatedbutton in Flutter</a></p>
<p><a href="https://api.flutter.dev/flutter/widgets/SizedBox-class.html">SizedBox Class</a><br>
<a href="https://flutter.dev/docs/cookbook/navigation/navigation-basics">Navigation Basic</a><br>
<a href="https://flutter.dev/docs/cookbook/animation/page-route-animation">Page Route Animation</a></p>
<p><a href="https://htmlcolorcodes.com/">HTML Color</a><br>
<a href="https://benzneststudios.com/blog/flutter/summary-about-build-context-widget-state-key-in-flutter/">Summary about build context widget key in Flutter</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[พื้นฐานการออกแบบ UI ใน Flutter]]></title><description><![CDATA[อธิบายพื้นฐานการเขียน Widget ต่างๆ ใน Flutter เพื่อใช้สร้าง UI ของหน้าแอพพลิเคชัน]]></description><link>https://toupawa.com/introduction-create-widget-ui-in-flutter/</link><guid isPermaLink="false">602a66b474fb582548a52129</guid><category><![CDATA[flutter]]></category><category><![CDATA[mobile]]></category><dc:creator><![CDATA[TPW]]></dc:creator><pubDate>Mon, 15 Feb 2021 14:45:28 GMT</pubDate><media:content url="https://toupawa.com/content/images/2021/02/Cover-Page.png" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://toupawa.com/content/images/2021/02/Cover-Page.png" alt="&#xE1E;&#xE37;&#xE49;&#xE19;&#xE10;&#xE32;&#xE19;&#xE01;&#xE32;&#xE23;&#xE2D;&#xE2D;&#xE01;&#xE41;&#xE1A;&#xE1A; UI &#xE43;&#xE19; Flutter"><p>&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE19;&#xE35;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE01;&#xE32;&#xE23;&#xE27;&#xE48;&#xE32;&#xE01;&#xE31;&#xE19;&#xE14;&#xE49;&#xE27;&#xE22; &#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE1E;&#xE37;&#xE49;&#xE19;&#xE10;&#xE32;&#xE19;&#xE46; &#xE40;&#xE25;&#xE22;&#xE02;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19;&#xE41;&#xE2D;&#xE1E;&#xE14;&#xE49;&#xE27;&#xE22; Flutter &#xE27;&#xE48;&#xE32; &#xE40;&#xE23;&#xE32;&#xE08;&#xE33;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE08;&#xE30;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE40;&#xE02;&#xE49;&#xE32;&#xE43;&#xE08;&#xE2D;&#xE30;&#xE44;&#xE23;&#xE1A;&#xE49;&#xE32;&#xE07;&#xE43;&#xE19;&#xE42;&#xE04;&#xE49;&#xE14;&#xE02;&#xE2D;&#xE07;&#xE44;&#xE1F;&#xE25;&#xE4C; <strong>main.dart</strong> &#xE01;&#xE31;&#xE19;&#xE1A;&#xE49;&#xE32;&#xE07; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE1C;&#xE21;&#xE01;&#xE47;&#xE1E;&#xE22;&#xE32;&#xE22;&#xE32;&#xE21;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19;&#xE43;&#xE2B;&#xE49;&#xE21;&#xE31;&#xE19;&#xE07;&#xE48;&#xE32;&#xE22;&#xE15;&#xE48;&#xE2D;&#xE04;&#xE19;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE38;&#xE14; &#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE16;&#xE49;&#xE32;&#xE40;&#xE02;&#xE49;&#xE32;&#xE43;&#xE08;&#xE1E;&#xE37;&#xE49;&#xE19;&#xE10;&#xE32;&#xE19;&#xE1C;&#xE34;&#xE14;&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE04;&#xE25;&#xE32;&#xE14;&#xE40;&#xE04;&#xE25;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE08;&#xE32;&#xE01;&#xE04;&#xE27;&#xE32;&#xE21;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE08;&#xE23;&#xE34;&#xE07;&#xE19;&#xE35;&#xE48; &#xE41;&#xE21;&#xE49;&#xE08;&#xE30;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE15;&#xE49;&#xE19;&#xE44;&#xE14;&#xE49;&#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE01;&#xE31;&#xE19;&#xE01;&#xE31;&#xE1A;&#xE04;&#xE19;&#xE17;&#xE35;&#xE48;&#xE23;&#xE39;&#xE49;&#xE1E;&#xE37;&#xE49;&#xE19;&#xE10;&#xE32;&#xE19;&#xE17;&#xE35;&#xE48;&#xE16;&#xE39;&#xE01;&#xE15;&#xE49;&#xE2D;&#xE07; &#xE41;&#xE15;&#xE48;&#xE08;&#xE38;&#xE14;&#xE2B;&#xE21;&#xE32;&#xE22;&#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE44;&#xE1B;&#xE16;&#xE36;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19;&#xE15;&#xE48;&#xE32;&#xE07;&#xE01;&#xE31;&#xE19;&#xE21;&#xE32;&#xE01;&#xE41;&#xE19;&#xE48;&#xE19;&#xE2D;&#xE19;</p>
<p>&#xE41;&#xE25;&#xE30;&#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE1E;&#xE37;&#xE49;&#xE19;&#xE10;&#xE32;&#xE19;&#xE21;&#xE31;&#xE19;&#xE2A;&#xE33;&#xE04;&#xE31;&#xE0D;&#xE21;&#xE32;&#xE01;&#xE46; &#xE1C;&#xE21;&#xE40;&#xE25;&#xE22;&#xE1E;&#xE22;&#xE32;&#xE22;&#xE32;&#xE21;&#xE2B;&#xE32;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE08;&#xE32;&#xE01;&#xE2B;&#xE25;&#xE32;&#xE22;&#xE46;&#xE40;&#xE27;&#xE47;&#xE1A;&#xE21;&#xE32;&#xE01; &#xE42;&#xE14;&#xE22;&#xE15;&#xE31;&#xE27;&#xE2B;&#xE25;&#xE31;&#xE01;&#xE17;&#xE35;&#xE48;&#xE2D;&#xE48;&#xE32;&#xE19;&#xE01;&#xE47;&#xE04;&#xE37;&#xE2D; doc &#xE02;&#xE2D;&#xE07; Flutter &#xE40;&#xE2D;&#xE07;&#xE19;&#xE48;&#xE19;&#xE41;&#xE2B;&#xE25;&#xE30; &#xE41;&#xE15;&#xE48;&#xE01;&#xE47;&#xE1E;&#xE22;&#xE32;&#xE22;&#xE32;&#xE21;&#xE2B;&#xE32;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE02;&#xE2D;&#xE07;&#xE40;&#xE08;&#xE49;&#xE32;&#xE2D;&#xE37;&#xE48;&#xE19;&#xE46;&#xE17;&#xE35;&#xE48;&#xE40;&#xE02;&#xE49;&#xE32;&#xE43;&#xE08;&#xE07;&#xE48;&#xE32;&#xE22;&#xE46;&#xE21;&#xE32;&#xE1B;&#xE23;&#xE30;&#xE01;&#xE2D;&#xE1A;&#xE01;&#xE31;&#xE19;&#xE14;&#xE49;&#xE27;&#xE22; &#xE44;&#xE1B;&#xE14;&#xE39;&#xE01;&#xE31;&#xE19;&#xE17;&#xE35;&#xE25;&#xE30;&#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE01;&#xE31;&#xE19;&#xE40;&#xE25;&#xE22;</p>
<h2 id="description">Description</h2>
<p>&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE08;&#xE32;&#xE01; &#xE04;&#xE33;&#xE2D;&#xE18;&#xE34;&#xE1A;&#xE32;&#xE22;&#xE28;&#xE31;&#xE1E;&#xE17;&#xE4C;&#xE41;&#xE2A;&#xE07;&#xE15;&#xE48;&#xE32;&#xE07;&#xE46; &#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE40;&#xE08;&#xE2D;&#xE1A;&#xE48;&#xE2D;&#xE22;&#xE46;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p><strong>Material Design</strong></p>
<p>&#xE04;&#xE37;&#xE2D; <a href="https://www.blognone.com/node/57820">&#xE21;&#xE32;&#xE15;&#xE23;&#xE10;&#xE32;&#xE19;</a>&#xE01;&#xE32;&#xE23;&#xE2D;&#xE2D;&#xE01;&#xE41;&#xE1A;&#xE1A; UI &#xE1A;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE08;&#xE2D;&#xE2A;&#xE21;&#xE32;&#xE23;&#xE4C;&#xE17;&#xE42;&#xE1F;&#xE19;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p><strong>Widget</strong></p>
<p>&#xE04;&#xE37;&#xE2D;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE15;&#xE48;&#xE32;&#xE07;&#xE46;&#xE17;&#xE35;&#xE48;&#xE19;&#xE33;&#xE21;&#xE32;&#xE1B;&#xE23;&#xE30;&#xE01;&#xE2D;&#xE1A;&#xE23;&#xE48;&#xE32;&#xE07;&#xE01;&#xE31;&#xE19;&#xE40;&#xE1B;&#xE47;&#xE19; UI &#xE40;&#xE0A;&#xE48;&#xE19; &#xE1B;&#xE38;&#xE48;&#xE21; &#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21; &#xE2A;&#xE44;&#xE25;&#xE14;&#xE4C; &#xE40;&#xE1B;&#xE47;&#xE19;&#xE15;&#xE49;&#xE19; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE41;&#xE15;&#xE48;&#xE25;&#xE30; Widget &#xE01;&#xE47;&#xE21;&#xE35; &#xE04;&#xE38;&#xE13;&#xE2A;&#xE21;&#xE1A;&#xE31;&#xE15;&#xE34; (Properties) &#xE40;&#xE1B;&#xE47;&#xE19;&#xE02;&#xE2D;&#xE07;&#xE15;&#xE31;&#xE27;&#xE40;&#xE2D;&#xE07;</p>
<p>&#xE43;&#xE19; Flutter &#xE19;&#xE31;&#xE49;&#xE19; Widget &#xE16;&#xE37;&#xE2D;&#xE27;&#xE48;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE2B;&#xE25;&#xE31;&#xE01;&#xE40;&#xE25;&#xE22;&#xE01;&#xE47;&#xE27;&#xE48;&#xE32;&#xE44;&#xE14;&#xE49; &#xE04;&#xE25;&#xE32;&#xE2A;&#xE2D;&#xE37;&#xE48;&#xE19;&#xE46; &#xE15;&#xE48;&#xE32;&#xE07;&#xE01;&#xE47;&#xE2A;&#xE37;&#xE1A;&#xE17;&#xE2D;&#xE14;&#xE21;&#xE32;&#xE08;&#xE32;&#xE01; Widget &#xE01;&#xE31;&#xE19;&#xE17;&#xE31;&#xE49;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19; &#xE2D;&#xE32;&#xE17;&#xE34;&#xE40;&#xE0A;&#xE48;&#xE19;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>-&gt; <em>Text</em><br>
&#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE41;&#xE2A;&#xE14;&#xE07;&#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21; &#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE41;&#xE2A;&#xE14;&#xE07;&#xE43;&#xE0A;&#xE49;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21;&#xE25;&#xE07;&#xE43;&#xE19; Widget &#xE2D;&#xE37;&#xE48;&#xE19;&#xE46;&#xE44;&#xE14;&#xE49;</p>
<p>-&gt; <em>RaisedButton</em><br>
&#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE41;&#xE25;&#xE30;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE04;&#xE38;&#xE13;&#xE2A;&#xE21;&#xE1A;&#xE31;&#xE15;&#xE34;&#xE02;&#xE2D;&#xE07;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE19;&#xE31;&#xE49;&#xE19;</p>
<p>-&gt; <em>Row</em> &#xE41;&#xE25;&#xE30; <em>Column</em><br>
&#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE08;&#xE31;&#xE14;&#xE01;&#xE32;&#xE23; Layout &#xE02;&#xE2D;&#xE07;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE2D;&#xE1E; &#xE41;&#xE1A;&#xE1A; Row &#xE40;&#xE1B;&#xE47;&#xE19;&#xE01;&#xE32;&#xE23;&#xE08;&#xE31;&#xE14;&#xE40;&#xE23;&#xE35;&#xE22;&#xE07; Widget &#xE41;&#xE1A;&#xE1A;&#xE0B;&#xE49;&#xE32;&#xE22;-&#xE02;&#xE27;&#xE32; &#xE2A;&#xE48;&#xE27;&#xE19; Column &#xE40;&#xE1B;&#xE47;&#xE19;&#xE01;&#xE32;&#xE23;&#xE08;&#xE31;&#xE14;&#xE40;&#xE23;&#xE35;&#xE22;&#xE07;&#xE41;&#xE1A;&#xE1A;&#xE1A;&#xE19;-&#xE25;&#xE48;&#xE32;&#xE07;</p>
<p>-&gt; <em>Stack</em><br>
&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE25;&#xE33;&#xE14;&#xE31;&#xE1A;&#xE01;&#xE32;&#xE23;&#xE0B;&#xE49;&#xE2D;&#xE19;&#xE17;&#xE31;&#xE1A;&#xE43;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32; Layout &#xE40;&#xE27;&#xE25;&#xE32;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19; &#xE43;&#xE2B;&#xE49;&#xE21;&#xE2D;&#xE07;&#xE20;&#xE32;&#xE1E; 2D &#xE43;&#xE2B;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19; 3D &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE35;&#xE22;&#xE1A;&#xE40;&#xE23;&#xE35;&#xE22;&#xE07;&#xE14;&#xE49;&#xE32;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32;-&#xE14;&#xE49;&#xE32;&#xE19;&#xE2B;&#xE25;&#xE31;&#xE07;&#xE02;&#xE2D;&#xE07; Widget &#xE19;&#xE31;&#xE49;&#xE19;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>-&gt; <em>Container</em><br>
&#xE40;&#xE1B;&#xE47;&#xE19; Widget &#xE17;&#xE33;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE17;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19; &#xE1E;&#xE37;&#xE49;&#xE19;&#xE17;&#xE35;&#xE48;&#xE17;&#xE35;&#xE48;&#xE23;&#xE27;&#xE1A;&#xE23;&#xE27;&#xE21; Widget &#xE15;&#xE48;&#xE32;&#xE07;&#xE46; &#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49;<br>
&#xE15;&#xE31;&#xE27; Container &#xE21;&#xE35; Widget &#xE20;&#xE32;&#xE22;&#xE43;&#xE19;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE41;&#xE1A;&#xE48;&#xE07;&#xE2D;&#xE2D;&#xE01;&#xE40;&#xE1B;&#xE47;&#xE19; Layer &#xE44;&#xE14;&#xE49;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/02/margin-padding-border-9616dd0d7af45b95e6fcface25cd933b6b4a0fda51c1ab1bb9287bc8ed92c356.png" class="kg-image" alt="&#xE1E;&#xE37;&#xE49;&#xE19;&#xE10;&#xE32;&#xE19;&#xE01;&#xE32;&#xE23;&#xE2D;&#xE2D;&#xE01;&#xE41;&#xE1A;&#xE1A; UI &#xE43;&#xE19; Flutter" loading="lazy" width="302" height="212"><figcaption>Margin &gt; Border &gt; Padding &gt; Content</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE40;&#xE23;&#xE35;&#xE22;&#xE07;&#xE25;&#xE33;&#xE14;&#xE31;&#xE1A;&#xE17;&#xE35;&#xE48;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE02;&#xE2D;&#xE07; Properties &#xE08;&#xE32;&#xE01;&#xE14;&#xE49;&#xE32;&#xE19;&#xE19;&#xE2D;&#xE01;&#xE40;&#xE02;&#xE49;&#xE32;&#xE2A;&#xE39;&#xE49;&#xE14;&#xE49;&#xE32;&#xE19;&#xE43;&#xE19;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;<br>
<code>Margin &gt; Border &gt; Padding &gt; Content</code><br>
&#xE15;&#xE31;&#xE27; Content &#xE19;&#xE31;&#xE49;&#xE19;&#xE08;&#xE30;&#xE16;&#xE39;&#xE01;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE42;&#xE14;&#xE22; Properties &#xE17;&#xE35;&#xE48;&#xE0A;&#xE37;&#xE48;&#xE2D; child &#xE0B;&#xE36;&#xE48;&#xE07;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE1A;&#xE23;&#xE23;&#xE08;&#xE38; Widget &#xE44;&#xE14;&#xE49;&#xE2B;&#xE25;&#xE32;&#xE22;&#xE0A;&#xE19;&#xE34;&#xE14; &#xE40;&#xE0A;&#xE48;&#xE19; Row, Column, Image &#xE2B;&#xE23;&#xE37;&#xE2D;&#xE27;&#xE48;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19; Container &#xE40;&#xE2D;&#xE07; &#xE41;&#xE15;&#xE48;&#xE1A;&#xE23;&#xE23;&#xE08;&#xE38;&#xE44;&#xE14;&#xE49;&#xE41;&#xE04;&#xE48;&#xE15;&#xE31;&#xE27;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;&#xE19;&#xE30; &#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE2D;&#xE30;&#xE44;&#xE23; &#xE40;&#xE14;&#xE35;&#xE4B;&#xE22;&#xE27;&#xE08;&#xE30;&#xE2D;&#xE18;&#xE34;&#xE1A;&#xE32;&#xE22;&#xE20;&#xE32;&#xE22;&#xE2B;&#xE25;&#xE31;&#xE07;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>-&gt; <em>MaterialApp</em><br>
&#xE40;&#xE1B;&#xE47;&#xE19; Widget &#xE2B;&#xE25;&#xE31;&#xE01; &#xE17;&#xE35;&#xE48;&#xE17;&#xE33;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE17;&#xE35;&#xE48;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE15;&#xE48;&#xE32;&#xE07;&#xE46;&#xE02;&#xE2D;&#xE07;&#xE41;&#xE2D;&#xE1E; &#xE15;&#xE31;&#xE49;&#xE07;&#xE41;&#xE15;&#xE48;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE41;&#xE2D;&#xE1E; &#xE44;&#xE2D;&#xE04;&#xE48;&#xE2D;&#xE19; &#xE44;&#xE1B;&#xE08;&#xE19;&#xE16;&#xE36;&#xE07;&#xE20;&#xE32;&#xE22;&#xE43;&#xE19;&#xE41;&#xE2D;&#xE1E;&#xE17;&#xE31;&#xE49;&#xE07;&#xE2B;&#xE21;&#xE14; &#xE16;&#xE49;&#xE32;&#xE40;&#xE23;&#xE32;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE43;&#xE2B;&#xE49;&#xE41;&#xE2D;&#xE1E;&#xE02;&#xE2D;&#xE07;&#xE40;&#xE23;&#xE32;&#xE41;&#xE2A;&#xE14;&#xE07;&#xE2D;&#xE30;&#xE44;&#xE23;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE1A;&#xE49;&#xE32;&#xE07; &#xE43;&#xE2B;&#xE49;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19;&#xE42;&#xE04;&#xE49;&#xE14;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE04;&#xE48;&#xE32;&#xE43;&#xE19;&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A; properties &#xE44;&#xE27;&#xE49;&#xE43;&#xE19;&#xE19;&#xE35;&#xE49;</p>
<p>-&gt; <em>Scaffold</em><br>
&#xE40;&#xE1B;&#xE47;&#xE19; Widget &#xE15;&#xE31;&#xE27;&#xE2B;&#xE19;&#xE36;&#xE48;&#xE07;&#xE17;&#xE35;&#xE48;&#xE17;&#xE33;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE17;&#xE35;&#xE48;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14; Layout &#xE02;&#xE2D;&#xE07;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE2D;&#xE1E; &#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE42;&#xE04;&#xE23;&#xE07;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE15;&#xE48;&#xE32;&#xE07; &#xE40;&#xE27;&#xE49;&#xE19;&#xE23;&#xE30;&#xE22;&#xE30;&#xE02;&#xE2D;&#xE1A;&#xE43;&#xE2B;&#xE49;&#xE42;&#xE14;&#xE22;&#xE2D;&#xE31;&#xE15;&#xE34;&#xE42;&#xE19;&#xE21;&#xE31;&#xE15;&#xE34;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/02/01_app_without_scaffold-1.jpg" class="kg-image" alt="&#xE1E;&#xE37;&#xE49;&#xE19;&#xE10;&#xE32;&#xE19;&#xE01;&#xE32;&#xE23;&#xE2D;&#xE2D;&#xE01;&#xE41;&#xE1A;&#xE1A; UI &#xE43;&#xE19; Flutter" loading="lazy" width="525" height="895"><figcaption>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE44;&#xE21;&#xE48;&#xE43;&#xE0A;&#xE49; Scaffold</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/02/02.app_with_scaffold.jpg" class="kg-image" alt="&#xE1E;&#xE37;&#xE49;&#xE19;&#xE10;&#xE32;&#xE19;&#xE01;&#xE32;&#xE23;&#xE2D;&#xE2D;&#xE01;&#xE41;&#xE1A;&#xE1A; UI &#xE43;&#xE19; Flutter" loading="lazy" width="517" height="891"><figcaption>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE0A;&#xE49; Scaffold</figcaption></figure><!--kg-card-begin: markdown--><p>-&gt; <em>StatelessWidget</em><br>
&#xE04;&#xE37;&#xE2D; Widget &#xE17;&#xE35;&#xE48;&#xE43;&#xE0A;&#xE49;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; Widget &#xE2D;&#xE37;&#xE48;&#xE19;&#xE41;&#xE25;&#xE49;&#xE27;&#xE41;&#xE2A;&#xE14;&#xE07;&#xE1C;&#xE25;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32; &#xE44;&#xE21;&#xE48;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE41;&#xE1B;&#xE25;&#xE07;&#xE04;&#xE48;&#xE32;&#xE43;&#xE19;&#xE19;&#xE31;&#xE49;&#xE19;&#xE44;&#xE14;&#xE49; &#xE14;&#xE31;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19;&#xE08;&#xE36;&#xE07;&#xE43;&#xE0A;&#xE49;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; Widget &#xE17;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE04;&#xE48;&#xE32;&#xE04;&#xE07;&#xE17;&#xE35;&#xE48; &#xE40;&#xE0A;&#xE48;&#xE19; &#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21; &#xE44;&#xE2D;&#xE04;&#xE2D;&#xE19;</p>
<p>&#xE42;&#xE04;&#xE23;&#xE07;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>class &lt;class_name&gt; extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      //to do
    );
  }
}
</code></pre>
<p>&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; &#xE43;&#xE2B;&#xE49;&#xE40;&#xE2D;&#xE32; Widget &#xE41;&#xE25;&#xE30; Properties &#xE40;&#xE02;&#xE49;&#xE32;&#xE44;&#xE1B;&#xE43;&#xE2A;&#xE48;&#xE43;&#xE19; Container (&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE43;&#xE0A;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19; MaterialApp &#xE16;&#xE49;&#xE32;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE43;&#xE2B;&#xE49;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE2D;&#xE1E;&#xE17;&#xE31;&#xE49;&#xE07;&#xE2B;&#xE21;&#xE14;&#xE40;&#xE1B;&#xE47;&#xE19; Stateless)</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>-&gt; <em>StatefulWidget</em><br>
&#xE04;&#xE37;&#xE2D; Widget &#xE17;&#xE35;&#xE48;&#xE43;&#xE0A;&#xE49;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; Widget &#xE2D;&#xE37;&#xE48;&#xE19;&#xE41;&#xE25;&#xE49;&#xE27;&#xE41;&#xE2A;&#xE14;&#xE07;&#xE1C;&#xE25;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32; &#xE41;&#xE15;&#xE48;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE41;&#xE1B;&#xE25;&#xE07;&#xE04;&#xE48;&#xE32;&#xE44;&#xE14;&#xE49; &#xE14;&#xE31;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19;&#xE08;&#xE36;&#xE07;&#xE43;&#xE0A;&#xE49;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; Widget &#xE17;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE41;&#xE1B;&#xE25;&#xE07;&#xE44;&#xE14;&#xE49; &#xE40;&#xE0A;&#xE48;&#xE19; Slider &#xE2B;&#xE23;&#xE37;&#xE2D; Check Box</p>
<p>&#xE42;&#xE04;&#xE23;&#xE07;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>class &lt;class_name&gt; extends StatefulWidget {
  @override
  _&lt;class_name&gt;State createState() =&gt; _&lt;class_name&gt;State();
}

class _&lt;class_name&gt;State extends State&lt;&lt;class_name&gt;&gt; {
  @override
  Widget build(BuildContext context) {
    return Container(
      //to do
    );
  }
}
</code></pre>
<p>&#xE08;&#xE30;&#xE04;&#xE25;&#xE49;&#xE32;&#xE22;&#xE46;&#xE01;&#xE31;&#xE1A; Stateless &#xE41;&#xE15;&#xE48;&#xE08;&#xE30;&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19; <code>setState()</code> &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE2D;&#xE32; Widget &#xE41;&#xE25;&#xE30; Properties &#xE17;&#xE35;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE41;&#xE1B;&#xE25;&#xE07;&#xE04;&#xE48;&#xE32; &#xE40;&#xE02;&#xE49;&#xE32;&#xE44;&#xE1B;&#xE43;&#xE2A;&#xE48;&#xE43;&#xE19; <em>Container</em> &#xE2B;&#xE23;&#xE37;&#xE2D; <em>MaterialApp</em><br>
&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE41;&#xE1B;&#xE25;&#xE07;&#xE04;&#xE48;&#xE32; &#xE15;&#xE31;&#xE27;&#xE41;&#xE2D;&#xE1E;&#xE08;&#xE30;&#xE23;&#xE31;&#xE19;&#xE15;&#xE48;&#xE2D;&#xE44;&#xE14;&#xE49;&#xE40;&#xE25;&#xE22;&#xE42;&#xE14;&#xE22;&#xE44;&#xE21;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07; build &#xE43;&#xE2B;&#xE21;&#xE48;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id>&#xE27;&#xE34;&#xE18;&#xE35;&#xE2D;&#xE2D;&#xE01;&#xE41;&#xE1A;&#xE1A;&#xE42;&#xE04;&#xE23;&#xE07;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE2D;&#xE1E;</h2>
<p>&#xE40;&#xE19;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE08;&#xE32;&#xE01;&#xE42;&#xE04;&#xE23;&#xE07;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE02;&#xE2D;&#xE07; Flutter &#xE19;&#xE31;&#xE49;&#xE19; &#xE21;&#xE2D;&#xE07;&#xE17;&#xE38;&#xE01;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19; Widget &#xE41;&#xE17;&#xE1A;&#xE17;&#xE31;&#xE49;&#xE07;&#xE2B;&#xE21;&#xE14; &#xE14;&#xE31;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19; &#xE01;&#xE32;&#xE23;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2D;&#xE2D;&#xE01;&#xE41;&#xE1A;&#xE1A;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE2D;&#xE1E; &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE08;&#xE32;&#xE01;&#xE01;&#xE32;&#xE23;&#xE2D;&#xE2D;&#xE01;&#xE41;&#xE1A;&#xE1A; Widget &#xE22;&#xE48;&#xE2D;&#xE22;&#xE46;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE01;&#xE48;&#xE2D;&#xE19;</p>
<p>&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE08;&#xE32;&#xE01; &#xE01;&#xE32;&#xE23;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01; Layout Widget &#xE01;&#xE48;&#xE2D;&#xE19; &#xE40;&#xE23;&#xE32;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE43;&#xE2B;&#xE49; &#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE2D;&#xE1E;&#xE02;&#xE2D;&#xE07;&#xE40;&#xE23;&#xE32;&#xE21;&#xE35;&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A;&#xE44;&#xE2B;&#xE19; &#xE40;&#xE0A;&#xE48;&#xE19;</p>
<p><u>&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE08;&#xE31;&#xE14;&#xE27;&#xE32;&#xE07;&#xE43;&#xE2B;&#xE49;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE15;&#xE23;&#xE07;&#xE01;&#xE25;&#xE32;&#xE07;</u> &#xE43;&#xE0A;&#xE49;<br>
<code>Center()</code><br>
&#xE14;&#xE39;&#xE23;&#xE32;&#xE22;&#xE25;&#xE30;&#xE40;&#xE2D;&#xE35;&#xE22;&#xE14; <a href="https://api.flutter.dev/flutter/widgets/Center-class.html">Center</a></p>
<p><u>&#xE08;&#xE31;&#xE14;&#xE27;&#xE32;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE41;&#xE16;&#xE27;</u> &#xE43;&#xE0A;&#xE49;<br>
<code>Row()</code><br>
&#xE14;&#xE39;&#xE23;&#xE32;&#xE22;&#xE25;&#xE30;&#xE40;&#xE2D;&#xE35;&#xE22;&#xE14; <a href="https://api.flutter.dev/flutter/widgets/Row-class.html">Row</a> &#xE40;&#xE1E;&#xE34;&#xE48;&#xE21;&#xE40;&#xE15;&#xE34;&#xE21;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE15;&#xE48;&#xE2D;&#xE21;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; Widget &#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE43;&#xE2B;&#xE49;&#xE1B;&#xE23;&#xE32;&#xE01;&#xE0F;&#xE43;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE41;&#xE2D;&#xE1E;&#xE19;&#xE31;&#xE49;&#xE19; &#xE2D;&#xE32;&#xE08;&#xE08;&#xE30;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE22;&#xE01;&#xE22;&#xE48;&#xE2D;&#xE22;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE01;&#xE48;&#xE2D;&#xE19; &#xE40;&#xE0A;&#xE48;&#xE19;</p>
<p><mark>-&gt;</mark> &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE44;&#xE2D;&#xE04;&#xE2D;&#xE19;&#xE23;&#xE39;&#xE1B;&#xE14;&#xE32;&#xE27;</p>
<pre><code>Icon(
  Icons.star,
  color: Colors.red[500],
)
</code></pre>
<p><mark>-&gt;</mark> &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21;</p>
<pre><code>Text(&apos;Hello World&apos;)
</code></pre>
<p>&#xE41;&#xE25;&#xE49;&#xE27;&#xE2B;&#xE25;&#xE31;&#xE07;&#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19; &#xE40;&#xE2D;&#xE32; Widget &#xE21;&#xE32;&#xE27;&#xE32;&#xE07;&#xE43;&#xE19; Layout &#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE2D;&#xE2D;&#xE01;&#xE41;&#xE1A;&#xE1A;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49; &#xE41;&#xE25;&#xE49;&#xE27;&#xE08;&#xE31;&#xE1A;&#xE43;&#xE2A;&#xE48;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE1B;&#xE43;&#xE0A;&#xE49;&#xE44;&#xE14;&#xE49;&#xE07;&#xE48;&#xE32;&#xE22;&#xE01;&#xE47;&#xE14;&#xE35;&#xE19;&#xE30;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>var text = Center(
  child: Text(&apos;Hello World&apos;),
);

var stars = Row(
  mainAxisSize: MainAxisSize.min,
  children: [
    Icon(Icons.star, color: Colors.red[500]),
    Icon(Icons.star, color: Colors.red[500]),
    Icon(Icons.star, color: Colors.red[500]),
  ],
);
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21; Properties <code>mainAxisSize</code> &#xE40;&#xE17;&#xE48;&#xE32;&#xE01;&#xE31;&#xE1A; <code>MainAxisSize.min</code> &#xE40;&#xE02;&#xE49;&#xE32;&#xE44;&#xE1B;&#xE14;&#xE49;&#xE27;&#xE22;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE15;&#xE31;&#xE49;&#xE07;&#xE04;&#xE48;&#xE32;&#xE43;&#xE2B;&#xE49;&#xE14;&#xE32;&#xE27;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE15;&#xE34;&#xE14;&#xE01;&#xE31;&#xE19;</p>
<p>&#xE02;&#xE49;&#xE2D;&#xE2A;&#xE31;&#xE07;&#xE40;&#xE01;&#xE15;&#xE04;&#xE37;&#xE2D; &#xE43;&#xE19; Center &#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49; Properties &#xE0A;&#xE37;&#xE48;&#xE2D; <code>child</code> &#xE2A;&#xE48;&#xE27;&#xE19; Row &#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49; Properties &#xE0A;&#xE37;&#xE48;&#xE2D; <code>children</code> &#xE0B;&#xE36;&#xE48;&#xE07;&#xE17;&#xE31;&#xE49;&#xE07;&#xE2A;&#xE2D;&#xE07;&#xE21;&#xE35;&#xE04;&#xE27;&#xE32;&#xE21;&#xE41;&#xE15;&#xE01;&#xE15;&#xE48;&#xE32;&#xE07;&#xE01;&#xE31;&#xE19;&#xE15;&#xE23;&#xE07;&#xE17;&#xE35;&#xE48;</p>
<p><code><i>child</i></code><br>
&#xE08;&#xE30;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE43;&#xE19; Widget &#xE17;&#xE35;&#xE48;&#xE1A;&#xE23;&#xE23;&#xE08;&#xE38; Widget &#xE44;&#xE14;&#xE49;&#xE15;&#xE31;&#xE27;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27; &#xE40;&#xE0A;&#xE48;&#xE19; Center , Container (&#xE19;&#xE35;&#xE48;&#xE04;&#xE37;&#xE2D;&#xE04;&#xE33;&#xE15;&#xE2D;&#xE1A;&#xE17;&#xE35;&#xE48;&#xE27;&#xE48;&#xE32; &#xE17;&#xE33;&#xE44;&#xE21; Container &#xE16;&#xE36;&#xE07;&#xE1A;&#xE23;&#xE23;&#xE08;&#xE38; Widget &#xE44;&#xE14;&#xE49;&#xE41;&#xE04;&#xE48;&#xE15;&#xE31;&#xE27;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;&#xE22;&#xE31;&#xE07;&#xE44;&#xE07;&#xE25;&#xE48;&#xE30;)</p>
<p><code><i>children</i></code><br>
&#xE08;&#xE30;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE43;&#xE19; Widget &#xE17;&#xE35;&#xE48;&#xE1A;&#xE23;&#xE23;&#xE08;&#xE38; Widget &#xE44;&#xE14;&#xE49;&#xE21;&#xE32;&#xE01;&#xE01;&#xE27;&#xE48;&#xE32;&#xE2B;&#xE19;&#xE36;&#xE48;&#xE07;&#xE15;&#xE31;&#xE27; &#xE40;&#xE0A;&#xE48;&#xE19; Row, Column, ListView, Stack</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p><mark>-&gt;</mark> &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; Layout Widget &#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE41;&#xE25;&#xE49;&#xE27; &#xE01;&#xE47;&#xE40;&#xE2D;&#xE32;&#xE21;&#xE32;&#xE43;&#xE2A;&#xE48;&#xE43;&#xE19; Page<br>
&#xE42;&#xE14;&#xE22; &#xE41;&#xE15;&#xE48;&#xE25;&#xE30;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE02;&#xE2D;&#xE07;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE40;&#xE1E;&#xE08;&#xE08;&#xE30;&#xE16;&#xE39;&#xE01;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE14;&#xE49;&#xE27;&#xE22; StatelessWidget &#xE2B;&#xE23;&#xE37;&#xE2D; StatefulWidget &#xE2B;&#xE23;&#xE37;&#xE2D;&#xE08;&#xE30;&#xE43;&#xE0A;&#xE49;&#xE17;&#xE31;&#xE49;&#xE07;&#xE04;&#xE39;&#xE48;&#xE40;&#xE25;&#xE22;&#xE01;&#xE47;&#xE44;&#xE14;&#xE49; &#xE16;&#xE49;&#xE32;&#xE43;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE40;&#xE1E;&#xE08;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE17;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE41;&#xE1B;&#xE25;&#xE07;&#xE04;&#xE48;&#xE32;&#xE41;&#xE25;&#xE30;&#xE44;&#xE21;&#xE48;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE41;&#xE1B;&#xE25;&#xE07;&#xE04;&#xE48;&#xE32;&#xE44;&#xE27;&#xE49;&#xE14;&#xE49;&#xE27;&#xE22;&#xE01;&#xE31;&#xE19;</p>
<p>&#xE01;&#xE32;&#xE23;&#xE22;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07; &#xE02;&#xE2D;&#xE43;&#xE0A;&#xE49; <code>StatelessWidget</code> &#xE40;&#xE19;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE08;&#xE32;&#xE01;&#xE44;&#xE21;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE04;&#xE48;&#xE32;&#xE43;&#xE14;&#xE46;<br>
&#xE40;&#xE2D;&#xE32; Widget &#xE17;&#xE35;&#xE48;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE44;&#xE14;&#xE49; &#xE40;&#xE01;&#xE47;&#xE1A;&#xE44;&#xE27;&#xE49;&#xE43;&#xE19;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19; <code>buildHomePage()</code> &#xE0B;&#xE36;&#xE48;&#xE07;&#xE40;&#xE2D;&#xE32; MaterialApp &#xE04;&#xE23;&#xE2D;&#xE1A;&#xE44;&#xE27;&#xE49;&#xE2D;&#xE35;&#xE01;&#xE17;&#xE35; &#xE40;&#xE27;&#xE25;&#xE32;&#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE43;&#xE0A;&#xE49; &#xE43;&#xE2B;&#xE49;&#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE1C;&#xE48;&#xE32;&#xE19;&#xE04;&#xE25;&#xE32;&#xE2A; <code>MyApp</code></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre>
import &apos;package:flutter/material.dart&apos;;

void main() =&gt; runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: &apos;Flutter layout demo&apos;,
      home: buildHomePage(),
    );
  }

  Widget buildHomePage() {
    final text = Center(
      child: Text(&apos;Hello World&apos;),
    );

    final stars = Row(
      mainAxisSize: MainAxisSize.min,
      children: [
        Icon(Icons.star, color: Colors.red[500]),
        Icon(Icons.star, color: Colors.red[500]),
        Icon(Icons.star, color: Colors.red[500]),
      ],
    );

    return Scaffold(
        body: Center(
            child: Container(
                child: Row(children: [
      stars,
      text,
    ]))));
  }
}
</pre>
<p>&#xE16;&#xE49;&#xE32;&#xE43;&#xE0A;&#xE49; VS Code &#xE43;&#xE2B;&#xE49;&#xE01;&#xE14; F5 &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE23;&#xE31;&#xE19;&#xE42;&#xE04;&#xE49;&#xE14;&#xE41;&#xE25;&#xE49;&#xE27;&#xE14;&#xE39;&#xE1C;&#xE25;&#xE17;&#xE35;&#xE48;&#xE44;&#xE14;&#xE49;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/02/04.no_center.jpg" class="kg-image" alt="&#xE1E;&#xE37;&#xE49;&#xE19;&#xE10;&#xE32;&#xE19;&#xE01;&#xE32;&#xE23;&#xE2D;&#xE2D;&#xE01;&#xE41;&#xE1A;&#xE1A; UI &#xE43;&#xE19; Flutter" loading="lazy" width="625" height="853" srcset="https://toupawa.com/content/images/size/w600/2021/02/04.no_center.jpg 600w, https://toupawa.com/content/images/2021/02/04.no_center.jpg 625w"><figcaption>&#xE2B;&#xE19;&#xE49;&#xE32;&#xE15;&#xE32; UI &#xE17;&#xE35;&#xE48;&#xE44;&#xE14;&#xE49;</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE27;&#xE32;&#xE14;&#xE23;&#xE39;&#xE1B;&#xE2D;&#xE18;&#xE34;&#xE1A;&#xE32;&#xE22;&#xE42;&#xE04;&#xE49;&#xE14;&#xE14;&#xE49;&#xE32;&#xE19;&#xE1A;&#xE19;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19; <strong>Widget Tree</strong> &#xE44;&#xE14;&#xE49;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="https://toupawa.com/content/images/2021/02/sampleOfFlutter.png" class="kg-image" alt="&#xE1E;&#xE37;&#xE49;&#xE19;&#xE10;&#xE32;&#xE19;&#xE01;&#xE32;&#xE23;&#xE2D;&#xE2D;&#xE01;&#xE41;&#xE1A;&#xE1A; UI &#xE43;&#xE19; Flutter" loading="lazy" width="561" height="441"></figure><!--kg-card-begin: markdown--><p><mark>-&gt;</mark> &#xE43;&#xE2A;&#xE48; mainAxisAlignment &#xE41;&#xE25;&#xE30; textDirection<br>
&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE44;&#xE14;&#xE49;&#xE23;&#xE39;&#xE1B;&#xE14;&#xE32;&#xE27;&#xE41;&#xE14;&#xE07;&#xE41;&#xE25;&#xE30;&#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21; Hello World &#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32; &#xE41;&#xE15;&#xE48;&#xE01;&#xE47;&#xE1E;&#xE1A;&#xE27;&#xE48;&#xE32;&#xE21;&#xE31;&#xE19;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE0A;&#xE34;&#xE14;&#xE02;&#xE2D;&#xE1A;&#xE40;&#xE01;&#xE34;&#xE19;&#xE44;&#xE1B;<br>
&#xE14;&#xE31;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19; &#xE43;&#xE19;&#xE2A;&#xE48;&#xE27;&#xE19; Row &#xE17;&#xE35;&#xE48;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE43;&#xE19; Container &#xE08;&#xE36;&#xE07;&#xE43;&#xE0A;&#xE49; Properties &#xE0A;&#xE37;&#xE48;&#xE2D; <code>mainAxisAlignment</code> &#xE40;&#xE02;&#xE49;&#xE32;&#xE21;&#xE32;&#xE0A;&#xE48;&#xE27;&#xE22;&#xE1B;&#xE23;&#xE31;&#xE1A; alignment &#xE02;&#xE2D;&#xE07;&#xE41;&#xE16;&#xE27; &#xE43;&#xE2B;&#xE49;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE15;&#xE23;&#xE07;&#xE01;&#xE25;&#xE32;&#xE07; &#xE42;&#xE14;&#xE22;&#xE43;&#xE2A;&#xE48;&#xE04;&#xE48;&#xE32;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE17;&#xE48;&#xE32;&#xE01;&#xE31;&#xE1A; <code>MainAxisAlignment.center</code></p>
<p>&#xE2A;&#xE48;&#xE27;&#xE19; Widget &#xE17;&#xE35;&#xE48;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE43;&#xE19;&#xE41;&#xE16;&#xE27; &#xE15;&#xE31;&#xE49;&#xE07;&#xE04;&#xE48;&#xE32;&#xE43;&#xE2B;&#xE49;&#xE21;&#xE31;&#xE19;&#xE40;&#xE23;&#xE35;&#xE22;&#xE07;&#xE25;&#xE33;&#xE14;&#xE31;&#xE1A;&#xE08;&#xE32;&#xE01;&#xE0B;&#xE49;&#xE32;&#xE22;&#xE44;&#xE1B;&#xE02;&#xE27;&#xE32; &#xE2B;&#xE23;&#xE37;&#xE2D;&#xE02;&#xE27;&#xE32;&#xE21;&#xE32;&#xE0B;&#xE49;&#xE32;&#xE22;&#xE44;&#xE14;&#xE49; &#xE42;&#xE14;&#xE22;&#xE43;&#xE0A;&#xE49; <code>textDirection</code> &#xE41;&#xE25;&#xE49;&#xE27;&#xE43;&#xE2A;&#xE48;&#xE04;&#xE48;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19; <code>TextDirection.&lt;ltr &#xE2B;&#xE23;&#xE37;&#xE2D; rtl&gt;</code></p>
<p><code>ltr</code> &#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE0B;&#xE49;&#xE32;&#xE22;&#xE44;&#xE1B;&#xE02;&#xE27;&#xE32;<br>
<code>rtl</code> &#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE02;&#xE27;&#xE32;&#xE44;&#xE1B;&#xE0B;&#xE49;&#xE32;&#xE22;</p>
<p>&#xE42;&#xE14;&#xE22;&#xE43;&#xE19; Source Code &#xE40;&#xE23;&#xE32;&#xE15;&#xE31;&#xE49;&#xE07;&#xE43;&#xE2B;&#xE49;&#xE21;&#xE31;&#xE19;&#xE40;&#xE23;&#xE35;&#xE22;&#xE07;&#xE08;&#xE32;&#xE01;&#xE02;&#xE27;&#xE32;&#xE44;&#xE1B;&#xE0B;&#xE49;&#xE32;&#xE22;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre>
import &apos;package:flutter/material.dart&apos;;

void main() =&gt; runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: &apos;Flutter layout demo&apos;,
      home: buildHomePage(),
    );
  }

  Widget buildHomePage() {
    final text = Center(
      child: Text(&apos;Hello World&apos;),
    );

    final stars = Row(
      mainAxisSize: MainAxisSize.min,
      children: [
        Icon(Icons.star, color: Colors.red[500]),
        Icon(Icons.star, color: Colors.red[500]),
        Icon(Icons.star, color: Colors.red[500]),
      ],
    );

    return Scaffold(
        body: Center(
            child: Container(
                child: Row(
                    <mark>mainAxisAlignment: MainAxisAlignment.center,</mark>
                    <mark>textDirection: TextDirection.rtl,</mark>
                    children: [
          stars,
          text,
        ]))));
  }
}
</pre>
<p>&#xE25;&#xE2D;&#xE07;&#xE23;&#xE31;&#xE19;&#xE2D;&#xE35;&#xE01;&#xE17;&#xE35;&#xE41;&#xE25;&#xE49;&#xE27;&#xE14;&#xE39;&#xE1C;&#xE25;&#xE17;&#xE35;&#xE48;&#xE44;&#xE14;&#xE49;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/02/05.with_center.jpg" class="kg-image" alt="&#xE1E;&#xE37;&#xE49;&#xE19;&#xE10;&#xE32;&#xE19;&#xE01;&#xE32;&#xE23;&#xE2D;&#xE2D;&#xE01;&#xE41;&#xE1A;&#xE1A; UI &#xE43;&#xE19; Flutter" loading="lazy" width="626" height="853" srcset="https://toupawa.com/content/images/size/w600/2021/02/05.with_center.jpg 600w, https://toupawa.com/content/images/2021/02/05.with_center.jpg 626w"><figcaption>Widget &#xE22;&#xE49;&#xE32;&#xE22;&#xE21;&#xE32;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE15;&#xE23;&#xE07;&#xE01;&#xE25;&#xE32;&#xE07;&#xE41;&#xE25;&#xE49;&#xE27;</figcaption></figure><!--kg-card-begin: markdown--><h2 id>&#xE02;&#xE49;&#xE2D;&#xE2A;&#xE23;&#xE38;&#xE1B;</h2>
<p>&#xE41;&#xE2D;&#xE1E;&#xE17;&#xE35;&#xE48;&#xE1E;&#xE31;&#xE12;&#xE19;&#xE32;&#xE14;&#xE49;&#xE27;&#xE22; Flutter &#xE17;&#xE38;&#xE01;&#xE46;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE02;&#xE2D;&#xE07;&#xE41;&#xE2D;&#xE1E;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19; Widget &#xE15;&#xE31;&#xE27; Widget &#xE17;&#xE38;&#xE01;&#xE15;&#xE31;&#xE27;&#xE08;&#xE30;&#xE04;&#xE23;&#xE2D;&#xE1A;&#xE14;&#xE49;&#xE27;&#xE22; MaterialApp &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE0A;&#xE49;&#xE04;&#xE38;&#xE13;&#xE2A;&#xE21;&#xE1A;&#xE31;&#xE15;&#xE34;&#xE02;&#xE2D;&#xE07;&#xE21;&#xE31;&#xE19;&#xE43;&#xE19;&#xE01;&#xE32;&#xE23;&#xE41;&#xE2A;&#xE14;&#xE07; UI &#xE1C;&#xE48;&#xE32;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE08;&#xE2D; &#xE2A;&#xE48;&#xE27;&#xE19; Widget &#xE43;&#xE14;&#xE46; &#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE1A;&#xE23;&#xE23;&#xE08;&#xE38; Widget &#xE2D;&#xE37;&#xE48;&#xE19;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49;&#xE20;&#xE32;&#xE22;&#xE43;&#xE19;&#xE44;&#xE14;&#xE49;&#xE15;&#xE32;&#xE21;&#xE01;&#xE32;&#xE23;&#xE2D;&#xE2D;&#xE01;&#xE41;&#xE1A;&#xE1A;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23; &#xE41;&#xE25;&#xE30;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE2D;&#xE18;&#xE34;&#xE1A;&#xE32;&#xE22;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE41;&#xE1C;&#xE19;&#xE1C;&#xE31;&#xE07;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE27;&#xE48;&#xE32; Widget Tree &#xE43;&#xE19;&#xE01;&#xE32;&#xE23;&#xE40;&#xE23;&#xE35;&#xE22;&#xE07;&#xE25;&#xE33;&#xE14;&#xE31;&#xE1A;&#xE0A;&#xE31;&#xE49;&#xE19;&#xE02;&#xE2D;&#xE07; Widget &#xE43;&#xE19;&#xE01;&#xE23;&#xE2D;&#xE1A;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE1E;&#xE34;&#xE08;&#xE32;&#xE23;&#xE13;&#xE32;</p>
<p>&#xE15;&#xE31;&#xE27; Widget Tree &#xE19;&#xE35;&#xE48;&#xE21;&#xE35;&#xE1B;&#xE23;&#xE30;&#xE42;&#xE22;&#xE0A;&#xE19;&#xE4C;&#xE21;&#xE32;&#xE01; &#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE01;&#xE48;&#xE2D;&#xE19;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;&#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32; &#xE04;&#xE27;&#xE23;&#xE08;&#xE30;&#xE40;&#xE23;&#xE35;&#xE22;&#xE07;&#xE25;&#xE33;&#xE14;&#xE31;&#xE1A; Widget &#xE1C;&#xE48;&#xE32;&#xE19;&#xE01;&#xE32;&#xE23;&#xE2D;&#xE2D;&#xE01;&#xE41;&#xE1A;&#xE1A; Widget Tree &#xE01;&#xE48;&#xE2D;&#xE19;&#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE25;&#xE07;&#xE21;&#xE37;&#xE2D;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE42;&#xE04;&#xE49;&#xE14; &#xE08;&#xE30;&#xE17;&#xE33;&#xE43;&#xE2B;&#xE49;&#xE21;&#xE2D;&#xE07;&#xE40;&#xE2B;&#xE47;&#xE19;&#xE20;&#xE32;&#xE1E;&#xE23;&#xE27;&#xE21; &#xE41;&#xE25;&#xE30;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16; maintenance &#xE42;&#xE04;&#xE49;&#xE14; &#xE2B;&#xE23;&#xE37;&#xE2D; Scale &#xE44;&#xE14;&#xE49;&#xE07;&#xE48;&#xE32;&#xE22; &#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE41;&#xE2D;&#xE1E;&#xE17;&#xE35;&#xE48;&#xE14;&#xE35; &#xE08;&#xE30;&#xE21;&#xE32;&#xE08;&#xE32;&#xE01;&#xE01;&#xE32;&#xE23;&#xE27;&#xE32;&#xE07;&#xE41;&#xE1C;&#xE19;&#xE41;&#xE25;&#xE30;&#xE2D;&#xE2D;&#xE01;&#xE41;&#xE1A;&#xE1A;&#xE17;&#xE35;&#xE48;&#xE14;&#xE35;&#xE2E;&#xE30;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id>&#xE2D;&#xE49;&#xE32;&#xE07;&#xE2D;&#xE34;&#xE07;</h2>
<p>&#xE41;&#xE2B;&#xE25;&#xE48;&#xE07;&#xE40;&#xE23;&#xE35;&#xE22;&#xE19;&#xE23;&#xE39;&#xE49; Flutter &#xE17;&#xE35;&#xE48;&#xE16;&#xE39;&#xE01;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE41;&#xE21;&#xE48;&#xE19;&#xE22;&#xE33;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE38;&#xE14;</p>
<p><a href="https://flutter.dev/docs/development/ui/layout">Layouts in Flutter</a></p>
<p>&#xE02;&#xE2D;&#xE02;&#xE2D;&#xE1A;&#xE04;&#xE38;&#xE13;&#xE41;&#xE2B;&#xE25;&#xE48;&#xE07;&#xE2D;&#xE49;&#xE32;&#xE07;&#xE2D;&#xE34;&#xE07;&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21;&#xE40;&#xE15;&#xE34;&#xE21;</p>
<p><a href="https://benzneststudios.com/blog/flutter/summary-about-build-context-widget-state-key-in-flutter/">Flutter : &#xE2A;&#xE23;&#xE38;&#xE1B;&#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07; BuildContext , Widget , State , Key &#xE43;&#xE19; Flutter</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[แก้ไขปัญหาจอฟ้า (Blue Screen Error) ตอนเปิดใช้งาน Android Emulator]]></title><description><![CDATA[คุณประสบปัญหาจอฟ้าเวลาเปิด Android Emulator บนเครื่อง windows ใช่มั้ย วันนี้เราขอเสนอวิธีแก้ไข ว่าแล้วก็เข้ามาดูกัน]]></description><link>https://toupawa.com/how-to-fix-blue-screen-when-use-avd/</link><guid isPermaLink="false">6021be7e74fb582548a5203e</guid><category><![CDATA[Android]]></category><category><![CDATA[mobile]]></category><dc:creator><![CDATA[TPW]]></dc:creator><pubDate>Tue, 09 Feb 2021 21:37:11 GMT</pubDate><media:content url="https://toupawa.com/content/images/2021/02/Slide1.JPG" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://toupawa.com/content/images/2021/02/Slide1.JPG" alt="&#xE41;&#xE01;&#xE49;&#xE44;&#xE02;&#xE1B;&#xE31;&#xE0D;&#xE2B;&#xE32;&#xE08;&#xE2D;&#xE1F;&#xE49;&#xE32; (Blue Screen Error) &#xE15;&#xE2D;&#xE19;&#xE40;&#xE1B;&#xE34;&#xE14;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19; Android Emulator"><p>&#xE40;&#xE04;&#xE22;&#xE21;&#xE31;&#xE49;&#xE22; &#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE23;&#xE32;&#xE40;&#xE1B;&#xE34;&#xE14; Android SDK &#xE41;&#xE25;&#xE30;&#xE40;&#xE1B;&#xE34;&#xE14;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19;&#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE08;&#xE33;&#xE25;&#xE2D;&#xE07; (Android Emulator) &#xE40;&#xE15;&#xE23;&#xE35;&#xE22;&#xE21;&#xE15;&#xE31;&#xE27;&#xE08;&#xE30;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE25;&#xE30; &#xE40;&#xE1B;&#xE34;&#xE14; VS Code &#xE1E;&#xE23;&#xE49;&#xE2D;&#xE21; &#xE44;&#xE2D;&#xE40;&#xE14;&#xE35;&#xE22;&#xE1E;&#xE23;&#xE49;&#xE2D;&#xE21; &#xE41;&#xE25;&#xE49;&#xE27;&#xE0B;&#xE31;&#xE01;&#xE1E;&#xE31;&#xE01;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE08;&#xE2D;&#xE02;&#xE2D;&#xE07;&#xE04;&#xE38;&#xE13;&#xE01;&#xE47;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/02/driver-power-state-failure-screenshot.jpg" class="kg-image" alt="&#xE41;&#xE01;&#xE49;&#xE44;&#xE02;&#xE1B;&#xE31;&#xE0D;&#xE2B;&#xE32;&#xE08;&#xE2D;&#xE1F;&#xE49;&#xE32; (Blue Screen Error) &#xE15;&#xE2D;&#xE19;&#xE40;&#xE1B;&#xE34;&#xE14;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19; Android Emulator" loading="lazy" width="1351" height="720" srcset="https://toupawa.com/content/images/size/w600/2021/02/driver-power-state-failure-screenshot.jpg 600w, https://toupawa.com/content/images/size/w1000/2021/02/driver-power-state-failure-screenshot.jpg 1000w, https://toupawa.com/content/images/2021/02/driver-power-state-failure-screenshot.jpg 1351w" sizes="(min-width: 720px) 720px"><figcaption>&#xE23;&#xE30;&#xE40;&#xE1A;&#xE34;&#xE14;&#xE40;&#xE27;&#xE25;&#xE32; &#xE2E;&#xE4A;&#xE32;&#xE32;&#xE32;&#xE32;&#xE32;&#xE32;&#xE32;&#xE32;&#xE32;&#xE32;&#xE32;&#xE32;&#xE32;&#xE32;</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE2B;&#xE21;&#xE14; &#xE2B;&#xE21;&#xE14;&#xE01;&#xE31;&#xE19;<br>
&#xE44;&#xE1B;&#xE25;&#xE30;&#xE44;&#xE2D;&#xE40;&#xE14;&#xE35;&#xE22;&#xE17;&#xE35;&#xE48;&#xE04;&#xE34;&#xE14;&#xE44;&#xE27;&#xE49; &#xE1F;&#xE38;&#xE49;&#xE07;&#xE01;&#xE23;&#xE30;&#xE08;&#xE32;&#xE22;&#xE2B;&#xE32;&#xE22;&#xE2B;&#xE21;&#xE14; &#xE40;&#xE2D;&#xE2D;&#xE14;&#xE35;!!</p>
<p>&#xE44;&#xE21;&#xE48;&#xE2A;&#xE34; &#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;&#xE21;&#xE31;&#xE19;&#xE08;&#xE30;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE44;&#xE21;&#xE48;&#xE40;&#xE01;&#xE34;&#xE14;&#xE01;&#xE31;&#xE1A;&#xE40;&#xE23;&#xE32;&#xE04;&#xE19;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;&#xE41;&#xE19;&#xE48; &#xE21;&#xE31;&#xE19;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE21;&#xE35;&#xE04;&#xE19;&#xE0B;&#xE27;&#xE22;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;&#xE21;&#xE32;&#xE01;&#xE48;&#xE2D;&#xE19;<br>
&#xE44;&#xE2B;&#xE19;&#xE46;&#xE43;&#xE04;&#xE23;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE1A;&#xE49;&#xE32;&#xE07; &gt;&gt; &#xE40;&#xE1B;&#xE34;&#xE14;&#xE14;&#xE39; Stackoverflow &#xE41;&#xE1B;&#xE1B;</p>
<p>&#xE40;&#xE02;&#xE49;&#xE32;&#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE01;&#xE31;&#xE19;&#xE40;&#xE25;&#xE22;</p>
<p>&#xE44;&#xE2D;&#xE49;&#xE08;&#xE2D;&#xE1F;&#xE49;&#xE32;&#xE40;&#xE19;&#xE35;&#xE48;&#xE22; &#xE21;&#xE31;&#xE19;&#xE21;&#xE35;&#xE2A;&#xE32;&#xE40;&#xE2B;&#xE15;&#xE38;&#xE17;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE44;&#xE1B;&#xE44;&#xE14;&#xE49;&#xE04;&#xE37;&#xE2D; &#xE01;&#xE32;&#xE23;&#xE17;&#xE33; Hardware Acceleration &#xE08;&#xE32;&#xE01; Graphic driver &#xE44;&#xE21;&#xE48; support &#xE2B;&#xE23;&#xE37;&#xE2D;&#xE27;&#xE48;&#xE32;&#xE44;&#xE21;&#xE48;&#xE40;&#xE02;&#xE49;&#xE32;&#xE01;&#xE31;&#xE19;&#xE01;&#xE31;&#xE1A; Android Emulator &#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE40;&#xE1B;&#xE34;&#xE14;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19; Emulator &#xE15;&#xE31;&#xE27; Hardware &#xE2B;&#xE23;&#xE37;&#xE2D; Software Acceleration <a href="https://www.blognone.com/news/27443/android-40-%E0%B8%88%E0%B8%B0%E0%B9%80%E0%B8%9B%E0%B8%B4%E0%B8%94%E0%B8%9F%E0%B8%B5%E0%B9%80%E0%B8%88%E0%B8%AD%E0%B8%A3%E0%B9%8C-hardware-acceleration-%E0%B8%A1%E0%B8%B2%E0%B9%83%E0%B8%AB%E0%B9%89%E0%B8%95%E0%B8%B1%E0%B9%89%E0%B8%87%E0%B9%81%E0%B8%95%E0%B9%88%E0%B8%95%E0%B9%89%E0%B8%99">&#xE08;&#xE30;&#xE16;&#xE39;&#xE01;&#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE43;&#xE0A;&#xE49;&#xE42;&#xE14;&#xE22;&#xE2D;&#xE31;&#xE15;&#xE42;&#xE19;&#xE21;&#xE31;&#xE15;&#xE34;</a></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><blockquote>
<p>Hardware Acceleration &#xE04;&#xE37;&#xE2D; &#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49; GPU &#xE40;&#xE23;&#xE19;&#xE40;&#xE14;&#xE2D;&#xE23;&#xE4C;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE43;&#xE2B;&#xE49; CPU &#xE1B;&#xE23;&#xE30;&#xE21;&#xE27;&#xE25;&#xE1C;&#xE25;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;&#xE43;&#xE14;&#xE46;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE44;&#xE14;&#xE49;&#xE2A;&#xE33;&#xE40;&#xE23;&#xE47;&#xE08; (force GPU rendering)</p>
</blockquote>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE2A;&#xE48;&#xE27;&#xE19; Software Acceleration &#xE01;&#xE47;&#xE04;&#xE25;&#xE49;&#xE32;&#xE22;&#xE46; Hardware &#xE41;&#xE15;&#xE48;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE40;&#xE1B;&#xE47;&#xE19; &#xE43;&#xE0A;&#xE49; Software &#xE41;&#xE17;&#xE19; Hardware &#xE01;&#xE32;&#xE23;&#xE40;&#xE23;&#xE19;&#xE40;&#xE14;&#xE2D;&#xE23;&#xE4C;&#xE08;&#xE30;&#xE40;&#xE01;&#xE34;&#xE14;&#xE1A;&#xE19; CPU</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE41;&#xE19;&#xE27;&#xE17;&#xE32;&#xE07;&#xE01;&#xE32;&#xE23;&#xE41;&#xE01;&#xE49;&#xE44;&#xE02;&#xE04;&#xE37;&#xE2D; &#xE44;&#xE21;&#xE48;&#xE43;&#xE2B;&#xE49; Emulator &#xE43;&#xE0A;&#xE49; Hardware &#xE2B;&#xE23;&#xE37;&#xE2D; Software Acceleration &#xE02;&#xE2D;&#xE07; GPU&#x2019;s &#xE41;&#xE1A;&#xE1A;&#xE2D;&#xE31;&#xE15;&#xE34;&#xE42;&#xE19;&#xE21;&#xE31;&#xE15;&#xE34;&#xE0B;&#xE30; &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE1B;&#xE34;&#xE14; Emulator &#xE43;&#xE2B;&#xE49;&#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19;&#xE44;&#xE14;&#xE49; 2 &#xE15;&#xE31;&#xE27;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;</p>
<ol>
<li>&#xE43;&#xE0A;&#xE49; Software Accelerator &#xE08;&#xE32;&#xE01; CPU&#x2019;s &#xE04;&#xE2D;&#xE21;&#xE1E;&#xE34;&#xE27;&#xE40;&#xE15;&#xE2D;&#xE23;&#xE4C;&#xE42;&#xE14;&#xE22;&#xE15;&#xE23;&#xE07;</li>
<li>&#xE43;&#xE0A;&#xE49; <a href="https://chromium.googlesource.com/angle/angle/+/master/README.md">ANGLE</a> &#xE0B;&#xE36;&#xE48;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19; Open Source &#xE17;&#xE35;&#xE48; Google &#xE2D;&#xE2D;&#xE01;&#xE41;&#xE1A;&#xE1A;&#xE21;&#xE32;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE2B;&#xE49;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE43;&#xE0A;&#xE49; <a href="https://en.wikipedia.org/wiki/OpenGL">OpenGL</a> &#xE23;&#xE48;&#xE27;&#xE21;&#xE01;&#xE31;&#xE1A; Windows &#xE44;&#xE14;&#xE49;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE40;&#xE15;&#xE47;&#xE21;&#xE1B;&#xE23;&#xE30;&#xE2A;&#xE34;&#xE17;&#xE18;&#xE34;&#xE20;&#xE32;&#xE1E; <a href="https://en.wikipedia.org/wiki/ANGLE_(software)">&#xE14;&#xE39; ANGLE &#xE40;&#xE1E;&#xE34;&#xE48;&#xE21;&#xE40;&#xE15;&#xE34;&#xE21;</a></li>
</ol>
<p>&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE19;&#xE35;&#xE49;&#xE08;&#xE30;&#xE02;&#xE2D;&#xE1A;&#xE31;&#xE19;&#xE17;&#xE36;&#xE01;&#xE27;&#xE34;&#xE18;&#xE35;&#xE41;&#xE01;&#xE49;&#xE1B;&#xE31;&#xE0D;&#xE2B;&#xE32;&#xE08;&#xE2D;&#xE1F;&#xE49;&#xE32;&#xE1A;&#xE19; Winows 10 &#xE43;&#xE2B;&#xE49;&#xE01;&#xE25;&#xE31;&#xE1A;&#xE21;&#xE32;&#xE43;&#xE0A;&#xE49; AVD &#xE44;&#xE14;&#xE49;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE23;&#xE32;&#xE1A;&#xE23;&#xE37;&#xE48;&#xE19;&#xE2D;&#xE35;&#xE01;&#xE04;&#xE23;&#xE31;&#xE49;&#xE07; &#xE21;&#xE35;&#xE02;&#xE31;&#xE49;&#xE19;&#xE15;&#xE2D;&#xE19;&#xE01;&#xE32;&#xE23;&#xE41;&#xE01;&#xE49;&#xE1B;&#xE31;&#xE0D;&#xE2B;&#xE32;&#xE14;&#xE31;&#xE07;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE40;&#xE1B;&#xE34;&#xE14; Terminal &#xE41;&#xE25;&#xE49;&#xE27; path &#xE44;&#xE1B;&#xE17;&#xE35;&#xE48;&#xE42;&#xE1F;&#xE25;&#xE40;&#xE14;&#xE2D;&#xE23;&#xE4C;&#xE17;&#xE35;&#xE48; Android Emulator &#xE2D;&#xE22;&#xE39;&#xE48; &#xE40;&#xE0A;&#xE48;&#xE19;<br>
C:\Users\userName\AppData\Local\Android\sdk\emulator</p>
<p><code>cd C:\Users\userName\AppData\Local\Android\sdk\emulator</code></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE14;&#xE39;&#xE25;&#xE34;&#xE2A;&#xE15;&#xE4C;&#xE23;&#xE32;&#xE22;&#xE0A;&#xE37;&#xE48;&#xE2D; Emulator &#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE17;&#xE31;&#xE49;&#xE07;&#xE2B;&#xE21;&#xE14;</p>
<p><code>./emulator -list-avds</code></p>
<p>&#xE08;&#xE30;&#xE21;&#xE35;&#xE23;&#xE32;&#xE22;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE1B;&#xE23;&#xE32;&#xE01;&#xE0F;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE17;&#xE31;&#xE49;&#xE07;&#xE2B;&#xE21;&#xE14; &#xE43;&#xE19;&#xE17;&#xE35;&#xE48;&#xE19;&#xE35;&#xE49;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE44;&#xE27;&#xE49;&#xE41;&#xE04;&#xE48;&#xE15;&#xE31;&#xE27;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;</p>
<pre><code>Pixel_4_API_29
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE43;&#xE0A;&#xE49;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07; &#xE1F;&#xE2D;&#xE23;&#xE4C;&#xE21;</p>
<p><code>./emulator -avd &lt;avd_name&gt; -gpu &lt;mode&gt; [{-option [value]} ... ]</code></p>
<p>&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE23;&#xE31;&#xE19; emulator &#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;</p>
<p><em>avdname</em> &#xE04;&#xE37;&#xE2D;&#xE0A;&#xE37;&#xE48;&#xE2D; emulator &#xE17;&#xE35;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE23;&#xE31;&#xE19;<br>
<em>mode</em> &#xE41;&#xE17;&#xE19;&#xE04;&#xE48;&#xE32;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE43;&#xE2B;&#xE49; emulator &#xE23;&#xE31;&#xE19;&#xE43;&#xE19;&#xE2B;&#xE21;&#xE27;&#xE14;&#xE43;&#xE14;&#xE46; &#xE40;&#xE0A;&#xE48;&#xE19;</p>
<p>auto &gt;&gt; &#xE40;&#xE23;&#xE48;&#xE07;&#xE1B;&#xE23;&#xE30;&#xE21;&#xE27;&#xE25;&#xE1C;&#xE25;&#xE14;&#xE49;&#xE27;&#xE22; hardware (GPU) &#xE2B;&#xE23;&#xE37;&#xE2D; Software (CPU) &#xE15;&#xE32;&#xE21;&#xE17;&#xE35;&#xE48;&#xE15;&#xE31;&#xE49;&#xE07;&#xE04;&#xE48;&#xE32;&#xE44;&#xE27;&#xE49;</p>
<p>host &gt;&gt; &#xE43;&#xE0A;&#xE49; GPU &#xE40;&#xE23;&#xE19;&#xE40;&#xE14;&#xE2D;&#xE23;&#xE4C; &#xE41;&#xE25;&#xE30;&#xE42;&#xE2B;&#xE25;&#xE14; OpenGL &#xE25;&#xE07;&#xE44;&#xE1B;&#xE1B;&#xE23;&#xE30;&#xE21;&#xE27;&#xE25;&#xE1C;&#xE25;&#xE14;&#xE49;&#xE27;&#xE22;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE2B;&#xE49;&#xE44;&#xE14;&#xE49;&#xE01;&#xE23;&#xE32;&#xE1F;&#xE1F;&#xE34;&#xE04;&#xE17;&#xE35;&#xE48;&#xE14;&#xE35;&#xE40;&#xE22;&#xE35;&#xE48;&#xE22;&#xE21;</p>
<p>angle_indirect &gt;&gt; &#xE40;&#xE23;&#xE19;&#xE40;&#xE14;&#xE2D;&#xE23;&#xE4C;&#xE14;&#xE49;&#xE27;&#xE22; software &#xE43;&#xE0A;&#xE49; ANGLE Direct3D &#xE1B;&#xE23;&#xE30;&#xE21;&#xE27;&#xE25;&#xE1C;&#xE25;&#xE41;&#xE1A;&#xE1A; Quick boot (&#xE01;&#xE32;&#xE23;&#xE1A;&#xE31;&#xE19;&#xE17;&#xE36;&#xE01;&#xE2A;&#xE16;&#xE32;&#xE19;&#xE30;&#xE02;&#xE2D;&#xE07; emulator &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE2B;&#xE49;&#xE01;&#xE32;&#xE23; boot &#xE04;&#xE23;&#xE31;&#xE49;&#xE07;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE2D;&#xE07;&#xE02;&#xE36;&#xE49;&#xE19;&#xE44;&#xE1B;<a href="https://www.blognone.com/node/98522">&#xE23;&#xE27;&#xE14;&#xE40;&#xE23;&#xE47;&#xE27;&#xE02;&#xE36;&#xE49;&#xE19;</a> &#xE04;&#xE25;&#xE49;&#xE32;&#xE22;&#xE46; host &#xE19;&#xE30; &#xE41;&#xE15;&#xE48;&#xE43;&#xE0A;&#xE49; Microsoft DirectX &#xE41;&#xE17;&#xE19; OpenGL &#xE17;&#xE33;&#xE43;&#xE2B;&#xE49;&#xE44;&#xE21;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE22;&#xE38;&#xE48;&#xE07;&#xE40;&#xE01;&#xE35;&#xE48;&#xE22;&#xE27;&#xE01;&#xE31;&#xE1A; GPU</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE43;&#xE19;&#xE17;&#xE35;&#xE48;&#xE19;&#xE35;&#xE49; &#xE40;&#xE23;&#xE32;&#xE25;&#xE2D;&#xE07;&#xE43;&#xE0A;&#xE49; host &#xE23;&#xE31;&#xE19; emulator &#xE14;&#xE39;&#xE01;&#xE48;&#xE2D;&#xE19; &#xE40;&#xE1C;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE27;&#xE34;&#xE23;&#xE4C;&#xE01;</p>
<p><code>.\emulator -avd Pixel_4_API_29 -gpu host</code></p>
<p>&#xE04;&#xE49;&#xE19;&#xE1E;&#xE1A;&#xE27;&#xE48;&#xE32; &#xE02;&#xE36;&#xE49;&#xE19;&#xE08;&#xE2D;&#xE1F;&#xE49;&#xE32; &#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE27;&#xE48;&#xE32;&#xE01;&#xE32;&#xE23;&#xE40;&#xE23;&#xE19;&#xE40;&#xE14;&#xE2D;&#xE23;&#xE4C;&#xE14;&#xE49;&#xE27;&#xE22; GPU&#xE44;&#xE21;&#xE48;&#xE40;&#xE2B;&#xE21;&#xE32;&#xE30;&#xE01;&#xE31;&#xE1A; emulator &#xE15;&#xE32;&#xE21;&#xE2A;&#xE32;&#xE40;&#xE2B;&#xE15;&#xE38;&#xE17;&#xE35;&#xE48;&#xE44;&#xE14;&#xE49;&#xE1A;&#xE2D;&#xE01;&#xE44;&#xE1B;&#xE02;&#xE49;&#xE32;&#xE07;&#xE1A;&#xE19;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE25;&#xE2D;&#xE07;&#xE43;&#xE0A;&#xE49; mode &#xE40;&#xE1B;&#xE47;&#xE19; angle_indirect</p>
<p>&#xE43;&#xE0A;&#xE49;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;</p>
<p><code>./emulator -avd Pixel_4_API_29 -gpu angle_indirect</code></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE23;&#xE2D;&#xE1C;&#xE25;&#xE22;&#xE32;&#xE27;&#xE44;&#xE1B;&#xE46;</p>
<pre><code>emulator: Android emulator version 30.3.5.0 (build_id 7033400) (CL:N/A)
handleCpuAcceleration: feature check for hvf
added library vulkan-1.dll
Failed to open /qemu.conf, err: 2
Windows Hypervisor Platform accelerator is operational
emulator: INFO: GrpcServices.cpp:288: Started GRPC server at 127.0.0.1:8554, security: Local
</code></pre>
<p>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D; emulator &#xE40;&#xE1B;&#xE34;&#xE14;&#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE41;&#xE25;&#xE49;&#xE27; &#xE1E;&#xE1A;&#xE27;&#xE48;&#xE32; &#xE44;&#xE21;&#xE48;&#xE40;&#xE01;&#xE34;&#xE14;&#xE08;&#xE2D;&#xE1F;&#xE49;&#xE32;&#xE2D;&#xE35;&#xE01; &#xE42;&#xE2D;&#xE40;&#xE04;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE17;&#xE35;&#xE48;&#xE08;&#xE23;&#xE34;&#xE07;&#xE21;&#xE35;&#xE2D;&#xE35;&#xE01; way &#xE2B;&#xE19;&#xE36;&#xE48;&#xE07;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE15;&#xE31;&#xE49;&#xE07;&#xE04;&#xE48;&#xE32;&#xE1A;&#xE19; AVD Manager &#xE41;&#xE15;&#xE48;&#xE40;&#xE23;&#xE32;&#xE04;&#xE34;&#xE14;&#xE27;&#xE48;&#xE32;&#xE48; &#xE40;&#xE1B;&#xE34;&#xE14;&#xE1A;&#xE19; terminal &#xE21;&#xE31;&#xE19;&#xE2A;&#xE30;&#xE14;&#xE27;&#xE01;&#xE01;&#xE27;&#xE48;&#xE32; &#xE43;&#xE04;&#xE23;&#xE08;&#xE30;&#xE2A;&#xE19;&#xE43;&#xE08;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;<a href="https://developer.android.com/studio/run/emulator-acceleration#avd-gpu">&#xE40;&#xE02;&#xE49;&#xE32;&#xE14;&#xE39;&#xE44;&#xE14;&#xE49;&#xE17;&#xE35;&#xE48;&#xE19;&#xE35;&#xE48;</a><br>
&#xE19;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE17;&#xE23;&#xE34;&#xE04;&#xE40;&#xE25;&#xE47;&#xE01;&#xE46;&#xE19;&#xE49;&#xE2D;&#xE22;&#xE46; &#xE43;&#xE0A;&#xE49;&#xE41;&#xE01;&#xE49;&#xE1B;&#xE31;&#xE0D;&#xE2B;&#xE32;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE2D;&#xE33;&#xE19;&#xE27;&#xE22;&#xE04;&#xE27;&#xE32;&#xE21;&#xE2A;&#xE30;&#xE14;&#xE27;&#xE01;&#xE43;&#xE19;&#xE01;&#xE32;&#xE23;&#xE1E;&#xE31;&#xE12;&#xE19;&#xE32;&#xE07;&#xE32;&#xE19;&#xE02;&#xE2D;&#xE07;&#xE40;&#xE23;&#xE32;&#xE43;&#xE2B;&#xE49;&#xE25;&#xE37;&#xE48;&#xE19;&#xE44;&#xE2B;&#xE25; &#xE44;&#xE21;&#xE48;&#xE21;&#xE32;&#xE40;&#xE2A;&#xE35;&#xE22;&#xE2D;&#xE32;&#xE23;&#xE21;&#xE13;&#xE4C;&#xE01;&#xE31;&#xE1A;&#xE08;&#xE2D;&#xE1F;&#xE49;&#xE32; &#xE44;&#xE2D;&#xE40;&#xE14;&#xE35;&#xE22;&#xE44;&#xE21;&#xE48;&#xE2A;&#xE30;&#xE14;&#xE38;&#xE14; &#xE07;&#xE32;&#xE19;&#xE1C;&#xE48;&#xE32;&#xE19;&#xE44;&#xE1B;&#xE25;&#xE38;&#xE25;&#xE48;&#xE27;&#xE07;&#xE14;&#xE49;&#xE27;&#xE22;&#xE14;&#xE35;&#xE04;&#xE23;&#xE31;&#xE1A;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p><strong>References</strong></p>
<p><a href="https://stackoverflow.com/questions/45121828/android-studio-suddenly-got-gpu-driver-issue-when-running-emulator?noredirect=1&amp;lq=1">Android Studio, Suddenly got GPU Driver Issue when running emulator</a></p>
<p><a href="https://developer.android.com/studio/run/emulator-acceleration">Configure hardware acceleration for the Android Emulator</a></p>
<p><a href="https://www.computerweekly.com/blog/CW-Developer-Network/What-are-software-accelerators">What are software accelerators?</a></p>
<p><a href="https://en.wikipedia.org/wiki/Hardware_acceleration">Hardware acceleration</a></p>
<p><a href="https://droidsans.com/force-gpu-rendering-myth/">Force GPU Rendering</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[ติดตั้ง Flutter และ Android SDK แล้วเริ่มสร้างแอพ]]></title><description><![CDATA[บทความนี้เกี่ยวกับการติดตั้งซอฟต์แวร์ที่สำคัญกับการพัฒนา Application ด้วย Flutter Framework และเริ่มสร้างโปรเจคแรกขึ้นมา]]></description><link>https://toupawa.com/install-flutter-and-android-sdk-and-start-app/</link><guid isPermaLink="false">6019c15574fb582548a51d6f</guid><category><![CDATA[flutter]]></category><category><![CDATA[Android]]></category><category><![CDATA[mobile]]></category><dc:creator><![CDATA[TPW]]></dc:creator><pubDate>Thu, 04 Feb 2021 22:29:37 GMT</pubDate><media:content url="https://toupawa.com/content/images/2021/02/Google-flutter-logo-1.png" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://toupawa.com/content/images/2021/02/Google-flutter-logo-1.png" alt="&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE41;&#xE25;&#xE30; Android SDK &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;"><p>&#xE15;&#xE2D;&#xE19;&#xE19;&#xE35;&#xE49;&#xE01;&#xE32;&#xE23;&#xE1E;&#xE31;&#xE12;&#xE19;&#xE32;&#xE41;&#xE2D;&#xE1E;&#xE21;&#xE37;&#xE2D;&#xE16;&#xE37;&#xE2D; &#xE16;&#xE37;&#xE2D;&#xE27;&#xE48;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE17;&#xE35;&#xE48;&#xE21;&#xE35;&#xE04;&#xE27;&#xE32;&#xE21;&#xE2A;&#xE30;&#xE14;&#xE27;&#xE01;&#xE2A;&#xE1A;&#xE32;&#xE22;&#xE21;&#xE32;&#xE01;&#xE02;&#xE36;&#xE49;&#xE19; &#xE42;&#xE14;&#xE22;&#xE43;&#xE19;&#xE22;&#xE38;&#xE04;&#xE19;&#xE35;&#xE49;&#xE21;&#xE35; &#xE40;&#xE1F;&#xE23;&#xE21;&#xE40;&#xE27;&#xE34;&#xE23;&#xE4C;&#xE04;&#xE14;&#xE35;&#xE46;&#xE40;&#xE1E;&#xE35;&#xE22;&#xE1A;&#xE40;&#xE25;&#xE22; &#xE41;&#xE15;&#xE48;&#xE25;&#xE30;&#xE2D;&#xE31;&#xE19;&#xE01;&#xE47;&#xE15;&#xE48;&#xE32;&#xE07;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE17;&#xE35;&#xE48;&#xE21;&#xE35;&#xE1B;&#xE23;&#xE30;&#xE2A;&#xE34;&#xE17;&#xE18;&#xE34;&#xE20;&#xE32;&#xE1E;&#xE41;&#xE25;&#xE30;&#xE23;&#xE30;&#xE1A;&#xE1A;&#xE04;&#xE27;&#xE32;&#xE21;&#xE1B;&#xE25;&#xE2D;&#xE14;&#xE20;&#xE31;&#xE22;&#xE14;&#xE35; &#xE23;&#xE27;&#xE21;&#xE16;&#xE36;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE21;&#xE34;&#xE15;&#xE23;&#xE01;&#xE31;&#xE1A;&#xE1C;&#xE39;&#xE49;&#xE43;&#xE0A;&#xE49;&#xE41;&#xE25;&#xE30;&#xE1C;&#xE39;&#xE49;&#xE1E;&#xE31;&#xE12;&#xE19;&#xE32;&#xE2D;&#xE35;&#xE01;&#xE14;&#xE49;&#xE27;&#xE22; &#xE17;&#xE33;&#xE43;&#xE2B;&#xE49;&#xE44;&#xE21;&#xE48;&#xE19;&#xE48;&#xE32;&#xE41;&#xE1B;&#xE25;&#xE01;&#xE43;&#xE08;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE21;&#xE31;&#xE22;&#xE19;&#xE35;&#xE49;&#xE43;&#xE04;&#xE23;&#xE46;&#xE15;&#xE48;&#xE32;&#xE07;&#xE01;&#xE47;&#xE1D;&#xE36;&#xE01;&#xE1E;&#xE31;&#xE12;&#xE19;&#xE32;&#xE41;&#xE2D;&#xE1E;&#xE01;&#xE31;&#xE19;&#xE40;&#xE22;&#xE2D;&#xE30; &#xE40;&#xE1E;&#xE35;&#xE22;&#xE07;&#xE04;&#xE38;&#xE13;&#xE21;&#xE35;&#xE04;&#xE2D;&#xE21;&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE41;&#xE25;&#xE1B;&#xE17;&#xE2D;&#xE1B;&#xE40;&#xE17;&#xE48;&#xE32;&#xE19;&#xE31;&#xE49;&#xE19;</p>
<p>&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE19;&#xE35;&#xE49;&#xE08;&#xE30;&#xE02;&#xE2D;&#xE1E;&#xE38;&#xE14;&#xE16;&#xE36;&#xE07;&#xE01;&#xE32;&#xE23;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19;&#xE41;&#xE2D;&#xE1E;&#xE40;&#xE1F;&#xE23;&#xE21;&#xE40;&#xE27;&#xE34;&#xE23;&#xE4C;&#xE04;&#xE15;&#xE31;&#xE27;&#xE2B;&#xE19;&#xE36;&#xE48;&#xE07;&#xE17;&#xE35;&#xE48;&#xE21;&#xE32;&#xE41;&#xE23;&#xE07;&#xE41;&#xE25;&#xE30;&#xE1C;&#xE39;&#xE49;&#xE1E;&#xE31;&#xE12;&#xE19;&#xE32;&#xE04;&#xE37;&#xE2D; Google &#xE19;&#xE31;&#xE48;&#xE19;&#xE01;&#xE47;&#xE04;&#xE37;&#xE2D; Flutter &#xE19;&#xE35;&#xE48;&#xE40;&#xE2D;&#xE07; &#xE42;&#xE14;&#xE22;&#xE40;&#xE08;&#xE49;&#xE32; Flutter &#xE19;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19; UI &#xE40;&#xE1F;&#xE23;&#xE21;&#xE40;&#xE27;&#xE34;&#xE23;&#xE4C;&#xE04; &#xE41;&#xE1A;&#xE1A; Open Source &#xE17;&#xE35;&#xE48; Google &#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE1B;&#xE25;&#xE48;&#xE2D;&#xE22;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE1B;&#xE35; 2017 &#xE19;&#xE35;&#xE48;&#xE40;&#xE2D;&#xE07; &#xE01;&#xE32;&#xE23;&#xE1E;&#xE31;&#xE12;&#xE19;&#xE32;&#xE41;&#xE2D;&#xE1E;&#xE43;&#xE0A;&#xE49;&#xE20;&#xE32;&#xE29;&#xE32; Dart &#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE23;&#xE31;&#xE19;&#xE44;&#xE14;&#xE49;&#xE1A;&#xE19;&#xE2B;&#xE25;&#xE32;&#xE22; OS &#xE40;&#xE25;&#xE22; &#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE19;&#xE35;&#xE49;&#xE08;&#xE30;&#xE02;&#xE2D;&#xE22;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE01;&#xE32;&#xE23;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE1A;&#xE19; windows 10 &#xE25;&#xE30;&#xE01;&#xE31;&#xE19;&#xE19;&#xE30; (&#xE40;&#xE19;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE08;&#xE32;&#xE01;&#xE1C;&#xE39;&#xE49;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19;&#xE43;&#xE0A;&#xE49;&#xE2D;&#xE22;&#xE39;&#xE48;) &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE44;&#xE21;&#xE48;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE2A;&#xE35;&#xE22;&#xE40;&#xE27;&#xE25;&#xE32; &#xE40;&#xE23;&#xE32;&#xE21;&#xE32;&#xE2D;&#xE22;&#xE39;&#xE48; Required Spectification &#xE02;&#xE2D;&#xE07;&#xE04;&#xE2D;&#xE21;&#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE25;&#xE07;&#xE01;&#xE48;&#xE2D;&#xE19;&#xE40;&#xE25;&#xE22;</p>
<table>
<thead>
<tr>
<th>Item</th>
<th>requirement</th>
</tr>
</thead>
<tbody>
<tr>
<td>OS</td>
<td>Windows 7 &#xE02;&#xE36;&#xE49;&#xE19;&#xE44;&#xE1B;, &#xE2A;&#xE16;&#xE32;&#xE1B;&#xE31;&#xE15;&#xE22;&#xE01;&#xE23;&#xE23;&#xE21;&#xE0A;&#xE19;&#xE34;&#xE14; 64 bit &#xE2B;&#xE23;&#xE37;&#xE2D; x86-64 based</td>
</tr>
<tr>
<td>Disk Space</td>
<td>1.32 GB &#xE02;&#xE36;&#xE49;&#xE19;&#xE44;&#xE1B; (&#xE44;&#xE21;&#xE48;&#xE23;&#xE27;&#xE21; IDE/tools)</td>
</tr>
<tr>
<td>Tools</td>
<td>Windows PowerShell 5.0 &#xE02;&#xE36;&#xE49;&#xE19;&#xE44;&#xE1B;, Git &#xE40;&#xE27;&#xE2D;&#xE23;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19; 2 &#xE02;&#xE36;&#xE49;&#xE19;&#xE44;&#xE1B; &#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE23;&#xE35;&#xE22;&#xE1A;&#xE23;&#xE49;&#xE2D;&#xE22;&#xE01;&#xE48;&#xE2D;&#xE19;&#xE25;&#xE07; Flutter</td>
</tr>
</tbody>
</table>
<p>&#xE02;&#xE31;&#xE49;&#xE19;&#xE15;&#xE2D;&#xE19;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE17;&#xE33;&#xE15;&#xE48;&#xE2D;&#xE44;&#xE1B;&#xE19;&#xE35;&#xE49; &#xE08;&#xE30;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE08;&#xE32;&#xE01;&#xE01;&#xE32;&#xE23;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Software &#xE15;&#xE48;&#xE32;&#xE07;&#xE46; &#xE08;&#xE19;&#xE44;&#xE1B;&#xE16;&#xE36;&#xE07; &#xE40;&#xE1B;&#xE34;&#xE14;&#xE41;&#xE2D;&#xE1E; Flutter &#xE44;&#xE14;&#xE49;&#xE2A;&#xE33;&#xE40;&#xE23;&#xE47;&#xE08; &#xE02;&#xE2D;&#xE2D;&#xE18;&#xE34;&#xE1A;&#xE32;&#xE22;&#xE40;&#xE23;&#xE35;&#xE22;&#xE07;&#xE15;&#xE32;&#xE21;&#xE25;&#xE33;&#xE14;&#xE31;&#xE1A;&#xE02;&#xE31;&#xE49;&#xE19;&#xE15;&#xE2D;&#xE19;&#xE14;&#xE31;&#xE07;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><ul>
<li><a href="#install-flutter">&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter</a></li>
<li><a href="#install-android-studio">&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Android Studio</a></li>
<li><a href="#android-toolchain">Android Toolchain</a>
<ul>
<li><a href="#android-sdk">Android SDK</a></li>
<li><a href="#android-license">&#xE25;&#xE07; Android License</a></li>
</ul>
</li>
<li><a href="#create-avd">&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; Android Virtual Device (AVD)</a></li>
<li><a href="#install-vscode">&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; VS Code</a></li>
<li><a href="#build-flutter-project">&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE42;&#xE1B;&#xE23;&#xE40;&#xE08;&#xE04; Flutter &#xE41;&#xE25;&#xE30; build &#xE1A;&#xE19; AVD</a></li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="aidinstallflutteraflutter"><a id="install-flutter"></a>&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter</h2>
<p>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE1E;&#xE23;&#xE49;&#xE2D;&#xE21; &#xE43;&#xE2B;&#xE49;&#xE40;&#xE23;&#xE32; Download &#xE44;&#xE1F;&#xE25;&#xE4C; &#xE17;&#xE35;&#xE48;&#xE19;&#xE35;&#xE48;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-bookmark-card kg-card-hascaption"><a class="kg-bookmark-container" href="https://flutter.dev/docs/get-started/install/windows"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Windows install</div><div class="kg-bookmark-description">How to install on Windows.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://flutter.dev/images/favicon.png" alt="&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE41;&#xE25;&#xE30; Android SDK &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;"><span class="kg-bookmark-author">Flutter Logo</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://flutter.dev/images/flutter-logo-sharing.png" alt="&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE41;&#xE25;&#xE30; Android SDK &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;"></div></a><figcaption><a href="https://flutter.dev/docs/get-started/install/windows">https://flutter.dev/docs/get-started/install/windows</a></figcaption></figure><!--kg-card-begin: markdown--><p>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE14;&#xE32;&#xE27;&#xE19;&#xE4C;&#xE42;&#xE2B;&#xE25;&#xE14;&#xE21;&#xE32;&#xE41;&#xE25;&#xE49;&#xE27; &#xE43;&#xE2B;&#xE49;&#xE17;&#xE33;&#xE15;&#xE32;&#xE21;&#xE02;&#xE31;&#xE49;&#xE19;&#xE15;&#xE2D;&#xE19;&#xE15;&#xE48;&#xE2D;&#xE44;&#xE1B;&#xE19;&#xE35;&#xE49;</p>
<p>1.)&#xE41;&#xE15;&#xE01;&#xE44;&#xE1F;&#xE25;&#xE4C;&#xE17;&#xE35;&#xE48;&#xE14;&#xE32;&#xE27;&#xE19;&#xE4C;&#xE42;&#xE2B;&#xE25;&#xE14; &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE02;&#xE49;&#xE32;&#xE44;&#xE1B;&#xE43;&#xE19;&#xE42;&#xE1F;&#xE25;&#xE40;&#xE14;&#xE2D;&#xE23;&#xE4C;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE1F;&#xE25;&#xE4C;&#xE17;&#xE31;&#xE49;&#xE07;&#xE2B;&#xE21;&#xE14;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32; (Ctrl+x &#xE01;&#xE47;&#xE44;&#xE14;&#xE49;)<br>
2.)&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE42;&#xE1F;&#xE25;&#xE40;&#xE14;&#xE2D;&#xE23;&#xE4C;&#xE15;&#xE32;&#xE21; path &#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49; &#xE40;&#xE0A;&#xE48;&#xE19; <code>C:\src\flutter</code> &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE1F;&#xE25;&#xE4C;&#xE17;&#xE35;&#xE48;&#xE44;&#xE14;&#xE49;&#xE44;&#xE1B;&#xE27;&#xE32;&#xE07; (&#xE43;&#xE2B;&#xE49;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; path &#xE43;&#xE2B;&#xE21;&#xE48; &#xE2B;&#xE49;&#xE32;&#xE21;&#xE27;&#xE32;&#xE07;&#xE43;&#xE19; <code>C:\Program Files\</code>)</p>
<p>Tip : &#xE16;&#xE49;&#xE32;&#xE44;&#xE21;&#xE48;&#xE2D;&#xE22;&#xE32;&#xE01;&#xE14;&#xE32;&#xE27;&#xE19;&#xE4C;&#xE42;&#xE2B;&#xE25;&#xE14;&#xE08;&#xE32;&#xE01;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE40;&#xE27;&#xE47;&#xE1A; &#xE01;&#xE47;&#xE40;&#xE1B;&#xE34;&#xE14; <strong>Windows PowerShell</strong> &#xE41;&#xE25;&#xE49;&#xE27;&#xE43;&#xE2A;&#xE48;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;&#xE19;&#xE35;&#xE49;&#xE41;&#xE17;&#xE19;</p>
<p><code>git clone https://github.com/flutter/flutter.git -b stable</code></p>
<p>3.)&#xE01;&#xE14;&#xE1B;&#xE38;&#xE48;&#xE21; Start &#xE44;&#xE1B;&#xE17;&#xE35;&#xE48;&#xE0A;&#xE48;&#xE2D;&#xE07; search &#xE2B;&#xE23;&#xE37;&#xE2D;&#xE16;&#xE49;&#xE32;&#xE44;&#xE21;&#xE48;&#xE21;&#xE35;&#xE01;&#xE47;&#xE40;&#xE02;&#xE49;&#xE32; Settings &gt; &#xE43;&#xE2A;&#xE48; env &#xE17;&#xE35;&#xE48;&#xE0A;&#xE48;&#xE2D;&#xE07; search &gt; &#xE40;&#xE25;&#xE37;&#xE2D;&#xE01; <strong>Edit The System Environment Variables</strong> &#xE44;&#xE1B;&#xE17;&#xE35;&#xE48; <em>Advanced</em> &#xE01;&#xE14;&#xE1B;&#xE38;&#xE48;&#xE21; <em>Environment Variables</em><br>
4.)&#xE14;&#xE39;&#xE15;&#xE23;&#xE07; <em>User variables</em> &#xE04;&#xE25;&#xE34;&#xE01;&#xE17;&#xE35;&#xE48; <em>Path</em> &#xE41;&#xE25;&#xE49;&#xE27;&#xE01;&#xE14;&#xE1B;&#xE38;&#xE48;&#xE21; <code>Edit&#x2026;</code> &#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19; &#xE01;&#xE14;&#xE1B;&#xE38;&#xE48;&#xE21; <code>New</code><br>
5.)&#xE44;&#xE1B;&#xE17;&#xE35;&#xE48;&#xE42;&#xE1F;&#xE25;&#xE40;&#xE14;&#xE2D;&#xE23;&#xE4C;&#xE15;&#xE32;&#xE21;&#xE02;&#xE49;&#xE2D; 2 &#xE01;&#xE14;&#xE40;&#xE02;&#xE49;&#xE32;&#xE44;&#xE1B;&#xE08;&#xE19;&#xE16;&#xE36;&#xE07; <code>flutter\bin</code> &#xE41;&#xE25;&#xE49;&#xE27;&#xE01;&#xE47;&#xE2D;&#xE1B; path &#xE21;&#xE32;&#xE27;&#xE32;&#xE07; &#xE41;&#xE25;&#xE49;&#xE27;&#xE01;&#xE14; <code>OK</code> &#xE40;&#xE17;&#xE48;&#xE32;&#xE19;&#xE35;&#xE49;&#xE01;&#xE49;&#xE40;&#xE23;&#xE35;&#xE22;&#xE1A;&#xE23;&#xE49;&#xE2D;&#xE22;&#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE01;&#xE32;&#xE23; set up path<br>
6.)&#xE40;&#xE1B;&#xE34;&#xE14; <code>Windows PowerShell</code> &#xE43;&#xE2A;&#xE48;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;</p>
<p><code>C:\src\flutter&gt;flutter doctor</code></p>
<p>7.)&#xE15;&#xE31;&#xE27; command &#xE08;&#xE30;&#xE40;&#xE0A;&#xE47;&#xE04;&#xE2A;&#xE16;&#xE32;&#xE19;&#xE30;&#xE01;&#xE32;&#xE23;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE43;&#xE2B;&#xE49; &#xE41;&#xE25;&#xE49;&#xE27;&#xE08;&#xE30;&#xE1E;&#xE48;&#xE19;&#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21;&#xE2D;&#xE2D;&#xE01;&#xE1B;&#xE23;&#xE30;&#xE21;&#xE32;&#xE19;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>Downloading Material fonts...                                       0.7s
Downloading Gradle Wrapper...                                       0.3s
Downloading package sky_engine...                                   0.3s
Downloading flutter_patched_sdk tools...                            0.9s
Downloading flutter_patched_sdk_product tools...                    0.6s
Downloading windows-x64 tools...                                    1.8s
Downloading windows-x64/font-subset tools...                        0.4s
Downloading android-arm-profile/windows-x64 tools...                0.3s
Downloading android-arm-release/windows-x64 tools...                0.3s
Downloading android-arm64-profile/windows-x64 tools...              0.3s
Downloading android-arm64-release/windows-x64 tools...              0.3s
Downloading android-x64-profile/windows-x64 tools...                0.3s
Downloading android-x64-release/windows-x64 tools...                0.3s
Doctor summary (to see all details, run flutter doctor -v):
[&#x2713;] Flutter (Channel stable, 1.22.5, on Microsoft Windows [Version 10.0.18363.1316], locale th-TH)
[&#x2717;] Android toolchain - develop for Android devices
    &#x2717; Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.dev/docs/get-started/install/windows#android-setup for detailed instructions).
      If the Android SDK has been installed to a custom location, set ANDROID_SDK_ROOT to that location.
      You may also want to add it to your PATH environment variable.

[!] Android Studio (not installed)
[!] VS Code (version 1.52.1)
    &#x2717; Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[!] Connected device
    ! No devices available

! Doctor found issues in 4 categories.
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE41;&#xE1B;&#xE25;&#xE04;&#xE27;&#xE32;&#xE21;&#xE44;&#xE14;&#xE49;&#xE27;&#xE48;&#xE32; &#xE15;&#xE2D;&#xE19;&#xE19;&#xE35;&#xE49;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE41;&#xE25;&#xE49;&#xE27; &#xE41;&#xE15;&#xE48;&#xE22;&#xE31;&#xE07;&#xE44;&#xE21;&#xE48;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Android SDK (Android Toolchain), Android Studio, VS Code &#xE41;&#xE25;&#xE30;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; Android Virtual Device &#xE2B;&#xE23;&#xE37;&#xE2D; AVD (Connected device) &#xE0B;&#xE36;&#xE48;&#xE07;&#xE15;&#xE48;&#xE2D;&#xE44;&#xE1B;&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE17;&#xE33;&#xE01;&#xE32;&#xE23;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Android Studio &#xE25;&#xE07;&#xE43;&#xE19;&#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE01;&#xE48;&#xE2D;&#xE19;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19; Android Emulator &#xE40;&#xE1B;&#xE34;&#xE14;&#xE2D;&#xE38;&#xE1B;&#xE01;&#xE23;&#xE13;&#xE4C; Android &#xE08;&#xE33;&#xE25;&#xE2D;&#xE07;&#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="aidinstallandroidstudioaandroidstudio"><a id="install-android-studio"></a>&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Android Studio</h2>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/02/android-logo-stacked-rgb.jpg" class="kg-image" alt="&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE41;&#xE25;&#xE30; Android SDK &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;" loading="lazy" width="600" height="400" srcset="https://toupawa.com/content/images/2021/02/android-logo-stacked-rgb.jpg 600w"><figcaption>https://www.android.com/intl/th_th/</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE40;&#xE02;&#xE49;&#xE32;&#xE44;&#xE1B;&#xE14;&#xE32;&#xE27;&#xE19;&#xE4C;&#xE42;&#xE2B;&#xE25;&#xE14;&#xE44;&#xE1F;&#xE25;&#xE4C;&#xE44;&#xE14;&#xE49;&#xE17;&#xE35;&#xE48;&#xE19;&#xE35;&#xE48;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-bookmark-card kg-card-hascaption"><a class="kg-bookmark-container" href="https://developer.android.com/studio"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Download Android Studio and SDK tools | Android Developers</div><div class="kg-bookmark-description">&lt;!-- hide description --&gt;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.gstatic.com/devrel-devsite/prod/v0fb4b1803f033e9961238a08d52e344eadd99129bc9fd30999fe77c5f5dcfd87/android/images/touchicon-180.png" alt="&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE41;&#xE25;&#xE30; Android SDK &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;"><span class="kg-bookmark-author">Android Developers</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://developer.android.com/studio/images/studio-homepage-hero.jpg" alt="&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE41;&#xE25;&#xE30; Android SDK &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;"></div></a><figcaption><a href="https://developer.android.com/studio">https://developer.android.com/studio</a></figcaption></figure><!--kg-card-begin: markdown--><p>&#xE40;&#xE23;&#xE32;&#xE27;&#xE32;&#xE07;&#xE41;&#xE1C;&#xE19;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49;&#xE27;&#xE48;&#xE32;&#xE08;&#xE30;&#xE43;&#xE0A;&#xE49; VS Code &#xE43;&#xE19;&#xE01;&#xE32;&#xE23;&#xE1E;&#xE31;&#xE12;&#xE19;&#xE32;&#xE41;&#xE2D;&#xE1E; &#xE43;&#xE19;&#xE17;&#xE35;&#xE48;&#xE19;&#xE35;&#xE49;&#xE08;&#xE36;&#xE07;&#xE44;&#xE21;&#xE48;&#xE15;&#xE31;&#xE49;&#xE07;&#xE04;&#xE48;&#xE32; Android Studio &#xE41;&#xE15;&#xE48;&#xE08;&#xE30;&#xE43;&#xE0A;&#xE49;&#xE41;&#xE04;&#xE48; Android Emulator &#xE41;&#xE15;&#xE48;&#xE01;&#xE48;&#xE2D;&#xE19;&#xE2D;&#xE37;&#xE48;&#xE19;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Android SDK &#xE41;&#xE25;&#xE30;&#xE22;&#xE2D;&#xE21;&#xE23;&#xE31;&#xE1A;&#xE40;&#xE07;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE02;&#xE02;&#xE2D;&#xE07; Android License &#xE40;&#xE2A;&#xE35;&#xE22;&#xE01;&#xE48;&#xE2D;&#xE19;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="aidandroidtoolchainaandroidtoolchain"><a id="android-toolchain"></a>Android Toolchain</h2>
<p>&#xE41;&#xE1A;&#xE48;&#xE07;&#xE02;&#xE31;&#xE49;&#xE19;&#xE15;&#xE2D;&#xE19;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19; 2 &#xE2A;&#xE48;&#xE27;&#xE19;&#xE04;&#xE37;&#xE2D; &#xE2A;&#xE48;&#xE27;&#xE19;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Android SDK &#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE40;&#xE1B;&#xE47;&#xE19; Platform &#xE17;&#xE35;&#xE48;&#xE1A;&#xE23;&#xE23;&#xE08;&#xE38; Library &#xE15;&#xE48;&#xE32;&#xE07;&#xE46;&#xE17;&#xE35;&#xE48;&#xE43;&#xE0A;&#xE49;&#xE1E;&#xE31;&#xE12;&#xE19;&#xE32;&#xE41;&#xE2D;&#xE1E; Flutter &#xE41;&#xE25;&#xE30;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Android License &#xE17;&#xE33;&#xE43;&#xE2B;&#xE49; machine &#xE22;&#xE2D;&#xE21;&#xE23;&#xE31;&#xE1A;&#xE40;&#xE07;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE02;&#xE02;&#xE2D;&#xE07; Android</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="aidandroidsdkaandroidsdk"><a id="android-sdk"></a>Android SDK</h3>
<p>&#xE27;&#xE34;&#xE18;&#xE35;&#xE01;&#xE32;&#xE23;&#xE15;&#xE31;&#xE49;&#xE07;&#xE04;&#xE48;&#xE32;</p>
<p>&#xE40;&#xE1B;&#xE34;&#xE14; Android Studio &#xE41;&#xE25;&#xE49;&#xE27; &#xE44;&#xE1B;&#xE17;&#xE35;&#xE48; Configure &gt; SDK Manager<br>
&#xE15;&#xE23;&#xE07; Appearance &amp; Behavior &#xE01;&#xE14;&#xE17;&#xE35;&#xE48; System Settings &gt; Android SDK</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/02/01android_sdk-1.jpg" class="kg-image" alt="&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE41;&#xE25;&#xE30; Android SDK &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;" loading="lazy" width="982" height="705" srcset="https://toupawa.com/content/images/size/w600/2021/02/01android_sdk-1.jpg 600w, https://toupawa.com/content/images/2021/02/01android_sdk-1.jpg 982w" sizes="(min-width: 720px) 720px"><figcaption>Appearance &amp; Behavior &gt; System Settings &gt; Android SDK</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE40;&#xE27;&#xE2D;&#xE23;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE17;&#xE35;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23; &#xE42;&#xE14;&#xE22;&#xE04;&#xE25;&#xE34;&#xE01;&#xE17;&#xE35;&#xE48; Check Box</p>
<p>Copy path &#xE15;&#xE23;&#xE07; Android SDK Location &#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49;</p>
<p>&#xE15;&#xE23;&#xE07; Plugins &#xE43;&#xE2B;&#xE49;&#xE2B;&#xE32;&#xE1B;&#xE25;&#xE31;&#xE4A;&#xE01;&#xE2D;&#xE34;&#xE19;&#xE17;&#xE35;&#xE48;&#xE0A;&#xE37;&#xE48;&#xE2D; Flutter &#xE41;&#xE25;&#xE49;&#xE27;&#xE01;&#xE14; Install</p>
<!--kg-card-end: markdown--><p></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/02/02flutter_plugin.jpg" class="kg-image" alt="&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE41;&#xE25;&#xE30; Android SDK &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;" loading="lazy" width="981" height="702" srcset="https://toupawa.com/content/images/size/w600/2021/02/02flutter_plugin.jpg 600w, https://toupawa.com/content/images/2021/02/02flutter_plugin.jpg 981w" sizes="(min-width: 720px) 720px"><figcaption>Flutter plugin</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE42;&#xE1B;&#xE23;&#xE41;&#xE01;&#xE23;&#xE21;&#xE08;&#xE30;&#xE41;&#xE08;&#xE49;&#xE07;&#xE27;&#xE48;&#xE32; &#xE1B;&#xE25;&#xE31;&#xE49;&#xE01;&#xE2D;&#xE34;&#xE19; Flutter &#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE23;&#xE32;&#xE25;&#xE07; Dart &#xE14;&#xE49;&#xE27;&#xE22; &#xE01;&#xE47;&#xE01;&#xE14; Install &#xE44;&#xE1B;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/02/03require_dart_plugin.jpg" class="kg-image" alt="&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE41;&#xE25;&#xE30; Android SDK &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;" loading="lazy" width="375" height="111"><figcaption>Install &#xE44;&#xE1B;&#xE14;&#xE49;&#xE27;&#xE22;</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE40;&#xE1B;&#xE34;&#xE14;&#xE42;&#xE1B;&#xE23;&#xE41;&#xE01;&#xE23;&#xE21; <strong>Edit The System Environment Variables</strong> &#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32; &#xE44;&#xE1B;&#xE17;&#xE35;&#xE48; <em>Advanced</em> &#xE01;&#xE14;&#xE1B;&#xE38;&#xE48;&#xE21; <em>Environment Variables</em></p>
<p>&#xE15;&#xE23;&#xE07; User variables &#xE16;&#xE49;&#xE32;&#xE2B;&#xE32;&#xE01;&#xE22;&#xE31;&#xE07;&#xE44;&#xE21;&#xE48;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21; path &#xE02;&#xE2D;&#xE07; Android SDK &#xE43;&#xE2B;&#xE49;&#xE01;&#xE14; New</p>
<p>&#xE15;&#xE23;&#xE07; <em>Variable name</em> &#xE43;&#xE2A;&#xE48; <code>ANDROID_SDK_ROOT</code> &#xE41;&#xE25;&#xE30; &#xE15;&#xE23;&#xE07; <em>Variable value</em> &#xE43;&#xE2A;&#xE48; path &#xE17;&#xE35;&#xE48; copy &#xE21;&#xE32;&#xE08;&#xE32;&#xE01; <code>Android SDK Location</code> &#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE41;&#xE25;&#xE49;&#xE27;&#xE01;&#xE14; OK</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/02/04android_sdk_root-1.jpg" class="kg-image" alt="&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE41;&#xE25;&#xE30; Android SDK &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;" loading="lazy" width="697" height="633" srcset="https://toupawa.com/content/images/size/w600/2021/02/04android_sdk_root-1.jpg 600w, https://toupawa.com/content/images/2021/02/04android_sdk_root-1.jpg 697w"><figcaption>&#xE27;&#xE32;&#xE07; path &#xE25;&#xE07;&#xE44;&#xE1B;</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE15;&#xE23;&#xE07; <em>User variables</em> &#xE04;&#xE25;&#xE34;&#xE01;&#xE17;&#xE35;&#xE48; Path &#xE41;&#xE25;&#xE49;&#xE27;&#xE01;&#xE14;&#xE1B;&#xE38;&#xE48;&#xE21; Edit</p>
<p>&#xE27;&#xE32;&#xE07; path &#xE17;&#xE35;&#xE48; copy &#xE21;&#xE32;&#xE08;&#xE32;&#xE01; Android SDK Location &#xE2A;&#xE32;&#xE21;&#xE2D;&#xE31;&#xE19;</p>
<p>&#xE2D;&#xE31;&#xE19;&#xE41;&#xE23;&#xE01; &#xE1E;&#xE34;&#xE21;&#xE1E;&#xE4C; <strong>\tools</strong> &#xE15;&#xE48;&#xE2D;&#xE17;&#xE49;&#xE32;&#xE22;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/02/05path_androidsdk_tools-1.jpg" class="kg-image" alt="&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE41;&#xE25;&#xE30; Android SDK &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;" loading="lazy" width="694" height="651" srcset="https://toupawa.com/content/images/size/w600/2021/02/05path_androidsdk_tools-1.jpg 600w, https://toupawa.com/content/images/2021/02/05path_androidsdk_tools-1.jpg 694w"><figcaption>Android\Sdk\tools</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE2D;&#xE31;&#xE19;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE2D;&#xE07; &#xE1E;&#xE34;&#xE21;&#xE1E;&#xE4C; <strong>\tools\bin</strong> &#xE15;&#xE48;&#xE2D;&#xE17;&#xE49;&#xE32;&#xE22;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/02/06path_androidsdk_tools_bin-1.jpg" class="kg-image" alt="&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE41;&#xE25;&#xE30; Android SDK &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;" loading="lazy" width="703" height="680" srcset="https://toupawa.com/content/images/size/w600/2021/02/06path_androidsdk_tools_bin-1.jpg 600w, https://toupawa.com/content/images/2021/02/06path_androidsdk_tools_bin-1.jpg 703w"><figcaption>Android\Sdk\tools\bin</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE2D;&#xE31;&#xE19;&#xE2A;&#xE38;&#xE14;&#xE17;&#xE49;&#xE32;&#xE22; &#xE1E;&#xE34;&#xE21;&#xE1E;&#xE4C; <strong>\platform-tools</strong> &#xE15;&#xE48;&#xE2D;&#xE17;&#xE49;&#xE32;&#xE22; &#xE41;&#xE25;&#xE49;&#xE27;&#xE01;&#xE14; OK</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/02/07path_androidsdk_platform-tools-1.jpg" class="kg-image" alt="&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE41;&#xE25;&#xE30; Android SDK &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;" loading="lazy" width="673" height="643" srcset="https://toupawa.com/content/images/size/w600/2021/02/07path_androidsdk_platform-tools-1.jpg 600w, https://toupawa.com/content/images/2021/02/07path_androidsdk_platform-tools-1.jpg 673w"><figcaption>Android\Sdk\platform-tools</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE15;&#xE31;&#xE49;&#xE07;&#xE04;&#xE48;&#xE32;&#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE41;&#xE25;&#xE49;&#xE27; &#xE25;&#xE2D;&#xE07;&#xE40;&#xE0A;&#xE47;&#xE04;&#xE2A;&#xE16;&#xE32;&#xE19;&#xE30;&#xE08;&#xE32;&#xE01;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07; flutter doctor &#xE2D;&#xE35;&#xE01;&#xE04;&#xE23;&#xE31;&#xE49;&#xE07; &#xE08;&#xE30;&#xE44;&#xE14;&#xE49;&#xE2A;&#xE16;&#xE32;&#xE19;&#xE30;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>Doctor summary (to see all details, run flutter doctor -v):
[&#x2713;] Flutter (Channel stable, 1.22.5, on Microsoft Windows [Version 10.0.18363.1316], locale th-TH)
[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    &#x2717; Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses
[!] Android Studio (version 4.1.0)
    &#x2717; Flutter plugin not installed; this adds Flutter specific functionality.
    &#x2717; Dart plugin not installed; this adds Dart specific functionality.
[!] VS Code (version 1.52.1)
    &#x2717; Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[!] Connected device
    ! No devices available
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE25;&#xE07; Android SDK &#xE41;&#xE25;&#xE49;&#xE27;&#xE41;&#xE15;&#xE48;&#xE22;&#xE31;&#xE07;&#xE44;&#xE21;&#xE48;&#xE21;&#xE35; License (Android licenses not accepted) &#xE21;&#xE32;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07;&#xE01;&#xE31;&#xE19;&#xE15;&#xE48;&#xE2D;&#xE40;&#xE25;&#xE22;&#xE2E;&#xE30;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="aidandroidlicenseaandroidlicense"><a id="android-license"></a>&#xE25;&#xE07; Android License</h3>
<p>&#xE40;&#xE23;&#xE32;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE25;&#xE07; License &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE40;&#xE23;&#xE32;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE40;&#xE02;&#xE49;&#xE32;&#xE16;&#xE36;&#xE07; Android &#xE44;&#xE14;&#xE49; &#xE42;&#xE14;&#xE22;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE22;&#xE2D;&#xE21;&#xE23;&#xE31;&#xE1A;&#xE40;&#xE07;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE02;&#xE02;&#xE2D;&#xE07; Android License &#xE17;&#xE33;&#xE44;&#xE14;&#xE49;&#xE42;&#xE14;&#xE22;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;</p>
<p><code>flutter doctor --android-licenses</code></p>
<p>&#xE23;&#xE30;&#xE1A;&#xE1A;&#xE08;&#xE30;&#xE1E;&#xE48;&#xE19;&#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE40;&#xE22;&#xE2D;&#xE30;&#xE21;&#xE32;&#xE01;&#xE46; &#xE42;&#xE14;&#xE22;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE23;&#xE32;&#xE01;&#xE14; Y (Yes) &#xE44;&#xE1B;&#xE17;&#xE38;&#xE01;&#xE46;&#xE04;&#xE23;&#xE31;&#xE49;&#xE07;&#xE17;&#xE35;&#xE48;&#xE21;&#xE35;&#xE04;&#xE33;&#xE16;&#xE32;&#xE21;</p>
<p>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE41;&#xE25;&#xE49;&#xE27; &#xE43;&#xE2B;&#xE49;&#xE40;&#xE0A;&#xE47;&#xE04;&#xE01;&#xE32;&#xE23;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07;&#xE2D;&#xE35;&#xE01;&#xE17;&#xE35; &#xE42;&#xE14;&#xE22;&#xE43;&#xE2A;&#xE48;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07; <code>flutter doctor</code><br>
&#xE08;&#xE30;&#xE21;&#xE35;&#xE2D;&#xE31;&#xE1E;&#xE40;&#xE14;&#xE17;&#xE01;&#xE32;&#xE23;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>Doctor summary (to see all details, run flutter doctor -v):
[&#x2713;] Flutter (Channel stable, 1.22.5, on Microsoft Windows [Version 10.0.18363.1316], locale th-TH)

[&#x2713;] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[!] Android Studio (version 4.1.0)
    &#x2717; Flutter plugin not installed; this adds Flutter specific functionality.
    &#x2717; Dart plugin not installed; this adds Dart specific functionality.
[!] VS Code (version 1.52.1)
    &#x2717; Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[!] Connected device
    ! No devices available

! Doctor found issues in 3 categories.
</code></pre>
<p>&#xE01;&#xE32;&#xE23;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; License &#xE40;&#xE1B;&#xE47;&#xE19;&#xE2D;&#xE31;&#xE19;&#xE40;&#xE23;&#xE35;&#xE22;&#xE1A;&#xE23;&#xE49;&#xE2D;&#xE22; &#xE02;&#xE31;&#xE49;&#xE19;&#xE15;&#xE2D;&#xE19;&#xE15;&#xE48;&#xE2D;&#xE44;&#xE1B; &#xE17;&#xE33;&#xE01;&#xE32;&#xE23;&#xE15;&#xE31;&#xE49;&#xE07;&#xE04;&#xE48;&#xE32;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; AVD &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE0A;&#xE49;&#xE14;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE08;&#xE33;&#xE25;&#xE2D;&#xE07; (Emulator) &#xE01;&#xE31;&#xE19;&#xE04;&#xE23;&#xE31;&#xE1A;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="aidcreateavdaandroidvirtualdeviceavd"><a id="create-avd"></a>&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; Android Virtual Device (AVD)</h2>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE40;&#xE1B;&#xE47;&#xE19;&#xE01;&#xE32;&#xE23;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07;&#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE08;&#xE33;&#xE25;&#xE2D;&#xE07; Android &#xE43;&#xE0A;&#xE49;&#xE40;&#xE27;&#xE25;&#xE32;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE40;&#xE17;&#xE2A;&#xE15;&#xE4C;&#xE23;&#xE31;&#xE19;&#xE41;&#xE2D;&#xE1E;&#xE02;&#xE2D;&#xE07;&#xE40;&#xE23;&#xE32;&#xE19;&#xE31;&#xE48;&#xE19;&#xE40;&#xE2D;&#xE07;&#xE04;&#xE23;&#xE31;&#xE1A;</p>
<p>&#xE02;&#xE31;&#xE49;&#xE19;&#xE15;&#xE2D;&#xE19;&#xE01;&#xE32;&#xE23;&#xE15;&#xE31;&#xE49;&#xE07;&#xE04;&#xE48;&#xE32;&#xE41;&#xE25;&#xE30;&#xE40;&#xE1B;&#xE34;&#xE14;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19;</p>
<p>&#xE40;&#xE1B;&#xE34;&#xE14; Android Studio &#xE41;&#xE25;&#xE49;&#xE27; &#xE41;&#xE25;&#xE49;&#xE27;&#xE44;&#xE1B;&#xE17;&#xE35;&#xE48; Configure &gt; AVD Manager<br>
&#xE04;&#xE25;&#xE34;&#xE01;&#xE17;&#xE35;&#xE48; <strong>Create Virtual Device</strong></p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/02/08emulator_avdmanager.jpg" class="kg-image" alt="&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE41;&#xE25;&#xE30; Android SDK &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;" loading="lazy" width="654" height="483" srcset="https://toupawa.com/content/images/size/w600/2021/02/08emulator_avdmanager.jpg 600w, https://toupawa.com/content/images/2021/02/08emulator_avdmanager.jpg 654w"><figcaption>+ Create Virtual Device &#xE42;&#xE25;&#xE14;</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE43;&#xE19; <em>Category</em> &#xE40;&#xE25;&#xE37;&#xE2D;&#xE01; Phone &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01; pixel &#xE17;&#xE35;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23; &#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19;&#xE01;&#xE14; Next</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/02/09avd_select_hardware.jpg" class="kg-image" alt="&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE41;&#xE25;&#xE30; Android SDK &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;" loading="lazy" width="1001" height="647" srcset="https://toupawa.com/content/images/size/w600/2021/02/09avd_select_hardware.jpg 600w, https://toupawa.com/content/images/size/w1000/2021/02/09avd_select_hardware.jpg 1000w, https://toupawa.com/content/images/2021/02/09avd_select_hardware.jpg 1001w" sizes="(min-width: 720px) 720px"><figcaption>&#xE43;&#xE19;&#xE17;&#xE35;&#xE48;&#xE19;&#xE35;&#xE49;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01; Pixel 4 &#xE19;&#xE30;</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE04;&#xE25;&#xE34;&#xE01; <em>Download</em> &#xE23;&#xE38;&#xE48;&#xE19;&#xE23;&#xE30;&#xE1A;&#xE1A;&#xE17;&#xE35;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23; &#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19;&#xE01;&#xE14; Next</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/02/10avd_select_image.jpg" class="kg-image" alt="&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE41;&#xE25;&#xE30; Android SDK &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;" loading="lazy" width="999" height="646" srcset="https://toupawa.com/content/images/size/w600/2021/02/10avd_select_image.jpg 600w, https://toupawa.com/content/images/2021/02/10avd_select_image.jpg 999w" sizes="(min-width: 720px) 720px"><figcaption>&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE23;&#xE38;&#xE48;&#xE19; Android &#xE17;&#xE35;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE44;&#xE14;&#xE49;&#xE40;&#xE25;&#xE22;</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE23;&#xE2D;&#xE01;&#xE32;&#xE23;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07;&#xE08;&#xE19;&#xE40;&#xE2A;&#xE23;&#xE47;&#xE08; &#xE41;&#xE25;&#xE49;&#xE27;&#xE01;&#xE14;&#xE1B;&#xE38;&#xE48;&#xE21; Finish</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/02/12avd_image_download_finished-1.jpg" class="kg-image" alt="&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE41;&#xE25;&#xE30; Android SDK &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;" loading="lazy" width="899" height="647" srcset="https://toupawa.com/content/images/size/w600/2021/02/12avd_image_download_finished-1.jpg 600w, https://toupawa.com/content/images/2021/02/12avd_image_download_finished-1.jpg 899w" sizes="(min-width: 720px) 720px"><figcaption>&#xE23;&#xE2D;&#xE08;&#xE19;&#xE41;&#xE16;&#xE1A;&#xE1F;&#xE49;&#xE32;&#xE40;&#xE15;&#xE47;&#xE21; &#xE41;&#xE25;&#xE49;&#xE27;&#xE01;&#xE14; Finish</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE16;&#xE36;&#xE07;&#xE02;&#xE31;&#xE49;&#xE19;&#xE15;&#xE2D;&#xE19;&#xE19;&#xE35;&#xE49; &#xE40;&#xE23;&#xE32;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE01;&#xE14;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19;&#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE08;&#xE33;&#xE25;&#xE2D;&#xE07;&#xE44;&#xE14;&#xE49;&#xE41;&#xE25;&#xE49;&#xE27; &#xE42;&#xE14;&#xE22;&#xE01;&#xE14;&#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE2B;&#xE21;&#xE32;&#xE22;&#xE2A;&#xE32;&#xE21;&#xE40;&#xE2B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE21;&#xE17;&#xE35;&#xE48;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE15;&#xE23;&#xE07; <em>Actions</em></p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/02/14avd_device_created.jpg" class="kg-image" alt="&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE41;&#xE25;&#xE30; Android SDK &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;" loading="lazy" width="656" height="483" srcset="https://toupawa.com/content/images/size/w600/2021/02/14avd_device_created.jpg 600w, https://toupawa.com/content/images/2021/02/14avd_device_created.jpg 656w"><figcaption>&#xE01;&#xE14;&#xE1B;&#xE38;&#xE48;&#xE21;&#xE2A;&#xE32;&#xE21;&#xE40;&#xE2B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE21;&#xE15;&#xE23;&#xE07;&#xE04;&#xE2D;&#xE25;&#xE31;&#xE21;&#xE19;&#xE4C; Actions &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE1B;&#xE34;&#xE14;&#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/02/15avd_action.jpg" class="kg-image" alt="&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE41;&#xE25;&#xE30; Android SDK &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;" loading="lazy" width="545" height="888"><figcaption>&#xE17;&#xE32;&#xE14;&#xE32;!!! &#xE21;&#xE37;&#xE2D;&#xE16;&#xE37;&#xE2D;&#xE21;&#xE32;&#xE41;&#xE27;&#xE49;&#xE27;</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE40;&#xE0A;&#xE47;&#xE04;&#xE2A;&#xE16;&#xE32;&#xE19;&#xE30;&#xE01;&#xE31;&#xE19;&#xE2B;&#xE19;&#xE48;&#xE2D;&#xE22;&#xE0B;&#xE34; &#xE17;&#xE35;&#xE48;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE08;&#xE2D; terminal &#xE43;&#xE0A;&#xE49;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07; <code>flutter doctor</code> &#xE2D;&#xE35;&#xE01;&#xE17;&#xE35; &#xE14;&#xE39;&#xE14;&#xE34;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE44;&#xE07;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>Doctor summary (to see all details, run flutter doctor -v):
[&#x2713;] Flutter (Channel stable, 1.22.5, on Microsoft Windows [Version 10.0.18363.1316], locale th-TH)

[&#x2713;] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[!] Android Studio (version 4.1.0)
    &#x2717; Flutter plugin not installed; this adds Flutter specific functionality.
    &#x2717; Dart plugin not installed; this adds Dart specific functionality.
[!] VS Code (version 1.52.1)
    &#x2717; Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[&#x2713;] Connected device (1 available)
</code></pre>
<p>&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;&#xE41;&#xE1B;&#xE25;&#xE27;&#xE48;&#xE32; &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE25;&#xE30;&#xE40;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE21;&#xE15;&#xE48;&#xE2D; AVD &#xE40;&#xE23;&#xE35;&#xE22;&#xE1A;&#xE23;&#xE49;&#xE2D;&#xE22;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="anameinstallvscodeavscode"><a name="install-vscode"></a>&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; VS Code</h2>
<!--kg-card-end: markdown--><figure class="kg-card kg-bookmark-card kg-card-hascaption"><a class="kg-bookmark-container" href="https://code.visualstudio.com/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Visual Studio Code - Code Editing. Redefined</div><div class="kg-bookmark-description">Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications. Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://code.visualstudio.com/favicon.ico" alt="&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE41;&#xE25;&#xE30; Android SDK &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;"><span class="kg-bookmark-author">Visual Studio Code</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://code.visualstudio.com/opengraphimg/opengraph-home.png" alt="&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE41;&#xE25;&#xE30; Android SDK &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;"></div></a><figcaption>&#xE14;&#xE32;&#xE27;&#xE19;&#xE4C;&#xE42;&#xE2B;&#xE25;&#xE14;&#xE44;&#xE14;&#xE49;&#xE17;&#xE35;&#xE48;&#xE19;&#xE35;&#xE48;</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE17;&#xE33;&#xE01;&#xE32;&#xE23;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; VS Code &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE0A;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19; Code Editor</p>
<p>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07;&#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE41;&#xE25;&#xE49;&#xE27; &#xE25;&#xE2D;&#xE07;&#xE43;&#xE0A;&#xE49;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07; <code>flutter doctor</code> &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE0A;&#xE47;&#xE04;&#xE2A;&#xE16;&#xE32;&#xE19;&#xE30;&#xE01;&#xE32;&#xE23;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07;&#xE2D;&#xE35;&#xE01;&#xE04;&#xE23;&#xE31;&#xE49;&#xE07;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>Doctor summary (to see all details, run flutter doctor -v):
[&#x2713;] Flutter (Channel stable, 1.22.5, on Microsoft Windows [Version 10.0.18363.1316], locale th-TH)

[&#x2713;] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[!] Android Studio (version 4.1.0)
    &#x2717; Flutter plugin not installed; this adds Flutter specific functionality.
    &#x2717; Dart plugin not installed; this adds Dart specific functionality.
[&#x2713;] VS Code (version 1.52.1)
[&#x2713;] Connected device (1 available)
</code></pre>
<p>&#xE42;&#xE2D;&#xE40;&#xE04; &#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;&#xE16;&#xE37;&#xE2D;&#xE27;&#xE48;&#xE32;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07;&#xE14;&#xE49;&#xE27;&#xE22;&#xE04;&#xE27;&#xE32;&#xE21;&#xE40;&#xE23;&#xE35;&#xE22;&#xE1A;&#xE23;&#xE49;&#xE2D;&#xE22;&#xE14;&#xE35; &#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19;&#xE40;&#xE23;&#xE32;&#xE44;&#xE1B;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE42;&#xE1B;&#xE23;&#xE40;&#xE08;&#xE04;&#xE01;&#xE31;&#xE19;&#xE2E;&#xE30;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="aidbuildflutterprojectaflutterbuildavd"><a id="build-flutter-project"></a>&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE42;&#xE1B;&#xE23;&#xE40;&#xE08;&#xE04; Flutter &#xE41;&#xE25;&#xE30; build &#xE1A;&#xE19; AVD</h2>
<p>&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE42;&#xE1F;&#xE25;&#xE40;&#xE14;&#xE2D;&#xE23;&#xE4C; &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE02;&#xE49;&#xE32; path &#xE44;&#xE1B;&#xE17;&#xE35;&#xE48;&#xE42;&#xE1F;&#xE25;&#xE40;&#xE14;&#xE2D;&#xE23;&#xE4C;&#xE19;&#xE31;&#xE49;&#xE19; &#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19;&#xE43;&#xE0A;&#xE49;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;</p>
<p><code>flutter create &lt;project_name&gt;</code></p>
<p>&#xE43;&#xE19;&#xE17;&#xE35;&#xE48;&#xE19;&#xE35;&#xE48; &#xE40;&#xE23;&#xE32;&#xE43;&#xE0A;&#xE49;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE42;&#xE1B;&#xE23;&#xE40;&#xE08;&#xE04;&#xE27;&#xE48;&#xE32; mybasicapp &#xE19;&#xE30;</p>
<p>&#xE23;&#xE2D;&#xE08;&#xE19;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE44;&#xE1F;&#xE25;&#xE4C;&#xE15;&#xE48;&#xE32;&#xE07;&#xE46;&#xE2A;&#xE33;&#xE40;&#xE23;&#xE47;&#xE08;&#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE2A;&#xE34;&#xE49;&#xE19; &#xE08;&#xE19;&#xE40;&#xE2B;&#xE47;&#xE19;&#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21;&#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>Running &quot;flutter pub get&quot; in mybasicapp...                          2.6s
Wrote 71 files.

All done!
[&#x2713;] Flutter: is fully installed. (Channel stable, 1.22.5, on Microsoft Windows [Version 10.0.18363.1316], locale th-TH)
[&#x2713;] Android toolchain - develop for Android devices: is fully installed. (Android SDK version 30.0.3)
[!] Android Studio: is partially installed; more components are available. (version 4.1.0)
[&#x2713;] VS Code: is fully installed. (version 1.52.1)
[&#x2713;] Connected device: is fully installed. (1 available)

Run &quot;flutter doctor&quot; for information about installing additional components.

In order to run your application, type:

  $ cd mybasicapp
  $ flutter run

Your application code is in mybasicapp\lib\main.dart.
</code></pre>
<p>&#xE01;&#xE14;&#xE40;&#xE02;&#xE49;&#xE32;&#xE44;&#xE1B;&#xE14;&#xE39;&#xE44;&#xE1F;&#xE25;&#xE4C;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; &#xE1C;&#xE48;&#xE32;&#xE19; VS Code</p>
<p>&#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19; &#xE01;&#xE14; <code>Shift</code> + <code>Ctrl</code> + <code>P</code> &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE43;&#xE2A;&#xE48;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07; &#xE40;&#xE25;&#xE37;&#xE2D;&#xE01; <strong>Flutter: Launch Emulator</strong></p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/02/16flutter_launch_emu.jpg" class="kg-image" alt="&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE41;&#xE25;&#xE30; Android SDK &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;" loading="lazy" width="1185" height="560" srcset="https://toupawa.com/content/images/size/w600/2021/02/16flutter_launch_emu.jpg 600w, https://toupawa.com/content/images/size/w1000/2021/02/16flutter_launch_emu.jpg 1000w, https://toupawa.com/content/images/2021/02/16flutter_launch_emu.jpg 1185w" sizes="(min-width: 720px) 720px"><figcaption>&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01; Flutter: Launch Emulator</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE08;&#xE30;&#xE21;&#xE35; list &#xE43;&#xE2B;&#xE49;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01; Emulator &#xE40;&#xE23;&#xE32;&#xE01;&#xE47;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE2D;&#xE31;&#xE19;&#xE41;&#xE23;&#xE01; &#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE44;&#xE27;&#xE49;&#xE41;&#xE04;&#xE48;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/02/17choose_avd.jpg" class="kg-image" alt="&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE41;&#xE25;&#xE30; Android SDK &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;" loading="lazy" width="606" height="93" srcset="https://toupawa.com/content/images/size/w600/2021/02/17choose_avd.jpg 600w, https://toupawa.com/content/images/2021/02/17choose_avd.jpg 606w"><figcaption>&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE44;&#xE27;&#xE49;&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE01;&#xE35;&#xE49;</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19; &#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE08;&#xE30;&#xE17;&#xE33;&#xE01;&#xE32;&#xE23;&#xE40;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE21;&#xE15;&#xE48;&#xE2D;&#xE42;&#xE1B;&#xE23;&#xE40;&#xE08;&#xE04;&#xE01;&#xE31;&#xE1A; Emulator &#xE43;&#xE2B;&#xE49; &#xE2D;&#xE32;&#xE08;&#xE08;&#xE30;&#xE21;&#xE35;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE15;&#xE48;&#xE32;&#xE07; Security Alert &#xE02;&#xE36;&#xE49;&#xE19;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;&#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19;&#xE04;&#xE23;&#xE31;&#xE49;&#xE07;&#xE41;&#xE23;&#xE01; &#xE43;&#xE2B;&#xE49;&#xE01;&#xE14; Allow access &#xE44;&#xE1B;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/02/18windows_security_alert-1.jpg" class="kg-image" alt="&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE41;&#xE25;&#xE30; Android SDK &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;" loading="lazy" width="523" height="379"><figcaption>&#xE16;&#xE49;&#xE32;&#xE40;&#xE08;&#xE2D;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49; &#xE01;&#xE47;&#xE01;&#xE14; Allow access</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE21;&#xE15;&#xE48;&#xE2D;&#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE41;&#xE25;&#xE49;&#xE27; &#xE43;&#xE2B;&#xE49;&#xE01;&#xE14; F5 &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21; build &#xE41;&#xE2D;&#xE1E; &#xE1A;&#xE19;&#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE08;&#xE33;&#xE25;&#xE2D;&#xE07;</p>
<p>&#xE23;&#xE2D;&#xE08;&#xE19;&#xE40;&#xE2A;&#xE23;&#xE47;&#xE08;&#xE08;&#xE30;&#xE44;&#xE14;&#xE49;&#xE41;&#xE2D;&#xE1E; Flutter &#xE1A;&#xE19;&#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE35;&#xE22;&#xE1A;&#xE23;&#xE49;&#xE2D;&#xE22;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/02/19running_flutter.jpg" class="kg-image" alt="&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07; Flutter &#xE41;&#xE25;&#xE30; Android SDK &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;" loading="lazy" width="603" height="903" srcset="https://toupawa.com/content/images/size/w600/2021/02/19running_flutter.jpg 600w, https://toupawa.com/content/images/2021/02/19running_flutter.jpg 603w"><figcaption>&#xE41;&#xE2D;&#xE1E;&#xE21;&#xE32;&#xE41;&#xE19;&#xE49;&#xE27;&#xE27;&#xE27; &#xE42;&#xE14;&#xE22;&#xE1B;&#xE23;&#xE32;&#xE01;&#xE0F;&#xE15;&#xE31;&#xE27;&#xE40;&#xE1B;&#xE47;&#xE19; Default App &#xE01;&#xE14;&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21;&#xE15;&#xE31;&#xE27;&#xE40;&#xE25;&#xE02;</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE08;&#xE1A;&#xE01;&#xE32;&#xE23;&#xE15;&#xE34;&#xE14;&#xE15;&#xE31;&#xE49;&#xE07;&#xE44;&#xE1B;&#xE08;&#xE19;&#xE16;&#xE36;&#xE07;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E; Flutter &#xE04;&#xE23;&#xE31;&#xE49;&#xE07;&#xE41;&#xE23;&#xE01; &#xE15;&#xE48;&#xE2D;&#xE44;&#xE1B;&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;&#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A;&#xE44;&#xE2B;&#xE19; &#xE01;&#xE47;&#xE17;&#xE33;&#xE44;&#xE14;&#xE49; &#xE42;&#xE14;&#xE22;&#xE01;&#xE32;&#xE23;&#xE41;&#xE01;&#xE49;&#xE44;&#xE02; Default App &#xE43;&#xE2B;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE41;&#xE1A;&#xE1A;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE32;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE40;&#xE2B;&#xE47;&#xE19;&#xE27;&#xE48;&#xE32; &#xE1E;&#xE37;&#xE49;&#xE19;&#xE10;&#xE32;&#xE19;&#xE42;&#xE04;&#xE49;&#xE14;&#xE02;&#xE2D;&#xE07;&#xE41;&#xE2D;&#xE1E;&#xE43;&#xE0A;&#xE49;&#xE20;&#xE32;&#xE29;&#xE32; Dart &#xE40;&#xE19;&#xE2D;&#xE30; &#xE14;&#xE31;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19; &#xE08;&#xE36;&#xE07;&#xE04;&#xE27;&#xE23;&#xE23;&#xE39;&#xE49;&#xE1E;&#xE37;&#xE49;&#xE19;&#xE10;&#xE32;&#xE19;&#xE20;&#xE32;&#xE29;&#xE32;&#xE01;&#xE48;&#xE2D;&#xE19;&#xE08;&#xE30;&#xE44;&#xE1B;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE17;&#xE33;&#xE41;&#xE2D;&#xE1E;&#xE19;&#xE30;&#xE2E;&#xE30; &#xE41;&#xE25;&#xE49;&#xE27;&#xE1E;&#xE1A;&#xE01;&#xE31;&#xE19;&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE2B;&#xE19;&#xE49;&#xE32;</p>
<p>Reference</p>
<p><a href="https://flutter.dev/docs/get-started/install/windows">Flutter</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[เรียนรู้ภาษา Dart ก่อนไปเริ่มใช้ Flutter (Part 2) ว่าด้วยเรื่องของ Class Constructor และ Class Inheritance]]></title><description><![CDATA[ในบทความนี้ จะพูดส่วนของคลาสในภาษา Dart เรื่อง Constructor และ Inheritance]]></description><link>https://toupawa.com/learn-dart-from-zero-to-standard-part-2/</link><guid isPermaLink="false">60187bbf74fb582548a51c86</guid><category><![CDATA[Dart]]></category><category><![CDATA[language]]></category><dc:creator><![CDATA[TPW]]></dc:creator><pubDate>Mon, 01 Feb 2021 23:11:02 GMT</pubDate><media:content url="https://toupawa.com/content/images/2021/02/1920px-Dart-logo-wordmark.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://toupawa.com/content/images/2021/02/1920px-Dart-logo-wordmark.jpg" alt="&#xE40;&#xE23;&#xE35;&#xE22;&#xE19;&#xE23;&#xE39;&#xE49;&#xE20;&#xE32;&#xE29;&#xE32; Dart &#xE01;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE1B;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE43;&#xE0A;&#xE49; Flutter (Part 2) &#xE27;&#xE48;&#xE32;&#xE14;&#xE49;&#xE27;&#xE22;&#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE02;&#xE2D;&#xE07; Class Constructor &#xE41;&#xE25;&#xE30; Class Inheritance"><p>&#xE21;&#xE32;&#xE15;&#xE48;&#xE2D;&#xE01;&#xE31;&#xE19;&#xE40;&#xE25;&#xE22;&#xE01;&#xE31;&#xE1A;&#xE20;&#xE32;&#xE04;&#xE15;&#xE48;&#xE2D;&#xE02;&#xE2D;&#xE07;&#xE20;&#xE32;&#xE29;&#xE32; Dart &#xE0A;&#xE38;&#xE14;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE15;&#xE49;&#xE19; &#xE01;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE1B;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19; Flutter &#xE27;&#xE31;&#xE19;&#xE19;&#xE35;&#xE49;&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE21;&#xE32;&#xE1E;&#xE39;&#xE14;&#xE01;&#xE31;&#xE19;&#xE16;&#xE36;&#xE07;&#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE02;&#xE2D;&#xE07; Class &#xE43;&#xE19;&#xE41;&#xE07;&#xE48;&#xE17;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE04;&#xE38;&#xE13;&#xE2A;&#xE21;&#xE1A;&#xE31;&#xE15;&#xE34;&#xE15;&#xE48;&#xE32;&#xE07;&#xE46;&#xE02;&#xE2D;&#xE07;&#xE21;&#xE31;&#xE19; &#xE44;&#xE14;&#xE49;&#xE41;&#xE01;&#xE48; Constructor, Class Inheritance &#xE27;&#xE48;&#xE32;&#xE41;&#xE25;&#xE49;&#xE27;&#xE15;&#xE2D;&#xE19;&#xE19;&#xE35;&#xE49; &#xE01;&#xE47;&#xE21;&#xE32;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE01;&#xE31;&#xE19;&#xE40;&#xE25;&#xE22;&#xE14;&#xE35;&#xE01;&#xE27;&#xE48;&#xE32;</p>
<p>&#xE43;&#xE19;<a href="https://toupawa.com/learn-dart-from-zero-to-standard/">&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE17;&#xE35;&#xE48;&#xE41;&#xE25;&#xE49;&#xE27;</a> &#xE40;&#xE23;&#xE32;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE40;&#xE01;&#xE23;&#xE34;&#xE48;&#xE19;&#xE44;&#xE1B;&#xE16;&#xE36;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE1A;&#xE49;&#xE32;&#xE07;&#xE41;&#xE25;&#xE49;&#xE27; &#xE43;&#xE19;&#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07; Getters/Setters, Private Variable &#xE41;&#xE25;&#xE30; Constructor &#xE43;&#xE19;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE19;&#xE35;&#xE49; &#xE08;&#xE30;&#xE02;&#xE2D;&#xE02;&#xE22;&#xE32;&#xE22;&#xE04;&#xE27;&#xE32;&#xE21; Constructor &#xE15;&#xE48;&#xE2D;&#xE44;&#xE1B;&#xE2D;&#xE35;&#xE01; &#xE40;&#xE19;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE08;&#xE32;&#xE01; &#xE21;&#xE35; syntax &#xE2B;&#xE25;&#xE32;&#xE22;&#xE46;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE17;&#xE35;&#xE48;&#xE08;&#xE33;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE40;&#xE23;&#xE35;&#xE22;&#xE19;&#xE23;&#xE39;&#xE49; &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE33;&#xE44;&#xE1B;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE41;&#xE2D;&#xE1E;&#xE44;&#xE14;&#xE49;&#xE08;&#xE23;&#xE34;&#xE07;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="constructorfunction Object() { [native code] }1">Constructor</h2>
<p>&#xE08;&#xE32;&#xE01; syntax &#xE17;&#xE31;&#xE48;&#xE27;&#xE44;&#xE1B;&#xE02;&#xE2D;&#xE07; Constructor &#xE17;&#xE35;&#xE48;&#xE21;&#xE2D;&#xE07;&#xE43;&#xE19;&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A; header/body &#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE41;&#xE1A;&#xE48;&#xE07;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<pre><code>//constructor head
Class_name(parameter_list) { 
   //constructor body 
}
</code></pre>
<p>Constructor &#xE16;&#xE39;&#xE01;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE42;&#xE14;&#xE22;&#xE44;&#xE21;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14; data type &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE15;&#xE31;&#xE27;&#xE41;&#xE17;&#xE19;&#xE02;&#xE2D;&#xE07; class &#xE43;&#xE19;&#xE2A;&#xE48;&#xE27;&#xE19; body &#xE43;&#xE0A;&#xE49;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; statement &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE04;&#xE48;&#xE32;&#xE43;&#xE2B;&#xE49; field &#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; object &#xE08;&#xE32;&#xE01;&#xE04;&#xE25;&#xE32;&#xE2A; &#xE08;&#xE30;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE43;&#xE2A;&#xE48;&#xE1E;&#xE32;&#xE23;&#xE32;&#xE21;&#xE34;&#xE40;&#xE15;&#xE2D;&#xE23;&#xE4C;&#xE43;&#xE2B;&#xE49;&#xE01;&#xE31;&#xE1A; object &#xE15;&#xE31;&#xE49;&#xE07;&#xE41;&#xE15;&#xE48;&#xE15;&#xE2D;&#xE19;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE40;&#xE25;&#xE22; &#xE40;&#xE0A;&#xE48;&#xE19; &#xE2B;&#xE32;&#xE01;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A; Employee &#xE17;&#xE35;&#xE48;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE2A;&#xE32;&#xE21;&#xE15;&#xE31;&#xE27;&#xE04;&#xE37;&#xE2D; &#xE0A;&#xE37;&#xE48;&#xE2D; &#xE2D;&#xE32;&#xE22;&#xE38; &#xE41;&#xE25;&#xE30;&#xE17;&#xE35;&#xE48;&#xE2D;&#xE22;&#xE39;&#xE48; &#xE41;&#xE25;&#xE49;&#xE27;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; Constructor &#xE17;&#xE35;&#xE48;&#xE17;&#xE33;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE17;&#xE35;&#xE48;&#xE23;&#xE31;&#xE1A;&#xE1E;&#xE32;&#xE23;&#xE32;&#xE21;&#xE34;&#xE40;&#xE15;&#xE2D;&#xE23;&#xE4C;&#xE41;&#xE15;&#xE48;&#xE25;&#xE30;&#xE04;&#xE48;&#xE32;&#xE40;&#xE2D;&#xE32;&#xE21;&#xE32;&#xE40;&#xE01;&#xE47;&#xE1A;&#xE44;&#xE27;&#xE49;&#xE43;&#xE19;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE19;&#xE31;&#xE49;&#xE19;&#xE46;</p>
<pre><code>class Employee {
  // fields
  String name;
  int age;
  String address;

  // Constructor
  Employee(name, age, address) {
    this.name = name;
    this.age = age;
    this.address = address;
  }
}
</code></pre>
<p>&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49; this &#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE43;&#xE2B;&#xE49; Constructor &#xE23;&#xE39;&#xE49;&#xE27;&#xE48;&#xE32; &#xE04;&#xE48;&#xE32;&#xE1E;&#xE32;&#xE23;&#xE32;&#xE21;&#xE34;&#xE40;&#xE15;&#xE2D;&#xE23;&#xE4C;&#xE17;&#xE35;&#xE48;&#xE23;&#xE31;&#xE1A;&#xE40;&#xE02;&#xE49;&#xE32;&#xE21;&#xE32; &#xE43;&#xE2B;&#xE49;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE1B;&#xE40;&#xE01;&#xE47;&#xE1A;&#xE17;&#xE35;&#xE48; fields &#xE02;&#xE2D;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE19;&#xE30; &#xE40;&#xE19;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE08;&#xE32;&#xE01;&#xE42;&#xE1B;&#xE23;&#xE41;&#xE01;&#xE23;&#xE21;&#xE08;&#xE30;&#xE04;&#xE49;&#xE19;&#xE2B;&#xE32; fields &#xE02;&#xE2D;&#xE07;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE01;&#xE48;&#xE2D;&#xE19; fields &#xE02;&#xE2D;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A;<br>
&#xE16;&#xE49;&#xE32;&#xE44;&#xE21;&#xE48;&#xE21;&#xE35; this &#xE42;&#xE1B;&#xE23;&#xE41;&#xE01;&#xE23;&#xE21;&#xE08;&#xE30;&#xE40;&#xE02;&#xE49;&#xE32;&#xE43;&#xE08;&#xE27;&#xE48;&#xE32;&#xE1E;&#xE32;&#xE23;&#xE32;&#xE21;&#xE34;&#xE40;&#xE15;&#xE2D;&#xE23;&#xE4C;&#xE17;&#xE35;&#xE48;&#xE23;&#xE31;&#xE1A;&#xE40;&#xE02;&#xE49;&#xE32;&#xE21;&#xE32;&#xE08;&#xE30;&#xE16;&#xE39;&#xE01;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE43;&#xE2B;&#xE49; local scope fields &#xE02;&#xE2D;&#xE07; Constructor &#xE0B;&#xE36;&#xE48;&#xE07;&#xE43;&#xE19;&#xE17;&#xE35;&#xE48;&#xE19;&#xE35;&#xE49;&#xE40;&#xE23;&#xE32;&#xE44;&#xE21;&#xE48;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49; &#xE08;&#xE30;&#xE17;&#xE33;&#xE43;&#xE2B;&#xE49; field &#xE17;&#xE31;&#xE49;&#xE07;&#xE2B;&#xE21;&#xE14;&#xE02;&#xE2D;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE22;&#xE31;&#xE07;&#xE04;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19; null</p>
<p>&#xE40;&#xE27;&#xE25;&#xE32;&#xE08;&#xE30;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; object &#xE08;&#xE32;&#xE01;&#xE04;&#xE25;&#xE32;&#xE2A; Employee &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE01;&#xE47;&#xE1A; object &#xE44;&#xE27;&#xE49;&#xE43;&#xE19;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE27;&#xE48;&#xE32; employee_1 &#xE08;&#xE30;&#xE43;&#xE0A;&#xE49; syntax &#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<pre><code>var employee_1 = new Employee(&#x201C;John Doe&#x201D;, 29, &#x201C;Califonia&#x201D;);
</code></pre>
<p>&#xE2B;&#xE23;&#xE37;&#xE2D; &#xE08;&#xE30;&#xE25;&#xE30; new &#xE01;&#xE47;&#xE44;&#xE14;&#xE49;</p>
<pre><code>var employee_1 = Employee(&#x201C;John Doe&#x201D;, 29, &#x201C;Califonia&#x201D;);
</code></pre>
<p>&#xE04;&#xE33;&#xE40;&#xE15;&#xE37;&#xE2D;&#xE19; : &#xE15;&#xE49;&#xE2D;&#xE07;&#xE43;&#xE2A;&#xE48;&#xE1E;&#xE32;&#xE23;&#xE32;&#xE21;&#xE34;&#xE40;&#xE15;&#xE2D;&#xE23;&#xE4C;&#xE43;&#xE2B;&#xE49;&#xE04;&#xE23;&#xE1A;&#xE17;&#xE38;&#xE01;&#xE04;&#xE48;&#xE32;&#xE15;&#xE32;&#xE21;&#xE17;&#xE35;&#xE48;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19; Constructor &#xE01;&#xE33;&#xE2B;&#xE19;&#xE14; &#xE21;&#xE34;&#xE40;&#xE0A;&#xE48;&#xE19;&#xE19;&#xE31;&#xE49;&#xE19; &#xE08;&#xE30;&#xE40;&#xE01;&#xE34;&#xE14; error!!!</p>
<p>&#xE19;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A;&#xE17;&#xE31;&#xE48;&#xE27;&#xE44;&#xE1B;&#xE02;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; Constructor &#xE0B;&#xE36;&#xE48;&#xE07;&#xE40;&#xE23;&#xE32;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A;&#xE2D;&#xE37;&#xE48;&#xE19;&#xE46;&#xE44;&#xE14;&#xE49;&#xE2D;&#xE35;&#xE01; &#xE40;&#xE0A;&#xE48;&#xE19;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="namedparameter">Named Parameter</h3>
<p>&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE19;&#xE33;&#xE40;&#xE2D;&#xE32;&#xE41;&#xE19;&#xE27;&#xE04;&#xE34;&#xE14;&#xE02;&#xE2D;&#xE07; Named Parameter &#xE21;&#xE32;&#xE1C;&#xE2A;&#xE21;&#xE01;&#xE31;&#xE1A; Constructor &#xE44;&#xE14;&#xE49; &#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE1E;&#xE32;&#xE23;&#xE32;&#xE21;&#xE34;&#xE40;&#xE15;&#xE2D;&#xE23;&#xE4C;&#xE21;&#xE35;&#xE2B;&#xE25;&#xE32;&#xE22;&#xE15;&#xE31;&#xE27;</p>
<pre><code>class Employee {
  String name;
  int age;
  String address;

  Employee({this.name, this.age, this.address});
}
</code></pre>
<p>&#xE15;&#xE2D;&#xE19;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; object &#xE01;&#xE47;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE43;&#xE2A;&#xE48;&#xE1E;&#xE32;&#xE23;&#xE32;&#xE21;&#xE34;&#xE40;&#xE15;&#xE2D;&#xE23;&#xE4C;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<pre><code>var man1 = Employee(name: &apos;John&apos;, age: 19, address: &apos;Bangkok&apos;);
</code></pre>
<p>&#xE2A;&#xE31;&#xE07;&#xE40;&#xE01;&#xE15;&#xE27;&#xE48;&#xE32; &#xE15;&#xE2D;&#xE19;&#xE1B;&#xE23;&#xE30;&#xE01;&#xE32;&#xE28;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19; &#xE15;&#xE49;&#xE2D;&#xE07;&#xE43;&#xE2A;&#xE48; {} &#xE04;&#xE23;&#xE2D;&#xE1A;&#xE1E;&#xE32;&#xE23;&#xE32;&#xE21;&#xE34;&#xE40;&#xE15;&#xE2D;&#xE23;&#xE4C; &#xE2A;&#xE48;&#xE27;&#xE19;&#xE15;&#xE2D;&#xE19;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19; &#xE44;&#xE21;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE43;&#xE2A;&#xE48;<br>
&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE43;&#xE2A;&#xE48;&#xE1E;&#xE32;&#xE23;&#xE32;&#xE21;&#xE34;&#xE40;&#xE15;&#xE2D;&#xE23;&#xE4C;&#xE2A;&#xE25;&#xE31;&#xE1A;&#xE15;&#xE33;&#xE41;&#xE2B;&#xE19;&#xE48;&#xE07;&#xE01;&#xE31;&#xE19;&#xE44;&#xE14;&#xE49;&#xE14;&#xE49;&#xE27;&#xE22; &#xE40;&#xE0A;&#xE48;&#xE19;</p>
<pre><code>var man1 = Employee(address: &apos;Bangkok&apos;, name: &apos;John&apos;, age: 19);
</code></pre>
<p>&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49; Named Parameter &#xE16;&#xE37;&#xE2D;&#xE27;&#xE48;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19; Optional &#xE0B;&#xE36;&#xE48;&#xE07;&#xE16;&#xE49;&#xE32;&#xE44;&#xE21;&#xE48;&#xE43;&#xE2A;&#xE48;&#xE04;&#xE48;&#xE32; &#xE08;&#xE30;&#xE44;&#xE14;&#xE49; null</p>
<pre><code class="language-v">var man1 = Employee(address: &apos;Bangkok&apos;, age: 19);
print(man1.name);
// output is null
</code></pre>
<p>&#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A; field &#xE17;&#xE35;&#xE48;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE40;&#xE1B;&#xE47;&#xE19; private &#xE15;&#xE49;&#xE2D;&#xE07;&#xE1B;&#xE23;&#xE30;&#xE01;&#xE32;&#xE28;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C; Constructor &#xE0A;&#xE31;&#xE48;&#xE19;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>class Employee {
  String _name;
  int _age;
  String _address;

  Employee({String name, int age, String address}) {
    this._name = name;
    this._age = age;
    this._address = address;
  }
}
</code></pre>
<p>&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE25;&#xE30; this &#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<pre><code>class Employee {
  String _name;
  int _age;
  String _address;

  Employee({String name, int age, String address}) {
    _name = name;
    _age = age;
    _address = address;
  }
}
</code></pre>
<p>&#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19;&#xE01;&#xE47;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE1B;&#xE23;&#xE30;&#xE01;&#xE32;&#xE28;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23; object &#xE44;&#xE14;&#xE49;&#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE40;&#xE14;&#xE34;&#xE21;</p>
<p>&#xE41;&#xE15;&#xE48;&#xE16;&#xE49;&#xE32; field &#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE40;&#xE1B;&#xE47;&#xE19; final &#xE25;&#xE48;&#xE30;</p>
<pre><code>class Employee {
  final String _name;
  final int _age;
  final String _address;

  Employee({String name, int age, String address}) {
    _name = name;
    _age = age;
    _address = address;
  }
}
</code></pre>
<p>&#xE08;&#xE30;&#xE15;&#xE34;&#xE14; error &#xE22;&#xE32;&#xE27;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE1E;&#xE23;&#xE37;&#xE14;&#xE41;&#xE19;&#xE48;&#xE19;&#xE2D;&#xE19; &#xE16;&#xE36;&#xE07;&#xE08;&#xE30;&#xE40;&#xE2D;&#xE32; final &#xE44;&#xE1B;&#xE43;&#xE2A;&#xE48;&#xE43;&#xE19; Constructor &#xE01;&#xE47;&#xE22;&#xE31;&#xE07; error &#xE2D;&#xE22;&#xE39;&#xE48;&#xE14;&#xE35; &#xE27;&#xE48;&#xE32;&#xE41;&#xE15;&#xE48;&#xE17;&#xE33;&#xE44;&#xE21;&#xE01;&#xE31;&#xE19;&#xE19;&#xE30;?</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE40;&#xE23;&#xE32;&#xE44;&#xE1B;&#xE2B;&#xE32;&#xE04;&#xE33;&#xE15;&#xE2D;&#xE1A;&#xE21;&#xE32;&#xE08;&#xE32;&#xE01;<a href="https://dev.to/centrilliontech/dart-104-class-object-dart-1c35">&#xE17;&#xE35;&#xE48;&#xE19;&#xE35;&#xE48;</a> &#xE40;&#xE04;&#xE49;&#xE32;&#xE1A;&#xE2D;&#xE01;&#xE27;&#xE48;&#xE32; construction state &#xE21;&#xE31;&#xE19;&#xE08;&#xE1A;&#xE01;&#xE48;&#xE2D;&#xE19;&#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE15;&#xE23;&#xE07; body &#xE14;&#xE31;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19; &#xE40;&#xE23;&#xE32;&#xE08;&#xE36;&#xE07;&#xE15;&#xE49;&#xE2D;&#xE07; &#xE01;&#xE33;&#xE2B;&#xE19;&#xE14; fianl &#xE43;&#xE2B;&#xE49;&#xE08;&#xE1A;&#xE15;&#xE31;&#xE49;&#xE07;&#xE41;&#xE15;&#xE48; header &#xE01;&#xE48;&#xE2D;&#xE19;&#xE17;&#xE35;&#xE48; body &#xE08;&#xE30;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19; &#xE42;&#xE14;&#xE22; initialize (&#xE1B;&#xE23;&#xE30;&#xE01;&#xE32;&#xE28;) Constructor &#xE40;&#xE1B;&#xE47;&#xE19;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<pre><code>class Employee {
  final String _name;
  final int _age;
  final String _address;

  Employee({String name, int age, String address}) :
    this._name = name,
    this._age = age,
    this._address = address;
}
</code></pre>
<p>&#xE2A;&#xE31;&#xE07;&#xE40;&#xE01;&#xE15;&#xE27;&#xE48;&#xE32; &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE40;&#xE2D;&#xE32; {} &#xE17;&#xE35;&#xE48;&#xE04;&#xE23;&#xE2D;&#xE1A; body &#xE2D;&#xE2D;&#xE01; &#xE41;&#xE25;&#xE30;&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21; : &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE21;  <code>_name</code> <code>_age</code>  <code>_address</code> &#xE40;&#xE19;&#xE35;&#xE48;&#xE22; &#xE43;&#xE2B;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE19;&#xE37;&#xE49;&#xE2D;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;&#xE01;&#xE31;&#xE19;&#xE01;&#xE31;&#xE1A; header &#xE41;&#xE25;&#xE30;&#xE43;&#xE0A;&#xE49; , &#xE04;&#xE31;&#xE48;&#xE19;&#xE23;&#xE30;&#xE2B;&#xE27;&#xE48;&#xE32;&#xE07;&#xE01;&#xE25;&#xE32;&#xE07;</p>
<p>&#xE41;&#xE19;&#xE48;&#xE19;&#xE2D;&#xE19;&#xE27;&#xE48;&#xE32; &#xE40;&#xE23;&#xE32;&#xE01;&#xE47;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE25;&#xE30; this &#xE44;&#xE14;&#xE49;&#xE40;&#xE0A;&#xE48;&#xE19;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;&#xE01;&#xE31;&#xE19;</p>
<pre><code>class Employee {
  final String _name;
  final int _age;
  final String _address;

  Employee({String name, int age, String address}) :
    _name = name,
    _age = age,
    _address = address;
}
</code></pre>
<p>&#xE21;&#xE32;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; object &#xE41;&#xE25;&#xE30; &#xE1B;&#xE23;&#xE34;&#xE4A;&#xE19;&#xE15;&#xE4C;&#xE04;&#xE48;&#xE32;&#xE01;&#xE31;&#xE19;&#xE2B;&#xE19;&#xE48;&#xE2D;&#xE22;</p>
<pre><code>var man1 = Employee(name: &apos;John&apos;, age: 19, address: &apos;Bangkok&apos;);
print(man1._name);
// output is John
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="namedconstructor">Named Constructor</h3>
<p>Dart &#xE44;&#xE14;&#xE49;&#xE43;&#xE2B;&#xE49;&#xE04;&#xE27;&#xE32;&#xE21;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE43;&#xE19;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; Constructor &#xE2B;&#xE25;&#xE32;&#xE22;&#xE46;&#xE15;&#xE31;&#xE27; &#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE27;&#xE48;&#xE32; Named Constructor &#xE21;&#xE35;&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A; syntax &#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<pre><code>Class_name.constructor_name(param_list)
</code></pre>
<p>&#xE22;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;</p>
<pre><code>class Tourist {
  String name;
  String address;

  //Default Constructor
  Tourist(name) {
    this.name = name;
    }
  
  //Named Constructor
  Tourist.touristAddress(name, address) {
    this.name = name;
    this.address = address;
    print(&apos;I am ${this.name} and I come from ${this.address}&apos;);
  }
}
</code></pre>
<p>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE16;&#xE36;&#xE07;&#xE40;&#xE27;&#xE25;&#xE32;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; object 2 &#xE15;&#xE31;&#xE27; &#xE08;&#xE32;&#xE01;&#xE04;&#xE25;&#xE32;&#xE2A; Tourist</p>
<pre><code>void main() {
  var tourist = Tourist(&apos;Bonnie&apos;);
  print(tourist.name);
  var touristPresentation = Tourist.touristAddress(&apos;Puppey&apos;, &apos;Estonia&apos;);
}
/* output
Bonnie
I am Puppey and I come from Estonia
*/
</code></pre>
<p>&#xE40;&#xE23;&#xE32;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; object &#xE42;&#xE14;&#xE22;&#xE43;&#xE0A;&#xE49; Constructor &#xE15;&#xE31;&#xE27;&#xE44;&#xE2B;&#xE19;&#xE01;&#xE47;&#xE44;&#xE14;&#xE49; &#xE08;&#xE32;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07; object tourist &#xE43;&#xE0A;&#xE49; default constructor &#xE2A;&#xE48;&#xE27;&#xE19; touristPresentation &#xE43;&#xE0A;&#xE49; named constructor &#xE0B;&#xE36;&#xE48;&#xE07;&#xE40;&#xE27;&#xE25;&#xE32;&#xE43;&#xE0A;&#xE49;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE15;&#xE32;&#xE21; syntax &#xE04;&#xE37;&#xE2D; Tourist.touristAddress(&apos;Puppey&apos;, &apos;Estonia&apos;); &#xE19;&#xE31;&#xE48;&#xE19;&#xE40;&#xE2D;&#xE07;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="classinheritance">Class Inheritance</h2>
<p>&#xE15;&#xE48;&#xE2D;&#xE21;&#xE32; &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE1E;&#xE39;&#xE14;&#xE16;&#xE36;&#xE07;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE37;&#xE1A;&#xE17;&#xE2D;&#xE14;&#xE04;&#xE25;&#xE32;&#xE2A; (Inheritance) &#xE0B;&#xE36;&#xE48;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE04;&#xE38;&#xE13;&#xE2A;&#xE21;&#xE1A;&#xE31;&#xE15;&#xE34;&#xE2B;&#xE19;&#xE36;&#xE48;&#xE07;&#xE02;&#xE2D;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A; &#xE42;&#xE14;&#xE22;&#xE2A;&#xE37;&#xE1A;&#xE17;&#xE2D;&#xE14;&#xE04;&#xE25;&#xE32;&#xE2A;  &#xE08;&#xE32;&#xE01;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE41;&#xE21;&#xE48; (Parrent or Super Class) &#xE44;&#xE1B;&#xE22;&#xE31;&#xE07; &#xE04;&#xE25;&#xE32;&#xE2A;&#xE25;&#xE39;&#xE01; (Child or Sub Class) &#xE17;&#xE33;&#xE43;&#xE2B;&#xE49; &#xE04;&#xE25;&#xE32;&#xE2A;&#xE25;&#xE39;&#xE01;&#xE08;&#xE30;&#xE44;&#xE14;&#xE49; &#xE04;&#xE38;&#xE13;&#xE2A;&#xE21;&#xE1A;&#xE31;&#xE15;&#xE34; (Fields) &#xE41;&#xE25;&#xE30;&#xE40;&#xE21;&#xE18;&#xE2D;&#xE14;&#xE17;&#xE31;&#xE49;&#xE07;&#xE2B;&#xE21;&#xE14;&#xE08;&#xE32;&#xE01;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE41;&#xE21;&#xE48;&#xE21;&#xE32;&#xE14;&#xE49;&#xE27;&#xE22;</p>
<p>&#xE01;&#xE32;&#xE23; inherit &#xE08;&#xE30;&#xE43;&#xE0A;&#xE49; extends &#xE40;&#xE1B;&#xE47;&#xE19; keyword &#xE0B;&#xE36;&#xE48;&#xE07;&#xE21;&#xE35; syntax &#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<pre><code>class child_class_name extends parent_class_name
</code></pre>
<p>&#xE22;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;</p>
<pre><code>class Alcohol {
  Alcohol() {
    print(&apos;Cheers!!&apos;);
  }
}

class Beer extends Alcohol {}

void main() {
  var pileOfBeer = Beer();
}

/*
Cheers!!
*/
</code></pre>
<p>&#xE01;&#xE32;&#xE23;&#xE2A;&#xE37;&#xE1A;&#xE17;&#xE2D;&#xE14;&#xE04;&#xE25;&#xE32;&#xE2A; &#xE1B;&#xE01;&#xE15;&#xE34;&#xE43;&#xE19;&#xE20;&#xE32;&#xE29;&#xE32;&#xE42;&#xE1B;&#xE23;&#xE41;&#xE01;&#xE23;&#xE21;&#xE41;&#xE1A;&#xE1A; Imperative &#xE1B;&#xE23;&#xE30;&#xE40;&#xE20;&#xE17; OOP &#xE08;&#xE30;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE37;&#xE1A;&#xE17;&#xE2D;&#xE14;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE43;&#xE19; 3 &#xE25;&#xE31;&#xE01;&#xE29;&#xE13;&#xE30; &#xE44;&#xE14;&#xE49;&#xE41;&#xE01;&#xE48;<br>
-Single &#xE04;&#xE37;&#xE2D; &#xE2A;&#xE37;&#xE1A;&#xE17;&#xE2D;&#xE14;&#xE21;&#xE32;&#xE08;&#xE32;&#xE01;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE41;&#xE21;&#xE48;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;<br>
-Multiple &#xE04;&#xE37;&#xE2D; &#xE2A;&#xE37;&#xE1A;&#xE17;&#xE2D;&#xE14;&#xE21;&#xE32;&#xE08;&#xE32;&#xE01;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE41;&#xE21;&#xE48;&#xE2B;&#xE25;&#xE32;&#xE22;&#xE04;&#xE25;&#xE32;&#xE2A;<br>
-Multi-level &#xE04;&#xE37;&#xE2D; &#xE2A;&#xE37;&#xE1A;&#xE17;&#xE2D;&#xE14;&#xE21;&#xE32;&#xE08;&#xE32;&#xE01;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE25;&#xE39;&#xE01;&#xE2D;&#xE31;&#xE19;&#xE2D;&#xE37;&#xE48;&#xE19;</p>
<p>Dart &#xE44;&#xE21;&#xE48;&#xE2A;&#xE19;&#xE31;&#xE1A;&#xE2A;&#xE19;&#xE38;&#xE19;&#xE41;&#xE1A;&#xE1A; Multiple</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="classinheritanceandmethodoverriding">Class Inheritance and Method Overriding</h3>
<p>&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49;&#xE04;&#xE38;&#xE13;&#xE2A;&#xE21;&#xE1A;&#xE31;&#xE15;&#xE34;&#xE2B;&#xE19;&#xE36;&#xE48;&#xE07;&#xE08;&#xE32;&#xE01;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE37;&#xE1A;&#xE17;&#xE2D;&#xE14;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE04;&#xE37;&#xE2D; &#xE01;&#xE32;&#xE23;&#xE40;&#xE2D;&#xE32; Method &#xE02;&#xE2D;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE41;&#xE21;&#xE48;&#xE21;&#xE32;&#xE14;&#xE31;&#xE14;&#xE41;&#xE1B;&#xE25;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE02;&#xE2D;&#xE07;&#xE15;&#xE31;&#xE27;&#xE40;&#xE2D;&#xE07; &#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE27;&#xE48;&#xE32; Method Overriding &#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE43;&#xE0A;&#xE49;&#xE44;&#xE14;&#xE49;&#xE1C;&#xE48;&#xE32;&#xE19; keyword @override</p>
<p>&#xE22;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE40;&#xE0A;&#xE48;&#xE19;</p>
<pre><code>void main() { 
   Child c = new Child(); 
   c.m1(12); 
} 
class Parent { 
   void m1(int a){ print(&quot;value of a ${a}&quot;);} 
}  
class Child extends Parent { 
   @override 
   void m1(int b) { 
      print(&quot;value of b ${b}&quot;); 
   } 
}

/*
value of b 12
*/
</code></pre>
<p>&#xE08;&#xE32;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07; &#xE40;&#xE23;&#xE32;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE25;&#xE39;&#xE01;&#xE2A;&#xE37;&#xE1A;&#xE17;&#xE2D;&#xE14;&#xE08;&#xE32;&#xE01;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE41;&#xE21;&#xE48; &#xE43;&#xE19;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE41;&#xE21;&#xE48;&#xE21;&#xE35; method m1 &#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE2D;&#xE32;&#xE21;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19; method &#xE02;&#xE2D;&#xE07;&#xE25;&#xE39;&#xE01;&#xE41;&#xE25;&#xE49;&#xE27; &#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE14;&#xE31;&#xE14;&#xE41;&#xE1B;&#xE25;&#xE07;&#xE44;&#xE14;&#xE49; &#xE43;&#xE2A;&#xE48; @override &#xE02;&#xE49;&#xE32;&#xE07;&#xE1A;&#xE19; &#xE01;&#xE48;&#xE2D;&#xE19;&#xE17;&#xE33;&#xE01;&#xE32;&#xE23;&#xE41;&#xE1B;&#xE25;&#xE07;<br>
&#xE02;&#xE49;&#xE2D;&#xE08;&#xE33;&#xE01;&#xE31;&#xE14;&#xE04;&#xE37;&#xE2D;<br>
1.data type &#xE02;&#xE2D;&#xE07; method &#xE08;&#xE30;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE01;&#xE31;&#xE19; &#xE17;&#xE31;&#xE49;&#xE07;&#xE02;&#xE2D;&#xE07;&#xE41;&#xE21;&#xE48;&#xE02;&#xE2D;&#xE07;&#xE25;&#xE39;&#xE01;<br>
2.&#xE08;&#xE33;&#xE19;&#xE27;&#xE13;&#xE1E;&#xE32;&#xE23;&#xE32;&#xE21;&#xE34;&#xE40;&#xE15;&#xE2D;&#xE23;&#xE4C;&#xE43;&#xE19; method &#xE08;&#xE30;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE01;&#xE31;&#xE19; &#xE17;&#xE31;&#xE49;&#xE07;&#xE02;&#xE2D;&#xE07;&#xE41;&#xE21;&#xE48;&#xE02;&#xE2D;&#xE07;&#xE25;&#xE39;&#xE01;<br>
3.data type &#xE02;&#xE2D;&#xE07;&#xE1E;&#xE32;&#xE23;&#xE32;&#xE21;&#xE34;&#xE40;&#xE15;&#xE2D;&#xE23;&#xE4C;&#xE43;&#xE19; method &#xE08;&#xE30;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE01;&#xE31;&#xE19; &#xE17;&#xE31;&#xE49;&#xE07;&#xE02;&#xE2D;&#xE07;&#xE41;&#xE21;&#xE48;&#xE02;&#xE2D;&#xE07;&#xE25;&#xE39;&#xE01;</p>
<p>&#xE43;&#xE19;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07; m1 &#xE02;&#xE2D;&#xE07;&#xE41;&#xE21;&#xE48; &#xE40;&#xE1B;&#xE47;&#xE19; void &#xE21;&#xE35;&#xE1E;&#xE32;&#xE23;&#xE32;&#xE21;&#xE34;&#xE40;&#xE15;&#xE2D;&#xE23;&#xE4C; 1 &#xE15;&#xE31;&#xE27; &#xE40;&#xE1B;&#xE47;&#xE19; int &#xE0B;&#xE36;&#xE48;&#xE07;&#xE02;&#xE2D;&#xE07;&#xE25;&#xE39;&#xE01;&#xE01;&#xE47;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19; void &#xE41;&#xE25;&#xE30;&#xE23;&#xE31;&#xE1A;&#xE04;&#xE48;&#xE32;&#xE1E;&#xE32;&#xE23;&#xE32;&#xE21;&#xE34;&#xE40;&#xE15;&#xE2D;&#xE23;&#xE4C; 1 &#xE15;&#xE31;&#xE27; &#xE40;&#xE1B;&#xE47;&#xE19; int &#xE40;&#xE0A;&#xE48;&#xE19;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;&#xE01;&#xE31;&#xE19;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE22;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE01;&#xE23;&#xE13;&#xE35;&#xE17;&#xE35;&#xE48; data type &#xE02;&#xE2D;&#xE07;&#xE1E;&#xE32;&#xE23;&#xE32;&#xE21;&#xE34;&#xE40;&#xE15;&#xE2D;&#xE23;&#xE4C;&#xE43;&#xE19; method &#xE41;&#xE21;&#xE48;&#xE25;&#xE39;&#xE01;&#xE15;&#xE48;&#xE32;&#xE07;&#xE01;&#xE31;&#xE19;</p>
<pre><code>void main() { 
   Child c = new Child(); 
   c.m1(12); 
} 
class Parent { 
   void m1(int a){ print(&quot;value of a ${a}&quot;);} 
} 
class Child extends Parent { 
   @override 
   void m1(String b) { 
      print(&quot;value of b ${b}&quot;);
   }
}
/*
Error: The parameter &apos;b&apos; of the method &apos;Child.m1&apos; has type &apos;String&apos;, which does not match the corresponding type, &apos;int&apos;, in the overridden method, &apos;Parent.m1&apos;.
Change to a supertype of &apos;int&apos;, or, for a covariant parameter, a subtype.
*/
</code></pre>
<p>&#xE16;&#xE49;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE01;&#xE23;&#xE13;&#xE35;&#xE08;&#xE33;&#xE19;&#xE27;&#xE13;&#xE1E;&#xE32;&#xE23;&#xE32;&#xE21;&#xE34;&#xE40;&#xE15;&#xE2D;&#xE23;&#xE4C;&#xE44;&#xE21;&#xE48;&#xE40;&#xE17;&#xE48;&#xE32;&#xE01;&#xE31;&#xE19; &#xE08;&#xE30; throw error &#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;</p>
<pre><code>void main() { 
   Child c = new Child(); 
   c.m1(12); 
} 
class Parent { 
   void m1(int a){ print(&quot;value of a ${a}&quot;);} 
} 
class Child extends Parent { 
   @override 
   void m1(String b, int d) { 
      print(&quot;value of b ${b} and ${d}&quot;);
   } 
}
/*
Unhandled exception:
Class &apos;Child&apos; has no instance method &apos;m1&apos; with matching arguments.
NoSuchMethodError: incorrect number of arguments passed to method named &apos;m1&apos;
*/
</code></pre>
<p>&#xE43;&#xE19;&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE19;&#xE35;&#xE49; &#xE1A;&#xE2D;&#xE01;&#xE23;&#xE32;&#xE22;&#xE25;&#xE30;&#xE40;&#xE2D;&#xE35;&#xE22;&#xE14;&#xE1E;&#xE37;&#xE49;&#xE19;&#xE10;&#xE32;&#xE19;&#xE02;&#xE2D;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A; &#xE43;&#xE19;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE17;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19; Constructor &#xE41;&#xE25;&#xE30; Inheritance &#xE40;&#xE19;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE08;&#xE32;&#xE01;&#xE21;&#xE35;&#xE23;&#xE32;&#xE22;&#xE25;&#xE30;&#xE40;&#xE2D;&#xE35;&#xE22;&#xE14;&#xE17;&#xE35;&#xE48;&#xE08;&#xE33;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE17;&#xE33;&#xE04;&#xE27;&#xE32;&#xE21;&#xE40;&#xE02;&#xE49;&#xE32;&#xE43;&#xE08;&#xE41;&#xE25;&#xE30;&#xE22;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE21;&#xE32;&#xE1B;&#xE23;&#xE30;&#xE01;&#xE2D;&#xE1A;&#xE08;&#xE33;&#xE19;&#xE27;&#xE13;&#xE21;&#xE32;&#xE01; &#xE40;&#xE25;&#xE22;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19;&#xE21;&#xE32;&#xE0B;&#xE30;&#xE22;&#xE37;&#xE14;&#xE22;&#xE32;&#xE27;&#xE40;&#xE25;&#xE22; &#xE08;&#xE36;&#xE07;&#xE02;&#xE2D;&#xE22;&#xE01;&#xE04;&#xE38;&#xE13;&#xE2A;&#xE21;&#xE1A;&#xE31;&#xE15;&#xE34;&#xE2D;&#xE37;&#xE48;&#xE19;&#xE02;&#xE2D;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE40;&#xE0A;&#xE48;&#xE19; Static Keyword, Super Keyword &#xE41;&#xE25;&#xE30;&#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE2D;&#xE37;&#xE48;&#xE19;&#xE46; &#xE17;&#xE31;&#xE49;&#xE07; Library &#xE2B;&#xE23;&#xE37;&#xE2D; Package , Typedefs &#xE44;&#xE1B;&#xE08;&#xE19;&#xE16;&#xE36;&#xE07; generic &#xE44;&#xE1B;&#xE22;&#xE31;&#xE07;&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE2B;&#xE19;&#xE49;&#xE32; &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE44;&#xE21;&#xE48;&#xE43;&#xE2B;&#xE49;&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE21;&#xE31;&#xE19;&#xE22;&#xE37;&#xE14;&#xE40;&#xE01;&#xE34;&#xE19;&#xE44;&#xE1B;&#xE04;&#xE23;&#xE31;&#xE1A;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>Reference</p>
<p><a href="https://www.tutorialspoint.com/dart_programming/dart_programming_classes.htm">https://www.tutorialspoint.com/dart_programming/dart_programming_classes.htm</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[จดบันทึกการใช้งาน Markdown ฉบับรวบรัด]]></title><description><![CDATA[จด syntax ของ Markdown ที่ใช้เขียนบทความบ่อยๆ]]></description><link>https://toupawa.com/normal-syntax-of-markdown/</link><guid isPermaLink="false">6011dda374fb582548a51b70</guid><category><![CDATA[Markdown]]></category><category><![CDATA[language]]></category><dc:creator><![CDATA[TPW]]></dc:creator><pubDate>Wed, 27 Jan 2021 22:31:29 GMT</pubDate><media:content url="https://toupawa.com/content/images/2021/01/markdown-logo-black-and-white.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://toupawa.com/content/images/2021/01/markdown-logo-black-and-white.jpg" alt="&#xE08;&#xE14;&#xE1A;&#xE31;&#xE19;&#xE17;&#xE36;&#xE01;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19; Markdown &#xE09;&#xE1A;&#xE31;&#xE1A;&#xE23;&#xE27;&#xE1A;&#xE23;&#xE31;&#xE14;"><p>&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE19;&#xE35;&#xE49;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE01;&#xE32;&#xE23;&#xE1A;&#xE31;&#xE19;&#xE17;&#xE36;&#xE01;&#xE04;&#xE27;&#xE32;&#xE21;&#xE23;&#xE39;&#xE49;&#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49; Makdown &#xE43;&#xE19;&#xE01;&#xE32;&#xE23;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19;&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE25;&#xE07;&#xE43;&#xE19;&#xE40;&#xE27;&#xE47;&#xE1A; &#xE42;&#xE14;&#xE22;&#xE2A;&#xE23;&#xE38;&#xE1B;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE2B;&#xE31;&#xE27;&#xE02;&#xE49;&#xE2D;&#xE22;&#xE48;&#xE2D;&#xE22;&#xE46; &#xE40;&#xE19;&#xE49;&#xE19;&#xE17;&#xE35;&#xE48;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19;&#xE1A;&#xE48;&#xE2D;&#xE22;&#xE46; &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE2A;&#xE30;&#xE14;&#xE27;&#xE01;&#xE43;&#xE19;&#xE01;&#xE32;&#xE23;&#xE08;&#xE14;&#xE08;&#xE33;&#xE41;&#xE25;&#xE30;&#xE19;&#xE33;&#xE44;&#xE1B;&#xE43;&#xE0A;&#xE49; &#xE14;&#xE31;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19;&#xE02;&#xE2D;&#xE2A;&#xE23;&#xE38;&#xE1B;&#xE02;&#xE49;&#xE2D;&#xE1B;&#xE25;&#xE35;&#xE01;&#xE22;&#xE48;&#xE2D;&#xE22;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE14;&#xE31;&#xE07;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id>&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE2B;&#xE31;&#xE27;&#xE02;&#xE49;&#xE2D;</h2>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code># H1 Header
## H2 Header
### H3 Header
#### H4 Header
##### H5 Header
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="sourcecode">Source Code</h2>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE43;&#xE0A;&#xE49; ` &#xE04;&#xE23;&#xE2D;&#xE1A;&#xE2B;&#xE31;&#xE27;-&#xE17;&#xE49;&#xE32;&#xE22; &#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE42;&#xE04;&#xE49;&#xE14;&#xE1A;&#xE23;&#xE23;&#xE17;&#xE31;&#xE14;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;<br>
&#xE43;&#xE0A;&#xE49; ``` &#xE04;&#xE23;&#xE2D;&#xE1A;&#xE2B;&#xE31;&#xE27;-&#xE17;&#xE49;&#xE32;&#xE22; &#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE42;&#xE04;&#xE49;&#xE14;&#xE2B;&#xE25;&#xE32;&#xE22;&#xE46;&#xE1A;&#xE23;&#xE23;&#xE17;&#xE31;&#xE14;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>` Inline code `



```Multi-line code```
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21; comment &#xE44;&#xE14;&#xE49;&#xE14;&#xE49;&#xE27;&#xE22;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>```comment
Multi-line code with comment ```
</code></pre>
<p>&#xE22;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;</p>
<pre><code>```Javascript
console.log(&#x2018;Hello World&#x2019;); ```
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="link">&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; Link</h2>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE2A;&#xE21;&#xE21;&#xE15;&#xE34;&#xE27;&#xE48;&#xE32; &#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE1D;&#xE31;&#xE07;&#xE25;&#xE34;&#xE07;&#xE04;&#xE4C;&#xE44;&#xE1B;&#xE17;&#xE35;&#xE48;&#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21;&#xE15;&#xE23;&#xE07; &#x201C; description of link&#x201D; &#xE43;&#xE2B;&#xE49;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19; syntax &#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>Text for description of link [description of link](http://&#x2026;...)

&#xE08;&#xE30;&#xE21;&#xE35;&#xE04;&#xE48;&#xE32;&#xE40;&#xE17;&#xE48;&#xE32;&#xE01;&#xE31;&#xE1A; syntax &#xE02;&#xE2D;&#xE07; HTML &#xE14;&#xE31;&#xE07;&#xE19;&#xE35;&#xE49;

Text for &lt;a href=&#x2019;http://&#x2026;&#x2026;.&#x2019;&gt;description of link&lt;/a&gt;
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="anameanchoraanchor"><a name="anchor"></a> Anchor</h2>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>Anchor &#xE04;&#xE37;&#xE2D; &#xE25;&#xE34;&#xE07;&#xE04;&#xE4C;&#xE17;&#xE35;&#xE48;&#xE43;&#xE0A;&#xE49;&#xE40;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE21;&#xE42;&#xE22;&#xE07;&#xE40;&#xE02;&#xE49;&#xE32;&#xE01;&#xE31;&#xE1A;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21;&#xE43;&#xE14;&#xE46;&#xE17;&#xE35;&#xE48;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE1A;&#xE19;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE40;&#xE27;&#xE47;&#xE1A;<br>
&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49; Anchor &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; link &#xE40;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE21;&#xE42;&#xE22;&#xE07;&#xE44;&#xE1B;&#xE2B;&#xE32;&#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21;&#xE17;&#xE35;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>At URL http://yourwebsite.com

...

### &lt;a name=&quot;title-text&quot;&gt;&lt;/a&gt;Title Text

...

And then later, I want to go to [title](#title-text), you create a link, just like any other.

&#xE08;&#xE30;&#xE44;&#xE14;&#xE49; Link &lt;http://yourwebsite.com#title-text&gt; &#xE2B;&#xE19;&#xE49;&#xE32;&#xE2B;&#xE31;&#xE27;&#xE02;&#xE49;&#xE2D; Title Text &#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE40;&#xE2D;&#xE32;&#xE25;&#xE34;&#xE07;&#xE04;&#xE4C;&#xE44;&#xE1B;&#xE41;&#xE1B;&#xE30;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE2D;&#xE37;&#xE48;&#xE19;&#xE46;&#xE02;&#xE2D;&#xE07;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE40;&#xE27;&#xE47;&#xE1A; &#xE40;&#xE0A;&#xE48;&#xE19; [title](#title-text)
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE17;&#xE14;&#xE2A;&#xE2D;&#xE1A;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE42;&#xE14;&#xE22;</p>
<p>&#xE01;&#xE14; <a href="#anchor">&#xE15;&#xE23;&#xE07;&#xE19;&#xE35;&#xE49;</a> &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE44;&#xE1B;&#xE22;&#xE31;&#xE07;&#xE2B;&#xE31;&#xE27;&#xE02;&#xE49;&#xE2D; anchor</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="images">Images</h2>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE01;&#xE32;&#xE23;&#xE41;&#xE19;&#xE1A;&#xE23;&#xE39;&#xE1B;&#xE20;&#xE32;&#xE1E;&#xE43;&#xE19; Markdown &#xE01;&#xE47;&#xE17;&#xE33;&#xE44;&#xE14;&#xE49;&#xE40;&#xE0A;&#xE48;&#xE19;&#xE01;&#xE31;&#xE19;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>&#xE41;&#xE1A;&#xE1A;&#xE44;&#xE21;&#xE48;&#xE21;&#xE35; link

![Image Alt](/path/to/image.jpg)

&#xE16;&#xE49;&#xE32;&#xE41;&#xE19;&#xE1A; link &#xE02;&#xE2D;&#xE07;&#xE23;&#xE39;&#xE1B;&#xE14;&#xE49;&#xE27;&#xE22;

[![Image Alt](/path/to/image.jpg)](http://........)
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="escape">Escape</h2>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE01;&#xE32;&#xE23;&#xE22;&#xE01;&#xE40;&#xE27;&#xE49;&#xE19;&#xE01;&#xE32;&#xE23;&#xE41;&#xE2A;&#xE14;&#xE07;&#xE1C;&#xE25;&#xE02;&#xE2D;&#xE07;&#xE2A;&#xE31;&#xE0D;&#xE25;&#xE31;&#xE01;&#xE29;&#xE13;&#xE4C;&#xE43;&#xE19; Markdown &#xE14;&#xE49;&#xE27;&#xE22;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49; <code>\</code></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>\*Just a simple text\*

&#xE08;&#xE30;&#xE44;&#xE14;&#xE49;

*Just a simple text*
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE19;&#xE2D;&#xE01;&#xE08;&#xE32;&#xE01; \ &#xE22;&#xE31;&#xE07;&#xE21;&#xE35;&#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE2B;&#xE21;&#xE32;&#xE22;&#xE2D;&#xE37;&#xE48;&#xE19;&#xE46;&#xE2D;&#xE35;&#xE01;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE17;&#xE33;&#xE44;&#xE14;&#xE49; <a href="https://www.markdownguide.org/basic-syntax/#characters-you-can-escape">&#xE14;&#xE39;&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21;&#xE40;&#xE15;&#xE34;&#xE21;</a></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="tables">Tables</h2>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE15;&#xE32;&#xE23;&#xE32;&#xE07;&#xE44;&#xE14;&#xE49; &#xE42;&#xE14;&#xE22;&#xE43;&#xE0A;&#xE49; <code>|</code> column &#xE41;&#xE25;&#xE30;&#xE43;&#xE0A;&#xE49; <code>---</code> &#xE04;&#xE31;&#xE48;&#xE19;&#xE23;&#xE30;&#xE2B;&#xE27;&#xE48;&#xE32;&#xE07; Header &#xE01;&#xE31;&#xE1A; Content &#xE41;&#xE25;&#xE30;&#xE43;&#xE0A;&#xE49; <code>:</code> &#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE1B;&#xE23;&#xE31;&#xE1A; Align</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>&#xE43;&#xE0A;&#xE49; | &#xE1B;&#xE34;&#xE14;&#xE2B;&#xE31;&#xE27;-&#xE17;&#xE49;&#xE32;&#xE22;&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE44;&#xE21;&#xE48;&#xE01;&#xE47;&#xE44;&#xE14;&#xE49;

&#xE41;&#xE1A;&#xE1A;&#xE40;&#xE1B;&#xE34;&#xE14;

First Header  | Second Header
------------- | -------------
Content Cell  | Content Cell
Content Cell  | Content Cell 

&#xE41;&#xE1A;&#xE1A;&#xE1B;&#xE34;&#xE14;

| First Header  | Second Header |
| ------------- | ------------- |
| Content Cell  | Content Cell  |
| Content Cell  | Content Cell  |

&#xE16;&#xE49;&#xE32;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE1B;&#xE23;&#xE31;&#xE1A; Align

| Left-Aligned  | Center Aligned  | Right Aligned |
| :------------ |:---------------:| -----:|
| col 3 is      | some wordy text | $1600 |
| col 2 is      | centered        |   $12 |
| zebra stripes | are neat        |    $1 |
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="tableofcontents">Table of Contents</h2>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; List &#xE41;&#xE2A;&#xE14;&#xE07;&#xE2B;&#xE31;&#xE27;&#xE02;&#xE49;&#xE2D;&#xE23;&#xE32;&#xE22;&#xE01;&#xE32;&#xE23;&#xE1A;&#xE19;&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE40;&#xE23;&#xE32;&#xE44;&#xE14;&#xE49; &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE2D;&#xE33;&#xE19;&#xE27;&#xE22;&#xE04;&#xE27;&#xE32;&#xE21;&#xE2A;&#xE30;&#xE14;&#xE27;&#xE01;&#xE43;&#xE2B;&#xE49;&#xE01;&#xE31;&#xE1A;&#xE1C;&#xE39;&#xE49;&#xE2D;&#xE48;&#xE32;&#xE19;&#xE44;&#xE14;&#xE49;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE2B;&#xE31;&#xE27;&#xE02;&#xE49;&#xE2D;&#xE2D;&#xE48;&#xE32;&#xE19; &#xE42;&#xE14;&#xE22;&#xE44;&#xE21;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07; scroll mouse &#xE25;&#xE07;&#xE21;&#xE32; &#xE21;&#xE35; 2 &#xE41;&#xE1A;&#xE1A; &#xE04;&#xE37;&#xE2D;</p>
<p><strong>&#xE41;&#xE1A;&#xE1A; Drop down</strong></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>[TOCM]
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE41;&#xE1A;&#xE1A; List &#xE41;&#xE2A;&#xE14;&#xE07;&#xE2B;&#xE31;&#xE27;&#xE02;&#xE49;&#xE2D;&#xE2B;&#xE25;&#xE31;&#xE01; &#xE2B;&#xE31;&#xE27;&#xE02;&#xE49;&#xE2D;&#xE22;&#xE48;&#xE2D;&#xE22; &#xE40;&#xE23;&#xE35;&#xE22;&#xE07;&#xE15;&#xE32;&#xE21;&#xE25;&#xE33;&#xE14;&#xE31;&#xE1A;&#xE40;&#xE19;&#xE37;&#xE49;&#xE2D;&#xE2B;&#xE32;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>[TOC]
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE17;&#xE31;&#xE49;&#xE07;&#xE2B;&#xE21;&#xE14;&#xE19;&#xE35;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE1E;&#xE35;&#xE22;&#xE07;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE2B;&#xE19;&#xE36;&#xE48;&#xE07;&#xE17;&#xE35;&#xE48;&#xE43;&#xE0A;&#xE49;&#xE1A;&#xE48;&#xE2D;&#xE22;&#xE46;&#xE43;&#xE19;&#xE07;&#xE32;&#xE19;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19;&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE02;&#xE2D;&#xE07;&#xE1C;&#xE21;&#xE40;&#xE17;&#xE48;&#xE32;&#xE19;&#xE31;&#xE49;&#xE19; &#xE0B;&#xE36;&#xE48;&#xE07; Markdown &#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE21;&#xE37;&#xE2D;&#xE17;&#xE35;&#xE48;&#xE40;&#xE2B;&#xE21;&#xE32;&#xE30;&#xE2A;&#xE21;&#xE01;&#xE31;&#xE1A;&#xE07;&#xE32;&#xE19;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19;&#xE21;&#xE32;&#xE01; &#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE44;&#xE21;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE1E;&#xE30;&#xE27;&#xE07;&#xE01;&#xE31;&#xE1A;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49; tag &#xE41;&#xE25;&#xE30; Attribute &#xE15;&#xE48;&#xE32;&#xE07;&#xE46;&#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19; HTML &#xE40;&#xE1E;&#xE35;&#xE22;&#xE07;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE42;&#xE1B;&#xE23;&#xE41;&#xE01;&#xE23;&#xE21;&#xE40;&#xE2D;&#xE01;&#xE2A;&#xE32;&#xE23;&#xE17;&#xE31;&#xE48;&#xE27;&#xE44;&#xE1B; &#xE40;&#xE0A;&#xE48;&#xE19; MS-Word &#xE41;&#xE25;&#xE30;&#xE1D;&#xE36;&#xE01;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49; syntax &#xE40;&#xE25;&#xE47;&#xE01;&#xE19;&#xE49;&#xE2D;&#xE22;&#xE01;&#xE47;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE1C;&#xE25;&#xE34;&#xE15;&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE44;&#xE14;&#xE49;&#xE41;&#xE25;&#xE49;&#xE27;&#xE04;&#xE23;&#xE31;&#xE1A;</p>
<p>Ref :</p>
<p><a href="https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#links">https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#links</a></p>
<p><a href="https://www.markdownguide.org/basic-syntax/">https://www.markdownguide.org/basic-syntax/</a></p>
<p><a href="https://pandao.github.io/editor.md/en.html#Editor.md">https://pandao.github.io/editor.md/en.html#Editor.md</a></p>
<p><a href="https://dev.to/stephencweiss/named-anchors-markdown-2hm5">https://dev.to/stephencweiss/named-anchors-markdown-2hm5</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[เรียนรู้ภาษา Dart ตั้งแต่ตั้งไข่จนถึงคลาส (Class)]]></title><description><![CDATA[พื้นฐานภาษา Dart ฉบับมือใหม่หัดเขียน เพื่อนำไปใช้สร้าง Application ด้วย Flutter]]></description><link>https://toupawa.com/learn-dart-from-zero-to-standard/</link><guid isPermaLink="false">600e976174fb582548a517e7</guid><category><![CDATA[Dart]]></category><category><![CDATA[language]]></category><dc:creator><![CDATA[TPW]]></dc:creator><pubDate>Wed, 27 Jan 2021 02:11:00 GMT</pubDate><media:content url="https://toupawa.com/content/images/2021/01/1920px-Dart-logo-wordmark.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://toupawa.com/content/images/2021/01/1920px-Dart-logo-wordmark.jpg" alt="&#xE40;&#xE23;&#xE35;&#xE22;&#xE19;&#xE23;&#xE39;&#xE49;&#xE20;&#xE32;&#xE29;&#xE32; Dart &#xE15;&#xE31;&#xE49;&#xE07;&#xE41;&#xE15;&#xE48;&#xE15;&#xE31;&#xE49;&#xE07;&#xE44;&#xE02;&#xE48;&#xE08;&#xE19;&#xE16;&#xE36;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A; (Class)"><p>&#xE2A;&#xE27;&#xE31;&#xE2A;&#xE14;&#xE35;&#xE04;&#xE23;&#xE31;&#xE1A; &#xE27;&#xE31;&#xE19;&#xE19;&#xE35;&#xE49;&#xE08;&#xE30;&#xE21;&#xE32;&#xE1E;&#xE39;&#xE14;&#xE16;&#xE36;&#xE07;&#xE01;&#xE32;&#xE23;&#xE40;&#xE23;&#xE35;&#xE22;&#xE19;&#xE23;&#xE39;&#xE49;&#xE20;&#xE32;&#xE29;&#xE32;&#xE42;&#xE1B;&#xE23;&#xE41;&#xE01;&#xE23;&#xE21;&#xE21;&#xE34;&#xE48;&#xE07;&#xE2D;&#xE35;&#xE01;&#xE2B;&#xE19;&#xE36;&#xE48;&#xE07;&#xE15;&#xE31;&#xE27;&#xE17;&#xE35;&#xE48;&#xE21;&#xE32;&#xE41;&#xE23;&#xE07;&#xE43;&#xE19;&#xE22;&#xE38;&#xE04;&#xE19;&#xE35;&#xE49; &#xE19;&#xE31;&#xE48;&#xE19;&#xE01;&#xE47;&#xE04;&#xE37;&#xE2D; &#xE20;&#xE32;&#xE29;&#xE32; Dart &#xE19;&#xE31;&#xE48;&#xE19;&#xE40;&#xE2D;&#xE07; &#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE27;&#xE48;&#xE32;&#xE1C;&#xE21;&#xE21;&#xE35;&#xE04;&#xE27;&#xE32;&#xE21;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE40;&#xE23;&#xE35;&#xE22;&#xE19;&#xE23;&#xE39;&#xE49;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE42;&#xE21;&#xE1A;&#xE32;&#xE22;&#xE41;&#xE2D;&#xE1E;&#xE21;&#xE32;&#xE19;&#xE32;&#xE19;&#xE41;&#xE25;&#xE49;&#xE27; &#xE41;&#xE15;&#xE48;&#xE22;&#xE31;&#xE07;&#xE15;&#xE34;&#xE14;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE44;&#xE2B;&#xE23;&#xE48;&#xE14;&#xE35; &#xE08;&#xE19;&#xE27;&#xE31;&#xE19;&#xE40;&#xE27;&#xE25;&#xE32;&#xE1C;&#xE48;&#xE32;&#xE19;&#xE21;&#xE32;&#xE40;&#xE19;&#xE34;&#xE48;&#xE19;&#xE19;&#xE32;&#xE19;&#xE21;&#xE32;&#xE01;&#xE41;&#xE25;&#xE49;&#xE27; (&#xE40;&#xE1B;&#xE47;&#xE19;&#xE19;&#xE34;&#xE2A;&#xE31;&#xE22;&#xE17;&#xE35;&#xE48;&#xE44;&#xE21;&#xE48;&#xE14;&#xE35;&#xE19;&#xE30;&#xE04;&#xE23;&#xE31;&#xE1A; &#xE2D;&#xE22;&#xE48;&#xE32;&#xE17;&#xE33;&#xE15;&#xE32;&#xE21;&#xE40;&#xE0A;&#xE35;&#xE22;&#xE27;) &#xE40;&#xE25;&#xE22;&#xE15;&#xE31;&#xE14;&#xE2A;&#xE34;&#xE19;&#xE43;&#xE08;&#xE02;&#xE2D;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE15;&#xE49;&#xE19;&#xE43;&#xE2B;&#xE49;&#xE44;&#xE14;&#xE49;&#xE0B;&#xE31;&#xE01;&#xE17;&#xE35;&#xE40;&#xE16;&#xE2D;&#xE30; &#xE40;&#xE14;&#xE35;&#xE4B;&#xE22;&#xE27;&#xE41;&#xE01;&#xE48;&#xE44;&#xE1B;&#xE41;&#xE25;&#xE49;&#xE27;&#xE17;&#xE33;&#xE44;&#xE21;&#xE48;&#xE44;&#xE2B;&#xE27;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE25;&#xE2D;&#xE07;&#xE40;&#xE02;&#xE49;&#xE32; Google &#xE14;&#xE39; &#xE01;&#xE47;&#xE1E;&#xE1A;&#xE27;&#xE48;&#xE32; &#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE41;&#xE2D;&#xE1E;&#xE2A;&#xE21;&#xE31;&#xE22;&#xE19;&#xE35;&#xE49; &#xE19;&#xE34;&#xE22;&#xE21;&#xE43;&#xE0A;&#xE49;  hybrid platfrom &#xE2B;&#xE23;&#xE37;&#xE2D; cross platform &#xE21;&#xE32;&#xE01;&#xE02;&#xE36;&#xE49;&#xE19; &#xE41;&#xE25;&#xE30;&#xE19;&#xE48;&#xE32;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE17;&#xE23;&#xE19;&#xE14;&#xE4C;&#xE43;&#xE19;&#xE2D;&#xE19;&#xE32;&#xE04;&#xE15;&#xE44;&#xE1B;&#xE2D;&#xE35;&#xE01;&#xE22;&#xE32;&#xE27;&#xE44;&#xE01;&#xE25;&#xE41;&#xE19;&#xE48;&#xE46; &#xE42;&#xE14;&#xE22;&#xE40;&#xE09;&#xE1E;&#xE32;&#xE30;&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE16;&#xE36;&#xE07;&#xE1B;&#xE35; 2020 &#xE17;&#xE35;&#xE48;&#xE1C;&#xE48;&#xE32;&#xE19;&#xE21;&#xE32;&#xE19;&#xE31;&#xE49;&#xE19; &#xE22;&#xE2D;&#xE14;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19;&#xE40;&#xE1F;&#xE23;&#xE21;&#xE40;&#xE27;&#xE34;&#xE23;&#xE4C;&#xE04;&#xE21;&#xE35;&#xE41;&#xE19;&#xE27;&#xE42;&#xE19;&#xE49;&#xE21;&#xE2A;&#xE39;&#xE07;&#xE02;&#xE36;&#xE49;&#xE19;&#xE0A;&#xE31;&#xE14;&#xE40;&#xE08;&#xE19; &#xE14;&#xE49;&#xE27;&#xE22;&#xE04;&#xE27;&#xE32;&#xE21;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE30;&#xE14;&#xE27;&#xE01;&#xE15;&#xE48;&#xE2D;&#xE01;&#xE32;&#xE23;&#xE1E;&#xE31;&#xE12;&#xE19;&#xE32; &#xE43;&#xE0A;&#xE49;&#xE40;&#xE27;&#xE25;&#xE32;&#xE41;&#xE25;&#xE30;&#xE07;&#xE1A;&#xE1B;&#xE23;&#xE30;&#xE21;&#xE32;&#xE13;&#xE19;&#xE49;&#xE2D;&#xE22; &#xE16;&#xE36;&#xE07;&#xE41;&#xE21;&#xE49;&#xE1B;&#xE23;&#xE30;&#xE2A;&#xE34;&#xE17;&#xE18;&#xE34;&#xE20;&#xE32;&#xE1E;&#xE1A;&#xE32;&#xE07;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE2D;&#xE32;&#xE08;&#xE08;&#xE30;&#xE44;&#xE21;&#xE48;&#xE40;&#xE17;&#xE48;&#xE32; native &#xE41;&#xE15;&#xE48;&#xE43;&#xE0A;&#xE49; IDE &#xE44;&#xE14;&#xE49;&#xE2B;&#xE25;&#xE32;&#xE01;&#xE2B;&#xE25;&#xE32;&#xE22; &#xE41;&#xE16;&#xE21;&#xE04;&#xE2D;&#xE21;&#xE21;&#xE39;&#xE17;&#xE35;&#xE48;&#xE43;&#xE2B;&#xE0D;&#xE48;&#xE21;&#xE32;&#xE01;&#xE02;&#xE36;&#xE49;&#xE19;&#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE22;&#xE46; &#xE08;&#xE36;&#xE07;&#xE44;&#xE21;&#xE48;&#xE19;&#xE48;&#xE32;&#xE41;&#xE1B;&#xE25;&#xE01;&#xE43;&#xE08;&#xE46;&#xE17;&#xE35;&#xE48;&#xE43;&#xE04;&#xE23;&#xE01;&#xE47;&#xE2D;&#xE22;&#xE32;&#xE01;&#xE25;&#xE2D;&#xE07;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19; cross-platform framework &#xE0B;&#xE31;&#xE01;&#xE15;&#xE31;&#xE27;&#xE19;&#xE36;&#xE07;&#xE44;&#xE27;&#xE49;&#xE1B;&#xE23;&#xE30;&#xE14;&#xE31;&#xE1A;&#xE40;&#xE01;&#xE35;&#xE22;&#xE23;&#xE15;&#xE34;&#xE22;&#xE28;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE09;&#xE30;&#xE19;&#xE31;&#xE49;&#xE19;&#xE41;&#xE25;&#xE49;&#xE27; &#xE1C;&#xE21;&#xE08;&#xE36;&#xE07;&#xE02;&#xE2D;&#xE08;&#xE34;&#xE49;&#xE21;&#xE44;&#xE1B;&#xE17;&#xE35;&#xE48; Flutter &#xE25;&#xE30;&#xE01;&#xE31;&#xE19; &#xE40;&#xE2B;&#xE15;&#xE38;&#xE2D;&#xE31;&#xE19;&#xE40;&#xE19;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE21;&#xE32;&#xE08;&#xE32;&#xE01;<a href="https://www.insightssuccess.com/top-5-mobile-app-development-frameworks-2020-2021">&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE19;&#xE35;&#xE49;</a></p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/01/1-9.jpg" class="kg-image" alt="&#xE40;&#xE23;&#xE35;&#xE22;&#xE19;&#xE23;&#xE39;&#xE49;&#xE20;&#xE32;&#xE29;&#xE32; Dart &#xE15;&#xE31;&#xE49;&#xE07;&#xE41;&#xE15;&#xE48;&#xE15;&#xE31;&#xE49;&#xE07;&#xE44;&#xE02;&#xE48;&#xE08;&#xE19;&#xE16;&#xE36;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A; (Class)" loading="lazy" width="900" height="426" srcset="https://toupawa.com/content/images/size/w600/2021/01/1-9.jpg 600w, https://toupawa.com/content/images/2021/01/1-9.jpg 900w" sizes="(min-width: 720px) 720px"><figcaption>https://www.insightssuccess.com/top-5-mobile-app-development-frameworks-2020-2021/</figcaption></figure><!--kg-card-begin: markdown--><p>Flutter &#xE2D;&#xE22;&#xE39;&#xE48;&#xE2D;&#xE31;&#xE19;&#xE14;&#xE31;&#xE1A;&#xE2A;&#xE2D;&#xE07;&#xE02;&#xE2D;&#xE07;&#xE23;&#xE32;&#xE22;&#xE01;&#xE32;&#xE23; &#xE41;&#xE15;&#xE48;&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE14;&#xE39;&#xE40;&#xE1B;&#xE23;&#xE35;&#xE22;&#xE1A;&#xE40;&#xE17;&#xE35;&#xE22;&#xE1A; y-y &#xE08;&#xE30;&#xE40;&#xE2B;&#xE47;&#xE19;&#xE27;&#xE48;&#xE32; &#xE40;&#xE1B;&#xE47;&#xE19;&#xE2D;&#xE31;&#xE19;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;&#xE17;&#xE35;&#xE48;&#xE21;&#xE35;&#xE41;&#xE19;&#xE27;&#xE42;&#xE19;&#xE49;&#xE21;&#xE1E;&#xE38;&#xE48;&#xE07;&#xE17;&#xE30;&#xE22;&#xE32;&#xE19;&#xE2A;&#xE38;&#xE14; &#xE02;&#xE13;&#xE30;&#xE17;&#xE35;&#xE48;&#xE2B;&#xE25;&#xE32;&#xE22;&#xE46;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1C;&#xE48;&#xE27;&#xE25;&#xE07;&#xE44;&#xE1B; &#xE40;&#xE25;&#xE22;&#xE02;&#xE2D;&#xE2D;&#xE19;&#xE38;&#xE0D;&#xE32;&#xE15;&#xE28;&#xE36;&#xE01;&#xE29;&#xE32;&#xE15;&#xE31;&#xE27;&#xE19;&#xE35;&#xE49;&#xE25;&#xE30;&#xE01;&#xE31;&#xE19; (&#xE02;&#xE2D;&#xE2D;&#xE19;&#xE38;&#xE0D;&#xE32;&#xE15;&#xE43;&#xE04;&#xE23;?)</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p><strong>&#xE17;&#xE33;&#xE44;&#xE21;&#xE15;&#xE49;&#xE2D;&#xE07; Dart ?</strong></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE14;&#xE49;&#xE27;&#xE22;&#xE04;&#xE27;&#xE32;&#xE21;&#xE40;&#xE1B;&#xE47;&#xE19; Flutter &#xE21;&#xE31;&#xE19;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE1A;&#xE19;&#xE1E;&#xE37;&#xE49;&#xE19;&#xE10;&#xE32;&#xE19;&#xE02;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49; Dart &#xE43;&#xE19;&#xE01;&#xE32;&#xE23;&#xE1E;&#xE31;&#xE12;&#xE19;&#xE32; &#xE14;&#xE31;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19; &#xE40;&#xE23;&#xE32;&#xE01;&#xE47;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE40;&#xE23;&#xE35;&#xE22;&#xE19;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19;&#xE15;&#xE31;&#xE49;&#xE07;&#xE41;&#xE15;&#xE48;&#xE15;&#xE31;&#xE27;&#xE20;&#xE32;&#xE29;&#xE32;&#xE44;&#xE1B;&#xE01;&#xE48;&#xE2D;&#xE19; &#xE41;&#xE25;&#xE49;&#xE27;&#xE04;&#xE48;&#xE2D;&#xE22;&#xE15;&#xE48;&#xE2D;&#xE22;&#xE2D;&#xE14;&#xE44;&#xE1B;&#xE2A;&#xE39;&#xE48;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE41;&#xE2D;&#xE1E; &#xE14;&#xE31;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19;&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE19;&#xE35;&#xE49;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE1A;&#xE31;&#xE19;&#xE17;&#xE36;&#xE01;&#xE08;&#xE32;&#xE01;&#xE01;&#xE32;&#xE23;&#xE40;&#xE23;&#xE35;&#xE22;&#xE19;&#xE20;&#xE32;&#xE29;&#xE32; Dart &#xE15;&#xE31;&#xE49;&#xE07;&#xE41;&#xE15;&#xE48;&#xE40;&#xE1A;&#xE37;&#xE49;&#xE2D;&#xE07;&#xE15;&#xE49;&#xE19; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE1C;&#xE21;&#xE19;&#xE31;&#xE49;&#xE19;&#xE44;&#xE14;&#xE49;&#xE40;&#xE23;&#xE35;&#xE22;&#xE19;&#xE08;&#xE32;&#xE01;&#xE17;&#xE31;&#xE49;&#xE07;&#xE2A;&#xE37;&#xE48;&#xE2D;&#xE44;&#xE17;&#xE22;&#xE41;&#xE25;&#xE30;&#xE40;&#xE17;&#xE28; &#xE41;&#xE25;&#xE49;&#xE27;&#xE01;&#xE47;&#xE40;&#xE2D;&#xE32;&#xE21;&#xE32;&#xE2A;&#xE23;&#xE38;&#xE1B;&#xE15;&#xE32;&#xE21;&#xE04;&#xE27;&#xE32;&#xE21;&#xE40;&#xE02;&#xE49;&#xE32;&#xE43;&#xE08;&#xE02;&#xE2D;&#xE07;&#xE15;&#xE31;&#xE27;&#xE40;&#xE2D;&#xE07; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE01;&#xE47; &#xE2D;&#xE32;&#xE08;&#xE08;&#xE30;&#xE21;&#xE35;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE1C;&#xE34;&#xE14;&#xE1E;&#xE25;&#xE32;&#xE14;&#xE15;&#xE32;&#xE21;&#xE1B;&#xE01;&#xE15;&#xE34;&#xE27;&#xE34;&#xE2A;&#xE31;&#xE22;&#xE02;&#xE2D;&#xE07;&#xE21;&#xE19;&#xE38;&#xE29;&#xE22;&#xE4C; &#xE22;&#xE31;&#xE07;&#xE44;&#xE07;&#xE01;&#xE47;&#xE02;&#xE2D;&#xE2D;&#xE20;&#xE31;&#xE22;&#xE19;&#xE30;&#xE04;&#xE23;&#xE31;&#xE1A;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE01;&#xE31;&#xE19;&#xE40;&#xE25;&#xE22;&#xE04;&#xE23;&#xE31;&#xE1A; &#xE02;&#xE2D;&#xE02;&#xE49;&#xE32;&#xE21;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE1E;&#xE37;&#xE49;&#xE19;&#xE10;&#xE32;&#xE19;&#xE1A;&#xE32;&#xE07;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE44;&#xE1B;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE08;&#xE30;&#xE44;&#xE14;&#xE49;&#xE44;&#xE1B;&#xE40;&#xE19;&#xE49;&#xE19;&#xE17;&#xE35;&#xE48;&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A;&#xE42;&#xE04;&#xE23;&#xE07;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; (paradigm) &#xE02;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE40;&#xE25;&#xE22;&#xE25;&#xE30;&#xE01;&#xE31;&#xE19;&#xE19;&#xE30;&#xE04;&#xE23;&#xE31;&#xE1A;</p>
<p>&#xE40;&#xE27;&#xE2D;&#xE23;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE35;&#xE22;&#xE19;&#xE23;&#xE39;&#xE49;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19; Dart 2</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE19;&#xE35;&#xE49; &#xE08;&#xE30;&#xE02;&#xE2D;&#xE41;&#xE1A;&#xE48;&#xE07;&#xE01;&#xE32;&#xE23;&#xE40;&#xE23;&#xE35;&#xE22;&#xE19;&#xE23;&#xE39;&#xE49;&#xE02;&#xE2D;&#xE07;&#xE20;&#xE32;&#xE29;&#xE32;&#xE15;&#xE32;&#xE21; syntax &#xE2D;&#xE2D;&#xE01;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE2B;&#xE21;&#xE27;&#xE14;&#xE46; &#xE15;&#xE32;&#xE21;&#xE19;&#xE35;&#xE49;</p>
<ol>
<li>Variables and Operators</li>
<li>Expressions</li>
<li>Decision Making and Looping Constructs</li>
<li>Comments</li>
<li>Functions</li>
<li>Classes</li>
<li>Libraries and Packages</li>
<li>Typedefs</li>
<li>Data structures represented as Collections / Generics</li>
</ol>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="variablesandoperators">Variables and Operators</h2>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE15;&#xE49;&#xE19;&#xE14;&#xE49;&#xE27;&#xE22;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19; main() &#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>main() {
&lt;statements&gt;
}
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE19;&#xE35;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE41;&#xE2A;&#xE14;&#xE07;&#xE1C;&#xE25;&#xE02;&#xE2D;&#xE07;&#xE42;&#xE1B;&#xE23;&#xE41;&#xE01;&#xE23;&#xE21; &#xE43;&#xE19;&#xE17;&#xE38;&#xE01;&#xE46;&#xE01;&#xE32;&#xE23; coding &#xE02;&#xE2D;&#xE07;&#xE20;&#xE32;&#xE29;&#xE32; Dart &#xE40;&#xE23;&#xE32;&#xE43;&#xE0A;&#xE49; main() &#xE43;&#xE19;&#xE01;&#xE32;&#xE23;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE43;&#xE0A;&#xE49;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE43;&#xE14;&#xE46;&#xE01;&#xE47;&#xE15;&#xE32;&#xE21;<br>
&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23; (Variable) &#xE2B;&#xE21;&#xE32;&#xE22;&#xE16;&#xE36;&#xE07; &#xE01;&#xE32;&#xE23;&#xE15;&#xE31;&#xE49;&#xE07;&#xE0A;&#xE37;&#xE48;&#xE2D; space &#xE43;&#xE19;&#xE40;&#xE21;&#xE42;&#xE21;&#xE23;&#xE35;&#xE48;&#xE02;&#xE2D;&#xE07;&#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07; &#xE41;&#xE25;&#xE49;&#xE27;&#xE1A;&#xE23;&#xE23;&#xE08;&#xE38;&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE04;&#xE48;&#xE32; (value) &#xE43;&#xE2B;&#xE49;&#xE21;&#xE31;&#xE19; &#xE0A;&#xE37;&#xE48;&#xE2D;&#xE02;&#xE2D;&#xE07;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE21;&#xE35;&#xE28;&#xE31;&#xE1E;&#xE17;&#xE4C;&#xE40;&#xE17;&#xE04;&#xE19;&#xE34;&#xE04;(&#xE08;&#xE30;&#xE16;&#xE39;&#xE01;&#xE40;&#xE23;&#xE35;&#xE22;&#xE01;)&#xE27;&#xE48;&#xE32; &#x201C;identifier&#x201D;<br>
&#xE01;&#xE0F;&#xE01;&#xE32;&#xE23;&#xE15;&#xE31;&#xE49;&#xE07;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;</p>
<ul>
<li>&#xE2B;&#xE49;&#xE32;&#xE21;&#xE40;&#xE1B;&#xE47;&#xE19; keyword</li>
<li>&#xE1B;&#xE23;&#xE30;&#xE01;&#xE2D;&#xE1A;&#xE14;&#xE49;&#xE27;&#xE22; &#xE1E;&#xE22;&#xE31;&#xE0D;&#xE0A;&#xE19;&#xE30; &#xE2B;&#xE23;&#xE37;&#xE2D; &#xE2A;&#xE23;&#xE30; &#xE2B;&#xE49;&#xE32;&#xE21;&#xE21;&#xE35;&#xE2A;&#xE31;&#xE0D;&#xE25;&#xE31;&#xE01;&#xE29;&#xE13;&#xE4C;&#xE1E;&#xE34;&#xE40;&#xE28;&#xE29; &#xE44;&#xE14;&#xE49;&#xE41;&#xE01;&#xE48; underscore (_) &#xE41;&#xE25;&#xE30; dollar sign ($)</li>
<li>&#xE2B;&#xE49;&#xE32;&#xE21;&#xE02;&#xE36;&#xE49;&#xE19;&#xE15;&#xE49;&#xE19;&#xE14;&#xE49;&#xE27;&#xE22;&#xE15;&#xE31;&#xE27;&#xE40;&#xE25;&#xE02;</li>
<li>&#xE40;&#xE1B;&#xE47;&#xE19; case-sensitive &#xE22;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07; john &#xE08;&#xE30;&#xE44;&#xE21;&#xE48;&#xE40;&#xE17;&#xE48;&#xE32;&#xE01;&#xE31;&#xE1A; John</li>
<li>&#xE2B;&#xE49;&#xE32;&#xE21;&#xE21;&#xE35;&#xE0A;&#xE48;&#xE2D;&#xE07;&#xE27;&#xE48;&#xE32;&#xE07; &#xE40;&#xE0A;&#xE48;&#xE19; &#x201C;John Doe&#x201D;</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="variable">Variable</h3>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE01;&#xE32;&#xE23;&#xE1B;&#xE23;&#xE30;&#xE01;&#xE32;&#xE28;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23; &#xE08;&#xE30;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49; keyword &#xE01;&#xE48;&#xE2D;&#xE19;&#xE40;&#xE2A;&#xE21;&#xE2D; &#xE41;&#xE25;&#xE49;&#xE27;&#xE15;&#xE32;&#xE21;&#xE14;&#xE49;&#xE27;&#xE22;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;</p>
<p>Keyword &#xE40;&#xE1B;&#xE47;&#xE19;&#xE44;&#xE14;&#xE49;&#xE17;&#xE31;&#xE49;&#xE07; Access Modifier (var, final, const) &#xE41;&#xE25;&#xE30; Data Type</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p><strong>Data Type</strong></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>Dart &#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE1B;&#xE23;&#xE30;&#xE01;&#xE32;&#xE28;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE42;&#xE14;&#xE22;&#xE43;&#xE0A;&#xE49; Data Type &#xE14;&#xE31;&#xE07;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th style="text-align:center">Data Type</th>
<th style="text-align:center">Keyword</th>
<th style="text-align:center">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">Numbers</td>
<td style="text-align:center">int, double</td>
<td style="text-align:center">int : &#xE40;&#xE25;&#xE02;&#xE10;&#xE32;&#xE19; 10 &#xE08;&#xE33;&#xE19;&#xE27;&#xE19;&#xE40;&#xE15;&#xE47;&#xE21; / double &#xE40;&#xE25;&#xE02;&#xE10;&#xE32;&#xE19; 10 &#xE15;&#xE34;&#xE14;&#xE17;&#xE28;&#xE19;&#xE34;&#xE22;&#xE21;</td>
</tr>
<tr>
<td style="text-align:center">Strings</td>
<td style="text-align:center">String</td>
<td style="text-align:center">&#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21; &#xE2B;&#xE23;&#xE37;&#xE2D; &#xE2D;&#xE31;&#xE01;&#xE29;&#xE23;</td>
</tr>
<tr>
<td style="text-align:center">Booleans</td>
<td style="text-align:center">bool</td>
<td style="text-align:center">true &#xE2B;&#xE23;&#xE37;&#xE2D; false</td>
</tr>
<tr>
<td style="text-align:center">Lists</td>
<td style="text-align:center">List</td>
<td style="text-align:center">&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE23;&#xE32;&#xE22;&#xE01;&#xE32;&#xE23; Array</td>
</tr>
<tr>
<td style="text-align:center">Maps</td>
<td style="text-align:center">Map</td>
<td style="text-align:center">&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; JSON Object</td>
</tr>
<tr>
<td style="text-align:center">Dynamic</td>
<td style="text-align:center">dynamic</td>
<td style="text-align:center">&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE2D;&#xE30;&#xE44;&#xE23;&#xE01;&#xE47;&#xE44;&#xE14;&#xE49;</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE40;&#xE23;&#xE32;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE1B;&#xE23;&#xE30;&#xE01;&#xE32;&#xE28;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE41;&#xE1A;&#xE1A;&#xE43;&#xE2A;&#xE48; type &#xE01;&#xE48;&#xE2D;&#xE19;&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE44;&#xE21;&#xE48;&#xE43;&#xE2A;&#xE48;&#xE01;&#xE47;&#xE44;&#xE14;&#xE49;</p>
<p><strong>&#xE16;&#xE49;&#xE32;&#xE23;&#xE30;&#xE1A;&#xE38; type</strong> : &#xE43;&#xE0A;&#xE49; Data Type &#xE41;&#xE25;&#xE49;&#xE27;&#xE15;&#xE32;&#xE21;&#xE14;&#xE49;&#xE27;&#xE22;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p><code>data_type  variable_name</code></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE08;&#xE30;&#xE43;&#xE0A;&#xE49; Access Modifier (final, const) &#xE23;&#xE48;&#xE27;&#xE21;&#xE14;&#xE49;&#xE27;&#xE22;&#xE01;&#xE47;&#xE44;&#xE14;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p><code>access_modifier  data_type  variable_name</code></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p><strong>&#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE23;&#xE23;&#xE30;&#xE27;&#xE31;&#xE07;</strong> &#xE16;&#xE49;&#xE32;&#xE1B;&#xE23;&#xE30;&#xE01;&#xE32;&#xE28; <code>var</code> &#xE0B;&#xE49;&#xE2D;&#xE19;&#xE01;&#xE31;&#xE19;&#xE01;&#xE31;&#xE1A; Data Type &#xE08;&#xE30; <strong>error!</strong></p>
<p><strong>&#xE16;&#xE49;&#xE32;&#xE44;&#xE21;&#xE48;&#xE23;&#xE30;&#xE1A;&#xE38; type</strong> : &#xE43;&#xE0A;&#xE49; Access Modifier (var, final, const) &#xE41;&#xE25;&#xE49;&#xE27;&#xE15;&#xE32;&#xE21;&#xE14;&#xE49;&#xE27;&#xE22;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE40;&#xE25;&#xE22; &#xE42;&#xE14;&#xE22; type &#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE44;&#xE1B;&#xE15;&#xE32;&#xE21;&#xE0A;&#xE19;&#xE34;&#xE14;&#xE02;&#xE2D;&#xE07; value &#xE17;&#xE35;&#xE48;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p><code>access_modifier variable_name</code></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>var hero_1 = &#x2018;Abaddon&#x2019;  	//String
var id = 123 		 	//Number
final num_list = [1,2,3]; 	//Lists
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE23;&#xE23;&#xE30;&#xE27;&#xE31;&#xE07; &#xE16;&#xE49;&#xE32;&#xE1B;&#xE23;&#xE30;&#xE01;&#xE32;&#xE28; Access Modifier &#xE0B;&#xE49;&#xE2D;&#xE19;&#xE01;&#xE31;&#xE19;&#xE01;&#xE31;&#xE1A; Data Type &#xE08;&#xE30; error!</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>Note 1 : &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE2A;&#xE31;&#xE07;&#xE40;&#xE01;&#xE15;&#xE27;&#xE48;&#xE32; &#xE15;&#xE31;&#xE27; Access Modifier (var) &#xE01;&#xE31;&#xE1A; Data Type (dynamic) &#xE15;&#xE48;&#xE32;&#xE07;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE43;&#xE0A;&#xE49;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE0A;&#xE19;&#xE34;&#xE14;&#xE44;&#xE2B;&#xE19;&#xE01;&#xE47;&#xE44;&#xE14;&#xE49; &#xE41;&#xE15;&#xE48;&#xE17;&#xE31;&#xE49;&#xE07;&#xE2A;&#xE2D;&#xE07;&#xE21;&#xE35;&#xE02;&#xE49;&#xE2D;&#xE41;&#xE15;&#xE01;&#xE15;&#xE48;&#xE32;&#xE07;&#xE01;&#xE31;&#xE19;&#xE15;&#xE23;&#xE07;&#xE17;&#xE35;&#xE48; dynamic &#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19; type &#xE44;&#xE14;&#xE49;&#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE22;&#xE46; &#xE40;&#xE0A;&#xE48;&#xE19;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>dynamic a = 1; 			// &#xE40;&#xE1B;&#xE47;&#xE19; int
a = true;  			// &#xE15;&#xE2D;&#xE19;&#xE19;&#xE35;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19; bool &#xE25;&#xE30;
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE2A;&#xE48;&#xE27;&#xE19; var &#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE40;&#xE1B;&#xE47;&#xE19; type &#xE2D;&#xE30;&#xE44;&#xE23;&#xE41;&#xE25;&#xE49;&#xE27; &#xE16;&#xE49;&#xE32;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE04;&#xE48;&#xE32; &#xE01;&#xE47;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19; type &#xE40;&#xE14;&#xE34;&#xE21; &#xE40;&#xE0A;&#xE48;&#xE19;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>var b = 2;		// &#xE40;&#xE1B;&#xE47;&#xE19; int
b = 3;			// &#xE22;&#xE31;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19; int &#xE2D;&#xE22;&#xE39;&#xE48;
b = &#x2018;handsome&#x2019;;		// error &#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19; type &#xE08;&#xE32;&#xE01; int &#xE40;&#xE1B;&#xE47;&#xE19; String &#xE44;&#xE21;&#xE48;&#xE44;&#xE14;&#xE49;
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>Note 2 : &#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE17;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19; const &#xE15;&#xE48;&#xE32;&#xE07;&#xE08;&#xE32;&#xE01; final &#xE15;&#xE23;&#xE07;&#xE17;&#xE35;&#xE48; &#xE40;&#xE09;&#xE1E;&#xE32;&#xE30; const &#xE40;&#xE17;&#xE48;&#xE32;&#xE19;&#xE31;&#xE49;&#xE19;&#xE08;&#xE30;&#xE16;&#xE39;&#xE01;&#xE04;&#xE33;&#xE19;&#xE27;&#xE13; &#x201C;compile time constant&#x201D;<br>
compile time constant &#xE40;&#xE1B;&#xE47;&#xE19;&#xE04;&#xE48;&#xE32;&#xE04;&#xE07;&#xE17;&#xE35;&#xE48;&#xE17;&#xE35;&#xE48;&#xE16;&#xE39;&#xE01;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE15;&#xE2D;&#xE19;&#xE04;&#xE2D;&#xE21;&#xE44;&#xE1E;&#xE25;&#xE4C; (compile time) &#xE43;&#xE19; Dart &#xE21;&#xE35;&#xE41;&#xE04;&#xE48; const &#xE15;&#xE31;&#xE27;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27; &#xE17;&#xE35;&#xE48;&#xE40;&#xE2B;&#xE25;&#xE37;&#xE2D;&#xE08;&#xE30;&#xE16;&#xE39;&#xE01;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE15;&#xE2D;&#xE19;&#xE23;&#xE31;&#xE19; (run time) &#xE17;&#xE31;&#xE49;&#xE07;&#xE2B;&#xE21;&#xE14; &#xE2D;&#xE48;&#xE32;&#xE19;&#xE15;&#xE48;&#xE2D;&#xE44;&#xE14;&#xE49;&#xE17;&#xE35;&#xE48;&#xE42;&#xE1E;&#xE2A;&#xE15;&#xE4C;&#xE02;&#xE2D;&#xE07; <a href="https://www.tamemo.com/post/161/immutable/">Tamemo</a></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="operator">Operator</h3>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE04;&#xE37;&#xE2D;&#xE15;&#xE31;&#xE27;&#xE14;&#xE33;&#xE40;&#xE19;&#xE34;&#xE19;&#xE01;&#xE32;&#xE23;&#xE17;&#xE32;&#xE07;&#xE04;&#xE13;&#xE34;&#xE15;&#xE28;&#xE32;&#xE2A;&#xE15;&#xE23;&#xE4C;&#xE17;&#xE35;&#xE48;&#xE43;&#xE0A;&#xE49;&#xE1B;&#xE23;&#xE30;&#xE40;&#xE21;&#xE34;&#xE19;&#xE1C;&#xE25; (evaluate) &#xE2B;&#xE23;&#xE37;&#xE2D;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE04;&#xE48;&#xE32; (assign) &#xE41;&#xE1A;&#xE48;&#xE07;&#xE2D;&#xE2D;&#xE01;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE01;&#xE25;&#xE38;&#xE48;&#xE21;&#xE15;&#xE32;&#xE21;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19;&#xE44;&#xE14;&#xE49;&#xE14;&#xE31;&#xE07;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h4 id="arithmeticoperators">Arithmetic Operators</h4>
<p>Operator &#xE43;&#xE19; Dart &#xE01;&#xE47;&#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE01;&#xE31;&#xE1A;&#xE20;&#xE32;&#xE29;&#xE32;&#xE2D;&#xE37;&#xE48;&#xE19;&#xE46; &#xE04;&#xE37;&#xE2D;&#xE21;&#xE35; + (&#xE1A;&#xE27;&#xE01;), - (&#xE25;&#xE1A;), * (&#xE04;&#xE39;&#xE13;), / (&#xE2B;&#xE32;&#xE23; type double), ~/ (&#xE2B;&#xE32;&#xE23; type integer), % (modulo: &#xE2B;&#xE32;&#xE40;&#xE28;&#xE29;&#xE08;&#xE32;&#xE01;&#xE2B;&#xE32;&#xE23;) ++ (increment), -- (decrement) &#xE19;&#xE2D;&#xE01;&#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19; &#xE01;&#xE47;&#xE21;&#xE35; -() (Unary minus : &#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE04;&#xE48;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE04;&#xE48;&#xE32;&#xE15;&#xE23;&#xE07;&#xE02;&#xE49;&#xE32;&#xE21; &#xE40;&#xE0A;&#xE48;&#xE19; -(2) =&gt; 2)</p>
<h4 id="equalityandrelationaloperators">Equality and Relational Operators</h4>
<p>&#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE04;&#xE27;&#xE32;&#xE21;&#xE2A;&#xE31;&#xE21;&#xE1E;&#xE31;&#xE19;&#xE18;&#xE4C;&#xE23;&#xE30;&#xE2B;&#xE27;&#xE48;&#xE32;&#xE07;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE2A;&#xE2D;&#xE07;&#xE15;&#xE31;&#xE27; &#xE40;&#xE0A;&#xE47;&#xE04;&#xE04;&#xE48;&#xE32;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23; &#xE17;&#xE33;&#xE43;&#xE2B;&#xE49;&#xE44;&#xE14;&#xE49;&#xE04;&#xE33;&#xE15;&#xE2D;&#xE1A;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19; Boolean (true, false) &#xE44;&#xE14;&#xE49;&#xE41;&#xE01;&#xE48; &gt; (&#xE21;&#xE32;&#xE01;&#xE01;&#xE27;&#xE48;&#xE32;), &lt; (&#xE19;&#xE49;&#xE2D;&#xE22;&#xE01;&#xE27;&#xE48;&#xE32;), =&gt; (&#xE40;&#xE17;&#xE48;&#xE32;&#xE01;&#xE31;&#xE1A;&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE21;&#xE32;&#xE01;&#xE01;&#xE27;&#xE48;&#xE32;), =&lt; (&#xE40;&#xE17;&#xE48;&#xE32;&#xE01;&#xE31;&#xE1A;&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE19;&#xE49;&#xE2D;&#xE22;&#xE01;&#xE27;&#xE48;&#xE32;), == (&#xE40;&#xE17;&#xE48;&#xE32;&#xE01;&#xE31;&#xE1A;), != (&#xE44;&#xE21;&#xE48;&#xE40;&#xE17;&#xE48;&#xE32;&#xE01;&#xE31;&#xE1A;)</p>
<h4 id="typetestoperators">Type test Operators</h4>
<p>&#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49;&#xE40;&#xE0A;&#xE47;&#xE04; type &#xE02;&#xE2D;&#xE07;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23; &#xE15;&#xE2D;&#xE19; runtime &#xE44;&#xE14;&#xE49;&#xE41;&#xE01;&#xE48; is &#xE41;&#xE25;&#xE30; is!</p>
<pre><code>var e;
print(e is int);			// false
print(e is! int);			// true
</code></pre>
<p>&#xE41;&#xE15;&#xE48;&#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A; String &#xE15;&#xE49;&#xE2D;&#xE07;&#xE43;&#xE2A;&#xE48;&#xE04;&#xE48;&#xE32;&#xE01;&#xE48;&#xE2D;&#xE19;&#xE19;&#xE30; (&#xE44;&#xE21;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19; null) &#xE44;&#xE21;&#xE48;&#xE07;&#xE31;&#xE49;&#xE19;&#xE40;&#xE0A;&#xE47;&#xE04; type &#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19; false</p>
<pre><code>String a;
print(a is String);		// false
String b = &apos;aaa&apos;;
print(b is String);		// true
</code></pre>
<h4 id="bitwiseoperators">Bitwise Operators</h4>
<p>&#xE04;&#xE37;&#xE2D; &#xE15;&#xE31;&#xE27;&#xE14;&#xE33;&#xE40;&#xE19;&#xE34;&#xE19;&#xE01;&#xE32;&#xE23;&#xE41;&#xE1A;&#xE1A;&#xE1A;&#xE34;&#xE15; &#xE40;&#xE1B;&#xE47;&#xE19;&#xE15;&#xE31;&#xE27;&#xE14;&#xE33;&#xE40;&#xE19;&#xE34;&#xE19;&#xE01;&#xE32;&#xE23;&#xE17;&#xE35;&#xE48;&#xE43;&#xE0A;&#xE49;&#xE01;&#xE31;&#xE1A;&#xE0A;&#xE19;&#xE34;&#xE14;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;&#xE40;&#xE25;&#xE02;&#xE08;&#xE33;&#xE19;&#xE27;&#xE19;&#xE40;&#xE15;&#xE47;&#xE21; (integer) &#xE40;&#xE17;&#xE48;&#xE32;&#xE19;&#xE31;&#xE49;&#xE19; &#xE42;&#xE14;&#xE22;&#xE08;&#xE30;&#xE41;&#xE1B;&#xE25;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE25;&#xE02;&#xE10;&#xE32;&#xE19; 2 (8-bit) &#xE01;&#xE48;&#xE2D;&#xE19;&#xE14;&#xE33;&#xE40;&#xE19;&#xE34;&#xE19;&#xE01;&#xE32;&#xE23; &#xE2B;&#xE25;&#xE31;&#xE07;&#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19; &#xE08;&#xE30;&#xE41;&#xE1B;&#xE25;&#xE07;&#xE04;&#xE48;&#xE32;&#xE01;&#xE25;&#xE31;&#xE1A;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE10;&#xE32;&#xE19; 10 &#xE01;&#xE25;&#xE31;&#xE1A;&#xE21;&#xE32; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE21;&#xE35;&#xE15;&#xE31;&#xE27;&#xE40;&#xE19;&#xE34;&#xE19;&#xE01;&#xE32;&#xE23;&#xE44;&#xE14;&#xE49;&#xE41;&#xE01;&#xE48;</p>
<p><em>&amp; (AND)</em>	&#xE40;&#xE1B;&#xE47;&#xE19;&#xE01;&#xE32;&#xE23;&#xE2B;&#xE32;&#xE40;&#xE25;&#xE02; 1 &#xE17;&#xE35;&#xE48;&#xE15;&#xE33;&#xE41;&#xE2B;&#xE19;&#xE48;&#xE07;(&#xE1A;&#xE34;&#xE14;)&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;&#xE01;&#xE31;&#xE19; &#xE21;&#xE35;&#xE40;&#xE07;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE02;&#xE14;&#xE31;&#xE07;&#xE19;&#xE35;&#xE49;<br>
&#xE16;&#xE49;&#xE32; 1&amp;1 &#xE40;&#xE1B;&#xE47;&#xE19; 1, &#xE16;&#xE49;&#xE32; 1&amp;0 &#xE40;&#xE1B;&#xE47;&#xE19; 0, &#xE16;&#xE49;&#xE32; 0&amp;1 &#xE40;&#xE1B;&#xE47;&#xE19; 0, &#xE16;&#xE49;&#xE32; 0&amp;0 &#xE40;&#xE1B;&#xE47;&#xE19; 0<br>
&#xE22;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;</p>
<pre><code>5 &amp; 3  &#xE21;&#xE35;&#xE04;&#xE48;&#xE32;&#xE40;&#xE17;&#xE48;&#xE32;&#xE01;&#xE31;&#xE1A; 1  &#xE40;&#xE19;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE08;&#xE32;&#xE01;
5 &#xE41;&#xE1B;&#xE25;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE25;&#xE02;&#xE10;&#xE32;&#xE19;&#xE2A;&#xE2D;&#xE07;&#xE44;&#xE14;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;		0000 0101
3 &#xE41;&#xE1B;&#xE25;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE25;&#xE02;&#xE10;&#xE32;&#xE19;&#xE2A;&#xE2D;&#xE07;&#xE44;&#xE14;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;		0000 0011
&#xE1C;&#xE25;&#xE25;&#xE31;&#xE1E;&#xE18;&#xE4C;&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D; AND &#xE01;&#xE31;&#xE19;&#xE41;&#xE15;&#xE48;&#xE25;&#xE30;&#xE1A;&#xE34;&#xE15; &#xE44;&#xE14;&#xE49;	0000 0001 &#xE21;&#xE35;&#xE04;&#xE48;&#xE32;&#xE40;&#xE17;&#xE48;&#xE32;&#xE01;&#xE31;&#xE1A; 1 (&#xE40;&#xE25;&#xE02;&#xE10;&#xE32;&#xE19;&#xE2A;&#xE34;&#xE1A;)
</code></pre>
<p>| <em>(Or)</em> &#xE40;&#xE1B;&#xE47;&#xE19;&#xE01;&#xE32;&#xE23;&#xE15;&#xE31;&#xE27;&#xE40;&#xE25;&#xE02; 1 &#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE19;&#xE49;&#xE2D;&#xE22; 1 &#xE15;&#xE32;&#xE21;&#xE15;&#xE33;&#xE41;&#xE2B;&#xE19;&#xE48;&#xE07;&#xE40;&#xE02;&#xE49;&#xE32;&#xE14;&#xE49;&#xE27;&#xE22;&#xE01;&#xE31;&#xE19; &#xE21;&#xE35;&#xE40;&#xE07;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE02;&#xE14;&#xE31;&#xE07;&#xE19;&#xE35;&#xE49;<br>
&#xE16;&#xE49;&#xE32; 1|1 &#xE40;&#xE1B;&#xE47;&#xE19; 1, &#xE16;&#xE49;&#xE32; 1|0 &#xE40;&#xE1B;&#xE47;&#xE19; 1, &#xE16;&#xE49;&#xE32; 0|1 &#xE40;&#xE1B;&#xE47;&#xE19; 1, &#xE16;&#xE49;&#xE32; 0|0 &#xE40;&#xE1B;&#xE47;&#xE19; 0<br>
&#xE22;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;</p>
<pre><code>5 | 3  &#xE21;&#xE35;&#xE04;&#xE48;&#xE32;&#xE40;&#xE17;&#xE48;&#xE32;&#xE01;&#xE31;&#xE1A; 7  &#xE40;&#xE19;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE08;&#xE32;&#xE01;
5 &#xE41;&#xE1B;&#xE25;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE25;&#xE02;&#xE10;&#xE32;&#xE19;&#xE2A;&#xE2D;&#xE07;&#xE44;&#xE14;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;		0000 0101
3 &#xE41;&#xE1B;&#xE25;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE25;&#xE02;&#xE10;&#xE32;&#xE19;&#xE2A;&#xE2D;&#xE07;&#xE44;&#xE14;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;		0000 0011
&#xE1C;&#xE25;&#xE25;&#xE31;&#xE1E;&#xE18;&#xE4C;&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D; OR &#xE01;&#xE31;&#xE19;&#xE41;&#xE15;&#xE48;&#xE25;&#xE30;&#xE1A;&#xE34;&#xE15; &#xE44;&#xE14;&#xE49;	0000 0111 &#xE21;&#xE35;&#xE04;&#xE48;&#xE32;&#xE40;&#xE17;&#xE48;&#xE32;&#xE01;&#xE31;&#xE1A; 7 (&#xE40;&#xE25;&#xE02;&#xE10;&#xE32;&#xE19;&#xE2A;&#xE34;&#xE1A;)
</code></pre>
<p><em>^ (XOR)</em> &#xE40;&#xE1B;&#xE47;&#xE19;&#xE01;&#xE32;&#xE23;&#xE15;&#xE31;&#xE27;&#xE40;&#xE25;&#xE02; 0 &#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE19;&#xE49;&#xE2D;&#xE22; 1 &#xE15;&#xE32;&#xE21;&#xE15;&#xE33;&#xE41;&#xE2B;&#xE19;&#xE48;&#xE07;&#xE40;&#xE02;&#xE49;&#xE32;&#xE14;&#xE49;&#xE27;&#xE22;&#xE01;&#xE31;&#xE19; &#xE21;&#xE35;&#xE40;&#xE07;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE02;&#xE14;&#xE31;&#xE07;&#xE19;&#xE35;&#xE49;<br>
&#xE16;&#xE49;&#xE32; 1^1 &#xE40;&#xE1B;&#xE47;&#xE19; 0, &#xE16;&#xE49;&#xE32; 1^0 &#xE40;&#xE1B;&#xE47;&#xE19; 1, &#xE16;&#xE49;&#xE32; 0^1 &#xE40;&#xE1B;&#xE47;&#xE19; 1, &#xE16;&#xE49;&#xE32; 0^0 &#xE40;&#xE1B;&#xE47;&#xE19; 1<br>
&#xE22;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;</p>
<pre><code>5 | 3  &#xE21;&#xE35;&#xE04;&#xE48;&#xE32;&#xE40;&#xE17;&#xE48;&#xE32;&#xE01;&#xE31;&#xE1A; 6  &#xE40;&#xE19;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE08;&#xE32;&#xE01;
5 &#xE41;&#xE1B;&#xE25;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE25;&#xE02;&#xE10;&#xE32;&#xE19;&#xE2A;&#xE2D;&#xE07;&#xE44;&#xE14;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;		0000 0101
3 &#xE41;&#xE1B;&#xE25;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE25;&#xE02;&#xE10;&#xE32;&#xE19;&#xE2A;&#xE2D;&#xE07;&#xE44;&#xE14;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;		0000 0011
&#xE1C;&#xE25;&#xE25;&#xE31;&#xE1E;&#xE18;&#xE4C;&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D; XOR &#xE01;&#xE31;&#xE19;&#xE41;&#xE15;&#xE48;&#xE25;&#xE30;&#xE1A;&#xE34;&#xE15; &#xE44;&#xE14;&#xE49;	0000 0110 &#xE21;&#xE35;&#xE04;&#xE48;&#xE32;&#xE40;&#xE17;&#xE48;&#xE32;&#xE01;&#xE31;&#xE1A; 6 (&#xE40;&#xE25;&#xE02;&#xE10;&#xE32;&#xE19;&#xE2A;&#xE34;&#xE1A;)
</code></pre>
<p><em>~ (NOT)</em> &#xE40;&#xE1B;&#xE47;&#xE19;&#xE01;&#xE32;&#xE23;&#xE01;&#xE25;&#xE31;&#xE1A;&#xE04;&#xE48;&#xE32;&#xE43;&#xE19;&#xE41;&#xE15;&#xE48;&#xE25;&#xE30;&#xE15;&#xE33;&#xE41;&#xE2B;&#xE19;&#xE48;&#xE07; &#xE08;&#xE32;&#xE01; 1 &#xE40;&#xE1B;&#xE47;&#xE19; 0 &#xE41;&#xE25;&#xE30;&#xE08;&#xE32;&#xE01; 0 &#xE40;&#xE1B;&#xE47;&#xE19; 1<br>
&#xE22;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;</p>
<pre><code>~3  &#xE21;&#xE35;&#xE04;&#xE48;&#xE32;&#xE40;&#xE17;&#xE48;&#xE32;&#xE01;&#xE31;&#xE1A; 4294967292  &#xE40;&#xE19;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE08;&#xE32;&#xE01;
3 &#xE41;&#xE1B;&#xE25;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE25;&#xE02;&#xE10;&#xE32;&#xE19;&#xE2A;&#xE2D;&#xE07;&#xE44;&#xE14;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;		0000 0011
3 &#xE08;&#xE30;&#xE16;&#xE39;&#xE01;&#xE01;&#xE25;&#xE31;&#xE1A;&#xE04;&#xE48;&#xE32;&#xE44;&#xE14;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;		1111 1100 &#xE21;&#xE35;&#xE04;&#xE48;&#xE32;&#xE40;&#xE17;&#xE48;&#xE32;&#xE01;&#xE31;&#xE1A; 4294967292 (&#xE40;&#xE25;&#xE02;&#xE10;&#xE32;&#xE19;&#xE2A;&#xE34;&#xE1A;)
</code></pre>
<p><em>&lt;&lt; (Left shift)</em> &#xE2B;&#xE21;&#xE32;&#xE22;&#xE16;&#xE36;&#xE07;&#xE01;&#xE32;&#xE23;&#xE40;&#xE25;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE1A;&#xE34;&#xE15;&#xE44;&#xE1B;&#xE17;&#xE32;&#xE07;&#xE0B;&#xE49;&#xE32;&#xE22;&#xE21;&#xE37;&#xE2D; &#xE40;&#xE0A;&#xE48;&#xE19;</p>
<pre><code>5&lt;&lt;2 &#xE21;&#xE35;&#xE04;&#xE48;&#xE32;&#xE40;&#xE17;&#xE48;&#xE32;&#xE01;&#xE31;&#xE1A; 20 &#xE40;&#xE19;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE08;&#xE32;&#xE01;
5 &#xE41;&#xE1B;&#xE25;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE25;&#xE02;&#xE10;&#xE32;&#xE19;&#xE2A;&#xE2D;&#xE07;&#xE44;&#xE14;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;       				0000 0101
&#xE40;&#xE25;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE1A;&#xE34;&#xE15;&#xE0B;&#xE49;&#xE32;&#xE22;&#xE2A;&#xE38;&#xE14;&#xE02;&#xE2D;&#xE07;&#xE15;&#xE31;&#xE27;&#xE15;&#xE31;&#xE49;&#xE07;&#xE44;&#xE1B;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE08;&#xE33;&#xE19;&#xE27;&#xE19; 2 &#xE1A;&#xE34;&#xE15; &#xE44;&#xE14;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;  		00 | 0001 0100
&#xE1C;&#xE25;&#xE25;&#xE31;&#xE1E;&#xE18;&#xE4C;&#xE02;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE40;&#xE25;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE1A;&#xE34;&#xE15;&#xE17;&#xE32;&#xE07;&#xE02;&#xE27;&#xE32;&#xE02;&#xE2D;&#xE07; 5&lt;&lt;2 &#xE04;&#xE37;&#xE2D; 			0001 0100 &#xE21;&#xE35;&#xE04;&#xE48;&#xE32;&#xE40;&#xE17;&#xE48;&#xE32;&#xE01;&#xE31;&#xE1A; 20
(&#xE04;&#xE34;&#xE14;&#xE07;&#xE48;&#xE32;&#xE22;&#xE46; &#xE04;&#xE37;&#xE2D;&#xE01;&#xE32;&#xE23;&#xE15;&#xE31;&#xE14;&#xE40;&#xE25;&#xE02;&#xE17;&#xE32;&#xE07;&#xE0B;&#xE49;&#xE32;&#xE22;&#xE2A;&#xE38;&#xE14; &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE2D;&#xE32; 0 &#xE21;&#xE32;&#xE15;&#xE48;&#xE2D;&#xE17;&#xE32;&#xE07;&#xE02;&#xE27;&#xE32;&#xE2A;&#xE38;&#xE14;&#xE43;&#xE2B;&#xE49;&#xE04;&#xE23;&#xE1A; 8 bit &#xE19;&#xE31;&#xE48;&#xE19;&#xE41;&#xE2B;&#xE25;&#xE30;)
</code></pre>
<p><em>&gt;&gt; (Right shift)</em> &#xE2B;&#xE21;&#xE32;&#xE22;&#xE16;&#xE36;&#xE07;&#xE01;&#xE32;&#xE23;&#xE40;&#xE25;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE1A;&#xE34;&#xE15;&#xE44;&#xE1B;&#xE17;&#xE32;&#xE07;&#xE02;&#xE27;&#xE32;&#xE21;&#xE37;&#xE2D; &#xE40;&#xE0A;&#xE48;&#xE19;</p>
<pre><code>5&gt;&gt;2 &#xE21;&#xE35;&#xE04;&#xE48;&#xE32;&#xE40;&#xE17;&#xE48;&#xE32;&#xE01;&#xE31;&#xE1A; 1 &#xE40;&#xE19;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE08;&#xE32;&#xE01;
5 &#xE41;&#xE1B;&#xE25;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE25;&#xE02;&#xE10;&#xE32;&#xE19;&#xE2A;&#xE2D;&#xE07;&#xE44;&#xE14;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;       				0000 0101
&#xE40;&#xE25;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE1A;&#xE34;&#xE15;&#xE02;&#xE27;&#xE32;&#xE2A;&#xE38;&#xE14;&#xE02;&#xE2D;&#xE07;&#xE15;&#xE31;&#xE27;&#xE15;&#xE31;&#xE49;&#xE07;&#xE44;&#xE1B;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE08;&#xE33;&#xE19;&#xE27;&#xE19; 2 &#xE1A;&#xE34;&#xE15; &#xE44;&#xE14;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;  		0000 0001 | 01
&#xE1C;&#xE25;&#xE25;&#xE31;&#xE1E;&#xE18;&#xE4C;&#xE02;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE40;&#xE25;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE1A;&#xE34;&#xE15;&#xE17;&#xE32;&#xE07;&#xE02;&#xE27;&#xE32;&#xE02;&#xE2D;&#xE07; 5&gt;&gt;2 &#xE04;&#xE37;&#xE2D; 			0000 0001 &#xE21;&#xE35;&#xE04;&#xE48;&#xE32;&#xE40;&#xE17;&#xE48;&#xE32;&#xE01;&#xE31;&#xE1A; 1
(&#xE04;&#xE37;&#xE2D;&#xE01;&#xE32;&#xE23;&#xE15;&#xE31;&#xE14;&#xE40;&#xE25;&#xE02;&#xE17;&#xE32;&#xE07;&#xE02;&#xE27;&#xE32;&#xE2A;&#xE38;&#xE14; &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE2D;&#xE32; 0 &#xE21;&#xE32;&#xE15;&#xE48;&#xE2D;&#xE17;&#xE32;&#xE07;&#xE0B;&#xE49;&#xE32;&#xE22;&#xE2A;&#xE38;&#xE14;&#xE43;&#xE2B;&#xE49;&#xE04;&#xE23;&#xE1A; 8 bit &#xE19;&#xE31;&#xE48;&#xE19;&#xE41;&#xE2B;&#xE25;&#xE30;)
</code></pre>
<h4 id="assignmentoperators">Assignment Operators</h4>
<p>&#xE40;&#xE1B;&#xE47;&#xE19;&#xE15;&#xE31;&#xE27;&#xE14;&#xE33;&#xE40;&#xE19;&#xE34;&#xE19;&#xE01;&#xE32;&#xE23;&#xE17;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE01;&#xE32;&#xE23;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE04;&#xE48;&#xE32;&#xE43;&#xE2B;&#xE49;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23; &#xE21;&#xE35;&#xE14;&#xE31;&#xE07;&#xE19;&#xE35;&#xE49;</p>
<p><strong>= (Simple Assignment)</strong><br>
&#xE04;&#xE37;&#xE2D;&#xE01;&#xE32;&#xE23;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE04;&#xE48;&#xE32;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE04;&#xE48;&#xE32;&#xE15;&#xE48;&#xE32;&#xE07;&#xE46; &#xE04;&#xE37;&#xE19;&#xE04;&#xE48;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE04;&#xE48;&#xE32;&#xE17;&#xE35;&#xE48;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE43;&#xE2B;&#xE49;</p>
<p><strong>??=</strong>	<br>
&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE04;&#xE48;&#xE32;&#xE43;&#xE2B;&#xE49;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE16;&#xE49;&#xE32;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE19;&#xE31;&#xE49;&#xE19;&#xE40;&#xE1B;&#xE47;&#xE19; null &#xE16;&#xE49;&#xE32;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE19;&#xE31;&#xE49;&#xE19;&#xE44;&#xE21;&#xE48;&#xE43;&#xE0A;&#xE48; null &#xE04;&#xE48;&#xE32;&#xE02;&#xE2D;&#xE07;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE19;&#xE31;&#xE49;&#xE19;&#xE08;&#xE30;&#xE04;&#xE07;&#xE40;&#xE14;&#xE34;&#xE21;</p>
<p><strong>+= (Add and Assignment)</strong><br>
&#xE04;&#xE37;&#xE2D;&#xE01;&#xE32;&#xE23;&#xE1A;&#xE27;&#xE01;&#xE04;&#xE48;&#xE32;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE19;&#xE31;&#xE49;&#xE19;&#xE14;&#xE49;&#xE27;&#xE22;&#xE04;&#xE48;&#xE32;&#xE17;&#xE35;&#xE48;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14; &#xE04;&#xE37;&#xE19;&#xE04;&#xE48;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE17;&#xE35;&#xE48;&#xE1C;&#xE48;&#xE32;&#xE19;&#xE01;&#xE32;&#xE23;&#xE1A;&#xE27;&#xE01;&#xE41;&#xE25;&#xE49;&#xE27;</p>
<p><strong>&#x2500;= (Subtract and Assignment)</strong><br>
&#xE04;&#xE37;&#xE2D;&#xE01;&#xE32;&#xE23;&#xE1A;&#xE27;&#xE01;&#xE04;&#xE48;&#xE32;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE19;&#xE31;&#xE49;&#xE19;&#xE14;&#xE49;&#xE27;&#xE22;&#xE04;&#xE48;&#xE32;&#xE17;&#xE35;&#xE48;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14; &#xE04;&#xE37;&#xE19;&#xE04;&#xE48;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE17;&#xE35;&#xE48;&#xE1C;&#xE48;&#xE32;&#xE19;&#xE01;&#xE32;&#xE23;&#xE25;&#xE1A;&#xE41;&#xE25;&#xE49;&#xE27;</p>
<p>*<strong>= (Multiply and Assignment)</strong><br>
&#xE04;&#xE37;&#xE2D;&#xE01;&#xE32;&#xE23;&#xE1A;&#xE27;&#xE01;&#xE04;&#xE48;&#xE32;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE19;&#xE31;&#xE49;&#xE19;&#xE14;&#xE49;&#xE27;&#xE22;&#xE04;&#xE48;&#xE32;&#xE17;&#xE35;&#xE48;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14; &#xE04;&#xE37;&#xE19;&#xE04;&#xE48;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE17;&#xE35;&#xE48;&#xE1C;&#xE48;&#xE32;&#xE19;&#xE01;&#xE32;&#xE23;&#xE04;&#xE39;&#xE13;&#xE41;&#xE25;&#xE49;&#xE27;</p>
<p><strong>/= (Divide and Assignment)</strong><br>
&#xE04;&#xE37;&#xE2D;&#xE01;&#xE32;&#xE23;&#xE1A;&#xE27;&#xE01;&#xE04;&#xE48;&#xE32;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE19;&#xE31;&#xE49;&#xE19;&#xE14;&#xE49;&#xE27;&#xE22;&#xE04;&#xE48;&#xE32;&#xE17;&#xE35;&#xE48;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14; &#xE04;&#xE37;&#xE19;&#xE04;&#xE48;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE17;&#xE35;&#xE48;&#xE1C;&#xE48;&#xE32;&#xE19;&#xE01;&#xE32;&#xE23;&#xE2B;&#xE32;&#xE23;&#xE41;&#xE25;&#xE49;&#xE27;</p>
<p><strong>Logical Operators</strong></p>
<p>&#xE43;&#xE0A;&#xE49;&#xE23;&#xE27;&#xE21;&#xE40;&#xE07;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE02;&#xE2A;&#xE2D;&#xE07;&#xE40;&#xE07;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE02;&#xE40;&#xE02;&#xE49;&#xE32;&#xE14;&#xE49;&#xE27;&#xE22;&#xE01;&#xE31;&#xE19; &#xE08;&#xE30;&#xE04;&#xE37;&#xE19;&#xE04;&#xE48;&#xE32;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19; boolean &#xE15;&#xE31;&#xE27;&#xE14;&#xE33;&#xE40;&#xE19;&#xE34;&#xE19;&#xE01;&#xE32;&#xE23;&#xE21;&#xE35;&#xE14;&#xE31;&#xE07;&#xE19;&#xE35;&#xE49;<br>
<strong>&amp;&amp; (And)</strong> &#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19; true &#xE16;&#xE49;&#xE32; &#xE17;&#xE31;&#xE49;&#xE07;&#xE2A;&#xE2D;&#xE07;&#xE40;&#xE07;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE02;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE08;&#xE23;&#xE34;&#xE07;<br>
<strong>|| (Or)</strong> &#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19; true &#xE16;&#xE49;&#xE32; &#xE40;&#xE07;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE02;&#xE43;&#xE14;&#xE40;&#xE07;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE02;&#xE2B;&#xE19;&#xE36;&#xE48;&#xE07;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE08;&#xE23;&#xE34;&#xE07;<br>
<strong>! (Not)</strong> &#xE01;&#xE25;&#xE31;&#xE1A;&#xE04;&#xE48;&#xE32; boolean &#xE40;&#xE0A;&#xE48;&#xE19; &#xE08;&#xE32;&#xE01; true &#xE40;&#xE1B;&#xE47;&#xE19; false</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="expressionsandprogrammingconstructs">Expressions and Programming Constructs</h2>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p><strong>Expression</strong></p>
<p>&#xE04;&#xE37;&#xE2D; statement &#xE17;&#xE35;&#xE48;&#xE1B;&#xE23;&#xE30;&#xE40;&#xE21;&#xE34;&#xE19;&#xE1C;&#xE25;&#xE17;&#xE35;&#xE48;&#xE21;&#xE32;&#xE08;&#xE32;&#xE01; Operands &#xE41;&#xE25;&#xE30; Operator &#xE44;&#xE14;&#xE49;&#xE1C;&#xE25;&#xE40;&#xE1B;&#xE47;&#xE19; &#xE04;&#xE48;&#xE32; (value) &#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32; &#xE16;&#xE49;&#xE32;&#xE1E;&#xE34;&#xE21;&#xE1E;&#xE4C; expression &#xE1A;&#xE19; command line interpreter &#xE08;&#xE30;&#xE17;&#xE33;&#xE01;&#xE32;&#xE23;&#xE1B;&#xE23;&#xE30;&#xE40;&#xE21;&#xE34;&#xE19;&#xE1C;&#xE25;&#xE41;&#xE25;&#xE30;&#xE41;&#xE2A;&#xE14;&#xE07;&#xE1C;&#xE25;&#xE25;&#xE31;&#xE1E;&#xE18;&#xE4C;  &#xE40;&#xE0A;&#xE48;&#xE19;</p>
<pre><code>&gt;&gt;&gt; 1 + 2
3
</code></pre>
<p>&#xE43;&#xE19;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07; Operands &#xE04;&#xE37;&#xE2D; 1 &#xE01;&#xE31;&#xE1A; 2 &#xE2A;&#xE48;&#xE27;&#xE19; Operator &#xE04;&#xE37;&#xE2D; +</p>
<p>&#xE41;&#xE21;&#xE49;&#xE27;&#xE48;&#xE32; expression &#xE08;&#xE30;&#xE1B;&#xE23;&#xE30;&#xE01;&#xE2D;&#xE1A;&#xE44;&#xE1B;&#xE14;&#xE49;&#xE27;&#xE22; Operands &#xE41;&#xE25;&#xE30; Operator &#xE41;&#xE15;&#xE48;&#xE44;&#xE21;&#xE48;&#xE08;&#xE33;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE17;&#xE35;&#xE48;&#xE17;&#xE38;&#xE01; expression &#xE15;&#xE49;&#xE2D;&#xE07;&#xE1B;&#xE23;&#xE30;&#xE01;&#xE2D;&#xE1A;&#xE44;&#xE1B;&#xE14;&#xE49;&#xE27;&#xE22; elements &#xE04;&#xE23;&#xE1A;&#xE17;&#xE31;&#xE49;&#xE07;&#xE2A;&#xE2D;&#xE07;  &#xE41;&#xE04;&#xE48; Operands &#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27; &#xE08;&#xE30;&#xE16;&#xE39;&#xE01;&#xE1E;&#xE34;&#xE08;&#xE32;&#xE23;&#xE13;&#xE32;&#xE27;&#xE48;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19; expression &#xE44;&#xE14;&#xE49;&#xE40;&#xE0A;&#xE48;&#xE19;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;&#xE01;&#xE31;&#xE19;  &#xE40;&#xE0A;&#xE48;&#xE19;</p>
<pre><code>&gt;&gt;&gt; 17
17

&gt;&gt;&gt; x
2
</code></pre>
<p>&#xE41;&#xE25;&#xE30;&#xE01;&#xE32;&#xE23;&#xE1B;&#xE23;&#xE30;&#xE40;&#xE21;&#xE34;&#xE19;&#xE1C;&#xE25;&#xE02;&#xE2D;&#xE07; expression &#xE19;&#xE31;&#xE49;&#xE19;&#xE08;&#xE30;&#xE44;&#xE21;&#xE48;&#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE01;&#xE31;&#xE1A;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE31;&#xE48;&#xE07; print &#xE42;&#xE14;&#xE22;&#xE17;&#xE35;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;<br>
&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;</p>
<pre><code>&gt;&gt;&gt; message = &quot; What&#x2019;s up, Doc?&quot;
&gt;&gt;&gt; message
&quot; What&#x2019;s up, Doc?&quot;
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p><strong>Conditional Expressions</strong></p>
<p>Syntax &#xE02;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23;&#xE43;&#xE2A;&#xE48;&#xE40;&#xE07;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE02;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE41;&#xE2A;&#xE14;&#xE07; expression &#xE19;&#xE2D;&#xE01;&#xE08;&#xE32;&#xE01; &#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49; if&#x2026;.else &#xE41;&#xE1A;&#xE1A;&#xE17;&#xE31;&#xE48;&#xE27;&#xE44;&#xE1B;&#xE41;&#xE25;&#xE49;&#xE27; &#xE22;&#xE31;&#xE07;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19;&#xE43;&#xE19;&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A;&#xE15;&#xE48;&#xE32;&#xE07;&#xE46;&#xE14;&#xE31;&#xE07;&#xE15;&#xE48;&#xE2D;&#xE44;&#xE1B;&#xE19;&#xE35;&#xE49;&#xE44;&#xE14;&#xE49;&#xE2D;&#xE35;&#xE01; &#xE40;&#xE0A;&#xE48;&#xE19;</p>
<p><em>condition ? expr1 : expr2</em></p>
<p>&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;</p>
<pre><code>var a = 50;
var b = a&gt;30 ? a+12 : a;
print(b);		// output = 62
</code></pre>
<p><em>expr1 ?? expr2</em></p>
<p>&#xE15;&#xE23;&#xE27;&#xE08;&#xE2A;&#xE2D;&#xE1A;&#xE27;&#xE48;&#xE32; &#xE16;&#xE49;&#xE32; expr1 &#xE44;&#xE21;&#xE48;&#xE43;&#xE0A;&#xE48; null &#xE08;&#xE30;&#xE04;&#xE37;&#xE19;&#xE04;&#xE48;&#xE32;&#xE19;&#xE31;&#xE49;&#xE19;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32; &#xE16;&#xE49;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19; null &#xE08;&#xE30;&#xE04;&#xE37;&#xE19;&#xE04;&#xE48;&#xE32;&#xE08;&#xE32;&#xE01; expr2<br>
&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;</p>
<pre><code>var a;
var b = a ?? 800;
print(b);		// output = 800
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE15;&#xE48;&#xE2D;&#xE21;&#xE32;&#xE08;&#xE30;&#xE1E;&#xE39;&#xE14;&#xE16;&#xE36;&#xE07; syntax &#xE17;&#xE35;&#xE48;&#xE43;&#xE0A;&#xE49;&#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE17;&#xE32;&#xE07;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE15;&#xE31;&#xE14;&#xE2A;&#xE34;&#xE19;&#xE43;&#xE08; &#xE41;&#xE25;&#xE30;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;&#xE27;&#xE19;&#xE0B;&#xE49;&#xE33;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="decisionmaking">Decision Making</h3>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/01/decision.jpg" class="kg-image" alt="&#xE40;&#xE23;&#xE35;&#xE22;&#xE19;&#xE23;&#xE39;&#xE49;&#xE20;&#xE32;&#xE29;&#xE32; Dart &#xE15;&#xE31;&#xE49;&#xE07;&#xE41;&#xE15;&#xE48;&#xE15;&#xE31;&#xE49;&#xE07;&#xE44;&#xE02;&#xE48;&#xE08;&#xE19;&#xE16;&#xE36;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A; (Class)" loading="lazy" width="599" height="406"><figcaption>https://www.tutorialspoint.com/dart_programming/dart_programming_decision_making.htm</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE17;&#xE32;&#xE07;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE43;&#xE19;&#xE01;&#xE32;&#xE23;&#xE15;&#xE31;&#xE14;&#xE2A;&#xE34;&#xE19;&#xE43;&#xE08; &#xE42;&#xE14;&#xE22;&#xE08;&#xE30;&#xE1E;&#xE34;&#xE08;&#xE32;&#xE23;&#xE13;&#xE32;&#xE40;&#xE07;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE02;&#xE01;&#xE48;&#xE2D;&#xE19;&#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE44;&#xE1B;&#xE23;&#xE31;&#xE19;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19;&#xE46;<br>
&#xE43;&#xE19;&#xE20;&#xE32;&#xE29;&#xE32; Dart &#xE40;&#xE2D;&#xE07;&#xE01;&#xE47;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE40;&#xE07;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE02;&#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE01;&#xE31;&#xE1A;&#xE20;&#xE32;&#xE29;&#xE32;&#xE2D;&#xE37;&#xE48;&#xE19;&#xE46; &#xE40;&#xE0A;&#xE48;&#xE19; &#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49; <em>if</em> &#xE41;&#xE1A;&#xE1A;&#xE1B;&#xE01;&#xE15;&#xE34;</p>
<pre><code>if(boolean_expression){ 
   // statement(s) will execute if the Boolean expression is true. 
}
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49; <em>if...else</em> &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE17;&#xE32;&#xE07;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01; 2 &#xE17;&#xE32;&#xE07; &#xE16;&#xE49;&#xE32;&#xE17;&#xE32;&#xE07;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE41;&#xE23;&#xE01;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE17;&#xE47;&#xE08; &#xE16;&#xE36;&#xE07;&#xE08;&#xE30;&#xE23;&#xE31;&#xE19; statement &#xE17;&#xE32;&#xE07;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE2D;&#xE07;</p>
<pre><code>if(boolean_expression){ 
   // statement(s) will execute if the Boolean expression is true. 
} else { 
   // statement(s) will execute if the Boolean expression is false. 
}
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49; <em>if&#x2026;.if else&#x2026;..else</em> &#xE08;&#xE30;&#xE04;&#xE25;&#xE49;&#xE32;&#xE22;&#xE01;&#xE31;&#xE19;&#xE01;&#xE31;&#xE1A;  <em>if...else</em> &#xE41;&#xE15;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE17;&#xE32;&#xE07;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE01;&#xE01;&#xE27;&#xE48;&#xE32; 2 &#xE17;&#xE32;&#xE07; &#xE41;&#xE25;&#xE30;&#xE08;&#xE30;&#xE14;&#xE39;&#xE40;&#xE07;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE02;&#xE40;&#xE23;&#xE35;&#xE22;&#xE07;&#xE25;&#xE33;&#xE14;&#xE31;&#xE1A;&#xE44;&#xE1B;&#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE22;&#xE46;&#xE08;&#xE19;&#xE16;&#xE36;&#xE07;&#xE2D;&#xE31;&#xE19;&#xE17;&#xE35;&#xE48;&#xE16;&#xE39;&#xE01; &#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19;&#xE01;&#xE47;&#xE08;&#xE30;&#xE23;&#xE31;&#xE19;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07; &#xE41;&#xE25;&#xE49;&#xE27;&#xE2D;&#xE2D;&#xE01;&#xE08;&#xE32;&#xE01; decision</p>
<pre><code>if (boolean_expression1) { 
   //statements if the expression1 evaluates to true 
} 
else if (boolean_expression2) { 
   //statements if the expression2 evaluates to true 
} 
else { 
   //statements if both expression1 and expression2 result to false 
}
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p><em>Switch Case</em> &#xE40;&#xE1B;&#xE47;&#xE19; statement &#xE17;&#xE35;&#xE48;&#xE43;&#xE0A;&#xE49;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE17;&#xE32;&#xE07;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE01;&#xE01;&#xE27;&#xE48;&#xE32; 2 &#xE17;&#xE32;&#xE07; &#xE2D;&#xE35;&#xE01;&#xE41;&#xE1A;&#xE1A;&#xE2B;&#xE19;&#xE36;&#xE48;&#xE07; &#xE42;&#xE14;&#xE22;</p>
<ul>
<li>&#xE43;&#xE0A;&#xE49; switch &#xE40;&#xE1B;&#xE47;&#xE19; statement &#xE2B;&#xE25;&#xE31;&#xE01; &#xE15;&#xE32;&#xE21;&#xE14;&#xE49;&#xE27;&#xE22;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE17;&#xE35;&#xE48;&#xE40;&#xE01;&#xE47;&#xE1A;&#xE04;&#xE48;&#xE32; expression &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE02;&#xE49;&#xE32;&#xE2A;&#xE39;&#xE48;&#xE01;&#xE32;&#xE23;&#xE1E;&#xE34;&#xE08;&#xE32;&#xE23;&#xE13;&#xE32;&#xE40;&#xE07;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE02;</li>
<li>&#xE43;&#xE0A;&#xE49; case &#xE40;&#xE1B;&#xE47;&#xE19;&#xE17;&#xE32;&#xE07;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE15;&#xE48;&#xE32;&#xE07;&#xE46; &#xE41;&#xE25;&#xE30;&#xE1E;&#xE34;&#xE08;&#xE32;&#xE23;&#xE13;&#xE32; case &#xE17;&#xE35;&#xE48;&#xE08;&#xE30; match &#xE01;&#xE31;&#xE1A; expression &#xE01;&#xE31;&#xE1A; switch &#xE15;&#xE32;&#xE21;&#xE25;&#xE33;&#xE14;&#xE31;&#xE1A; &#xE08;&#xE32;&#xE01;&#xE1A;&#xE19;&#xE25;&#xE07;&#xE25;&#xE48;&#xE32;&#xE07;</li>
<li>&#xE17;&#xE32;&#xE07;&#xE40;&#xE25;&#xE37;&#xE2D;&#xE01;&#xE2A;&#xE38;&#xE14;&#xE17;&#xE49;&#xE32;&#xE22; &#xE08;&#xE30;&#xE43;&#xE0A;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19; default &#xE41;&#xE17;&#xE19; &#xE42;&#xE14;&#xE22; &#xE44;&#xE21;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE21;&#xE35; expression &#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE01;&#xE31;&#xE1A; case</li>
<li>&#xE16;&#xE49;&#xE32; case &#xE43;&#xE14;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE08;&#xE23;&#xE34;&#xE07; &#xE08;&#xE30;&#xE23;&#xE31;&#xE19;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;&#xE17;&#xE35;&#xE48;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE43;&#xE19; case &#xE19;&#xE31;&#xE49;&#xE19;&#xE46; &#xE41;&#xE25;&#xE30;&#xE2D;&#xE2D;&#xE01;&#xE08;&#xE32;&#xE01; statement &#xE14;&#xE49;&#xE27;&#xE22; break</li>
<li>&#xE16;&#xE49;&#xE32;&#xE44;&#xE21;&#xE48;&#xE43;&#xE0A;&#xE49; break &#xE01;&#xE33;&#xE01;&#xE31;&#xE1A;&#xE15;&#xE48;&#xE2D;&#xE17;&#xE49;&#xE32;&#xE22;&#xE02;&#xE2D;&#xE07;&#xE41;&#xE15;&#xE48;&#xE25;&#xE30; case &#xE42;&#xE1B;&#xE23;&#xE41;&#xE01;&#xE23;&#xE21;&#xE08;&#xE30;&#xE44;&#xE21;&#xE48;&#xE2B;&#xE22;&#xE38;&#xE14;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19; &#xE41;&#xE25;&#xE30;&#xE14;&#xE39; case &#xE15;&#xE48;&#xE2D;&#xE44;&#xE1B;&#xE2D;&#xE35;&#xE01;</li>
</ul>
<pre><code>switch(variable_expression) { 
   case constant_expr1: { 
      // statements; 
   } 
   break; 
  
   case constant_expr2: { 
      //statements; 
   } 
   break; 
      
   default: { 
      //statements;  
   }
   break; 
}
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07; Switch Case</p>
<pre><code>print(&apos;What do you do, guys?&apos;);
String bob = &apos;Rob a bank.&apos;;
print(bob);
  
switch(bob) {
  case &apos;Study English.&apos; : {print(&apos;May you have a good future.&apos;);}
  break;
    
  case &apos;Do nothing.&apos; : {print(&apos;It\&apos;s up to you.&apos;);}
  break;
      
  case &apos;Rob a bank.&apos; : {print(&apos;Please go to jail, Police!!!&apos;);}
  break;
      
  default : {print(&apos;Are you a OK?&apos;);}
  break;
}

/*
 Output
 What do you do, guys?
 Rob a bank.
 Please go to jail, Police!!!
*/
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="loop">&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;&#xE27;&#xE19;&#xE0B;&#xE49;&#xE33; (Loop)</h3>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/01/classification_of_loops.jpg" class="kg-image" alt="&#xE40;&#xE23;&#xE35;&#xE22;&#xE19;&#xE23;&#xE39;&#xE49;&#xE20;&#xE32;&#xE29;&#xE32; Dart &#xE15;&#xE31;&#xE49;&#xE07;&#xE41;&#xE15;&#xE48;&#xE15;&#xE31;&#xE49;&#xE07;&#xE44;&#xE02;&#xE48;&#xE08;&#xE19;&#xE16;&#xE36;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A; (Class)" loading="lazy" width="600" height="324" srcset="https://toupawa.com/content/images/2021/01/classification_of_loops.jpg 600w"><figcaption>https://www.tutorialspoint.com/dart_programming/dart_programming_loops.htm</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE40;&#xE23;&#xE32;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE08;&#xE33;&#xE41;&#xE19;&#xE01;&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;&#xE27;&#xE19;&#xE0B;&#xE49;&#xE33; &#xE44;&#xE14;&#xE49; 2 &#xE1B;&#xE23;&#xE30;&#xE40;&#xE20;&#xE17;&#xE43;&#xE2B;&#xE0D;&#xE48;&#xE46;&#xE04;&#xE37;&#xE2D;</p>
<ol>
<li>&#xE41;&#xE1A;&#xE1A; Definite &#xE40;&#xE1B;&#xE47;&#xE19;&#xE01;&#xE32;&#xE23;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE08;&#xE33;&#xE19;&#xE27;&#xE13;&#xE23;&#xE2D;&#xE1A;&#xE27;&#xE19;&#xE0B;&#xE49;&#xE33; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE43;&#xE0A;&#xE49;&#xE01;&#xE31;&#xE1A;&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A; for</li>
<li>&#xE41;&#xE1A;&#xE1A; Indefinite &#xE44;&#xE21;&#xE48;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE08;&#xE33;&#xE19;&#xE27;&#xE13;&#xE23;&#xE2D;&#xE1A; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE43;&#xE0A;&#xE49;&#xE01;&#xE31;&#xE1A;&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A; while &#xE41;&#xE25;&#xE30; do...while</li>
</ol>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h4 id="for">&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A; for</h4>
<p>&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE43;&#xE0A;&#xE49; syntax &#xE44;&#xE14;&#xE49; 2 &#xE41;&#xE1A;&#xE1A; &#xE04;&#xE37;&#xE2D; &#xE41;&#xE1A;&#xE1A; semicolon (;) &#xE04;&#xE31;&#xE48;&#xE19; &#xE41;&#xE25;&#xE30; &#xE41;&#xE1A;&#xE1A;&#xE17;&#xE35;&#xE48;&#xE43;&#xE0A;&#xE49; in (&#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE20;&#xE32;&#xE29;&#xE32; Python)</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p><em>1. &#xE41;&#xE1A;&#xE1A; semicolon</em></p>
<pre><code>for (initial_count_value; termination-condition; step) { 
   //statements 
}
</code></pre>
<p>initial_count_value &#xE04;&#xE37;&#xE2D; expression &#xE23;&#xE30;&#xE1A;&#xE38;&#xE04;&#xE48;&#xE32;&#xE15;&#xE31;&#xE49;&#xE07;&#xE15;&#xE49;&#xE19; &#xE1A;&#xE2D;&#xE01;&#xE43;&#xE2B;&#xE49;&#xE42;&#xE1B;&#xE23;&#xE41;&#xE01;&#xE23;&#xE21;&#xE23;&#xE38;&#xE49;&#xE27;&#xE48;&#xE32;&#xE08;&#xE30;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE17;&#xE35;&#xE48;&#xE04;&#xE48;&#xE32;&#xE2D;&#xE30;&#xE44;&#xE23;<br>
termination-condition &#xE04;&#xE37;&#xE2D; expression &#xE17;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE08;&#xE38;&#xE14;&#xE2A;&#xE34;&#xE49;&#xE19;&#xE2A;&#xE38;&#xE14; &#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;&#xE27;&#xE19;&#xE0B;&#xE49;&#xE33;&#xE08;&#xE30;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE44;&#xE1B;&#xE08;&#xE19;&#xE01;&#xE27;&#xE48;&#xE32;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE17;&#xE47;&#xE08;<br>
step &#xE04;&#xE37;&#xE2D; expression &#xE17;&#xE35;&#xE48;&#xE1A;&#xE2D;&#xE01;&#xE27;&#xE48;&#xE32;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;&#xE27;&#xE19;&#xE0B;&#xE49;&#xE33;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE08;&#xE1A;&#xE25;&#xE07; 1 &#xE04;&#xE23;&#xE31;&#xE49;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19; &#xE08;&#xE33;&#xE19;&#xE27;&#xE13;&#xE23;&#xE2D;&#xE1A;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE41;&#xE1B;&#xE25;&#xE07;&#xE22;&#xE31;&#xE07;&#xE44;&#xE07;</p>
<p>&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;</p>
<pre><code>var num = 5; 
var factorial = 1; 
   
for( var i = num ; i &gt;= 1; i-- ) { 
   factorial *= i ; 
} 
print(factorial);
</code></pre>
<p>&#xE08;&#xE32;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07; &#xE2B;&#xE21;&#xE32;&#xE22;&#xE04;&#xE27;&#xE32;&#xE21;&#xE27;&#xE48;&#xE32; &#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;&#xE27;&#xE19;&#xE0B;&#xE49;&#xE33;&#xE08;&#xE30;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE17;&#xE35;&#xE48; i = num &#xE44;&#xE1B;&#xE08;&#xE19;&#xE01;&#xE27;&#xE48;&#xE32; (i &gt;= 1) &#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE40;&#xE17;&#xE47;&#xE08; &#xE42;&#xE14;&#xE22;&#xE17;&#xE35;&#xE48; &#xE08;&#xE33;&#xE19;&#xE27;&#xE13;&#xE23;&#xE2D;&#xE1A;&#xE08;&#xE30;&#xE25;&#xE14;&#xE25;&#xE07;&#xE17;&#xE35;&#xE25;&#xE30; 1 (i--)</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p><em>2. &#xE41;&#xE1A;&#xE1A;&#xE17;&#xE35;&#xE48;&#xE43;&#xE0A;&#xE49; in</em></p>
<pre><code>for (variable_name in object){  
   statement or block to execute  
}
</code></pre>
<p>variable_name &#xE41;&#xE17;&#xE19;&#xE16;&#xE36;&#xE07; &#xE2A;&#xE21;&#xE32;&#xE0A;&#xE34;&#xE01;&#xE17;&#xE38;&#xE01;&#xE15;&#xE31;&#xE27;&#xE17;&#xE35;&#xE48;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE43;&#xE19; object &#xE19;&#xE31;&#xE49;&#xE19;</p>
<p>&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;</p>
<pre><code>var obj = [12,13,14]; 
   
for (var prop in obj) { 
   print(prop); 
}			// output is 12 13 14
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h4 id="while">&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A; while</h4>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/01/while_loop.jpg" class="kg-image" alt="&#xE40;&#xE23;&#xE35;&#xE22;&#xE19;&#xE23;&#xE39;&#xE49;&#xE20;&#xE32;&#xE29;&#xE32; Dart &#xE15;&#xE31;&#xE49;&#xE07;&#xE41;&#xE15;&#xE48;&#xE15;&#xE31;&#xE49;&#xE07;&#xE44;&#xE02;&#xE48;&#xE08;&#xE19;&#xE16;&#xE36;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A; (Class)" loading="lazy" width="399" height="525"><figcaption>https://www.tutorialspoint.com/dart_programming/dart_programming_while_loop.htm</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19; &#xE08;&#xE30;&#xE14;&#xE39;&#xE40;&#xE07;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE02;&#xE01;&#xE48;&#xE2D;&#xE19;&#xE41;&#xE25;&#xE49;&#xE27;&#xE04;&#xE48;&#xE2D;&#xE22;&#xE23;&#xE31;&#xE19;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;<br>
&#xE43;&#xE0A;&#xE49; while &#xE40;&#xE1B;&#xE47;&#xE19;&#xE15;&#xE31;&#xE27;&#xE40;&#xE0A;&#xE47;&#xE04;&#xE40;&#xE07;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE02; &#xE41;&#xE25;&#xE49;&#xE27;&#xE04;&#xE48;&#xE2D;&#xE22;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07; &#xE08;&#xE30;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE27;&#xE19;&#xE0B;&#xE49;&#xE33;&#xE44;&#xE1B;&#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE22;&#xE46;&#xE08;&#xE19;&#xE01;&#xE27;&#xE48;&#xE32;&#xE40;&#xE07;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE02;&#xE40;&#xE1B;&#xE47;&#xE19; false</p>
<pre><code>while (expression) {
   Statement(s) to be executed if expression is true  
}
</code></pre>
<p>&#xE22;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;</p>
<pre><code>void main() { 
   var num = 5; 
   var factorial = 1; 
   
   while(num &gt;=1) { 
      factorial = factorial * num; 
      num--; 
   } 
   print(&quot;The factorial  is ${factorial}&quot;); 
} 
</code></pre>
<p>&#xE44;&#xE14;&#xE49;&#xE04;&#xE33;&#xE15;&#xE2D;&#xE1A;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19;</p>
<pre><code>The factorial is 120
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h4 id="dowhile">&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A; do...while</h4>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://toupawa.com/content/images/2021/01/do_while_loop.jpg" class="kg-image" alt="&#xE40;&#xE23;&#xE35;&#xE22;&#xE19;&#xE23;&#xE39;&#xE49;&#xE20;&#xE32;&#xE29;&#xE32; Dart &#xE15;&#xE31;&#xE49;&#xE07;&#xE41;&#xE15;&#xE48;&#xE15;&#xE31;&#xE49;&#xE07;&#xE44;&#xE02;&#xE48;&#xE08;&#xE19;&#xE16;&#xE36;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A; (Class)" loading="lazy" width="387" height="467"><figcaption>https://www.tutorialspoint.com/dart_programming/dart_programming_do_while_loop.htm</figcaption></figure><!--kg-card-begin: markdown--><p>&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19; &#xE08;&#xE30;&#xE23;&#xE31;&#xE19;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;&#xE01;&#xE48;&#xE2D;&#xE19;&#xE41;&#xE25;&#xE49;&#xE27;&#xE04;&#xE48;&#xE2D;&#xE22;&#xE14;&#xE39;&#xE40;&#xE07;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE02;<br>
&#xE43;&#xE0A;&#xE49; do &#xE40;&#xE1B;&#xE47;&#xE19;&#xE15;&#xE31;&#xE27;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07; &#xE41;&#xE25;&#xE49;&#xE27;&#xE43;&#xE0A;&#xE49; while &#xE40;&#xE1B;&#xE47;&#xE19;&#xE15;&#xE31;&#xE27;&#xE40;&#xE0A;&#xE47;&#xE04;&#xE40;&#xE07;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE02; &#xE08;&#xE30;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE27;&#xE19;&#xE0B;&#xE49;&#xE33;&#xE44;&#xE1B;&#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE22;&#xE46;&#xE08;&#xE19;&#xE01;&#xE27;&#xE48;&#xE32;&#xE40;&#xE07;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE02;&#xE40;&#xE1B;&#xE47;&#xE19; false</p>
<pre><code>do {  
   Statement(s) to be executed;  
} while (expression);
</code></pre>
<p>&#xE22;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;</p>
<pre><code>void main() { 
   var n = 10; 
   do { 
      print(n); 
      n--; 
   }
   while(n&gt;=0); 
} 
</code></pre>
<p>&#xE44;&#xE14;&#xE49;&#xE04;&#xE33;&#xE15;&#xE2D;&#xE1A;&#xE40;&#xE1B;&#xE47;&#xE19;</p>
<pre><code>10 
9 
8 
7 
6 
5 
4 
3 
2 
1 
0
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="comment">Comment</h2>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE04;&#xE37;&#xE2D; &#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21;&#xE17;&#xE35;&#xE48;&#xE42;&#xE1B;&#xE23;&#xE41;&#xE01;&#xE23;&#xE21;&#xE44;&#xE21;&#xE48;&#xE2A;&#xE19;&#xE43;&#xE08; (ignored) &#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE27;&#xE25;&#xE32; compile &#xE42;&#xE04;&#xE49;&#xE14; &#xE43;&#xE0A;&#xE49;&#xE2A;&#xE33;&#xE2B;&#xE23;&#xE31;&#xE1A;&#xE2D;&#xE18;&#xE34;&#xE1A;&#xE32;&#xE22; &#xE2B;&#xE23;&#xE37;&#xE2D;&#xE1A;&#xE2D;&#xE01;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE15;&#xE48;&#xE32;&#xE07;&#xE46;&#xE02;&#xE2D;&#xE07;&#xE42;&#xE04;&#xE49;&#xE14;&#xE43;&#xE2B;&#xE49;&#xE1C;&#xE39;&#xE49;&#xE1E;&#xE31;&#xE12;&#xE19;&#xE32;&#xE04;&#xE19;&#xE2D;&#xE37;&#xE48;&#xE19;&#xE46;&#xE40;&#xE02;&#xE49;&#xE32;&#xE43;&#xE08;&#xE44;&#xE14;&#xE49;&#xE07;&#xE48;&#xE32;&#xE22;&#xE02;&#xE36;&#xE49;&#xE19;<br>
&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE43;&#xE0A;&#xE49; // &#xE41;&#xE25;&#xE49;&#xE27;&#xE15;&#xE32;&#xE21;&#xE14;&#xE49;&#xE27;&#xE22;&#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21; &#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE32;&#xE23; comment &#xE1A;&#xE23;&#xE23;&#xE17;&#xE31;&#xE14;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27; &#xE2A;&#xE48;&#xE27;&#xE19;&#xE16;&#xE49;&#xE32;&#xE2B;&#xE25;&#xE32;&#xE22;&#xE1A;&#xE23;&#xE23;&#xE17;&#xE31;&#xE14; &#xE08;&#xE30;&#xE43;&#xE0A;&#xE49; /*.... */<br>
&#xE40;&#xE0A;&#xE48;&#xE19;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>// this is single line comment  
  
/* This is a   
   Multi-line comment  
*/
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="function">Function</h2>
<p>&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE43;&#xE19;&#xE20;&#xE32;&#xE29;&#xE32; Dart &#xE21;&#xE35;&#xE04;&#xE27;&#xE32;&#xE21;&#xE04;&#xE25;&#xE49;&#xE32;&#xE22;&#xE01;&#xE31;&#xE1A; Javascript &#xE04;&#xE48;&#xE2D;&#xE19;&#xE02;&#xE49;&#xE32;&#xE07;&#xE21;&#xE32;&#xE01; &#xE40;&#xE0A;&#xE48;&#xE19;</p>
<h4 id>&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A;&#xE1B;&#xE01;&#xE15;&#xE34;</h4>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>int add (int a, int b) {
  return a + b;
}

void main() {
	print(add(3,5));
}    //&#xE04;&#xE33;&#xE15;&#xE2D;&#xE1A; 8
</code></pre>
<p>&#xE15;&#xE23;&#xE07;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19; add &#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE25;&#xE14;&#xE23;&#xE39;&#xE1B;&#xE25;&#xE07;&#xE40;&#xE2B;&#xE25;&#xE37;&#xE2D;</p>
<pre><code>add (a, b) {
  return a + b;
}
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h4 id="arrowfunction">Arrow Function</h4>
<p>&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A; Arrow Function &#xE01;&#xE47;&#xE17;&#xE33;&#xE44;&#xE14;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>add (a, b) =&gt; a + b;
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="classes">Classes</h2>
<p>&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; class &#xE43;&#xE0A;&#xE49; keyword class &#xE21;&#xE35;&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A;&#xE14;&#xE31;&#xE07;&#xE19;&#xE35;&#xE49;</p>
<pre><code>class class_name {  
   &lt;fields&gt; 
   &lt;getters/setters&gt; 
   &lt;constructors&gt; 
   &lt;functions&gt; 
}
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE22;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A;<br>
&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE44;&#xE1F;&#xE25;&#xE4C; class_public.dart &#xE41;&#xE25;&#xE49;&#xE27;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A; Weapon &#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;</p>
<pre><code>class Weapon {
  // fields
  String name;
  int volume;
  
  // getters/setters
  // getters
  String get weapon_name {
    return name;
  }
  int get weapon_volume {
    return volume;
  }
  // setters
  void set weapon_name(String name) {
    this.name = name;
  }
  void set weapon_volume(int volume) {
    if(volume&lt;=10) {
      print(&apos;Go back home right now!&apos;);
    } else {
      this.volume = volume;
    }
  }
}
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE43;&#xE19;&#xE44;&#xE1F;&#xE25;&#xE4C; main.dart &#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; function main() &#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<pre><code>import &apos;class_public.dart&apos;;

void main() { 
  Weapon set_1 = new Weapon();
  set_1.weapon_name = &apos;Rocket Flare&apos;;
  set_1.weapon_volume = 5;
  print(set_1.weapon_name); 
  print(set_1.weapon_volume); 
}
</code></pre>
<p>&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE01;&#xE14;&#xE23;&#xE31;&#xE19;&#xE08;&#xE30;&#xE44;&#xE14;&#xE49; output &#xE40;&#xE1B;&#xE47;&#xE19;</p>
<pre><code>Go back home right now!
Rocket Flare
null
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE08;&#xE30;&#xE40;&#xE2B;&#xE47;&#xE19;&#xE27;&#xE48;&#xE32; &#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14; <em>getters/setters</em> &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE04;&#xE48;&#xE32;&#xE43;&#xE2B;&#xE49;&#xE01;&#xE31;&#xE1A;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23; &#xE41;&#xE25;&#xE30;&#xE04;&#xE37;&#xE19;&#xE04;&#xE48;&#xE32;&#xE02;&#xE2D;&#xE07;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE17;&#xE35;&#xE48;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE43;&#xE2B;&#xE49;<br>
&#xE43;&#xE19;&#xE2A;&#xE48;&#xE27;&#xE19; main &#xE01;&#xE47;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE04;&#xE48;&#xE32;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE1C;&#xE48;&#xE32;&#xE19; <em>setter</em> &#xE41;&#xE25;&#xE30; statement &#xE43;&#xE19;&#xE19;&#xE31;&#xE49;&#xE19;&#xE08;&#xE30;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE17;&#xE31;&#xE19;&#xE17;&#xE35; &#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE01;&#xE14;&#xE23;&#xE31;&#xE19;&#xE42;&#xE04;&#xE49;&#xE14;&#xE08;&#xE30;&#xE17;&#xE33;&#xE43;&#xE2B;&#xE49;&#xE02;&#xE49;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21;&#xE43;&#xE19;&#xE40;&#xE07;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE02;&#xE16;&#xE39;&#xE01; print &#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32; &#xE2A;&#xE48;&#xE27;&#xE19; <em>weapon_name</em> &#xE01;&#xE31;&#xE1A; <em>weapon_volume</em> &#xE01;&#xE47;&#xE16;&#xE39;&#xE01;&#xE2A;&#xE31;&#xE48;&#xE07; print &#xE15;&#xE32;&#xE21;&#xE1B;&#xE01;&#xE15;&#xE34; &#xE40;&#xE1E;&#xE35;&#xE22;&#xE07;&#xE41;&#xE15;&#xE48;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23; volume &#xE44;&#xE21;&#xE48;&#xE44;&#xE14;&#xE49;&#xE16;&#xE39;&#xE01;&#xE40;&#xE01;&#xE47;&#xE1A;&#xE04;&#xE48;&#xE32;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49;&#xE08;&#xE32;&#xE01; statement &#xE40;&#xE07;&#xE37;&#xE48;&#xE2D;&#xE19;&#xE44;&#xE02;&#xE17;&#xE35;&#xE48;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE20;&#xE32;&#xE22;&#xE43;&#xE19; setter weapon_volume</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE16;&#xE49;&#xE32;&#xE40;&#xE23;&#xE32;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE02;&#xE2D;&#xE07; main &#xE40;&#xE1B;&#xE47;&#xE19;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;&#xE25;&#xE48;&#xE30;</p>
<pre><code>void main() { 
  Weapon set_1 = new Weapon();
  set_1.name = &apos;Rocket Flare&apos;;
  set_1.volume = 5;
  print(set_1.weapon_name); 
  print(set_1.weapon_volume); 
}
</code></pre>
<p>&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE27;&#xE48;&#xE32;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<pre><code>void main() { 
  Weapon set_1 = new Weapon();
  set_1.name = &apos;Rocket Flare&apos;;
  set_1.volume = 5;
  print(set_1.name); 
  print(set_1.volume); 
}
</code></pre>
<p>&#xE08;&#xE30;&#xE44;&#xE14;&#xE49; output &#xE40;&#xE1B;&#xE47;&#xE19;</p>
<pre><code>Rocket Flare
5
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE1E;&#xE1A;&#xE27;&#xE48;&#xE32; &#xE40;&#xE23;&#xE32;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE04;&#xE48;&#xE32;&#xE43;&#xE2B;&#xE49;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE43;&#xE19;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE44;&#xE14;&#xE49;&#xE42;&#xE14;&#xE22;&#xE15;&#xE23;&#xE07; &#xE17;&#xE33;&#xE43;&#xE2B;&#xE49; getters/setters &#xE44;&#xE21;&#xE48;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19; &#xE41;&#xE16;&#xE21;&#xE22;&#xE31;&#xE07;&#xE04;&#xE37;&#xE19;&#xE04;&#xE48;&#xE32;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE04;&#xE48;&#xE32;&#xE17;&#xE35;&#xE48;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE43;&#xE2B;&#xE49;&#xE15;&#xE23;&#xE07;&#xE46;&#xE42;&#xE14;&#xE22;&#xE44;&#xE21;&#xE48;&#xE1C;&#xE48;&#xE32;&#xE19; statement &#xE40;&#xE25;&#xE22; &#xE23;&#xE39;&#xE49;&#xE2A;&#xE36;&#xE01;&#xE27;&#xE48;&#xE32; &#xE04;&#xE25;&#xE32;&#xE2A;&#xE02;&#xE2D;&#xE07;&#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE21;&#xE35;&#xE0A;&#xE48;&#xE2D;&#xE07;&#xE42;&#xE2B;&#xE27;&#xE48;&#xE43;&#xE2B;&#xE49;&#xE04;&#xE19;&#xE20;&#xE32;&#xE22;&#xE19;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE04;&#xE48;&#xE32;&#xE44;&#xE14;&#xE49;&#xE15;&#xE32;&#xE21;&#xE43;&#xE08; &#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;&#xE44;&#xE21;&#xE48;&#xE14;&#xE35;&#xE41;&#xE19;&#xE48; &#xE15;&#xE49;&#xE2D;&#xE07;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE43;&#xE2B;&#xE21;&#xE48; &#xE43;&#xE2B;&#xE49;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE04;&#xE48;&#xE32;&#xE44;&#xE14;&#xE49;&#xE15;&#xE23;&#xE07;&#xE17;&#xE35;&#xE48; setters &#xE40;&#xE17;&#xE48;&#xE32;&#xE19;&#xE31;&#xE49;&#xE19; &#xE41;&#xE25;&#xE30;&#xE44;&#xE14;&#xE49;&#xE04;&#xE37;&#xE19;&#xE04;&#xE48;&#xE32;&#xE1C;&#xE48;&#xE32;&#xE19; getters &#xE40;&#xE17;&#xE48;&#xE32;&#xE19;&#xE31;&#xE49;&#xE19;</p>
<p>&#xE40;&#xE23;&#xE32;&#xE25;&#xE2D;&#xE07;&#xE2B;&#xE32; keyword &#xE17;&#xE35;&#xE48;&#xE43;&#xE0A;&#xE49;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE04;&#xE27;&#xE32;&#xE21;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE15;&#xE31;&#xE27; &#xE01;&#xE47;&#xE1E;&#xE1A;&#xE27;&#xE48;&#xE32; &#xE44;&#xE21;&#xE48;&#xE21;&#xE35;! &#xE17;&#xE33;&#xE44;&#xE21;&#xE2D;&#xE48;&#xE30; &#xE41;&#xE25;&#xE49;&#xE27;&#xE17;&#xE35; Java &#xE22;&#xE31;&#xE07;&#xE21;&#xE35; private &#xE41;&#xE25;&#xE49;&#xE27;&#xE17;&#xE33;&#xE44;&#xE21; Dart &#xE44;&#xE21;&#xE48;&#xE21;&#xE35;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE31;&#xE49;&#xE19;&#xE1A;&#xE49;&#xE32;&#xE07;&#xE2D;&#xE48;&#xE30; &#xE01;&#xE48;&#xE2D;&#xE19;&#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE2B;&#xE31;&#xE27;&#xE23;&#xE49;&#xE2D;&#xE19;&#xE44;&#xE1B;&#xE21;&#xE32;&#xE01;&#xE01;&#xE27;&#xE48;&#xE32;&#xE19;&#xE35;&#xE49; &#xE40;&#xE23;&#xE32;&#xE01;&#xE47;&#xE04;&#xE49;&#xE19;&#xE1E;&#xE1A;&#xE15;&#xE48;&#xE2D;&#xE44;&#xE1B;&#xE2D;&#xE35;&#xE01;&#xE27;&#xE48;&#xE32; &#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE08;&#xE32;&#xE01;&#xE2A;&#xE16;&#xE32;&#xE19;&#xE30; public &#xE43;&#xE2B;&#xE49;&#xE40;&#xE1B;&#xE47;&#xE19; private &#xE19;&#xE31;&#xE49;&#xE19; &#xE44;&#xE21;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE43;&#xE0A;&#xE49;&#xE04;&#xE35;&#xE22;&#xE4C;&#xE43;&#xE14;&#xE46;&#xE17;&#xE31;&#xE49;&#xE07;&#xE2A;&#xE34;&#xE49;&#xE19; &#xE43;&#xE0A;&#xE49;&#xE41;&#xE04;&#xE48; <em>&#x201C;_&#x201D;</em> &#xE01;&#xE47;&#xE1E;&#xE2D; &#xE40;&#xE0A;&#xE48;&#xE19;</p>
<p>&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19; <em>name (public)</em> &#xE40;&#xE1B;&#xE47;&#xE19; <em>_name (private)</em><br>
&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19; <em>volume (public)</em> &#xE40;&#xE1B;&#xE47;&#xE19; <em>_volume (private)</em></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE44;&#xE1F;&#xE25;&#xE4C; class_private.dart &#xE41;&#xE25;&#xE30;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE42;&#xE04;&#xE49;&#xE14;&#xE43;&#xE2B;&#xE21;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;</p>
<pre><code>class Weapon {
  // fields
  String _name;
  int _volume;
  
  // getters/setters
  // getters
  String get weapon_name {
    return _name;
  }
  int get weapon_volume {
    return _volume;
  }
  // setters
  void set weapon_name(String name) {
    this._name = name;
  }
  void set weapon_volume(int volume) {
    if(volume&lt;=10) {
      print(&apos;Go back home right now!&apos;);
    } else {
      this._volume = volume;
    }
  }
}
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE43;&#xE19;&#xE44;&#xE1F;&#xE25;&#xE4C; main.dart &#xE25;&#xE2D;&#xE07;&#xE01;&#xE14;&#xE23;&#xE31;&#xE19;&#xE14;&#xE39;&#xE14;&#xE49;&#xE27;&#xE22;&#xE42;&#xE04;&#xE49;&#xE14;&#xE40;&#xE14;&#xE34;&#xE21;</p>
<pre><code>void main() { 
  Weapon set_1 = new Weapon();
  set_1.name = &apos;Rocket Flare&apos;;
  set_1.volume = 5;
  print(set_1.weapon_name); 
  print(set_1.weapon_volume); 
}
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE08;&#xE30;&#xE44;&#xE14;&#xE49; output &#xE40;&#xE1B;&#xE47;&#xE19;</p>
<pre><code>main.dart:5:9: Error: The setter &apos;name&apos; isn&apos;t defined for the class &apos;Weapon&apos;.
 - &apos;Weapon&apos; is from &apos;class_private.dart&apos;.
Try correcting the name to the name of an existing setter, or defining a setter or field named &apos;name&apos;.
  set_1.name = &apos;Rocket Flare&apos;;
        ^^^^
main.dart:6:9: Error: The setter &apos;volume&apos; isn&apos;t defined for the class &apos;Weapon&apos;.
 - &apos;Weapon&apos; is from &apos;class_private.dart&apos;.
Try correcting the name to the name of an existing setter, or defining a setter or field named &apos;volume&apos;.
  set_1.volume = 5;
        ^^^^^^
exit status 254
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE19;&#xE31;&#xE48;&#xE19;&#xE41;&#xE2A;&#xE14;&#xE07;&#xE27;&#xE48;&#xE32; &#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23; name &#xE01;&#xE31;&#xE1A; volume &#xE44;&#xE21;&#xE48;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE04;&#xE48;&#xE32;&#xE44;&#xE14;&#xE49;&#xE08;&#xE32;&#xE01;&#xE20;&#xE32;&#xE22;&#xE19;&#xE2D;&#xE01;&#xE44;&#xE14;&#xE49;&#xE41;&#xE25;&#xE49;&#xE27; &#xE15;&#xE49;&#xE2D;&#xE07;&#xE43;&#xE0A;&#xE49;&#xE01;&#xE32;&#xE23;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE04;&#xE48;&#xE32;&#xE1C;&#xE48;&#xE32;&#xE19;&#xE17;&#xE32;&#xE07; getters &#xE40;&#xE17;&#xE48;&#xE32;&#xE19;&#xE31;&#xE49;&#xE19;</p>
<p>&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE42;&#xE04;&#xE49;&#xE14;&#xE17;&#xE35;&#xE48; main.dart &#xE40;&#xE1B;&#xE47;&#xE19;</p>
<pre><code>import &apos;class_private.dart&apos;;

void main() {
  Weapon set_1 = new Weapon();
  set_1.weapon_name = &apos;Rocket Flare&apos;;
  set_1.weapon_volume = 5;
  print(set_1.weapon_name); 
  print(set_1.weapon_volume);
}
</code></pre>
<p>&#xE08;&#xE30;&#xE44;&#xE14;&#xE49; output &#xE40;&#xE1B;&#xE47;&#xE19;</p>
<pre><code>Go back home right now!
Rocket Flare
null
</code></pre>
<p>&#xE19;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;&#xE01;&#xE32;&#xE23;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE04;&#xE27;&#xE32;&#xE21;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE15;&#xE31;&#xE27;&#xE02;&#xE2D;&#xE07;&#xE04;&#xE25;&#xE32;&#xE2A;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21;&#xE1B;&#xE25;&#xE2D;&#xE14;&#xE20;&#xE31;&#xE22;&#xE02;&#xE2D;&#xE07;&#xE02;&#xE49;&#xE2D;&#xE21;&#xE39;&#xE25;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE19;&#xE2D;&#xE01;&#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19; &#xE40;&#xE23;&#xE32;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE43;&#xE0A;&#xE49; constructor &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE04;&#xE48;&#xE32;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23; &#xE41;&#xE17;&#xE19; setter &#xE44;&#xE14;&#xE49;&#xE40;&#xE0A;&#xE48;&#xE19;&#xE01;&#xE31;&#xE19;<br>
&#xE44;&#xE1F;&#xE25;&#xE4C; class_constructor.dart</p>
<pre><code>class Weapon {
  // fields
  String _name;
  int _volume;
  
  // getters/setters
  // getters
  String get weapon_name {
    return _name;
  }
  int get weapon_volume {
    return _volume;
  }
  // Constructor
  Weapon(String name, int volume) {
    this._name = name;
    if(volume&lt;=10) {
      print(&apos;Go back home right now!&apos;);
    } else {
      this._volume = volume;
    }
  }
}
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE17;&#xE35;&#xE48;&#xE44;&#xE1F;&#xE25;&#xE4C; main.dart &#xE01;&#xE47;&#xE25;&#xE14;&#xE42;&#xE04;&#xE49;&#xE14;&#xE44;&#xE1B;&#xE40;&#xE2B;&#xE25;&#xE37;&#xE2D;&#xE41;&#xE04;&#xE48;&#xE19;&#xE35;&#xE49;&#xE40;&#xE2D;&#xE07;</p>
<pre><code>import &apos;class_constructor.dart&apos;;

void main() {
  Weapon set_1 = new Weapon(&apos;Rocket&apos;, 5);
  print(set_1.weapon_name); 
  print(set_1.weapon_volume);
}
</code></pre>
<p>&#xE08;&#xE30;&#xE44;&#xE14;&#xE49; output &#xE40;&#xE1B;&#xE47;&#xE19;&#xE41;&#xE1A;&#xE1A;&#xE40;&#xE14;&#xE34;&#xE21;</p>
<pre><code>Go back home right now!
Rocket
null
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE08;&#xE30;&#xE40;&#xE2B;&#xE47;&#xE19;&#xE44;&#xE14;&#xE49;&#xE27;&#xE48;&#xE32; &#xE44;&#xE14;&#xE49;&#xE04;&#xE33;&#xE15;&#xE2D;&#xE1A;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;&#xE01;&#xE31;&#xE19; &#xE41;&#xE15;&#xE48;&#xE25;&#xE14;&#xE1B;&#xE23;&#xE34;&#xE21;&#xE32;&#xE13;&#xE42;&#xE04;&#xE49;&#xE14;&#xE25;&#xE07; &#xE40;&#xE19;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE08;&#xE32;&#xE01;&#xE15;&#xE31;&#xE14; setters &#xE2D;&#xE2D;&#xE01;&#xE41;&#xE25;&#xE49;&#xE27;&#xE43;&#xE0A;&#xE49; constructor &#xE43;&#xE2B;&#xE49;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE04;&#xE48;&#xE32;&#xE41;&#xE17;&#xE19; &#xE41;&#xE25;&#xE49;&#xE27;&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14; object &#xE43;&#xE19; main &#xE01;&#xE47;&#xE40;&#xE1E;&#xE35;&#xE22;&#xE07;&#xE43;&#xE2A;&#xE48; parameter &#xE43;&#xE2B;&#xE49; class &#xE44;&#xE1B;&#xE14;&#xE49;&#xE27;&#xE22;&#xE40;&#xE25;&#xE22; &#xE44;&#xE21;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE40;&#xE1E;&#xE34;&#xE48;&#xE21; statement &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE04;&#xE48;&#xE32;&#xE2D;&#xE35;&#xE01;</p>
<p>&#xE15;&#xE31;&#xE27; constructor &#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE04;&#xE48;&#xE32;&#xE42;&#xE14;&#xE22;&#xE17;&#xE35;&#xE48;&#xE44;&#xE21;&#xE48;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE43;&#xE0A;&#xE49; this &#xE44;&#xE14;&#xE49;</p>
<pre><code>Weapon(String name, int volume) {
    _name = name;
    if(volume&lt;=10) {
      print(&apos;Go back home right now!&apos;);
    } else {
      _volume = volume;
    }
}
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE41;&#xE1B;&#xE25;&#xE07;&#xE44;&#xE14;&#xE49;&#xE2D;&#xE35;&#xE01;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE36;&#xE07; &#xE42;&#xE14;&#xE22; constructor &#xE23;&#xE31;&#xE1A; parameter &#xE40;&#xE02;&#xE49;&#xE32;&#xE21;&#xE32;&#xE41;&#xE25;&#xE49;&#xE27;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE44;&#xE27;&#xE49;&#xE43;&#xE19;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE40;&#xE25;&#xE22;<br>
&#xE08;&#xE32;&#xE01;&#xE19;&#xE31;&#xE49;&#xE19; &#xE41;&#xE1B;&#xE25;&#xE07; if statement &#xE19;&#xE34;&#xE14;&#xE2B;&#xE19;&#xE48;&#xE2D;&#xE22; &#xE08;&#xE30;&#xE44;&#xE14;&#xE49;&#xE04;&#xE33;&#xE15;&#xE2D;&#xE1A;&#xE2D;&#xE2D;&#xE01;&#xE21;&#xE32;&#xE40;&#xE2B;&#xE21;&#xE37;&#xE2D;&#xE19;&#xE40;&#xE14;&#xE34;&#xE21;</p>
<pre><code>Weapon(this._name, this._volume) {
    if(_volume&lt;=10) {
      _volume = null;
      print(&apos;Go back home right now!&apos;);
    } else {
      this._volume;
    }
}
</code></pre>
<p>&#xE43;&#xE19;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE02;&#xE2D;&#xE07; class &#xE40;&#xE2D;&#xE07; &#xE17;&#xE35;&#xE48;&#xE08;&#xE23;&#xE34;&#xE07;&#xE01;&#xE47;&#xE22;&#xE31;&#xE07;&#xE21;&#xE35;&#xE2D;&#xE35;&#xE01;&#xE2B;&#xE25;&#xE32;&#xE22;&#xE46;&#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE40;&#xE23;&#xE35;&#xE22;&#xE19;&#xE23;&#xE39;&#xE49; paradigm &#xE43;&#xE19;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE2D;&#xE37;&#xE48;&#xE19;&#xE46;&#xE02;&#xE2D;&#xE07;&#xE20;&#xE32;&#xE29;&#xE32; &#xE40;&#xE0A;&#xE48;&#xE19; Class Inheritance, Method Override, Static Keyword, Super Keyword &#xE23;&#xE27;&#xE21;&#xE16;&#xE36;&#xE07;&#xE2B;&#xE31;&#xE27;&#xE02;&#xE49;&#xE2D;&#xE2D;&#xE37;&#xE48;&#xE19;&#xE46;&#xE2D;&#xE35;&#xE01;&#xE17;&#xE35;&#xE48;&#xE40;&#xE2B;&#xE25;&#xE37;&#xE2D; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE08;&#xE30;&#xE02;&#xE2D;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE1B;&#xE15;&#xE48;&#xE2D;&#xE43;&#xE19; Part &#xE2B;&#xE19;&#xE49;&#xE32;&#xE04;&#xE23;&#xE31;&#xE1A;</p>
<p>&#xE2D;&#xE49;&#xE32;&#xE07;&#xE2D;&#xE34;&#xE07;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p><a href="https://en.wikipedia.org/wiki/Dart_(programming_language)">https://en.wikipedia.org/wiki/Dart_(programming_language)</a></p>
<p><a href="https://www.tutorialspoint.com/dart_programming/dart_programming_variables.htm">https://www.tutorialspoint.com/dart_programming/dart_programming_variables.htm</a></p>
<p><a href="https://dev.to/centrilliontech/dart-101-dart-l4l">https://dev.to/centrilliontech/dart-101-dart-l4l</a></p>
<p><a href="https://www.woolha.com/tutorials/dart-using-access-modifiers-private-public">https://www.woolha.com/tutorials/dart-using-access-modifiers-private-public</a></p>
<p><a href="https://sites.google.com/site/khasangkhwbkhumporkaermjava/taw-danein-kar-operators/2">https://sites.google.com/site/khasangkhwbkhumporkaermjava/taw-danein-kar-operators/2</a></p>
<p><a href="https://th.wikibooks.org/wiki/%E0%B8%A7%E0%B8%B4%E0%B8%98%E0%B8%B5%E0%B8%84%E0%B8%B4%E0%B8%94%E0%B9%81%E0%B8%9A%E0%B8%9A%E0%B8%99%E0%B8%B1%E0%B8%81%E0%B8%A7%E0%B8%B4%E0%B8%97%E0%B8%A2%E0%B8%B2%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%84%E0%B8%AD%E0%B8%A1%E0%B8%9E%E0%B8%B4%E0%B8%A7%E0%B9%80%E0%B8%95%E0%B8%AD%E0%B8%A3%E0%B9%8C/Variables,_expressions_and_statements">https://th.wikibooks.org/wiki/&#xE27;&#xE34;&#xE18;&#xE35;&#xE04;&#xE34;&#xE14;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE31;&#xE01;&#xE27;&#xE34;&#xE17;&#xE22;&#xE32;&#xE01;&#xE32;&#xE23;&#xE04;&#xE2D;&#xE21;&#xE1E;&#xE34;&#xE27;&#xE40;&#xE15;&#xE2D;&#xE23;&#xE4C;/Variables,_expressions_and_statements</a></p>
<p>Cover</p>
<p><a href="https://commons.wikimedia.org/wiki/Category:Dart_(programming_language)#/media/File:Dart-logo-wordmark.svg">https://commons.wikimedia.org/wiki/Category:Dart_(programming_language)#/media/File:Dart-logo-wordmark.svg</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Node.js ฉบับเริ่มต้น : โครงสร้างภายในโปรแกรม]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE09;&#xE1A;&#xE31;&#xE1A;&#xE19;&#xE35;&#xE49;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE01;&#xE32;&#xE23;&#xE40;&#xE23;&#xE35;&#xE22;&#xE1A;&#xE40;&#xE23;&#xE35;&#xE22;&#xE07;&#xE40;&#xE01;&#xE35;&#xE48;&#xE22;&#xE27;&#xE01;&#xE31;&#xE1A;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49;&#xE1F;&#xE31;&#xE07;</p>]]></description><link>https://toupawa.com/node-js-anatomy/</link><guid isPermaLink="false">60060dbf74fb582548a5171a</guid><category><![CDATA[Node.js]]></category><category><![CDATA[language]]></category><dc:creator><![CDATA[TPW]]></dc:creator><pubDate>Mon, 18 Jan 2021 23:14:02 GMT</pubDate><media:content url="https://toupawa.com/content/images/2021/01/node-js.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://toupawa.com/content/images/2021/01/node-js.jpg" alt="Node.js &#xE09;&#xE1A;&#xE31;&#xE1A;&#xE40;&#xE23;&#xE34;&#xE48;&#xE21;&#xE15;&#xE49;&#xE19; : &#xE42;&#xE04;&#xE23;&#xE07;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE20;&#xE32;&#xE22;&#xE43;&#xE19;&#xE42;&#xE1B;&#xE23;&#xE41;&#xE01;&#xE23;&#xE21;"><p>&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE09;&#xE1A;&#xE31;&#xE1A;&#xE19;&#xE35;&#xE49;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE01;&#xE32;&#xE23;&#xE40;&#xE23;&#xE35;&#xE22;&#xE1A;&#xE40;&#xE23;&#xE35;&#xE22;&#xE07;&#xE40;&#xE01;&#xE35;&#xE48;&#xE22;&#xE27;&#xE01;&#xE31;&#xE1A;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE1E;&#xE37;&#xE49;&#xE19;&#xE10;&#xE32;&#xE19;&#xE15;&#xE48;&#xE32;&#xE07;&#xE46; &#xE43;&#xE19;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19; createServer &#xE0B;&#xE36;&#xE48;&#xE07;&#xE01;&#xE48;&#xE2D;&#xE19;&#xE2D;&#xE37;&#xE48;&#xE19; &#xE02;&#xE2D;&#xE22;&#xE49;&#xE2D;&#xE19;&#xE04;&#xE27;&#xE32;&#xE21;&#xE44;&#xE1B;&#xE22;&#xE31;&#xE07;&#xE43;&#xE08;&#xE04;&#xE27;&#xE32;&#xE21;&#xE2A;&#xE33;&#xE04;&#xE31;&#xE0D;&#xE02;&#xE2D;&#xE07; Node.js &#xE17;&#xE35;&#xE48;&#xE21;&#xE32;&#xE17;&#xE35;&#xE48;&#xE44;&#xE1B; &#xE41;&#xE25;&#xE30;&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A;&#xE43;&#xE19;&#xE01;&#xE23;&#xE30;&#xE1A;&#xE27;&#xE19;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19; &#xE0B;&#xE36;&#xE48;&#xE07;&#xE1C;&#xE21;&#xE44;&#xE14;&#xE49;&#xE40;&#xE04;&#xE22;&#xE01;&#xE25;&#xE48;&#xE32;&#xE27;&#xE44;&#xE27;&#xE49;&#xE43;&#xE19;<a href="https://toupawa.com/node-js-beginning/">&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE19;&#xE35;&#xE49;</a></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE15;&#xE48;&#xE2D;&#xE21;&#xE32; &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE1E;&#xE39;&#xE14;&#xE16;&#xE36;&#xE07;&#xE01;&#xE32;&#xE23;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE17;&#xE35;&#xE48;&#xE08;&#xE33;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE43;&#xE0A;&#xE49;&#xE43;&#xE19;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33; API (application Program Inrterface) &#xE01;&#xE47;&#xE04;&#xE37;&#xE2D; &#xE42;&#xE04;&#xE49;&#xE14;&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07; &#xE17;&#xE35;&#xE48;&#xE43;&#xE2B;&#xE49;&#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE04;&#xE2D;&#xE21; 2 &#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE2A;&#xE37;&#xE48;&#xE2D;&#xE2A;&#xE32;&#xE23;&#xE2B;&#xE32;&#xE01;&#xE31;&#xE19;&#xE44;&#xE14;&#xE49; &#xE43;&#xE19;&#xE17;&#xE35;&#xE48;&#xE19;&#xE35;&#xE48; &#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07; 2 &#xE40;&#xE04;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE19;&#xE31;&#xE49;&#xE19;&#xE04;&#xE37;&#xE2D; <strong>Client</strong> &#xE01;&#xE31;&#xE1A; <strong>Server</strong> &#xE19;&#xE31;&#xE48;&#xE19;&#xE40;&#xE2D;&#xE07; (&#xE41;&#xE25;&#xE30;&#xE01;&#xE32;&#xE23;&#xE15;&#xE34;&#xE14;&#xE15;&#xE48;&#xE2D;&#xE2A;&#xE37;&#xE48;&#xE2D;&#xE2A;&#xE32;&#xE23;&#xE01;&#xE31;&#xE19;&#xE19;&#xE31;&#xE49;&#xE19; &#xE01;&#xE47;&#xE04;&#xE37;&#xE2D;&#xE01;&#xE32;&#xE23;&#xE42;&#xE15;&#xE49;&#xE15;&#xE2D;&#xE1A;&#xE17;&#xE35;&#xE48;&#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE27;&#xE48;&#xE32; request &#xE01;&#xE31;&#xE1A; response) &#xE0B;&#xE36;&#xE48;&#xE07;&#xE40;&#xE08;&#xE49;&#xE32; API &#xE16;&#xE39;&#xE01;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE21;&#xE32;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE23;&#xE31;&#xE1A; request &#xE41;&#xE25;&#xE30;&#xE2A;&#xE48;&#xE07; response &#xE01;&#xE31;&#xE19;&#xE23;&#xE30;&#xE2B;&#xE27;&#xE48;&#xE32;&#xE07; Client &#xE01;&#xE31;&#xE1A; Server<br>
Client &#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE1D;&#xE48;&#xE32;&#xE22;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE48;&#xE07; request &#xE0B;&#xE36;&#xE48;&#xE07;&#xE1B;&#xE23;&#xE30;&#xE01;&#xE2D;&#xE1A;&#xE44;&#xE1B;&#xE14;&#xE49;&#xE27;&#xE22; URL, &#xE1E;&#xE32;&#xE23;&#xE32;&#xE21;&#xE34;&#xE40;&#xE15;&#xE2D;&#xE23;&#xE4C; &#xE23;&#xE27;&#xE21;&#xE16;&#xE36;&#xE07;&#xE02;&#xE49;&#xE2D;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE2D;&#xE37;&#xE48;&#xE19;&#xE46;&#xE44;&#xE1B;&#xE2B;&#xE32; Server &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE23;&#xE49;&#xE2D;&#xE07;&#xE02;&#xE2D;&#xE01;&#xE32;&#xE23;&#xE1A;&#xE23;&#xE34;&#xE01;&#xE32;&#xE23; &#xE41;&#xE25;&#xE30; Server &#xE08;&#xE30;&#xE15;&#xE2D;&#xE1A;&#xE2A;&#xE19;&#xE2D;&#xE07;&#xE15;&#xE48;&#xE2D;&#xE1A;&#xE23;&#xE34;&#xE01;&#xE32;&#xE23;&#xE19;&#xE31;&#xE49;&#xE19; &#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A;&#xE42;&#xE04;&#xE23;&#xE07;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE02;&#xE2D;&#xE07;&#xE2B;&#xE19;&#xE49;&#xE32; root directory &#xE02;&#xE2D;&#xE07; Node &#xE08;&#xE30;&#xE21;&#xE35;&#xE25;&#xE31;&#xE01;&#xE29;&#xE13;&#xE30;&#xE41;&#xE1A;&#xE1A;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>// Dependencies
var http = require(&apos;http&apos;);

// Configure a server
var server = http.createServer(function funcName (req, res) {
  res.end(&apos;Hello World!&apos;);
});

// Start the server
server.listen(3000, function() {
  console.log(&apos;The server is listening in port 3000&apos;)
});
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE2D;&#xE18;&#xE34;&#xE1A;&#xE32;&#xE22;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE1B;&#xE23;&#xE30;&#xE01;&#xE2D;&#xE1A;&#xE02;&#xE2D;&#xE07;&#xE42;&#xE04;&#xE49;&#xE14;&#xE14;&#xE49;&#xE32;&#xE19;&#xE1A;&#xE19;&#xE2D;&#xE2D;&#xE01; &#xE41;&#xE1A;&#xE48;&#xE07;&#xE21;&#xE32;&#xE40;&#xE1B;&#xE47;&#xE19; 3 &#xE2A;&#xE48;&#xE27;&#xE19; &#xE44;&#xE14;&#xE49;&#xE41;&#xE01;&#xE48;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="1dependencyies">1.Dependency(-ies)</h3>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE04;&#xE37;&#xE2D;&#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19; <em>require()</em> &#xE14;&#xE36;&#xE07;&#xE40;&#xE2D;&#xE32;&#xE42;&#xE21;&#xE14;&#xE39;&#xE25;&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE44;&#xE25;&#xE1A;&#xE23;&#xE32;&#xE23;&#xE35;&#xE48;&#xE17;&#xE35;&#xE48;&#xE21;&#xE35;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE43;&#xE19; Node (&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE44;&#xE1F;&#xE25;&#xE4C;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE40;&#xE2D;&#xE07;&#xE01;&#xE47;&#xE44;&#xE14;&#xE49;) &#xE21;&#xE32;&#xE40;&#xE01;&#xE47;&#xE1A;&#xE44;&#xE27;&#xE49;&#xE43;&#xE19;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE17;&#xE35;&#xE48;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;<br>
&#xE08;&#xE32;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07; &#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE42;&#xE21;&#xE14;&#xE39;&#xE25; <em>http</em> &#xE40;&#xE2D;&#xE32;&#xE21;&#xE32;&#xE40;&#xE01;&#xE47;&#xE1A;&#xE44;&#xE27;&#xE49;&#xE17;&#xE35;&#xE48;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23;&#xE17;&#xE35;&#xE48;&#xE15;&#xE31;&#xE49;&#xE07;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE27;&#xE48;&#xE32; <strong>http</strong></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="2configureaserver">2.Configure a server</h3>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07; Function expression &#xE40;&#xE1B;&#xE47;&#xE19; server &#xE02;&#xE36;&#xE49;&#xE19;&#xE21;&#xE32;&#xE42;&#xE14;&#xE22;&#xE43;&#xE0A;&#xE49;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19; <em>createServer()</em> &#xE17;&#xE35;&#xE48;&#xE40;&#xE2D;&#xE32;&#xE21;&#xE32;&#xE08;&#xE32;&#xE01;&#xE42;&#xE21;&#xE14;&#xE39;&#xE25; <em>http</em> &#xE1C;&#xE48;&#xE32;&#xE19;&#xE15;&#xE31;&#xE27;&#xE41;&#xE1B;&#xE23; http &#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE17;&#xE35;&#xE48;&#xE2D;&#xE22;&#xE39;&#xE48;&#xE43;&#xE19;&#xE42;&#xE21;&#xE14;&#xE39;&#xE25;&#xE2D;&#xE37;&#xE48;&#xE19; (&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE1A;&#xE32;&#xE07;&#xE20;&#xE32;&#xE29;&#xE32;&#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE27;&#xE48;&#xE32; method) &#xE01;&#xE32;&#xE23;&#xE43;&#xE0A;&#xE49;&#xE07;&#xE32;&#xE19;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE2A;&#xE31;&#xE48;&#xE07;&#xE15;&#xE32;&#xE21; syntax &#xE40;&#xE1B;&#xE47;&#xE19;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p><code>http.createServer(requestListener);</code></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE20;&#xE32;&#xE22;&#xE43;&#xE19;&#xE27;&#xE07;&#xE40;&#xE25;&#xE47;&#xE1A;&#xE08;&#xE30;&#xE21;&#xE35;&#xE1E;&#xE32;&#xE23;&#xE32;&#xE21;&#xE34;&#xE40;&#xE15;&#xE2D;&#xE23;&#xE4C; (requestListener) &#xE40;&#xE1B;&#xE47;&#xE19; Callback Function &#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE15;&#xE49;&#xE2D;&#xE07;&#xE16;&#xE39;&#xE01;&#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE43;&#xE0A;&#xE49;&#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19; <em>createServer</em> &#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE08;&#xE1A; &#xE15;&#xE31;&#xE27; Callback &#xE08;&#xE30;&#xE21;&#xE35;&#xE2D;&#xE2D;&#xE1A;&#xE40;&#xE08;&#xE47;&#xE04;&#xE15;&#xE4C; 2 &#xE15;&#xE31;&#xE27; &#xE40;&#xE1B;&#xE47;&#xE19;&#xE1E;&#xE32;&#xE23;&#xE32;&#xE21;&#xE34;&#xE40;&#xE15;&#xE2D;&#xE23;&#xE4C; &#xE20;&#xE32;&#xE22;&#xE43;&#xE19;&#xE1E;&#xE32;&#xE23;&#xE32;&#xE21;&#xE34;&#xE40;&#xE15;&#xE2D;&#xE23;&#xE4C;&#xE41;&#xE15;&#xE48;&#xE25;&#xE30;&#xE15;&#xE31;&#xE27; &#xE08;&#xE30;&#xE40;&#xE01;&#xE47;&#xE1A;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE15;&#xE48;&#xE32;&#xE07;&#xE46;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49; &#xE43;&#xE19;&#xE17;&#xE35;&#xE48;&#xE19;&#xE35;&#xE48; &#xE1E;&#xE32;&#xE23;&#xE32;&#xE21;&#xE34;&#xE40;&#xE15;&#xE2D;&#xE23;&#xE4C;&#xE15;&#xE31;&#xE27;&#xE41;&#xE23;&#xE01; &#xE40;&#xE23;&#xE32;&#xE15;&#xE31;&#xE49;&#xE07;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE1B;&#xE47;&#xE19; <strong>req</strong> &#xE2A;&#xE48;&#xE27;&#xE19;&#xE1E;&#xE32;&#xE23;&#xE32;&#xE21;&#xE34;&#xE40;&#xE15;&#xE2D;&#xE23;&#xE4C;&#xE15;&#xE31;&#xE27;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE2D;&#xE07; &#xE40;&#xE23;&#xE32;&#xE15;&#xE31;&#xE49;&#xE07;&#xE0A;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE1B;&#xE47;&#xE19; <strong>res</strong> &#xE41;&#xE25;&#xE30;&#xE21;&#xE35;&#xE01;&#xE32;&#xE23;&#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE43;&#xE0A;&#xE49;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19; <em>end()</em> &#xE08;&#xE32;&#xE01;&#xE15;&#xE31;&#xE27;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE2D;&#xE07;&#xE19;&#xE31;&#xE48;&#xE19;&#xE40;&#xE2D;&#xE07;<br>
&#xE15;&#xE31;&#xE27;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE17;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19; requestListener &#xE19;&#xE31;&#xE48;&#xE19; &#xE40;&#xE23;&#xE32;&#xE2A;&#xE32;&#xE21;&#xE32;&#xE23;&#xE16;&#xE01;&#xE33;&#xE2B;&#xE19;&#xE14;&#xE43;&#xE2B;&#xE49;&#xE21;&#xE31;&#xE19;&#xE40;&#xE1B;&#xE47;&#xE19; Anonymous Function &#xE2B;&#xE23;&#xE37;&#xE2D; Function expression &#xE44;&#xE14;&#xE49;&#xE40;&#xE0A;&#xE48;&#xE19;&#xE40;&#xE14;&#xE35;&#xE22;&#xE27;&#xE01;&#xE31;&#xE19; &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE04;&#xE27;&#xE32;&#xE21;&#xE2A;&#xE30;&#xE14;&#xE27;&#xE01;&#xE43;&#xE19;&#xE01;&#xE32;&#xE23;&#xE40;&#xE02;&#xE35;&#xE22;&#xE19;&#xE42;&#xE1B;&#xE23;&#xE41;&#xE01;&#xE23;&#xE21;&#xE44;&#xE14;&#xE49;&#xE14;&#xE31;&#xE07;&#xE19;&#xE35;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>var server = http.createServer(function(req, res) {
  res.end(&apos;Hello World!&apos;)
});
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE2B;&#xE23;&#xE37;&#xE2D;&#xE27;&#xE48;&#xE32;&#xE08;&#xE30;&#xE40;&#xE1B;&#xE25;&#xE35;&#xE48;&#xE22;&#xE19;&#xE40;&#xE1B;&#xE47;&#xE19; Arrow Function &#xE01;&#xE47;&#xE44;&#xE14;&#xE49;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>var server = http.createServer((req, res)=&gt; {
  res.end(&apos;Hello World!&apos;);
});
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="3starttheserver">3.Start the server</h3>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE01;&#xE32;&#xE23;&#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE43;&#xE0A;&#xE49;&#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19; <em>listen()</em> &#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE40;&#xE23;&#xE35;&#xE22;&#xE01; server &#xE43;&#xE2B;&#xE49;&#xE23;&#xE2D;&#xE23;&#xE31;&#xE19; (listening) &#xE20;&#xE32;&#xE22;&#xE43;&#xE19;&#xE08;&#xE30;&#xE1B;&#xE23;&#xE30;&#xE01;&#xE2D;&#xE1A;&#xE44;&#xE1B;&#xE14;&#xE49;&#xE27;&#xE22;&#xE1E;&#xE32;&#xE23;&#xE32;&#xE21;&#xE34;&#xE40;&#xE15;&#xE2D;&#xE23;&#xE4C; 2 &#xE15;&#xE31;&#xE27; &#xE15;&#xE31;&#xE27;&#xE41;&#xE23;&#xE01;&#xE40;&#xE1B;&#xE47;&#xE19; integer &#xE40;&#xE1B;&#xE47;&#xE19; <strong>port</strong> &#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE23;&#xE31;&#xE19; &#xE15;&#xE31;&#xE27;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE2D;&#xE07; <strong>host</strong> &#xE17;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19; IPv4 address &#xE2A;&#xE48;&#xE27;&#xE19;&#xE15;&#xE31;&#xE27;&#xE17;&#xE35;&#xE48;&#xE2A;&#xE32;&#xE21;&#xE40;&#xE1B;&#xE47;&#xE19; <strong>Callback Fuction</strong> &#xE08;&#xE30;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE15;&#xE48;&#xE2D;&#xE40;&#xE19;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE08;&#xE32;&#xE01; listen() &#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE08;&#xE1A; &#xE21;&#xE35;&#xE23;&#xE39;&#xE1B;&#xE41;&#xE1A;&#xE1A; syntax &#xE40;&#xE1B;&#xE47;&#xE19;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p><code>server.listen([port[, host[, backlog]]][, callback])</code></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE08;&#xE32;&#xE01;&#xE15;&#xE31;&#xE27;&#xE2D;&#xE22;&#xE48;&#xE32;&#xE07;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><pre><code>server.listen(3000, function() {
  console.log(&apos;The server is listening in port 3000&apos;)
});
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE41;&#xE1B;&#xE25;&#xE04;&#xE27;&#xE32;&#xE21;&#xE2B;&#xE21;&#xE32;&#xE22;&#xE27;&#xE48;&#xE32; &#xE40;&#xE21;&#xE37;&#xE48;&#xE2D;&#xE21;&#xE35; request &#xE21;&#xE32;&#xE17;&#xE35;&#xE48; host (&#xE13; &#xE17;&#xE35;&#xE48;&#xE19;&#xE35;&#xE49;&#xE44;&#xE21;&#xE48;&#xE44;&#xE14;&#xE49;&#xE23;&#xE30;&#xE1A;&#xE38;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49;) &#xE1C;&#xE48;&#xE32;&#xE19; port 3000 &#xE08;&#xE30;&#xE17;&#xE33;&#xE43;&#xE2B;&#xE49; server &#xE23;&#xE2D;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE41;&#xE25;&#xE30;&#xE08;&#xE1A;&#xE14;&#xE49;&#xE27;&#xE22; &#xE40;&#xE23;&#xE35;&#xE22;&#xE01; &#xE1F;&#xE31;&#xE07;&#xE01;&#xE4C;&#xE0A;&#xE31;&#xE48;&#xE19;&#xE40;&#xE23;&#xE35;&#xE22;&#xE01;&#xE01;&#xE25;&#xE31;&#xE1A; (callback) &#xE21;&#xE32;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="summary">Summary</h3>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>&#xE19;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE1E;&#xE37;&#xE49;&#xE19;&#xE10;&#xE32;&#xE19;&#xE40;&#xE01;&#xE35;&#xE48;&#xE22;&#xE27;&#xE01;&#xE31;&#xE1A;&#xE42;&#xE04;&#xE23;&#xE07;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE02;&#xE2D;&#xE07;&#xE42;&#xE04;&#xE49;&#xE14;&#xE17;&#xE35;&#xE48;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE2A;&#xE48;&#xE27;&#xE19;&#xE1B;&#xE23;&#xE30;&#xE01;&#xE2D;&#xE1A;&#xE2B;&#xE25;&#xE31;&#xE01;&#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE16;&#xE39;&#xE01;&#xE43;&#xE0A;&#xE49;&#xE43;&#xE19;&#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE07;&#xE32;&#xE19;&#xE02;&#xE2D;&#xE07; Node.js &#xE17;&#xE35;&#xE48;&#xE1C;&#xE21;&#xE44;&#xE14;&#xE49;&#xE40;&#xE23;&#xE35;&#xE22;&#xE19;&#xE23;&#xE39;&#xE49;&#xE21;&#xE32; &#xE41;&#xE25;&#xE30;&#xE2D;&#xE22;&#xE32;&#xE01;&#xE08;&#xE30;&#xE1A;&#xE31;&#xE19;&#xE17;&#xE36;&#xE01;&#xE40;&#xE01;&#xE47;&#xE1A;&#xE40;&#xE2D;&#xE32;&#xE44;&#xE27;&#xE49; &#xE40;&#xE1C;&#xE37;&#xE48;&#xE2D;&#xE01;&#xE25;&#xE31;&#xE1A;&#xE21;&#xE32;&#xE2D;&#xE48;&#xE32;&#xE19;&#xE15;&#xE2D;&#xE19;&#xE17;&#xE35;&#xE48;&#xE21;&#xE36;&#xE19;&#xE21;&#xE32;&#xE08;&#xE32;&#xE01;&#xE01;&#xE2D;&#xE07;&#xE42;&#xE04;&#xE49;&#xE14;&#xE17;&#xE35;&#xE48;&#xE08;&#xE30;&#xE40;&#xE01;&#xE34;&#xE14;&#xE02;&#xE36;&#xE49;&#xE19;&#xE43;&#xE19;&#xE2D;&#xE19;&#xE32;&#xE04;&#xE15; &#xE40;&#xE23;&#xE32;&#xE08;&#xE30;&#xE43;&#xE0A;&#xE49;&#xE42;&#xE04;&#xE23;&#xE07;&#xE2A;&#xE23;&#xE49;&#xE32;&#xE07;&#xE40;&#xE1E;&#xE37;&#xE48;&#xE2D;&#xE15;&#xE48;&#xE2D;&#xE22;&#xE2D;&#xE14;&#xE44;&#xE1B;&#xE22;&#xE31;&#xE07;&#xE04;&#xE33;&#xE2A;&#xE31;&#xE48;&#xE07;&#xE41;&#xE25;&#xE30;&#xE01;&#xE23;&#xE30;&#xE1A;&#xE27;&#xE19;&#xE17;&#xE48;&#xE32;&#xE17;&#xE35;&#xE48;&#xE22;&#xE32;&#xE01;&#xE02;&#xE36;&#xE49;&#xE19;&#xE44;&#xE1B; &#xE40;&#xE1E;&#xE23;&#xE32;&#xE30;&#xE09;&#xE30;&#xE19;&#xE31;&#xE49;&#xE19; &#xE01;&#xE32;&#xE23;&#xE17;&#xE33;&#xE04;&#xE27;&#xE32;&#xE21;&#xE40;&#xE02;&#xE49;&#xE32;&#xE43;&#xE08;&#xE40;&#xE23;&#xE37;&#xE48;&#xE2D;&#xE07;&#xE40;&#xE25;&#xE47;&#xE01;&#xE19;&#xE49;&#xE2D;&#xE22;&#xE40;&#xE0A;&#xE48;&#xE19;&#xE19;&#xE35;&#xE49;&#xE01;&#xE47;&#xE40;&#xE1B;&#xE47;&#xE19;&#xE2A;&#xE34;&#xE48;&#xE07;&#xE08;&#xE33;&#xE40;&#xE1B;&#xE47;&#xE19; &#xE41;&#xE25;&#xE49;&#xE27;&#xE1E;&#xE1A;&#xE01;&#xE31;&#xE19;&#xE43;&#xE2B;&#xE21;&#xE48;&#xE43;&#xE19;&#xE1A;&#xE17;&#xE04;&#xE27;&#xE32;&#xE21;&#xE2B;&#xE19;&#xE49;&#xE32;&#xE04;&#xE23;&#xE31;&#xE1A;</p>
<p>&#xE41;&#xE2B;&#xE25;&#xE48;&#xE07;&#xE2D;&#xE49;&#xE32;&#xE07;&#xE2D;&#xE34;&#xE07;</p>
<p><a href="https://stackoverflow.com/questions/33769702/understanding-node-javascript-callback-functions">https://stackoverflow.com/questions/33769702/understanding-node-javascript-callback-functions</a></p>
<p><a href="https://www.javascripttutorial.net/nodejs-tutorial/nodejs-http-module/">https://www.javascripttutorial.net/nodejs-tutorial/nodejs-http-module/</a></p>
<p><a href="https://www.w3schools.com/nodejs/nodejs_http.asp">https://www.w3schools.com/nodejs/nodejs_http.asp</a></p>
<p><a href="https://www.geeksforgeeks.org/node-js-server-listen-method/">https://www.geeksforgeeks.org/node-js-server-listen-method/</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item></channel></rss>