{"id":85901,"date":"2025-04-12T21:46:38","date_gmt":"2025-04-12T14:46:38","guid":{"rendered":"https:\/\/itviecblog.uptech.vn\/?p=85901"},"modified":"2025-06-17T13:58:53","modified_gmt":"2025-06-17T06:58:53","slug":"lo-trinh-hoc-dart","status":"publish","type":"post","link":"https:\/\/itviec.com\/blog\/lo-trinh-hoc-dart\/","title":{"rendered":"H\u1ecdc Dart b\u00e0i b\u1ea3n v\u00e0 hi\u1ec7u qu\u1ea3 v\u1edbi l\u1ed9 tr\u00ecnh 5 b\u01b0\u1edbc t\u1eeb A-Z"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">N\u1ed9i dung b\u00e0i vi\u1ebft<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/itviec.com\/blog\/lo-trinh-hoc-dart\/#Buoc_1_Huong_dan_cai_dat_moi_truong_va_cong_cu_phat_trien\" >B\u01b0\u1edbc 1: H\u01b0\u1edbng d\u1eabn c\u00e0i \u0111\u1eb7t m\u00f4i tr\u01b0\u1eddng v\u00e0 c\u00f4ng c\u1ee5 ph\u00e1t tri\u1ec3n<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/itviec.com\/blog\/lo-trinh-hoc-dart\/#Buoc_2_Tim_hieu_ve_cau_truc_ngon_ngu_lap_trinh_Dart\" >B\u01b0\u1edbc 2: T\u00ecm hi\u1ec3u v\u1ec1 c\u1ea5u tr\u00fac ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh Dart<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/itviec.com\/blog\/lo-trinh-hoc-dart\/#Buoc_3_Tim_hieu_cac_thanh_phan_pho_bien_trong_Dart\" >B\u01b0\u1edbc 3: T\u00ecm hi\u1ec3u c\u00e1c th\u00e0nh ph\u1ea7n ph\u1ed5 bi\u1ebfn trong Dart<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/itviec.com\/blog\/lo-trinh-hoc-dart\/#Buoc_4_Cach_quan_ly_cac_thu_vien_va_package_pho_bien\" >B\u01b0\u1edbc 4: C\u00e1ch qu\u1ea3n l\u00fd c\u00e1c th\u01b0 vi\u1ec7n v\u00e0 package ph\u1ed5 bi\u1ebfn<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/itviec.com\/blog\/lo-trinh-hoc-dart\/#Buoc_5_Huong_dan_bat_dau_voi_chuong_Dart_dau_tien\" >B\u01b0\u1edbc 5: H\u01b0\u1edbng d\u1eabn b\u1eaft \u0111\u1ea7u v\u1edbi ch\u01b0\u01a1ng Dart \u0111\u1ea7u ti\u00ean<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/itviec.com\/blog\/lo-trinh-hoc-dart\/#Tai_nguyen_tu_hoc_Dart_hieu_qua\" >T\u00e0i nguy\u00ean t\u1ef1 h\u1ecdc Dart hi\u1ec7u qu\u1ea3<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/itviec.com\/blog\/lo-trinh-hoc-dart\/#Loi_khuyen_de_tu_hoc_Dart_hieu_qua\" >L\u1eddi khuy\u00ean \u0111\u1ec3 t\u1ef1 h\u1ecdc Dart hi\u1ec7u qu\u1ea3<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/itviec.com\/blog\/lo-trinh-hoc-dart\/#Cac_cau_hoi_thuong_gap_ve_lo_trinh_hoc_Dart\" >C\u00e1c c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 l\u1ed9 tr\u00ecnh h\u1ecdc Dart<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/itviec.com\/blog\/lo-trinh-hoc-dart\/#Tong_ket\" >T\u1ed5ng k\u1ebft<\/a><\/li><\/ul><\/nav><\/div>\n<p><em><strong>Dart l\u00e0 m\u1ed9t ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh hi\u1ec7n \u0111\u1ea1i do Google ph\u00e1t tri\u1ec3n, \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 x\u00e2y d\u1ef1ng c\u00e1c \u1ee9ng d\u1ee5ng hi\u1ec7u su\u1ea5t cao tr\u00ean nhi\u1ec1u n\u1ec1n t\u1ea3ng nh\u01b0 di \u0111\u1ed9ng, web v\u00e0 server-side. V\u1edbi c\u00fa ph\u00e1p d\u1ec5 ti\u1ebfp c\u1eadn, h\u1ec7 th\u1ed1ng ki\u1ec3u an to\u00e0n v\u00e0 kh\u1ea3 n\u0103ng bi\u00ean d\u1ecbch linh ho\u1ea1t, Dart ng\u00e0y c\u00e0ng tr\u1edf th\u00e0nh l\u1ef1a ch\u1ecdn ph\u1ed5 bi\u1ebfn, \u0111\u1eb7c bi\u1ec7t trong h\u1ec7 sinh th\u00e1i Flutter. N\u1ebfu b\u1ea1n l\u00e0 ng\u01b0\u1eddi m\u1edbi b\u1eaft \u0111\u1ea7u, l\u1eadp tr\u00ecnh vi\u00ean mu\u1ed1n h\u1ecdc Flutter ho\u1eb7c \u0111ang t\u00ecm ki\u1ebfm m\u1ed9t ng\u00f4n ng\u1eef m\u1edbi \u0111\u1ec3 m\u1edf r\u1ed9ng k\u1ef9 n\u0103ng, b\u00e0i vi\u1ebft n\u00e0y s\u1ebd gi\u00fap b\u1ea1n x\u00e2y d\u1ef1ng l\u1ed9 tr\u00ecnh t\u1ef1 h\u1ecdc Dart m\u1ed9t c\u00e1ch hi\u1ec7u qu\u1ea3, t\u1eeb c\u01a1 b\u1ea3n \u0111\u1ebfn n\u00e2ng cao.<\/strong><\/em><\/p>\n<p><span style=\"font-weight: 400;\">\u0110\u1ec3 t\u1ef1 h\u1ecdc Dart, b\u1ea1n c\u00f3 th\u1ec3 tham kh\u1ea3o l\u1ed9 tr\u00ecnh sau \u0111\u00e2y:<\/span><\/p>\n<ul>\n<li><span style=\"font-weight: 400;\">B\u01b0\u1edbc 1: C\u00e0i \u0111\u1eb7t m\u00f4i tr\u01b0\u1eddng v\u00e0 c\u00f4ng c\u1ee5 ph\u00e1t tri\u1ec3n<\/span><\/li>\n<li><span style=\"font-weight: 400;\">B\u01b0\u1edbc 2: N\u1eafm \u0111\u01b0\u1ee3c c\u1ea5u tr\u00fac c\u1ee7a ng\u00f4n ng\u1eef Dart<\/span><\/li>\n<li><span style=\"font-weight: 400;\">B\u01b0\u1edbc 3: N\u1eafm \u0111\u01b0\u1ee3c c\u00e1c th\u00e0nh ph\u1ea7n ph\u1ed5 bi\u1ebfn c\u1ee7a ng\u00f4n ng\u1eef Dart<\/span><\/li>\n<li><span style=\"font-weight: 400;\">B\u01b0\u1edbc 4: N\u1eafm \u0111\u01b0\u1ee3c c\u00e1ch qu\u1ea3n l\u00fd th\u01b0 vi\u1ec7n<\/span><\/li>\n<li><span style=\"font-weight: 400;\">B\u01b0\u1edbc 5: B\u1eaft \u0111\u1ea7u b\u1eaft tay v\u00e0o vi\u1ec7c x\u00e2y d\u1ef1ng ch\u01b0\u01a1ng tr\u00ecnh \u0111\u01a1n gi\u1ea3n \u0111\u1ea7u ti\u00ean<\/span><\/li>\n<\/ul>\n<blockquote><p><em>\u0110\u1ecdc th\u00eam: <a href=\"\/blog\/dart-la-gi\/\" target=\"_blank\" rel=\"noopener\"><strong>Dart l\u00e0 g\u00ec? C\u00fa ph\u00e1p, \u0110\u1eb7c \u0111i\u1ec3m, \u1ee8ng d\u1ee5ng th\u1ef1c t\u1ebf c\u1ee7a Dart<\/strong><\/a><\/em><\/p><\/blockquote>\n<p><span style=\"font-weight: 400;\">Ph\u1ea7n d\u01b0\u1edbi \u0111\u00e2y s\u1ebd gi\u1ea3i th\u00edch chi ti\u1ebft t\u1eebng b\u01b0\u1edbc trong l\u1ed9 tr\u00ecnh:<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Buoc_1_Huong_dan_cai_dat_moi_truong_va_cong_cu_phat_trien\"><\/span><b>B\u01b0\u1edbc 1: H\u01b0\u1edbng d\u1eabn c\u00e0i \u0111\u1eb7t m\u00f4i tr\u01b0\u1eddng v\u00e0 c\u00f4ng c\u1ee5 ph\u00e1t tri\u1ec3n<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Tr\u01b0\u1edbc khi b\u1eaft \u0111\u1ea7u h\u1ecdc Dart, b\u1ea1n c\u1ea7n chu\u1ea9n b\u1ecb m\u1ed9t m\u00f4i tr\u01b0\u1eddng l\u1eadp tr\u00ecnh ph\u00f9 h\u1ee3p \u0111\u1ec3 c\u00f3 th\u1ec3 vi\u1ebft, ch\u1ea1y v\u00e0 th\u1eed nghi\u1ec7m m\u00e3 m\u1ed9t c\u00e1ch hi\u1ec7u qu\u1ea3. \u1ede b\u01b0\u1edbc n\u00e0y, b\u00e0i vi\u1ebft s\u1ebd cung c\u1ea5p h\u01b0\u1edbng d\u1eabn chi ti\u1ebft c\u00e1ch c\u00e0i \u0111\u1eb7t Dart tr\u00ean c\u00e1c h\u1ec7 \u0111i\u1ec1u h\u00e0nh ph\u1ed5 bi\u1ebfn v\u00e0 c\u00e1ch thi\u1ebft l\u1eadp c\u00e1c c\u00f4ng c\u1ee5 l\u1eadp tr\u00ecnh.<\/span><\/p>\n<h3><b>C\u00e0i \u0111\u1eb7t Dart SDK tr\u00ean Windows\/macOS\/Linux<\/b><\/h3>\n<p><a href=\"https:\/\/flutter.dev\/\" target=\"_blank\" rel=\"noopener\"><b>Dart SDK<\/b><span style=\"font-weight: 400;\"> (Software Development Kit)<\/span><\/a><span style=\"font-weight: 400;\"> l\u00e0 b\u1ed9 c\u00f4ng c\u1ee5 cung c\u1ea5p tr\u00ecnh bi\u00ean d\u1ecbch, th\u01b0 vi\u1ec7n v\u00e0 c\u00e1c ti\u1ec7n \u00edch h\u1ed7 tr\u1ee3 l\u1eadp tr\u00ecnh v\u1edbi Dart.<\/span><\/p>\n<h4><b>C\u00e0i \u0111\u1eb7t Dart tr\u00ean Windows<\/b><\/h4>\n<p><span style=\"font-weight: 400;\">C\u00f3 hai c\u00e1ch ch\u00ednh \u0111\u1ec3 c\u00e0i \u0111\u1eb7t Dart tr\u00ean Windows:<\/span><\/p>\n<p><b>C\u00e1ch 1: S\u1eed d\u1ee5ng tr\u00ecnh c\u00e0i \u0111\u1eb7t Chocolatey (khuy\u00ean d\u00f9ng)<\/b><\/p>\n<p><a href=\"https:\/\/chocolatey.org\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Chocolatey<\/span><\/a><span style=\"font-weight: 400;\"> l\u00e0 m\u1ed9t tr\u00ecnh qu\u1ea3n l\u00fd c\u00e1c Packages gi\u00fap c\u00e0i \u0111\u1eb7t ph\u1ea7n m\u1ec1m d\u1ec5 d\u00e0ng.<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">M\u1edf Command Prompt (cmd) ho\u1eb7c PowerShell v\u1edbi quy\u1ec1n Administrator.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Ch\u1ea1y l\u1ec7nh sau \u0111\u1ec3 c\u00e0i \u0111\u1eb7t Dart: <\/span><span style=\"font-weight: 400;\">choco install dart-sdk<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Ki\u1ec3m tra c\u00e0i \u0111\u1eb7t b\u1eb1ng c\u00e1ch ch\u1ea1y: <\/span><span style=\"font-weight: 400;\">dart &#8211;version<\/span><\/li>\n<\/ol>\n<p><b>C\u00e1ch 2: C\u00e0i \u0111\u1eb7t th\u1ee7 c\u00f4ng t\u1eeb trang ch\u00ednh th\u1ee9c<\/b><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Truy c\u1eadp trang t\u1ea3i xu\u1ed1ng Dart: <\/span><a href=\"https:\/\/dart.dev\/get-dart\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">https:\/\/dart.dev\/get-dart<\/span><\/a><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Ch\u1ecdn Windows v\u00e0 t\u1ea3i xu\u1ed1ng b\u1ed9 c\u00e0i \u0111\u1eb7t <\/span><span style=\"font-weight: 400;\">.zip<\/span><span style=\"font-weight: 400;\">.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Gi\u1ea3i n\u00e9n v\u00e0 th\u00eam \u0111\u01b0\u1eddng d\u1eabn Dart v\u00e0o Environment Variables \u0111\u1ec3 c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng Dart t\u1eeb terminal.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Ki\u1ec3m tra c\u00e0i \u0111\u1eb7t v\u1edbi: <\/span><span style=\"font-weight: 400;\">dart &#8211;version<\/span><\/li>\n<\/ol>\n<h4><b>C\u00e0i \u0111\u1eb7t Dart tr\u00ean macOS<\/b><\/h4>\n<p><span style=\"font-weight: 400;\">C\u00e1ch \u0111\u01a1n gi\u1ea3n nh\u1ea5t \u0111\u1ec3 c\u00e0i \u0111\u1eb7t Dart tr\u00ean macOS l\u00e0 s\u1eed d\u1ee5ng <\/span><b>Homebrew<\/b><span style=\"font-weight: 400;\">:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">M\u1edf Terminal v\u00e0 ch\u1ea1y l\u1ec7nh:<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">brew install dart<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">Ki\u1ec3m tra phi\u00ean b\u1ea3n:<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">dart --version<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">N\u1ebfu b\u1ea1n mu\u1ed1n c\u00e0i \u0111\u1eb7t th\u1ee7 c\u00f4ng, c\u00f3 th\u1ec3 t\u1ea3i v\u1ec1 Dart SDK t\u1eeb trang ch\u00ednh th\u1ee9c v\u00e0 th\u00eam n\u00f3 v\u00e0o bi\u1ebfn m\u00f4i tr\u01b0\u1eddng nh\u01b0 c\u00e1ch l\u00e0m tr\u00ean Windows.<\/span><\/p>\n<h4><b>C\u00e0i \u0111\u1eb7t Dart tr\u00ean Linux<\/b><\/h4>\n<p><span style=\"font-weight: 400;\">Tr\u00ean Linux, b\u1ea1n c\u00f3 th\u1ec3 c\u00e0i \u0111\u1eb7t Dart b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng <\/span><b>APT (Debian\/Ubuntu)<\/b><span style=\"font-weight: 400;\"> ho\u1eb7c <\/span><b>DNF\/YUM (Fedora)<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><b>S\u1eed d\u1ee5ng Debian\/Ubuntu:<\/b><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Th\u00eam kho l\u01b0u tr\u1eef Dart:<\/span><\/li>\n<\/ul>\n<pre><span style=\"font-weight: 400;\">sudo apt update<\/span>\n<span style=\"font-weight: 400;\">sudo apt install apt-transport-https<\/span>\n<span style=\"font-weight: 400;\">sudo sh -c 'wget -qO- https:\/\/dl-ssl.google.com\/linux\/linux_signing_key.pub | apt-key add -'<\/span>\n<span style=\"font-weight: 400;\">sudo sh -c 'wget -qO- https:\/\/storage.googleapis.com\/download.dartlang.org\/linux\/debian\/dart_stable.list &gt; \/etc\/apt\/sources.list.d\/dart_stable.list'<\/span><\/pre>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">C\u00e0i \u0111\u1eb7t Dart SDK:<\/span><\/li>\n<\/ul>\n<pre><span style=\"font-weight: 400;\">sudo apt update<\/span>\n<span style=\"font-weight: 400;\">sudo apt install dart<\/span><\/pre>\n<p><b>S\u1eed d\u1ee5ng Fedora:<\/b><\/p>\n<p><span style=\"font-weight: 400;\">Ch\u1ea1y l\u1ec7nh sau \u0111\u1ec3 c\u00e0i \u0111\u1eb7t Dart:<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">sudo dnf install dart<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">Sau khi c\u00e0i \u0111\u1eb7t, ki\u1ec3m tra b\u1eb1ng l\u1ec7nh:<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">dart --version\u00a0<\/span><\/pre>\n<h3><b>S\u1eed d\u1ee5ng Dart v\u1edbi tr\u00ecnh bi\u00ean d\u1ecbch tr\u1ef1c ti\u1ebfp (DartPad)<\/b><\/h3>\n<p><a href=\"https:\/\/dartpad.dev\/\" target=\"_blank\" rel=\"noopener\"><b>DartPad<\/b><\/a><span style=\"font-weight: 400;\"> l\u00e0 m\u1ed9t c\u00f4ng c\u1ee5 tr\u1ef1c tuy\u1ebfn mi\u1ec5n ph\u00ed do Google cung c\u1ea5p, gi\u00fap b\u1ea1n ch\u1ea1y code Dart ngay tr\u00ean tr\u00ecnh duy\u1ec7t m\u00e0 kh\u00f4ng c\u1ea7n c\u00e0i \u0111\u1eb7t g\u00ec.<\/span><\/p>\n<p><b>C\u00e1ch s\u1eed d\u1ee5ng DartPad:<\/b><\/p>\n<p><span style=\"font-weight: 400;\">M\u1edf DartPad tr\u00ean tr\u00ecnh duy\u1ec7t.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">X\u00f3a code m\u1eabu v\u00e0 nh\u1eadp \u0111o\u1ea1n code Dart \u0111\u01a1n gi\u1ea3n:<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">void main() {<\/span>\n<span style=\"font-weight: 400;\"> \u00a0print('Xin ch\u00e0o, Dart!');<\/span>\n<span style=\"font-weight: 400;\">}<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">Nh\u1ea5n <\/span><b>Run<\/b><span style=\"font-weight: 400;\"> \u0111\u1ec3 th\u1ef1c thi code v\u00e0 xem k\u1ebft qu\u1ea3 trong ph\u1ea7n <\/span><b>Console<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><b>D\u01b0\u1edbi \u0111\u00e2y l\u00e0 h\u00ecnh \u1ea3nh minh ho\u1ea1:<\/b><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-85902\" src=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-1-vippro.png\" alt=\"\" width=\"1600\" height=\"799\" srcset=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-1-vippro.png 1600w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-1-vippro-300x150.png 300w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-1-vippro-1536x767.png 640w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-1-vippro-200x100.png 200w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">DartPad r\u1ea5t h\u1eefu \u00edch \u0111\u1ec3 th\u1eed nghi\u1ec7m nhanh c\u00e1c \u0111o\u1ea1n code nh\u1ecf ho\u1eb7c h\u1ecdc c\u00fa ph\u00e1p c\u01a1 b\u1ea3n c\u1ee7a Dart m\u00e0 kh\u00f4ng c\u1ea7n thi\u1ebft l\u1eadp m\u00f4i tr\u01b0\u1eddng c\u00e0i \u0111\u1eb7t.<\/span><\/p>\n<h3><b>Thi\u1ebft l\u1eadp VSCode ho\u1eb7c IntelliJ \u0111\u1ec3 l\u1eadp tr\u00ecnh v\u1edbi Dart<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Sau khi c\u00e0i \u0111\u1eb7t Dart SDK, b\u1ea1n c\u1ea7n m\u1ed9t tr\u00ecnh so\u1ea1n th\u1ea3o \u0111\u1ec3 vi\u1ebft code. D\u01b0\u1edbi \u0111\u00e2y l\u00e0 hai IDE ph\u1ed5 bi\u1ebfn nh\u1ea5t cho Dart:<\/span><\/p>\n<h4><b>C\u00e1ch thi\u1ebft l\u1eadp Dart tr\u00ean VSCode<\/b><\/h4>\n<p><span style=\"font-weight: 400;\">VS Code l\u00e0 tr\u00ecnh so\u1ea1n th\u1ea3o nh\u1eb9, m\u1ea1nh m\u1ebd v\u00e0 c\u00f3 nhi\u1ec1u ti\u1ec7n \u00edch h\u1ed7 tr\u1ee3 Dart.<\/span><\/p>\n<p><b>C\u00e0i \u0111\u1eb7t VS Code:<\/b><\/p>\n<p><span style=\"font-weight: 400;\">T\u1ea3i t\u1eeb<\/span> <a href=\"https:\/\/code.visualstudio.com\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">https:\/\/code.visualstudio.com<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><b>C\u00e0i \u0111\u1eb7t Dart &amp; Flutter extension:<\/b><\/p>\n<ul>\n<li><span style=\"font-weight: 400;\">M\u1edf VS Code.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">V\u00e0o Extensions (Ctrl + Shift + X ho\u1eb7c Cmd + Shift + X tr\u00ean macOS).<\/span><\/li>\n<li><span style=\"font-weight: 400;\">T\u00ecm Dart v\u00e0 Flutter, sau \u0111\u00f3 nh\u1ea5n Install.<\/span><\/li>\n<\/ul>\n<p><b>C\u1ea5u h\u00ecnh Dart SDK:.<\/b><\/p>\n<ul>\n<li><span style=\"font-weight: 400;\">V\u00e0o Code \u2192 Settings.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">T\u00ecm <\/span><span style=\"font-weight: 400;\">dart.sdkPath<\/span><span style=\"font-weight: 400;\"> v\u00e0 \u0111\u1eb7t \u0111\u01b0\u1eddng d\u1eabn \u0111\u1ebfn th\u01b0 m\u1ee5c c\u00e0i \u0111\u1eb7t Dart SDK c\u1ee7a b\u1ea1n.<\/span><\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-85903\" src=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-2-vippro.png\" alt=\"\" width=\"1425\" height=\"948\" srcset=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-2-vippro.png 1425w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-2-vippro-300x200.png 300w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-2-vippro-768x511.png 640w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-2-vippro-200x133.png 200w\" sizes=\"auto, (max-width: 1425px) 100vw, 1425px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Sau khi thi\u1ebft l\u1eadp xong, b\u1ea1n c\u00f3 th\u1ec3 b\u1eaft \u0111\u1ea7u vi\u1ebft code Dart trong VS Code.<\/span><\/p>\n<h4><b>C\u00e1ch thi\u1ebft l\u1eadp Dart tr\u00ean IntelliJ IDEA<\/b><\/h4>\n<p><span style=\"font-weight: 400;\">IntelliJ IDEA (ho\u1eb7c Android Studio) c\u0169ng h\u1ed7 tr\u1ee3 l\u1eadp tr\u00ecnh Dart r\u1ea5t t\u1ed1t.<\/span><\/p>\n<p><b>T\u1ea3i IntelliJ IDEA<\/b><span style=\"font-weight: 400;\"> t\u1eeb<\/span><a href=\"https:\/\/www.jetbrains.com\/idea\/download\" target=\"_blank\" rel=\"noopener\"> <span style=\"font-weight: 400;\">https:\/\/www.jetbrains.com\/idea\/download<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><b>C\u00e0i \u0111\u1eb7t Plugin Dart<\/b><span style=\"font-weight: 400;\">:<\/span><\/p>\n<ul>\n<li><span style=\"font-weight: 400;\">M\u1edf IntelliJ IDEA.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">V\u00e0o File \u2192 Settings \u2192 Plugins.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">T\u00ecm Dart v\u00e0 c\u00e0i \u0111\u1eb7t plugin.<\/span><\/li>\n<\/ul>\n<p><b>C\u1ea5u h\u00ecnh Dart SDK<\/b><span style=\"font-weight: 400;\">:<\/span><\/p>\n<ul>\n<li><span style=\"font-weight: 400;\">V\u00e0o File \u2192 Settings \u2192 Languages &amp; Frameworks \u2192 Dart.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Ch\u1ec9 \u0111\u1ecbnh \u0111\u01b0\u1eddng d\u1eabn \u0111\u1ebfn Dart SDK \u0111\u00e3 c\u00e0i \u0111\u1eb7t.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Sau khi ho\u00e0n t\u1ea5t, b\u1ea1n c\u00f3 th\u1ec3 t\u1ea1o m\u1ed9t project m\u1edbi v\u00e0 b\u1eaft \u0111\u1ea7u l\u1eadp tr\u00ecnh v\u1edbi Dart. Ti\u1ebfp theo, ch\u00fang ta s\u1ebd t\u00ecm hi\u1ec3u c\u00e1c th\u00e0nh ph\u1ea7n, c\u1ea5u tr\u00fac v\u00e0 ki\u1ebfn th\u1ee9c c\u01a1 b\u1ea3n trong vi\u1ec7c l\u1eadp tr\u00ecnh \u1ee9ng d\u1ee5ng mobile b\u1eb1ng Dart.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Buoc_2_Tim_hieu_ve_cau_truc_ngon_ngu_lap_trinh_Dart\"><\/span><b>B\u01b0\u1edbc 2: T\u00ecm hi\u1ec3u v\u1ec1 c\u1ea5u tr\u00fac ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh Dart<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Trong ph\u1ea7n n\u00e0y, ch\u00fang ta s\u1ebd \u0111i s\u00e2u v\u00e0o <\/span><b>c\u1ea5u tr\u00fac ng\u00f4n ng\u1eef Dart<\/b><span style=\"font-weight: 400;\">, b\u1eaft \u0111\u1ea7u t\u1eeb nh\u1eefng kh\u00e1i ni\u1ec7m c\u01a1 b\u1ea3n nh\u1ea5t.<\/span><\/p>\n<blockquote><p><em>\u0110\u1ecdc th\u00eam: <a href=\"\/blog\/dart-tutorial\/\" target=\"_blank\" rel=\"noopener\"><strong>Dart tutorial: C\u00e1c b\u01b0\u1edbc \u0111\u1ea7u ti\u00ean l\u00e0m quen v\u1edbi l\u1eadp tr\u00ecnh Dart<\/strong><\/a><\/em><\/p><\/blockquote>\n<h3><b>C\u00fa ph\u00e1p c\u01a1 b\u1ea3n<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Dart c\u00f3 c\u00fa ph\u00e1p t\u01b0\u01a1ng t\u1ef1 c\u00e1c ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh ph\u1ed5 bi\u1ebfn nh\u01b0 JavaScript, Java v\u00e0 C#. D\u01b0\u1edbi \u0111\u00e2y l\u00e0 m\u1ed9t s\u1ed1 \u0111\u1eb7c \u0111i\u1ec3m c\u01a1 b\u1ea3n c\u1ee7a c\u00fa ph\u00e1p Dart:<\/span><\/p>\n<p><b>1. Ch\u01b0\u01a1ng tr\u00ecnh Dart b\u1eaft \u0111\u1ea7u b\u1eb1ng h\u00e0m <\/b><b>main()<\/b><b>:<\/b><\/p>\n<pre><span style=\"font-weight: 400;\">void main() {<\/span>\n<span style=\"font-weight: 400;\"> \u00a0print('Ch\u00e0o m\u1eebng b\u1ea1n \u0111\u1ebfn v\u1edbi Dart!');<\/span>\n<span style=\"font-weight: 400;\">}<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">H\u00e0m <\/span><span style=\"font-weight: 400;\">main()<\/span><span style=\"font-weight: 400;\"> l\u00e0 \u0111i\u1ec3m b\u1eaft \u0111\u1ea7u c\u1ee7a ch\u01b0\u01a1ng tr\u00ecnh.<\/span><\/p>\n<p><b>2. Khai b\u00e1o l\u1ec7nh k\u1ebft th\u00fac b\u1eb1ng d\u1ea5u <\/b><b>\u201c;\u201d <\/b><b>:<\/b><\/p>\n<pre><span style=\"font-weight: 400;\">int a = 10;<\/span>\n\n<span style=\"font-weight: 400;\">double b = 20.5;<\/span><\/pre>\n<p><b>3. D\u1ea5u ngo\u1eb7c nh\u1ecdn <\/b><b>{}<\/b><b> \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 bao c\u00e1c kh\u1ed1i l\u1ec7nh:<\/b><\/p>\n<pre><span style=\"font-weight: 400;\">void sayHello() {<\/span>\n<span style=\"font-weight: 400;\"> \u00a0print('Xin ch\u00e0o!');<\/span>\n<span style=\"font-weight: 400;\">}<\/span><\/pre>\n<p><b>4. Comment trong code:<\/b><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">D\u00f2ng \u0111\u01a1n:<\/span><span style=\"font-weight: 400;\"> \/\/ \u0110\u00e2y l\u00e0 m\u1ed9t d\u00f2ng ch\u00fa th\u00edch<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Nhi\u1ec1u d\u00f2ng:\u00a0\u00a0<\/span><\/li>\n<\/ul>\n<pre><span style=\"font-weight: 400;\">\/* \u0110\u00e2y l\u00e0 m\u1ed9t<\/span>\n<span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u0111o\u1ea1n ch\u00fa th\u00edch nhi\u1ec1u d\u00f2ng *\/<\/span><\/pre>\n<h3><b>Bi\u1ebfn v\u00e0 Ki\u1ec3u d\u1eef li\u1ec7u<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Dart h\u1ed7 tr\u1ee3 nhi\u1ec1u ki\u1ec3u d\u1eef li\u1ec7u kh\u00e1c nhau, gi\u00fap l\u1eadp tr\u00ecnh vi\u00ean d\u1ec5 d\u00e0ng l\u00e0m vi\u1ec7c v\u1edbi d\u1eef li\u1ec7u trong \u1ee9ng d\u1ee5ng.<\/span><\/p>\n<p><b>1. Ki\u1ec3u d\u1eef li\u1ec7u c\u01a1 b\u1ea3n<\/b><\/p>\n<p><span style=\"font-weight: 400;\">S\u1ed1 nguy\u00ean (<\/span><span style=\"font-weight: 400;\">int<\/span><span style=\"font-weight: 400;\">): D\u00f9ng \u0111\u1ec3 l\u01b0u tr\u1eef s\u1ed1 nguy\u00ean:<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">int age = 25;<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">S\u1ed1 th\u1ef1c (double): L\u01b0u tr\u1eef s\u1ed1 th\u1ef1c c\u00f3 d\u1ea5u ch\u1ea5m \u0111\u1ed9ng:<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">double pi = 3.1415;<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">Chu\u1ed7i (String): D\u00f9ng \u0111\u1ec3 l\u01b0u tr\u1eef v\u0103n b\u1ea3n:<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">String name = \"Dart\";<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">Boolean (bool): Ch\u1ec9 nh\u1eadn gi\u00e1 tr\u1ecb true ho\u1eb7c false bool:<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">isFlutterAwesome = true;<\/span><\/pre>\n<p><b>2. Ki\u1ec3u danh s\u00e1ch (List)<\/b><\/p>\n<p><span style=\"font-weight: 400;\">Danh s\u00e1ch l\u00e0 m\u1ed9t t\u1eadp h\u1ee3p c\u00e1c ph\u1ea7n t\u1eed c\u00f3 th\u1ee9 t\u1ef1.<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">List&lt;int&gt; numbers = [1, 2, 3, 4, 5];<\/span>\n<span style=\"font-weight: 400;\">print(numbers[0]); \/\/ 1<\/span><b><\/b><\/pre>\n<p><b>3. Ki\u1ec3u t\u1eeb \u0111i\u1ec3n (Map)<\/b><\/p>\n<p><span style=\"font-weight: 400;\">T\u1eeb \u0111i\u1ec3n l\u01b0u tr\u1eef c\u00e1c c\u1eb7p kh\u00f3a &#8211; gi\u00e1 tr\u1ecb.<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">Map&lt;String, int&gt; scores = {<\/span>\n<span style=\"font-weight: 400;\"> \u00a0'Alice': 90,<\/span>\n<span style=\"font-weight: 400;\"> \u00a0'Bob': 85<\/span>\n<span style=\"font-weight: 400;\">};<\/span>\n<span style=\"font-weight: 400;\">print(scores['Alice']); \/\/ 90<\/span><b><\/b><\/pre>\n<p><b>4. Ki\u1ec3u \u0111\u1ed9ng (<\/b><b>dynamic, var, late<\/b><b>)<\/b><\/p>\n<p>dynamic: Bi\u1ebfn c\u00f3 th\u1ec3 nh\u1eadn b\u1ea5t k\u1ef3 ki\u1ec3u d\u1eef li\u1ec7u n\u00e0o.<\/p>\n<pre>dynamic x = 10;\nx = \"Hello\"; \/\/ Kh\u00f4ng b\u00e1o l\u1ed7i<\/pre>\n<p>var: X\u00e1c \u0111\u1ecbnh ki\u1ec3u d\u1ef1a tr\u00ean gi\u00e1 tr\u1ecb g\u00e1n ban \u0111\u1ea7u.<\/p>\n<pre>var y = 20;\n\/\/ y = \"String\"; \/\/ L\u1ed7i bi\u00ean d\u1ecbch v\u00ec `y` \u0111\u00e3 \u0111\u01b0\u1ee3c x\u00e1c \u0111\u1ecbnh l\u00e0 `int`<\/pre>\n<p>late: Ch\u1ec9 kh\u1edfi t\u1ea1o bi\u1ebfn khi c\u1ea7n thi\u1ebft, gi\u00fap t\u1ed1i \u01b0u b\u1ed9 nh\u1edb:<\/p>\n<pre>late String message;\nmessage = \"Xin ch\u00e0o!\";\nprint(message);<\/pre>\n<h3><b>To\u00e1n t\u1eed v\u00e0 Bi\u1ec3u th\u1ee9c<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Dart h\u1ed7 tr\u1ee3 nhi\u1ec1u lo\u1ea1i to\u00e1n t\u1eed gi\u00fap x\u1eed l\u00fd d\u1eef li\u1ec7u linh ho\u1ea1t h\u01a1n.<\/span><\/p>\n<p><strong>1. To\u00e1n t\u1eed s\u1ed1 h\u1ecdc:<\/strong><\/p>\n<pre>int a = 10, b = 3;\nprint(a + b); \/\/ 13\nprint(a - b); \/\/ 7\nprint(a * b); \/\/ 30\nprint(a \/ b); \/\/ 3.3333\nprint(a ~\/ b); \/\/ 3 (Chia l\u1ea5y ph\u1ea7n nguy\u00ean)\nprint(a % b); \/\/ 1 (L\u1ea5y ph\u1ea7n d\u01b0)<\/pre>\n<p><strong>2. To\u00e1n t\u1eed so s\u00e1nh:<\/strong><\/p>\n<p>Tr\u1ea3 v\u1ec1 gi\u00e1 tr\u1ecb true ho\u1eb7c false.<\/p>\n<pre>print(5 &gt; 3);\u00a0 \/\/ true\nprint(5 &lt; 3);\u00a0 \/\/ false\nprint(5 == 5); \/\/ true\nprint(5 != 3); \/\/ true<\/pre>\n<p><strong>3. To\u00e1n t\u1eed logic:<\/strong><\/p>\n<p>D\u00f9ng \u0111\u1ec3 k\u1ebft h\u1ee3p c\u00e1c bi\u1ec3u th\u1ee9c \u0111i\u1ec1u ki\u1ec7n.<\/p>\n<pre>bool x = true, y = false;\nprint(x &amp;&amp; y); \/\/ false (AND)\nprint(x || y); \/\/ true (OR)\nprint(!x); \u00a0 \u00a0 \/\/ false (NOT)<\/pre>\n<p><strong>4. To\u00e1n t\u1eed g\u00e1n:<\/strong><\/p>\n<p>G\u00e1n gi\u00e1 tr\u1ecb cho bi\u1ebfn.<\/p>\n<pre>int c = 10;\nc += 5; \/\/ c = c + 5\nprint(c); \/\/ 15<\/pre>\n<p><strong>5. To\u00e1n t\u1eed \u0111i\u1ec1u ki\u1ec7n (? : v\u00e0 ??)<\/strong><\/p>\n<p>Dart h\u1ed7 tr\u1ee3 to\u00e1n t\u1eed ba ng\u00f4i gi\u00fap vi\u1ebft code ng\u1eafn g\u1ecdn h\u01a1n.<\/p>\n<pre>int score = 85;\nString result = (score &gt;= 50) ? '\u0110\u1eadu' : 'R\u1edbt';\nprint(result); \/\/ \u0110\u1eadu\nTo\u00e1n t\u1eed ?? d\u00f9ng \u0111\u1ec3 ki\u1ec3m tra gi\u00e1 tr\u1ecb null.\nString? name;\nprint(name ?? 'Kh\u00f4ng c\u00f3 t\u00ean');<\/pre>\n<p><span style=\"font-weight: 400;\">T\u00f3m t\u1eaft v\u1ec1 c\u1ea5u tr\u00fac ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh Dart:<\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Ch\u1ee7 \u0111\u1ec1<\/b><\/td>\n<td><b>M\u00f4 t\u1ea3\u00a0<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>C\u00fa ph\u00e1p c\u01a1 b\u1ea3n<\/b><\/td>\n<td><span style=\"font-weight: 400;\">S\u1eed d\u1ee5ng main() l\u00e0m \u0111i\u1ec3m b\u1eaft \u0111\u1ea7u, k\u1ebft th\u00fac l\u1ec7nh b\u1eb1ng ;, d\u00f9ng {} \u0111\u1ec3 nh\u00f3m kh\u1ed1i l\u1ec7nh, c\u00f3 th\u1ec3 th\u00eam nh\u1eadn x\u00e9t v\u1edbi \/\/ ho\u1eb7c \/* *\/.<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>Bi\u1ebfn &amp; Ki\u1ec3u d\u1eef li\u1ec7u<\/b><\/td>\n<td><span style=\"font-weight: 400;\">H\u1ed7 tr\u1ee3 nhi\u1ec1u ki\u1ec3u d\u1eef li\u1ec7u: int, double, String, bool, List, Map, dynamic, var, late.<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>To\u00e1n t\u1eed<\/b><\/td>\n<td><span style=\"font-weight: 400;\">G\u1ed3m to\u00e1n t\u1eed s\u1ed1 h\u1ecdc, so s\u00e1nh, logic, g\u00e1n, \u0111i\u1ec1u ki\u1ec7n v\u00e0 null.<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>To\u00e1n t\u1eed s\u1ed1 h\u1ecdc<\/b><\/td>\n<td><span style=\"font-weight: 400;\">C\u00e1c ph\u00e9p to\u00e1n: +, -, *, \/, %.<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>To\u00e1n t\u1eed so s\u00e1nh<\/b><\/td>\n<td><span style=\"font-weight: 400;\">So s\u00e1nh hai gi\u00e1 tr\u1ecb (==, !=, &gt;, &lt;, &gt;=, &lt;=).<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>To\u00e1n t\u1eed logic<\/b><\/td>\n<td><span style=\"font-weight: 400;\">K\u1ebft h\u1ee3p bi\u1ec3u th\u1ee9c \u0111i\u1ec1u ki\u1ec7n (&amp;&amp;, \u2018!`).<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>To\u00e1n t\u1eed g\u00e1n<\/b><\/td>\n<td><span style=\"font-weight: 400;\">G\u00e1n gi\u00e1 tr\u1ecb (=, +=, -=, *=, \/=).<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>To\u00e1n t\u1eed \u0111i\u1ec1u ki\u1ec7n<\/b><\/td>\n<td><span style=\"font-weight: 400;\">Ki\u1ec3m tra \u0111i\u1ec1u ki\u1ec7n (? :).<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>To\u00e1n t\u1eed null (??)<\/b><\/td>\n<td><span style=\"font-weight: 400;\">G\u00e1n gi\u00e1 tr\u1ecb m\u1eb7c \u0111\u1ecbnh n\u1ebfu bi\u1ebfn null.<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-weight: 400;\">Hi\u1ec3u r\u00f5 nh\u1eefng kh\u00e1i ni\u1ec7m n\u00e0y s\u1ebd gi\u00fap b\u1ea1n d\u1ec5 d\u00e0ng h\u1ecdc v\u00e0 \u00e1p d\u1ee5ng Dart v\u00e0o c\u00e1c d\u1ef1 \u00e1n th\u1ef1c t\u1ebf, \u0111\u1eb7c bi\u1ec7t l\u00e0 khi ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng v\u1edbi Flutter.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Buoc_3_Tim_hieu_cac_thanh_phan_pho_bien_trong_Dart\"><\/span><b>B\u01b0\u1edbc 3: T\u00ecm hi\u1ec3u c\u00e1c th\u00e0nh ph\u1ea7n ph\u1ed5 bi\u1ebfn trong Dart<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Dart h\u1ed7 tr\u1ee3 nhi\u1ec1u c\u1ea5u tr\u00fac \u0111i\u1ec1u khi\u1ec3n gi\u00fap ki\u1ec3m so\u00e1t lu\u1ed3ng th\u1ef1c thi c\u1ee7a ch\u01b0\u01a1ng tr\u00ecnh:<\/span><\/p>\n<h3><b>C\u00e2u l\u1ec7nh \u0111i\u1ec1u ki\u1ec7n<\/b><\/h3>\n<p><strong>1. if, else if, else:<\/strong><\/p>\n<p><span style=\"font-weight: 400;\">D\u00f9ng \u0111\u1ec3 ki\u1ec3m tra \u0111i\u1ec1u ki\u1ec7n v\u00e0 th\u1ef1c thi c\u00e1c kh\u1ed1i l\u1ec7nh t\u01b0\u01a1ng \u1ee9ng.<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">int age = 20;<\/span>\n<span style=\"font-weight: 400;\">if (age &gt;= 18) {<\/span>\n<span style=\"font-weight: 400;\"> \u00a0print(\"B\u1ea1n \u0111\u1ee7 tu\u1ed5i.\");<\/span>\n<span style=\"font-weight: 400;\">} else {<\/span>\n<span style=\"font-weight: 400;\"> \u00a0print(\"B\u1ea1n ch\u01b0a \u0111\u1ee7 tu\u1ed5i.\");<\/span>\n<span style=\"font-weight: 400;\">}<\/span><\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-85904\" src=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-3-vippro.png\" alt=\"\" width=\"1600\" height=\"710\" srcset=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-3-vippro.png 1600w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-3-vippro-300x133.png 300w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-3-vippro-1536x682.png 640w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-3-vippro-200x89.png 200w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<p><strong>2. Switch-case:<\/strong><\/p>\n<p><span style=\"font-weight: 400;\">Thay th\u1ebf nhi\u1ec1u \u0111i\u1ec1u ki\u1ec7n <\/span><span style=\"font-weight: 400;\">if-else<\/span><span style=\"font-weight: 400;\"> b\u1eb1ng c\u00e1ch ki\u1ec3m tra gi\u00e1 tr\u1ecb c\u1ee5 th\u1ec3.<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">String role = \"admin\";<\/span>\n<span style=\"font-weight: 400;\">switch (role) {<\/span>\n<span style=\"font-weight: 400;\"> \u00a0case \"admin\":<\/span>\n<span style=\"font-weight: 400;\"> \u00a0\u00a0\u00a0print(\"B\u1ea1n l\u00e0 qu\u1ea3n tr\u1ecb vi\u00ean.\");<\/span>\n<span style=\"font-weight: 400;\"> \u00a0\u00a0\u00a0break;<\/span>\n<span style=\"font-weight: 400;\"> \u00a0case \"user\":<\/span>\n<span style=\"font-weight: 400;\"> \u00a0\u00a0\u00a0print(\"B\u1ea1n l\u00e0 ng\u01b0\u1eddi d\u00f9ng.\");<\/span>\n<span style=\"font-weight: 400;\"> \u00a0\u00a0\u00a0break;<\/span>\n<span style=\"font-weight: 400;\"> \u00a0default:<\/span>\n<span style=\"font-weight: 400;\"> \u00a0\u00a0\u00a0print(\"Kh\u00f4ng x\u00e1c \u0111\u1ecbnh.\");<\/span>\n<span style=\"font-weight: 400;\">}<\/span><\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-85905\" src=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-4-vippro.png\" alt=\"\" width=\"1600\" height=\"711\" srcset=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-4-vippro.png 1600w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-4-vippro-300x133.png 300w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-4-vippro-1536x683.png 640w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-4-vippro-200x89.png 200w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<h3><b>V\u00f2ng l\u1eb7p for, while, do-while, forEach<\/b><\/h3>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>for<\/b><span style=\"font-weight: 400;\">: L\u1eb7p v\u1edbi s\u1ed1 l\u1ea7n x\u00e1c \u0111\u1ecbnh.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>while<\/b><span style=\"font-weight: 400;\">: L\u1eb7p khi \u0111i\u1ec1u ki\u1ec7n \u0111\u00fang.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>do-while<\/b><span style=\"font-weight: 400;\">: L\u1eb7p \u00edt nh\u1ea5t m\u1ed9t l\u1ea7n r\u1ed3i ki\u1ec3m tra \u0111i\u1ec1u ki\u1ec7n.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>forEach<\/b><span style=\"font-weight: 400;\">: Duy\u1ec7t qua danh s\u00e1ch.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">V\u00ed d\u1ee5 v\u00f2ng l\u1eb7p for:<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">for (int i = 0; i &lt; 5; i++) {<\/span>\n<span style=\"font-weight: 400;\"> \u00a0print(\"L\u1eb7p l\u1ea7n th\u1ee9 $i\");<\/span>\n<span style=\"font-weight: 400;\">}<\/span><\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-85906\" src=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-5-vippro.png\" alt=\"\" width=\"1600\" height=\"711\" srcset=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-5-vippro.png 1600w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-5-vippro-300x133.png 300w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-5-vippro-1536x683.png 640w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-5-vippro-200x89.png 200w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<h3><b>X\u1eed l\u00fd ngo\u1ea1i l\u1ec7 v\u1edbi try-catch-finally<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Dart h\u1ed7 tr\u1ee3 x\u1eed l\u00fd l\u1ed7i v\u1edbi <\/span><span style=\"font-weight: 400;\">try-catch-finally<\/span><span style=\"font-weight: 400;\"> \u0111\u1ec3 ng\u0103n ch\u01b0\u01a1ng tr\u00ecnh b\u1ecb d\u1eebng \u0111\u1ed9t ng\u1ed9t:<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">try {<\/span>\n<span style=\"font-weight: 400;\"> \u00a0int result = 10 ~\/ 0;<\/span>\n<span style=\"font-weight: 400;\"> \u00a0print(result);<\/span>\n<span style=\"font-weight: 400;\">} catch (e) {<\/span>\n<span style=\"font-weight: 400;\"> \u00a0print(\"L\u1ed7i x\u1ea3y ra: \\$e\");<\/span>\n<span style=\"font-weight: 400;\">} finally {<\/span>\n<span style=\"font-weight: 400;\"> \u00a0print(\"Lu\u00f4n th\u1ef1c hi\u1ec7n\");<\/span>\n<span style=\"font-weight: 400;\">}\n<\/span><\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-85907\" src=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-6-vippro.png\" alt=\"\" width=\"1600\" height=\"705\" srcset=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-6-vippro.png 1600w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-6-vippro-300x132.png 300w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-6-vippro-1536x677.png 640w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-6-vippro-200x88.png 200w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<h3><b>H\u00e0m v\u00e0 l\u1eadp tr\u00ecnh h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng trong Dart<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">H\u00e0m trong Dart l\u00e0 m\u1ed9t kh\u1ed1i m\u00e3 c\u00f3 th\u1ec3 t\u00e1i s\u1eed d\u1ee5ng.<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">double tinhTong(double a, double b) =&gt; a + b;<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">\u0110\u1ecbnh ngh\u0129a h\u00e0m tinhTong \u0111\u1ea7u v\u00e0o s\u1ebd c\u00f3 2 tham s\u1ed1 l\u00e0 a v\u00e0 b, c\u00f3 ki\u1ec3u d\u1eef li\u1ec7u l\u00e0 double v\u00e0 \u0111\u1ea7u ra (k\u1ebft qu\u1ea3) s\u1ebd l\u00e0 gi\u00e1 tr\u1ecb t\u1ed5ng sau khi c\u1ed9ng 2 tham s\u1ed1 a v\u00e0 b.<\/span><\/p>\n<p><b>C\u00e1c ki\u1ec3u tham s\u1ed1 trong h\u00e0m:<\/b><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>V\u1ecb tr\u00ed<\/b><span style=\"font-weight: 400;\">: Truy\u1ec1n tham s\u1ed1 theo th\u1ee9 t\u1ef1.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>\u0110\u1eb7t t\u00ean<\/b><span style=\"font-weight: 400;\">: Truy\u1ec1n tham s\u1ed1 theo t\u00ean.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>M\u1eb7c \u0111\u1ecbnh<\/b><span style=\"font-weight: 400;\">: Thi\u1ebft l\u1eadp gi\u00e1 tr\u1ecb m\u1eb7c \u0111\u1ecbnh.<\/span><\/li>\n<\/ul>\n<h3><b>L\u1edbp v\u00e0 \u0111\u1ed1i t\u01b0\u1ee3ng<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Dart l\u00e0 ng\u00f4n ng\u1eef h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng, s\u1eed d\u1ee5ng l\u1edbp v\u00e0 \u0111\u1ed1i t\u01b0\u1ee3ng.<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">class Person {<\/span>\n<span style=\"font-weight: 400;\"> \u00a0String name;<\/span>\n<span style=\"font-weight: 400;\"> \u00a0int age;<\/span>\n<span style=\"font-weight: 400;\"> \u00a0Person(this.name, this.age);<\/span>\n<span style=\"font-weight: 400;\">}<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">V\u00ed d\u1ee5 tr\u00ean \u0111\u1ecbnh ngh\u0129a m\u1ed9t \u0111\u1ed1i t\u01b0\u1ee3ng c\u00f3 t\u00ean l\u00e0 Person (ng\u01b0\u1eddi), c\u00f3 hai gi\u00e1 tr\u1ecb thu\u1ed9c t\u00ednh sau l\u00e0 age (tu\u1ed5i) v\u00e0 name (t\u00ean) c\u1ee7a \u0111\u1ed1i t\u01b0\u1ee3ng Person. V\u1ec1 b\u1ea3n ch\u1ea5t th\u00ec c\u00e1ch khai b\u00e1o m\u1ed9t \u0111\u1ed1i t\u01b0\u1ee3ng trong Dart c\u0169ng t\u01b0\u01a1ng t\u1ef1 format c\u1ee7a c\u00e1c ng\u00f4n ng\u1eef kh\u00e1c, \u0111i\u1ec3m kh\u00e1c nhau duy nh\u1ea5t l\u00e0 c\u00fa ph\u00e1p c\u1ee7a m\u1ed7i ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh m\u00e0 th\u00f4i.<\/span><\/p>\n<h3><b>Constructor, getter, setter<\/b><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Constructor<\/b><span style=\"font-weight: 400;\">: H\u00e0m kh\u1edfi t\u1ea1o \u0111\u1ed1i t\u01b0\u1ee3ng.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Getter\/Setter<\/b><span style=\"font-weight: 400;\">: Truy c\u1eadp v\u00e0 thay \u0111\u1ed5i d\u1eef li\u1ec7u an to\u00e0n.<\/span><\/li>\n<\/ul>\n<pre><span style=\"font-weight: 400;\">class Car {<\/span>\n<span style=\"font-weight: 400;\"> \u00a0String _brand;<\/span>\n<span style=\"font-weight: 400;\"> \u00a0Car(this._brand);<\/span>\n<span style=\"font-weight: 400;\"> \u00a0String get brand =&gt; _brand;<\/span>\n<span style=\"font-weight: 400;\"> \u00a0set brand(String b) =&gt; _brand = b;<\/span>\n<span style=\"font-weight: 400;\">}<\/span><\/pre>\n<h3><b>K\u1ebf th\u1eeba v\u00e0 \u0111a h\u00ecnh<\/b><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>K\u1ebf th\u1eeba<\/b><span style=\"font-weight: 400;\">: L\u1edbp con c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng l\u1ea1i thu\u1ed9c t\u00ednh v\u00e0 ph\u01b0\u01a1ng th\u1ee9c c\u1ee7a l\u1edbp cha.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>\u0110a h\u00ecnh<\/b><span style=\"font-weight: 400;\">: Cho ph\u00e9p ghi \u0111\u00e8 ph\u01b0\u01a1ng th\u1ee9c.<\/span><\/li>\n<\/ul>\n<pre><span style=\"font-weight: 400;\">class Animal {<\/span>\n<span style=\"font-weight: 400;\"> \u00a0void makeSound() =&gt; print(\"\u00c2m thanh chung\");<\/span>\n<span style=\"font-weight: 400;\">}<\/span>\n<span style=\"font-weight: 400;\">class Dog extends Animal {<\/span>\n<span style=\"font-weight: 400;\"> \u00a0@override<\/span>\n<span style=\"font-weight: 400;\"> \u00a0void makeSound() =&gt; print(\"G\u00e2u g\u00e2u\");<\/span>\n<span style=\"font-weight: 400;\">}<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">Trong DartPad ch\u00fang ta c\u00f3 th\u1ec3 t\u00e1i hi\u1ec7n l\u1ea1i logic \u0111o\u1ea1n code tr\u00ean nh\u01b0 sau\u00a0<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-85908\" src=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-7-vippro.jpg\" alt=\"\" width=\"1600\" height=\"335\" srcset=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-7-vippro.jpg 1600w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-7-vippro-300x63.jpg 300w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-7-vippro-1536x322.jpg 640w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-7-vippro-200x42.jpg 200w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<h3><b>Abstract class, Interface, Mixins<\/b><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Abstract class<\/b><span style=\"font-weight: 400;\">: L\u1edbp tr\u1eebu t\u01b0\u1ee3ng kh\u00f4ng th\u1ec3 kh\u1edfi t\u1ea1o.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Interface<\/b><span style=\"font-weight: 400;\">: X\u00e1c \u0111\u1ecbnh b\u1ed9 quy t\u1eafc c\u1ea7n th\u1ef1c hi\u1ec7n.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Mixins<\/b><span style=\"font-weight: 400;\">: Cho ph\u00e9p m\u1ed9t l\u1edbp s\u1eed d\u1ee5ng nhi\u1ec1u \u0111\u1eb7c \u0111i\u1ec3m t\u1eeb l\u1edbp kh\u00e1c.<\/span><\/li>\n<\/ul>\n<pre><span style=\"font-weight: 400;\">abstract class Shape {<\/span>\n<span style=\"font-weight: 400;\"> \u00a0void draw();<\/span>\n<span style=\"font-weight: 400;\">}<\/span>\n<span style=\"font-weight: 400;\">class Circle implements Shape {<\/span>\n<span style=\"font-weight: 400;\"> \u00a0@override<\/span>\n<span style=\"font-weight: 400;\"> \u00a0void draw() =&gt; print(\"V\u1ebd h\u00ecnh tr\u00f2n\");<\/span>\n<span style=\"font-weight: 400;\">}<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">Trong Dart Pad, ta c\u00f3 th\u1ec3 t\u00e1i hi\u1ec7n l\u1ea1i code nh\u01b0 sau\u00a0<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-85909\" src=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-8-vippro.jpg\" alt=\"\" width=\"1600\" height=\"315\" srcset=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-8-vippro.jpg 1600w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-8-vippro-300x59.jpg 300w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-8-vippro-1536x302.jpg 640w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/tu-hoc-dart-8-vippro-200x39.jpg 200w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<h3><b>L\u1eadp tr\u00ecnh b\u1ea5t \u0111\u1ed3ng b\u1ed9 (Asynchronous Programming)<\/b><\/h3>\n<p><strong>1. Future v\u00e0 async-await:<\/strong><\/p>\n<p><span style=\"font-weight: 400;\">Dart h\u1ed7 tr\u1ee3 l\u1eadp tr\u00ecnh b\u1ea5t \u0111\u1ed3ng b\u1ed9 v\u1edbi Future v\u00e0 async-await<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">Future&lt;String&gt; fetchData() async {<\/span>\n<span style=\"font-weight: 400;\"> \u00a0await Future.delayed(Duration(seconds: 2));<\/span>\n<span style=\"font-weight: 400;\"> \u00a0return \"D\u1eef li\u1ec7u t\u1ea3i xong\";<\/span>\n<span style=\"font-weight: 400;\">}<\/span><\/pre>\n<p><strong>2. Stream v\u00e0 c\u00e1ch s\u1eed d\u1ee5ng:<\/strong><\/p>\n<p><span style=\"font-weight: 400;\">Stream<\/span><span style=\"font-weight: 400;\"> gi\u00fap x\u1eed l\u00fd nhi\u1ec1u d\u1eef li\u1ec7u theo th\u1eddi gian.<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">Stream&lt;int&gt; countStream() async* {<\/span>\n<span style=\"font-weight: 400;\"> \u00a0for (int i = 0; i &lt; 5; i++) {<\/span>\n<span style=\"font-weight: 400;\"> \u00a0\u00a0\u00a0yield i;<\/span>\n<span style=\"font-weight: 400;\"> \u00a0}<\/span>\n<span style=\"font-weight: 400;\">}<\/span><\/pre>\n<p><b>S\u1ef1 kh\u00e1c bi\u1ec7t gi\u1eefa Future v\u00e0 Stream<\/b><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Future<\/b><span style=\"font-weight: 400;\">: Tr\u1ea3 v\u1ec1 m\u1ed9t gi\u00e1 tr\u1ecb duy nh\u1ea5t sau khi ho\u00e0n th\u00e0nh.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Stream<\/b><span style=\"font-weight: 400;\">: Cung c\u1ea5p nhi\u1ec1u gi\u00e1 tr\u1ecb theo th\u1eddi gian.<\/span><\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Buoc_4_Cach_quan_ly_cac_thu_vien_va_package_pho_bien\"><\/span><b>B\u01b0\u1edbc 4: C\u00e1ch qu\u1ea3n l\u00fd c\u00e1c th\u01b0 vi\u1ec7n v\u00e0 package ph\u1ed5 bi\u1ebfn<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Qu\u1ea3n l\u00fd th\u01b0 vi\u1ec7n v\u00e0 package trong Dart l\u00e0 m\u1ed9t k\u1ef9 n\u0103ng c\u1ed1t y\u1ebfu, gi\u00fap t\u1eadn d\u1ee5ng m\u00e3 ngu\u1ed3n m\u1edf t\u1eeb c\u1ed9ng \u0111\u1ed3ng th\u00f4ng qua kho l\u01b0u tr\u1eef ch\u00ednh th\u1ee9c <\/span><a href=\"https:\/\/pub.dev\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Pub.dev<\/span><\/a><span style=\"font-weight: 400;\">. File <\/span><span style=\"font-weight: 400;\">pubspec.yaml<\/span><span style=\"font-weight: 400;\"> \u0111\u00f3ng vai tr\u00f2 trung t\u00e2m, n\u01a1i b\u1ea1n khai b\u00e1o c\u00e1c dependencies c\u1ea7n thi\u1ebft. S\u1eed d\u1ee5ng l\u1ec7nh <\/span><span style=\"font-weight: 400;\">flutter pub get<\/span><span style=\"font-weight: 400;\"> (ho\u1eb7c <\/span><span style=\"font-weight: 400;\">dart pub get<\/span><span style=\"font-weight: 400;\"> cho d\u1ef1 \u00e1n thu\u1ea7n) \u0111\u1ec3 t\u1ea3i v\u00e0 k\u00edch ho\u1ea1t c\u00e1c package n\u00e0y, sau \u0111\u00f3 import ch\u00fang v\u00e0o code c\u1ee7a b\u1ea1n \u0111\u1ec3 m\u1edf r\u1ed9ng kh\u1ea3 n\u0103ng \u1ee9ng d\u1ee5ng m\u1ed9t c\u00e1ch hi\u1ec7u qu\u1ea3 v\u00e0 ti\u1ebft ki\u1ec7m th\u1eddi gian.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">D\u01b0\u1edbi \u0111\u00e2y l\u00e0 v\u00ed d\u1ee5 khi b\u1ea1n mu\u1ed1n c\u00e0i \u0111\u1eb7t v\u00e0 s\u1eed d\u1ee5ng m\u1ed9t th\u01b0 vi\u1ec7n b\u00ean th\u1ee9 3 nh\u01b0 <\/span><a href=\"https:\/\/pub.dev\/packages\/http\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">http<\/span><\/a><span style=\"font-weight: 400;\">:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">C\u00e1ch c\u00e0i \u0111\u1eb7t nh\u01b0 sau:<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">dependencies:<\/span>\n<span style=\"font-weight: 400;\">\u00a0\u00a0http: ^0.13.4<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">Ngo\u00e0i ra c\u00f2n c\u00f3 1 v\u00e0i c\u00e1c th\u01b0 vi\u1ec7n ph\u1ed5 bi\u1ebfn kh\u00e1c nh\u01b0:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/pub.dev\/packages\/path\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">path<\/span><\/a><span style=\"font-weight: 400;\">: X\u1eed l\u00fd \u0111\u01b0\u1eddng d\u1eabn file.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/pub.dev\/packages\/provider\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">provider<\/span><\/a><span style=\"font-weight: 400;\">: Qu\u1ea3n l\u00fd tr\u1ea1ng th\u00e1i.<\/span><\/li>\n<\/ul>\n<p><b>V\u00ed d\u1ee5 s\u1eed d\u1ee5ng package c\u01a1 b\u1ea3n<\/b><\/p>\n<pre><span style=\"font-weight: 400;\">import 'package:http\/http.dart' as http;<\/span>\n<span style=\"font-weight: 400;\">Future&lt;void&gt; fetchData() async {<\/span>\n<span style=\"font-weight: 400;\"> \u00a0final response = await http.get(Uri.parse('https:\/\/api.example.com'));<\/span>\n<span style=\"font-weight: 400;\"> \u00a0print(response.body);<\/span>\n<span style=\"font-weight: 400;\">}<\/span><\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Buoc_5_Huong_dan_bat_dau_voi_chuong_Dart_dau_tien\"><\/span><b>B\u01b0\u1edbc 5: H\u01b0\u1edbng d\u1eabn b\u1eaft \u0111\u1ea7u v\u1edbi ch\u01b0\u01a1ng Dart \u0111\u1ea7u ti\u00ean<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">X\u00e2y d\u1ef1ng m\u1ed9t \u1ee9ng d\u1ee5ng console \u0111\u01a1n gi\u1ea3n:<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">void main() {<\/span>\n<span style=\"font-weight: 400;\"> \u00a0stdout.write(\"Nh\u1eadp t\u00ean c\u1ee7a b\u1ea1n: \");<\/span>\n<span style=\"font-weight: 400;\"> \u00a0String? name = stdin.readLineSync();<\/span>\n<span style=\"font-weight: 400;\"> \u00a0stdout.write(\"Xin ch\u00e0o, $name!\");<\/span>\n<span style=\"font-weight: 400;\"> \u00a0stdout.write(\"\\n\");<\/span>\n<span style=\"font-weight: 400;\">}<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">B\u1ea1n c\u00f3 th\u1ec3 tham kh\u1ea3o th\u00eam m\u1ed9t v\u00e0i h\u01b0\u1edbng d\u1eabn c\u1ee5 th\u1ec3 h\u01a1n d\u01b0\u1edbi \u0111\u00e2y:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Dart Official Documentation<\/b><span style=\"font-weight: 400;\"> &#8211;<\/span>\u00a0<a href=\"https:\/\/dart.dev\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">https:\/\/dart.dev<\/span><\/a>: <span style=\"font-weight: 400;\">Ngu\u1ed3n ch\u00ednh th\u1ee9c v\u1ec1 Dart, bao g\u1ed3m h\u01b0\u1edbng d\u1eabn chi ti\u1ebft v\u00e0 API reference<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Flutter &amp; Dart Cookbook<\/b><span style=\"font-weight: 400;\"> &#8211;<\/span>\u00a0<a href=\"https:\/\/pub.dev\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">https:\/\/pub.dev<\/span><\/a>: <span style=\"font-weight: 400;\">Trang qu\u1ea3n l\u00fd package c\u1ee7a Dart, gi\u00fap t\u00ecm ki\u1ebfm th\u01b0 vi\u1ec7n h\u1eefu \u00edch<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Dart Asynchronous Programming<\/b><span style=\"font-weight: 400;\"> &#8211; <\/span><a href=\"https:\/\/dart.dev\/guides\/language\/language-tour#asynchrony-support\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">https:\/\/dart.dev\/guides\/language\/language-tour#asynchrony-support<\/span><\/a>: <span style=\"font-weight: 400;\">H\u01b0\u1edbng d\u1eabn ch\u00ednh th\u1ee9c v\u1ec1 l\u1eadp tr\u00ecnh b\u1ea5t \u0111\u1ed3ng b\u1ed9 trong Dart<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Effective Dart<\/b><span style=\"font-weight: 400;\"> &#8211; <\/span><a href=\"https:\/\/dart.dev\/guides\/language\/effective-dart\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">https:\/\/dart.dev\/guides\/language\/effective-dart<\/span><\/a>: <span style=\"font-weight: 400;\">C\u00e1c best practices khi l\u1eadp tr\u00ecnh v\u1edbi Dart<\/span><\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Tai_nguyen_tu_hoc_Dart_hieu_qua\"><\/span><b>T\u00e0i nguy\u00ean t\u1ef1 h\u1ecdc Dart hi\u1ec7u qu\u1ea3<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">C\u00e1c ngu\u1ed3n t\u00e0i nguy\u00ean \u0111\u01b0\u1ee3c li\u1ec7t k\u00ea d\u01b0\u1edbi \u0111\u00e2y s\u1ebd gi\u00fap b\u1ea1n nghi\u00ean c\u1ee9u v\u00e0 t\u00ecm hi\u1ec3u s\u00e2u v\u1ec1 ng\u00f4n ng\u1eef Dart d\u1ec5 d\u00e0ng h\u01a1n:<\/span><\/p>\n<h3><b>T\u00e0i li\u1ec7u ch\u00ednh th\u1ee9c c\u1ee7a Dart<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">T\u00e0i li\u1ec7u ch\u00ednh th\u1ee9c lu\u00f4n l\u00e0 ngu\u1ed3n h\u1ecdc t\u1eadp \u0111\u00e1ng tin c\u1eady nh\u1ea5t, cung c\u1ea5p ki\u1ebfn th\u1ee9c chu\u1ea9n x\u00e1c v\u00e0 c\u1eadp nh\u1eadt li\u00ean t\u1ee5c. Khi h\u1ecdc Dart, b\u1ea1n n\u00ean b\u1eaft \u0111\u1ea7u t\u1eeb nh\u1eefng t\u00e0i nguy\u00ean sau:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Dart Documentation<\/span><a href=\"https:\/\/dart.dev\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\"> dart.dev<\/span><\/a><span style=\"font-weight: 400;\">: Trang ch\u1ee7 Dart v\u1edbi \u0111\u1ea7y \u0111\u1ee7 t\u00e0i li\u1ec7u, h\u01b0\u1edbng d\u1eabn v\u00e0 API reference.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/dart.dev\/language\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Dart Language Tour<\/span><\/a><span style=\"font-weight: 400;\">: Cung c\u1ea5p c\u00e1i nh\u00ecn t\u1ed5ng quan v\u1ec1 c\u00fa ph\u00e1p v\u00e0 t\u00ednh n\u0103ng ch\u00ednh c\u1ee7a Dart.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/docs.flutter.dev\/cookbook\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Dart Cookbook:<\/span><\/a><span style=\"font-weight: 400;\"> T\u1ed5ng h\u1ee3p c\u00e1c b\u00e0i h\u01b0\u1edbng d\u1eabn v\u1ec1 c\u00e1ch gi\u1ea3i quy\u1ebft c\u00e1c v\u1ea5n \u0111\u1ec1 th\u01b0\u1eddng g\u1eb7p khi l\u1eadp tr\u00ecnh v\u1edbi Dart.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">DartPad (<\/span><a href=\"https:\/\/dartpad.dev\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">dartpad.dev<\/span><\/a><span style=\"font-weight: 400;\">): M\u1ed9t m\u00f4i tr\u01b0\u1eddng tr\u1ef1c tuy\u1ebfn \u0111\u1ec3 th\u1eed nghi\u1ec7m code Dart m\u00e0 kh\u00f4ng c\u1ea7n c\u00e0i \u0111\u1eb7t.<\/span><\/li>\n<\/ul>\n<h3><b>C\u00e1c kh\u00f3a h\u1ecdc mi\u1ec5n ph\u00ed ch\u1ea5t l\u01b0\u1ee3ng:<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Ngo\u00e0i t\u00e0i li\u1ec7u ch\u00ednh th\u1ee9c, b\u1ea1n c\u00f3 th\u1ec3 h\u1ecdc qua c\u00e1c kh\u00f3a h\u1ecdc tr\u1ef1c tuy\u1ebfn t\u1eeb c\u01a1 b\u1ea3n \u0111\u1ebfn n\u00e2ng cao. D\u01b0\u1edbi \u0111\u00e2y l\u00e0 m\u1ed9t s\u1ed1 kh\u00f3a h\u1ecdc mi\u1ec5n ph\u00ed v\u00e0 ch\u1ea5t l\u01b0\u1ee3ng:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/www.freecodecamp.org\/news\/tag\/dart\/\" target=\"_blank\" rel=\"noopener\"><b>Dart from Scratch<\/b><span style=\"font-weight: 400;\"> \u2013 freeCodeCamp<\/span><\/a><span style=\"font-weight: 400;\">: Trang n\u00e0y ch\u1ee9a m\u1ed9t b\u1ed9 s\u01b0u t\u1eadp c\u00e1c b\u00e0i vi\u1ebft, h\u01b0\u1edbng d\u1eabn v\u00e0 t\u00e0i nguy\u00ean li\u00ean quan \u0111\u1ebfn ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh Dart. FreeCodeCamp l\u00e0 m\u1ed9t n\u1ec1n t\u1ea3ng n\u1ed5i ti\u1ebfng \u0111\u1ec3 h\u1ecdc l\u1eadp tr\u00ecnh v\u00e0 ph\u1ea7n tin t\u1ee9c c\u1ee7a h\u1ecd th\u01b0\u1eddng c\u00f3 n\u1ed9i dung ch\u1ea5t l\u01b0\u1ee3ng cao \u0111\u01b0\u1ee3c t\u1ea1o ra b\u1edfi c\u1ed9ng \u0111\u1ed3ng nh\u1eefng nh\u00e0 ph\u00e1t tri\u1ec3n n\u00f3i chung v\u00e0 l\u1eadp tr\u00ecnh vi\u00ean mobile s\u1eed d\u1ee5ng Dart &#8211; Flutter n\u00f3i ri\u00eang.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/flutter.dev\/development\" target=\"_blank\" rel=\"noopener\"><b>Dart Programming for Beginners<\/b><\/a><span style=\"font-weight: 400;\">: M\u1ed9t kh\u00f3a h\u1ecdc do Google h\u1ed7 tr\u1ee3, th\u00edch h\u1ee3p cho ng\u01b0\u1eddi m\u1edbi.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/www.codecademy.com\/resources\/docs\/dart\" target=\"_blank\" rel=\"noopener\"><b>Dart Fundamentals<\/b><span style=\"font-weight: 400;\"> \u2013 Codecademy<\/span><\/a><span style=\"font-weight: 400;\">: H\u1ecdc th\u00f4ng qua c\u00e1c b\u00e0i t\u1eadp th\u1ef1c h\u00e0nh tr\u1ef1c ti\u1ebfp.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><\/li>\n<\/ul>\n<h3><b>C\u00e1c kh\u00f3a h\u1ecdc tr\u1ea3 ph\u00ed ch\u1ea5t l\u01b0\u1ee3ng<\/b><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/www.udemy.com\/course\/flutter-bootcamp-with-dart\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">The Complete Dart Bootcamp \u2013 Udemy<\/span><\/a><span style=\"font-weight: 400;\">: Kh\u00f3a h\u1ecdc to\u00e0n di\u1ec7n v\u1ec1 Dart t\u1eeb c\u01a1 b\u1ea3n \u0111\u1ebfn n\u00e2ng cao.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/www.udemy.com\/course\/learn-flutter-dart-to-build-ios-android-apps\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Flutter &amp; Dart \u2013 The Complete Guide \u2013 Udemy:<\/span><\/a><span style=\"font-weight: 400;\"> K\u1ebft h\u1ee3p h\u1ecdc Dart v\u00e0 Flutter.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/www.pluralsight.com\/paths\/build-mobile-web-applications-with-flutter\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Dart for Absolute Beginners \u2013 Pluralsight:<\/span><\/a><span style=\"font-weight: 400;\"> H\u1ec7 th\u1ed1ng ki\u1ebfn th\u1ee9c chi ti\u1ebft v\u00e0 c\u00f3 b\u00e0i t\u1eadp th\u1ef1c t\u1ebf.<\/span><\/li>\n<\/ul>\n<h3><b>C\u1ed9ng \u0111\u1ed3ng h\u1ed7 tr\u1ee3<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Vi\u1ec7c tham gia c\u00e1c c\u1ed9ng \u0111\u1ed3ng l\u1eadp tr\u00ecnh Dart d\u01b0\u1edbi \u0111\u00e2y gi\u00fap b\u1ea1n ti\u1ebfp c\u1eadn nhanh v\u1edbi ki\u1ebfn th\u1ee9c m\u1edbi, h\u1ecdc h\u1ecfi t\u1eeb nh\u1eefng ng\u01b0\u1eddi \u0111i tr\u01b0\u1edbc v\u00e0 nh\u1eadn tr\u1ee3 gi\u00fap khi g\u1eb7p v\u1ea5n \u0111\u1ec1:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/discord.com\/invite\/dart-community-823048554532700191\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Dart Discord: <\/span><\/a><span style=\"font-weight: 400;\">C\u1ed9ng \u0111\u1ed3ng ch\u00ednh th\u1ee9c c\u1ee7a Dart, n\u01a1i b\u1ea1n c\u00f3 th\u1ec3 h\u1ecfi \u0111\u00e1p v\u00e0 giao l\u01b0u v\u1edbi c\u00e1c l\u1eadp tr\u00ecnh vi\u00ean kh\u00e1c.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"http:\/\/stackoverflow.com\/questions\/tagged\/dart\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Stack Overflow<\/span><\/a><span style=\"font-weight: 400;\">:\u00a0 H\u00e0ng ngh\u00ecn c\u00e2u h\u1ecfi v\u00e0 c\u00e2u tr\u1ea3 l\u1eddi v\u1ec1 Dart t\u1eeb c\u00e1c l\u1eadp tr\u00ecnh vi\u00ean tr\u00ean to\u00e0n th\u1ebf gi\u1edbi.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/www.reddit.com\/r\/dartlang\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Reddit r\/dartlang<\/span><\/a><span style=\"font-weight: 400;\">: N\u01a1i th\u1ea3o lu\u1eadn v\u1ec1 Dart v\u00e0 c\u00e1c \u1ee9ng d\u1ee5ng th\u1ef1c t\u1ebf.<\/span><\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Loi_khuyen_de_tu_hoc_Dart_hieu_qua\"><\/span><b>L\u1eddi khuy\u00ean \u0111\u1ec3 t\u1ef1 h\u1ecdc Dart hi\u1ec7u qu\u1ea3<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">H\u1ecdc Dart kh\u00f4ng kh\u00f3, nh\u01b0ng \u0111\u1ec3 \u0111\u1ea1t hi\u1ec7u qu\u1ea3 cao, b\u1ea1n n\u00ean \u00e1p d\u1ee5ng m\u1ed9t s\u1ed1 ph\u01b0\u01a1ng ph\u00e1p sau:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>H\u1ecdc \u0111i \u0111\u00f4i v\u1edbi th\u1ef1c h\u00e0nh<\/b><span style=\"font-weight: 400;\">: \u0110\u1eebng ch\u1ec9 \u0111\u1ecdc l\u00fd thuy\u1ebft, h\u00e3y vi\u1ebft code li\u00ean t\u1ee5c tr\u00ean DartPad ho\u1eb7c VS Code.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>X\u00e2y d\u1ef1ng d\u1ef1 \u00e1n nh\u1ecf<\/b><span style=\"font-weight: 400;\">: H\u00e3y th\u1eed x\u00e2y d\u1ef1ng m\u1ed9t \u1ee9ng d\u1ee5ng console \u0111\u01a1n gi\u1ea3n ho\u1eb7c m\u1ed9t \u1ee9ng d\u1ee5ng Flutter nh\u1ecf \u0111\u1ec3 \u00e1p d\u1ee5ng nh\u1eefng g\u00ec b\u1ea1n h\u1ecdc.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Tham gia th\u1eed th\u00e1ch l\u1eadp tr\u00ecnh<\/b><span style=\"font-weight: 400;\">: C\u00e1c n\u1ec1n t\u1ea3ng nh\u01b0 LeetCode, CodeSignal c\u00f3 nhi\u1ec1u b\u00e0i t\u1eadp gi\u00fap r\u00e8n luy\u1ec7n t\u01b0 duy l\u1eadp tr\u00ecnh v\u1edbi Dart.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Ghi ch\u00fa v\u00e0 t\u00f3m t\u1eaft<\/b><span style=\"font-weight: 400;\">: T\u1ef1 t\u1ed5ng h\u1ee3p l\u1ea1i ki\u1ebfn th\u1ee9c gi\u00fap b\u1ea1n nh\u1edb l\u00e2u h\u01a1n v\u00e0 c\u00f3 th\u1ec3 d\u1ec5 d\u00e0ng \u00f4n t\u1eadp l\u1ea1i.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Th\u01b0\u1eddng xuy\u00ean c\u1eadp nh\u1eadt ki\u1ebfn th\u1ee9c<\/b><span style=\"font-weight: 400;\">: Dart kh\u00f4ng ng\u1eebng ph\u00e1t tri\u1ec3n, v\u00ec v\u1eady h\u00e3y theo d\u00f5i blog c\u1ee7a Dart (<\/span><a href=\"http:\/\/medium.com\/dartlang\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">medium.com\/dartlang<\/span><\/a><span style=\"font-weight: 400;\">) \u0111\u1ec3 c\u1eadp nh\u1eadt c\u00e1c t\u00ednh n\u0103ng m\u1edbi.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">V\u1edbi l\u1ed9 tr\u00ecnh tr\u00ean, b\u1ea1n c\u00f3 th\u1ec3 t\u1ef1 h\u1ecdc Dart m\u1ed9t c\u00e1ch b\u00e0i b\u1ea3n v\u00e0 hi\u1ec7u qu\u1ea3. H\u00e3y ki\u00ean tr\u00ec luy\u1ec7n t\u1eadp, tham gia c\u1ed9ng \u0111\u1ed3ng v\u00e0 li\u00ean t\u1ee5c th\u1eed nghi\u1ec7m v\u1edbi c\u00e1c d\u1ef1 \u00e1n th\u1ef1c t\u1ebf \u0111\u1ec3 nhanh ch\u00f3ng l\u00e0m ch\u1ee7 ng\u00f4n ng\u1eef n\u00e0y!<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Cac_cau_hoi_thuong_gap_ve_lo_trinh_hoc_Dart\"><\/span><b>C\u00e1c c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 l\u1ed9 tr\u00ecnh h\u1ecdc Dart<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><b>C\u1ea7n c\u00f3 ki\u1ebfn th\u1ee9c n\u1ec1n t\u1ea3ng g\u00ec tr\u01b0\u1edbc khi h\u1ecdc Dart?<\/b><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">N\u1ebfu b\u1ea1n \u0111\u00e3 bi\u1ebft l\u1eadp tr\u00ecnh (Java, JavaScript, Python, C++), b\u1ea1n c\u00f3 th\u1ec3 h\u1ecdc Dart nhanh h\u01a1n.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">N\u1ebfu b\u1ea1n ch\u01b0a c\u00f3 kinh nghi\u1ec7m l\u1eadp tr\u00ecnh, n\u00ean b\u1eaft \u0111\u1ea7u v\u1edbi c\u00e1c kh\u00e1i ni\u1ec7m c\u01a1 b\u1ea3n nh\u01b0 bi\u1ebfn, ki\u1ec3u d\u1eef li\u1ec7u, v\u00f2ng l\u1eb7p, h\u00e0m, v\u00e0 l\u1eadp tr\u00ecnh h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng.<\/span><\/li>\n<\/ul>\n<h3><b>T\u00f4i n\u00ean h\u1ecdc Dart trong bao l\u00e2u tr\u01b0\u1edbc khi chuy\u1ec3n sang Flutter?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Kho\u1ea3ng 1-2 tu\u1ea7n n\u1ebfu b\u1ea1n \u0111\u00e3 bi\u1ebft l\u1eadp tr\u00ecnh. N\u1ebfu m\u1edbi b\u1eaft \u0111\u1ea7u, c\u00f3 th\u1ec3 m\u1ea5t 1-2 th\u00e1ng \u0111\u1ec3 n\u1eafm v\u1eefng Dart tr\u01b0\u1edbc khi h\u1ecdc Flutter.<\/span><\/p>\n<h3><b>Dart c\u00f3 th\u1ec3 d\u00f9ng \u0111\u1ec3 l\u1eadp tr\u00ecnh backend kh\u00f4ng?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">C\u00f3! B\u1ea1n c\u00f3 th\u1ec3 d\u00f9ng Dart v\u1edbi framework <\/span><a href=\"https:\/\/pub.dev\/packages\/shelf\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Shelf<\/span><\/a><span style=\"font-weight: 400;\"> ho\u1eb7c <\/span><a href=\"https:\/\/dartfrog.vgv.dev\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Dart Frog<\/span><\/a><span style=\"font-weight: 400;\"> \u0111\u1ec3 x\u00e2y d\u1ef1ng backend.<\/span><\/p>\n<h3><b>S\u1ef1 kh\u00e1c bi\u1ec7t gi\u1eefa Dart v\u00e0 JavaScript l\u00e0 g\u00ec?<\/b><\/h3>\n<table>\n<tbody>\n<tr>\n<td><b>Ti\u00eau ch\u00ed\u00a0<\/b><\/td>\n<td><b>Dart<\/b><\/td>\n<td><b>Javascript<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>Ki\u1ec3u d\u1eef li\u1ec7u<\/b><\/td>\n<td><span style=\"font-weight: 400;\">C\u00f3 ki\u1ec3u t\u0129nh, nh\u01b0ng linh ho\u1ea1t<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Ki\u1ec3u \u0111\u1ed9ng<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>Bi\u00ean d\u1ecbch<\/b><\/td>\n<td><span style=\"font-weight: 400;\">AOT &amp; JIT, ch\u1ea1y nhanh h\u01a1n<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Ch\u1ea1y tr\u00ean tr\u00ecnh duy\u1ec7t, th\u00f4ng d\u1ecbch<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>\u1ee8ng d\u1ee5ng<\/b><\/td>\n<td><span style=\"font-weight: 400;\">Flutter, Web, Backend<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Web, Server, Mobile (React Native)<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><span class=\"ez-toc-section\" id=\"Tong_ket\"><\/span><strong>T\u1ed5ng k\u1ebft<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Dart l\u00e0 m\u1ed9t ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh m\u1ea1nh m\u1ebd v\u00e0 d\u1ec5 ti\u1ebfp c\u1eadn, \u0111\u1eb7c bi\u1ec7t quan tr\u1ecdng n\u1ebfu b\u1ea1n mu\u1ed1n ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng \u0111a n\u1ec1n t\u1ea3ng v\u1edbi Flutter. L\u1ed9 tr\u00ecnh t\u1ef1 h\u1ecdc Dart n\u00ean b\u1eaft \u0111\u1ea7u t\u1eeb nh\u1eefng ki\u1ebfn th\u1ee9c c\u01a1 b\u1ea3n nh\u01b0 c\u00fa ph\u00e1p, ki\u1ec3u d\u1eef li\u1ec7u, v\u00f2ng l\u1eb7p, v\u00e0 l\u1eadp tr\u00ecnh h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng, sau \u0111\u00f3 ti\u1ebfp t\u1ee5c v\u1edbi l\u1eadp tr\u00ecnh b\u1ea5t \u0111\u1ed3ng b\u1ed9 v\u00e0 th\u1ef1c h\u00e0nh v\u1edbi c\u00e1c d\u1ef1 \u00e1n nh\u1ecf.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Vi\u1ec7c n\u1eafm v\u1eefng Dart kh\u00f4ng ch\u1ec9 gi\u00fap b\u1ea1n l\u00e0m ch\u1ee7 Flutter m\u00e0 c\u00f2n m\u1edf ra nhi\u1ec1u c\u01a1 h\u1ed9i ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng web, backend v\u00e0 desktop. H\u00e3y ki\u00ean tr\u00ec th\u1ef1c h\u00e0nh, t\u1eadn d\u1ee5ng c\u00e1c t\u00e0i nguy\u00ean h\u1ecdc t\u1eadp tr\u1ef1c tuy\u1ebfn v\u00e0 tham gia c\u1ed9ng \u0111\u1ed3ng \u0111\u1ec3 n\u00e2ng cao k\u1ef9 n\u0103ng. Ch\u00fac b\u1ea1n th\u00e0nh c\u00f4ng tr\u00ean h\u00e0nh tr\u00ecnh chinh ph\u1ee5c Dart!<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dart l\u00e0 m\u1ed9t ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh hi\u1ec7n \u0111\u1ea1i do Google ph\u00e1t tri\u1ec3n, \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 x\u00e2y d\u1ef1ng c\u00e1c \u1ee9ng d\u1ee5ng hi\u1ec7u su\u1ea5t cao tr\u00ean nhi\u1ec1u n\u1ec1n t\u1ea3ng nh\u01b0 di \u0111\u1ed9ng, web v\u00e0 server-side. V\u1edbi c\u00fa ph\u00e1p d\u1ec5 ti\u1ebfp c\u1eadn, h\u1ec7 th\u1ed1ng ki\u1ec3u an to\u00e0n v\u00e0 kh\u1ea3 n\u0103ng bi\u00ean d\u1ecbch linh ho\u1ea1t, Dart ng\u00e0y [&hellip;]<\/p>\n","protected":false},"author":203,"featured_media":87336,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_gspb_post_css":"","footnotes":""},"categories":[109],"tags":[],"class_list":["post-85901","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-chuyen-mon-it"],"blocksy_meta":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.8 (Yoast SEO v27.7) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>H\u1ecdc Dart b\u00e0i b\u1ea3n v\u00e0 hi\u1ec7u qu\u1ea3 v\u1edbi l\u1ed9 tr\u00ecnh 5 b\u01b0\u1edbc t\u1eeb A-Z - ITviec Blog<\/title>\n<meta name=\"description\" content=\"N\u1eafm v\u1eefng Dart \u0111\u1ec3 l\u00e0m ch\u1ee7 Flutter v\u00e0 m\u1edf r\u1ed9ng c\u01a1 h\u1ed9i v\u1edbi web, backend, desktop. L\u1ed9 tr\u00ecnh 5 b\u01b0\u1edbc gi\u00fap b\u1ea1n h\u1ecdc Dart b\u00e0i b\u1ea3n, d\u1ec5 hi\u1ec3u, th\u1ef1c chi\u1ebfn.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/itviec.com\/blog\/lo-trinh-hoc-dart\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"H\u1ecdc Dart b\u00e0i b\u1ea3n v\u00e0 hi\u1ec7u qu\u1ea3 v\u1edbi l\u1ed9 tr\u00ecnh 5 b\u01b0\u1edbc t\u1eeb A-Z\" \/>\n<meta property=\"og:description\" content=\"Dart l\u00e0 m\u1ed9t ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh hi\u1ec7n \u0111\u1ea1i do Google ph\u00e1t tri\u1ec3n, \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 x\u00e2y d\u1ef1ng c\u00e1c \u1ee9ng d\u1ee5ng hi\u1ec7u su\u1ea5t cao tr\u00ean nhi\u1ec1u n\u1ec1n t\u1ea3ng nh\u01b0 di \u0111\u1ed9ng, web v\u00e0\" \/>\n<meta property=\"og:url\" content=\"https:\/\/itviec.com\/blog\/lo-trinh-hoc-dart\/\" \/>\n<meta property=\"og:site_name\" content=\"ITviec Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ITviec\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-12T14:46:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-17T06:58:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/hoc-dart-vippro-scaled.png\" \/>\n\t<meta property=\"og:image:width\" content=\"640\" \/>\n\t<meta property=\"og:image:height\" content=\"337\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Tien Tran\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ITviec\" \/>\n<meta name=\"twitter:site\" content=\"@ITviec\" \/>\n<meta name=\"twitter:label1\" content=\"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tien Tran\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 ph\u00fat\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"H\u1ecdc Dart b\u00e0i b\u1ea3n v\u00e0 hi\u1ec7u qu\u1ea3 v\u1edbi l\u1ed9 tr\u00ecnh 5 b\u01b0\u1edbc t\u1eeb A-Z - ITviec Blog","description":"N\u1eafm v\u1eefng Dart \u0111\u1ec3 l\u00e0m ch\u1ee7 Flutter v\u00e0 m\u1edf r\u1ed9ng c\u01a1 h\u1ed9i v\u1edbi web, backend, desktop. L\u1ed9 tr\u00ecnh 5 b\u01b0\u1edbc gi\u00fap b\u1ea1n h\u1ecdc Dart b\u00e0i b\u1ea3n, d\u1ec5 hi\u1ec3u, th\u1ef1c chi\u1ebfn.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/itviec.com\/blog\/lo-trinh-hoc-dart\/","og_locale":"vi_VN","og_type":"article","og_title":"H\u1ecdc Dart b\u00e0i b\u1ea3n v\u00e0 hi\u1ec7u qu\u1ea3 v\u1edbi l\u1ed9 tr\u00ecnh 5 b\u01b0\u1edbc t\u1eeb A-Z","og_description":"Dart l\u00e0 m\u1ed9t ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh hi\u1ec7n \u0111\u1ea1i do Google ph\u00e1t tri\u1ec3n, \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 x\u00e2y d\u1ef1ng c\u00e1c \u1ee9ng d\u1ee5ng hi\u1ec7u su\u1ea5t cao tr\u00ean nhi\u1ec1u n\u1ec1n t\u1ea3ng nh\u01b0 di \u0111\u1ed9ng, web v\u00e0","og_url":"https:\/\/itviec.com\/blog\/lo-trinh-hoc-dart\/","og_site_name":"ITviec Blog","article_publisher":"https:\/\/www.facebook.com\/ITviec","article_published_time":"2025-04-12T14:46:38+00:00","article_modified_time":"2025-06-17T06:58:53+00:00","og_image":[{"width":640,"height":337,"url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/hoc-dart-vippro-scaled.png","type":"image\/png"}],"author":"Tien Tran","twitter_card":"summary_large_image","twitter_creator":"@ITviec","twitter_site":"@ITviec","twitter_misc":{"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi":"Tien Tran","\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"19 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/itviec.com\/blog\/lo-trinh-hoc-dart\/#article","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/lo-trinh-hoc-dart\/"},"author":{"name":"Tien Tran","@id":"https:\/\/itviec.com\/blog\/#\/schema\/person\/1595d671c49cfa2a48cd3c0a047a1298"},"headline":"H\u1ecdc Dart b\u00e0i b\u1ea3n v\u00e0 hi\u1ec7u qu\u1ea3 v\u1edbi l\u1ed9 tr\u00ecnh 5 b\u01b0\u1edbc t\u1eeb A-Z","datePublished":"2025-04-12T14:46:38+00:00","dateModified":"2025-06-17T06:58:53+00:00","mainEntityOfPage":{"@id":"https:\/\/itviec.com\/blog\/lo-trinh-hoc-dart\/"},"wordCount":4697,"publisher":{"@id":"https:\/\/itviec.com\/blog\/#organization"},"image":{"@id":"https:\/\/itviec.com\/blog\/lo-trinh-hoc-dart\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/hoc-dart-vippro-scaled.png","articleSection":["Chuy\u00ean m\u00f4n IT"],"inLanguage":"vi"},{"@type":"WebPage","@id":"https:\/\/itviec.com\/blog\/lo-trinh-hoc-dart\/","url":"https:\/\/itviec.com\/blog\/lo-trinh-hoc-dart\/","name":"H\u1ecdc Dart b\u00e0i b\u1ea3n v\u00e0 hi\u1ec7u qu\u1ea3 v\u1edbi l\u1ed9 tr\u00ecnh 5 b\u01b0\u1edbc t\u1eeb A-Z - ITviec Blog","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/itviec.com\/blog\/lo-trinh-hoc-dart\/#primaryimage"},"image":{"@id":"https:\/\/itviec.com\/blog\/lo-trinh-hoc-dart\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/hoc-dart-vippro-scaled.png","datePublished":"2025-04-12T14:46:38+00:00","dateModified":"2025-06-17T06:58:53+00:00","description":"N\u1eafm v\u1eefng Dart \u0111\u1ec3 l\u00e0m ch\u1ee7 Flutter v\u00e0 m\u1edf r\u1ed9ng c\u01a1 h\u1ed9i v\u1edbi web, backend, desktop. L\u1ed9 tr\u00ecnh 5 b\u01b0\u1edbc gi\u00fap b\u1ea1n h\u1ecdc Dart b\u00e0i b\u1ea3n, d\u1ec5 hi\u1ec3u, th\u1ef1c chi\u1ebfn.","breadcrumb":{"@id":"https:\/\/itviec.com\/blog\/lo-trinh-hoc-dart\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/itviec.com\/blog\/lo-trinh-hoc-dart\/"]}]},{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/lo-trinh-hoc-dart\/#primaryimage","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/hoc-dart-vippro-scaled.png","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/hoc-dart-vippro-scaled.png","width":640,"height":337,"caption":"h\u1ecdc dart - itviec blog"},{"@type":"BreadcrumbList","@id":"https:\/\/itviec.com\/blog\/lo-trinh-hoc-dart\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Chuy\u00ean m\u00f4n IT","item":"https:\/\/itviec.com\/blog\/chuyen-mon-it\/"},{"@type":"ListItem","position":2,"name":"H\u1ecdc Dart b\u00e0i b\u1ea3n v\u00e0 hi\u1ec7u qu\u1ea3 v\u1edbi l\u1ed9 tr\u00ecnh 5 b\u01b0\u1edbc t\u1eeb A-Z"}]},{"@type":"WebSite","@id":"https:\/\/itviec.com\/blog\/#website","url":"https:\/\/itviec.com\/blog\/","name":"ITviec Blog","description":"IT Jobs &amp; People in Vietnam","publisher":{"@id":"https:\/\/itviec.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/itviec.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"vi"},{"@type":"Organization","@id":"https:\/\/itviec.com\/blog\/#organization","name":"ITviec","url":"https:\/\/itviec.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2018\/12\/itviec-black-square-facebook.png","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2018\/12\/itviec-black-square-facebook.png","width":1800,"height":1800,"caption":"ITviec"},"image":{"@id":"https:\/\/itviec.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/ITviec","https:\/\/x.com\/ITviec","https:\/\/www.linkedin.com\/company\/itviec","https:\/\/www.youtube.com\/channel\/UCYthAQ3bcGr57M_ag5gHDvQ"]},{"@type":"Person","@id":"https:\/\/itviec.com\/blog\/#\/schema\/person\/1595d671c49cfa2a48cd3c0a047a1298","name":"Tien Tran","image":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/05\/tien-tran-author-e1715658627643-100x100.jpg","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/05\/tien-tran-author-e1715658627643-100x100.jpg","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/05\/tien-tran-author-e1715658627643-100x100.jpg","caption":"Tien Tran"},"url":"https:\/\/itviec.com\/blog\/author\/tien-tran\/"}]}},"_links":{"self":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/85901","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/users\/203"}],"replies":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/comments?post=85901"}],"version-history":[{"count":1,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/85901\/revisions"}],"predecessor-version":[{"id":88184,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/85901\/revisions\/88184"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media\/87336"}],"wp:attachment":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media?parent=85901"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/categories?post=85901"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/tags?post=85901"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}