{"id":31812,"date":"2023-06-26T16:58:08","date_gmt":"2023-06-26T09:58:08","guid":{"rendered":"https:\/\/itviec.com\/blog\/?p=31812"},"modified":"2023-07-10T15:28:25","modified_gmt":"2023-07-10T08:28:25","slug":"flutter-la-gi","status":"publish","type":"post","link":"https:\/\/itviec.com\/blog\/flutter-la-gi\/","title":{"rendered":"Flutter l\u00e0 g\u00ec? Top 15 Flutter package b\u1ea1n n\u00ean bi\u1ebft v\u00e0 s\u1eed d\u1ee5ng"},"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\/flutter-la-gi\/#Flutter_la_gi\" >Flutter l\u00e0 g\u00ec?<\/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\/flutter-la-gi\/#Mot_so_tinh_nang_cua_Flutter\" >M\u1ed9t s\u1ed1 t\u00ednh n\u0103ng c\u1ee7a Flutter<\/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\/flutter-la-gi\/#Top_15_Flutter_package_nen_biet_de_phat_trien_ung_dung_tot_hon\" >Top 15 Flutter package n\u00ean bi\u1ebft \u0111\u1ec3 ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng t\u1ed1t h\u01a1n<\/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\/flutter-la-gi\/#Uu_diem_Flutter_la_gi\" >\u01afu \u0111i\u1ec3m Flutter l\u00e0 g\u00ec?<\/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\/flutter-la-gi\/#Nhuoc_diem_Flutter_la_gi\" >Nh\u01b0\u1ee3c \u0111i\u1ec3m Flutter l\u00e0 g\u00ec?<\/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\/flutter-la-gi\/#Cac_cau_hoi_Flutter_thuong_gap\" >C\u00e1c c\u00e2u h\u1ecfi Flutter th\u01b0\u1eddng g\u1eb7p<\/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\/flutter-la-gi\/#Tong_ket\" >T\u1ed5ng k\u1ebft<\/a><\/li><\/ul><\/nav><\/div>\n<p><b><i>Flutter l\u00e0 g\u00ec? Khi nh\u1eafc \u0111\u1ebfn ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng d\u00e0nh cho thi\u1ebft b\u1ecb di \u0111\u1ed9ng, c\u00f3 hai framework m\u00e3 ngu\u1ed3n m\u1edf ph\u1ed5 bi\u1ebfn nh\u1ea5t l\u00e0 Flutter v\u00e0 <\/i><\/b><a href=\"https:\/\/itviec.com\/blog\/react-native-la-gi\/\" target=\"_blank\" rel=\"noopener\"><b><i>React Native<\/i><\/b><\/a><b><i>. Trong b\u00e0i vi\u1ebft n\u00e0y, b\u1ea1n s\u1ebd \u0111\u01b0\u1ee3c hi\u1ec3u s\u00e2u h\u01a1n v\u1ec1 Flutter \u0111\u1ec3 t\u1ea1o d\u1ef1ng s\u1ef1 nghi\u1ec7p th\u00e0nh c\u00f4ng trong l\u0129nh v\u1ef1c ph\u00e1t tri\u1ec3n <\/i><\/b><a href=\"https:\/\/itviec.com\/blog\/web-developer\/\" target=\"_blank\" rel=\"noopener\"><b><i>Mobile App<\/i><\/b><\/a><b><i>.<\/i><\/b><\/p>\n<p><span style=\"font-weight: 400;\">\u0110\u1ecdc b\u00e0i vi\u1ebft n\u00e0y \u0111\u1ec3 hi\u1ec3u r\u00f5:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Flutter l\u00e0 g\u00ec?<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\u01afu &#8211; Nh\u01b0\u1ee3c \u0111i\u1ec3m c\u1ee7a Flutter<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">15 Flutter package gi\u00fap b\u1ea1n ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng t\u1ed1t v\u00e0 nhanh h\u01a1n<\/span><\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Flutter_la_gi\"><\/span><b> Flutter l\u00e0 g\u00ec?<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Flutter l\u00e0 m\u1ed9t <\/span><a href=\"https:\/\/itviec.com\/blog\/framework-la-gi-top-framework-pho-bien-nhat\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">framework<\/span><\/a><span style=\"font-weight: 400;\"> mobile UI mi\u1ec5n ph\u00ed v\u00e0 m\u00e3 ngu\u1ed3n m\u1edf do Google t\u1ea1o ra v\u00e0 ph\u00e1t h\u00e0nh v\u00e0o th\u00e1ng 5 n\u0103m 2017.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Ch\u1ec9 v\u1edbi m\u1ed9t v\u00e0i t\u00e1c v\u1ee5, Flutter cho ph\u00e9p b\u1ea1n t\u1ea1o m\u1ed9t \u1ee9ng d\u1ee5ng g\u1ed1c ch\u1ec9 v\u1edbi m\u1ed9t codebase. C\u00f3 ngh\u0129a r\u1eb1ng, v\u1edbi m\u1ed9t codebase n\u00e0y, Flutter h\u1ed7 tr\u1ee3 ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m tr\u00ean 6 n\u1ec1n t\u1ea3ng: iOS, Android, web, Windows, MacOS, v\u00e0 Linux.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Nh\u1eefng th\u01b0\u01a1ng hi\u1ec7u l\u1edbn \u0111\u00e3 s\u1eed d\u1ee5ng Flutter \u0111\u1ec3 ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng g\u1ed3m c\u00f3 BMW, ByteDance, eBay, Alibaba Group, Google Play,&#8230;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Flutter cung c\u1ea5p r\u1ea5t nhi\u1ec1u ti\u1ec7n \u00edch (<\/span><a href=\"https:\/\/docs.flutter.dev\/ui\/widgets\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">widget<\/span><\/a><span style=\"font-weight: 400;\">) \u0111\u1ec3 t\u1ea1o h\u1ea7u h\u1ebft m\u1ecdi lo\u1ea1i \u1ee9ng d\u1ee5ng v\u00e0 c\u0169ng h\u1ed7 tr\u1ee3 animation m\u00e0 b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng. H\u01a1n n\u1eefa, Flutter \u0111\u01b0\u1ee3c v\u1eadn h\u00e0nh b\u1edfi Dart \u2013 m\u1ed9t ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh d\u00f9ng \u0111\u1ec3 t\u1ea1o c\u00e1c \u1ee9ng d\u1ee5ng Android v\u00e0 iOS.<\/span><\/p>\n<blockquote><p><em><span style=\"font-weight: 400;\">Dart cho ph\u00e9p \u1ee9ng d\u1ee5ng t\u01b0\u01a1ng t\u00e1c tr\u1ef1c ti\u1ebfp v\u1edbi n\u1ec1n t\u1ea3ng g\u1ed1c thay v\u00ec th\u00f4ng qua <\/span><a href=\"https:\/\/itviec.com\/blog\/tai-lieu-javascript\/\"><span style=\"font-weight: 400;\">JavaScript<\/span><\/a><span style=\"font-weight: 400;\"> nh\u01b0 trong React Native v\u00e0 ch\u00ednh kh\u1ea3 n\u0103ng n\u00e0y l\u00e0m cho Flutter \u0111\u01b0\u1ee3c y\u00eau th\u00edch b\u1edfi t\u00ednh nhanh ch\u00f3ng v\u00e0 hi\u1ec7u qu\u1ea3.<\/span><\/em><\/p><\/blockquote>\n<p><span style=\"font-weight: 400;\">Flutter bao g\u1ed3m hai ph\u1ea7n quan tr\u1ecdng:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">SDK (Software Development Kit &#8211; B\u1ed9 c\u00f4ng c\u1ee5 ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m): T\u1eadp h\u1ee3p c\u00e1c c\u00f4ng c\u1ee5 gi\u00fap b\u1ea1n ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng. SDK bao g\u1ed3m c\u00e1c c\u00f4ng c\u1ee5 \u0111\u1ec3 compile code th\u00e0nh code m\u00e1y g\u1ed1c (code d\u00e0nh cho iOS v\u00e0 Android).<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Framework (Th\u01b0 vi\u1ec7n UI d\u1ef1a tr\u00ean ti\u1ec7n \u00edch): T\u1eadp h\u1ee3p c\u00e1c ph\u1ea7n t\u1eed UI c\u00f3 th\u1ec3 t\u00e1i s\u1eed d\u1ee5ng (n\u00fat, ki\u1ec3u nh\u1eadp v\u0103n b\u1ea3n, thanh tr\u01b0\u1ee3t, v.v.) m\u00e0 b\u1ea1n c\u00f3 th\u1ec3 c\u00e1 nh\u00e2n h\u00f3a theo nhu c\u1ea7u.<\/span><\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Mot_so_tinh_nang_cua_Flutter\"><\/span><b> M\u1ed9t s\u1ed1 t\u00ednh n\u0103ng c\u1ee7a Flutter<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">M\u1ed9t s\u1ed1 t\u00ednh n\u0103ng h\u00e0ng \u0111\u1ea7u c\u1ee7a Flutter bao g\u1ed3m:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>Ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh Dart:<\/strong> Flutter s\u1eed d\u1ee5ng ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh Dart, c\u00f9ng \u201cchung m\u1ed9t nh\u00e0&#8221; Google v\u1edbi Flutter. Dart \u0111\u01b0\u1ee3c t\u1ed1i \u01b0u h\u00f3a \u0111\u1ec3 x\u00e2y d\u1ef1ng giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng v\u00e0 nhi\u1ec1u \u0111i\u1ec3m m\u1ea1nh c\u1ee7a Dart \u0111\u01b0\u1ee3c &#8220;ph\u00e1t huy&#8221; trong Flutter.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>Hot reload:<\/strong> T\u00ednh n\u0103ng &#8220;Hot reload&#8221; c\u1ee7a Flutter cho ph\u00e9p b\u1ea1n nhanh ch\u00f3ng v\u00e0 d\u1ec5 d\u00e0ng th\u1ea5y c\u00e1c thay \u0111\u1ed5i \u0111\u1ed1i v\u1edbi \u1ee9ng d\u1ee5ng ngay khi v\u1eeba th\u1ef1c hi\u1ec7n m\u00e0 kh\u00f4ng c\u1ea7n kh\u1edfi \u0111\u1ed9ng l\u1ea1i \u1ee9ng d\u1ee5ng.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>UI \u0111\u1ea7y bi\u1ec3u c\u1ea3m v\u00e0 \u0111\u1eb9p m\u1eaft: <\/strong>C\u00e1c ph\u1ea7n t\u1eed UI trong framework n\u00e0y \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng c\u00e1c nguy\u00ean t\u1eafc\u00a0gi\u1ed1ng nh\u01b0 <\/span><a href=\"https:\/\/m3.material.io\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">nguy\u00ean t\u1eafc Material Design c\u1ee7a Google<\/span><\/a><span style=\"font-weight: 400;\">, mang \u0111\u1ebfn cho b\u1ea1n nhi\u1ec1u ph\u01b0\u01a1ng ph\u00e1p linh ho\u1ea1t \u0111\u1ec3 t\u1ea1o ra c\u00e1c \u1ee9ng d\u1ee5ng \u0111\u1eb9p m\u1eaft.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>Hi\u1ec7u su\u1ea5t g\u1ed1c:<\/strong> C\u00e1c \u1ee9ng d\u1ee5ng Flutter \u0111\u01b0\u1ee3c bi\u00ean d\u1ecbch th\u00e0nh code g\u1ed1c, mang l\u1ea1i hi\u1ec7u su\u1ea5t t\u1ed1t nh\u1ea5t c\u00f3 th\u1ec3 tr\u00ean c\u1ea3 iOS v\u00e0 Android.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>M\u00e3 ngu\u1ed3n m\u1edf:<\/strong> Flutter l\u00e0 m\u1ed9t d\u1ef1 \u00e1n m\u00e3 ngu\u1ed3n m\u1edf \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3 b\u1edfi Google n\u00ean b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng Flutter mi\u1ec5n ph\u00ed c\u0169ng nh\u01b0 d\u1ec5 d\u00e0ng nh\u1eadn \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3 t\u1eeb Google v\u00e0 c\u1ed9ng \u0111\u1ed3ng.<\/span><\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Top_15_Flutter_package_nen_biet_de_phat_trien_ung_dung_tot_hon\"><\/span><b>Top 15 Flutter package n\u00ean bi\u1ebft \u0111\u1ec3 ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng t\u1ed1t h\u01a1n<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Flutter h\u1ed7 tr\u1ee3 vi\u1ec7c s\u1eed d\u1ee5ng c\u00e1c packages chung do c\u00e1c developer kh\u00e1c \u0111\u00f3ng g\u00f3p cho h\u1ec7 sinh th\u00e1i Flutter v\u00e0 Dart. Vi\u1ec7c s\u1eed d\u1ee5ng packages s\u1eb5n c\u00f3 cho ph\u00e9p b\u1ea1n nhanh ch\u00f3ng x\u00e2y d\u1ef1ng \u1ee9ng d\u1ee5ng m\u00e0 kh\u00f4ng c\u1ea7n ph\u1ea3i ph\u00e1t tri\u1ec3n m\u1ecdi th\u1ee9 t\u1eeb \u0111\u1ea7u.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Packages \u0111\u01b0\u1ee3c \u0111\u0103ng t\u1ea3i l\u00ean <\/span><a href=\"https:\/\/pub.dev\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">pub.dev<\/span><\/a><span style=\"font-weight: 400;\">. <\/span><a href=\"https:\/\/pub.dev\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Pub.dev<\/span><\/a><span style=\"font-weight: 400;\"> l\u00e0 m\u1ed9t h\u1ec7 sinh th\u00e1i \u0111ang ph\u00e1t tri\u1ec3n g\u1ed3m h\u01a1n 33.000 packages \u0111\u1ec3 gi\u00fap b\u1ea1n th\u00eam ch\u1ee9c n\u0103ng v\u00e0o \u1ee9ng d\u1ee5ng c\u1ee7a m\u00ecnh.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">D\u01b0\u1edbi \u0111\u00e2y l\u00e0 c\u00e1c g\u00f3i Flutter \u0111\u01b0\u1ee3c y\u00eau th\u00edch nh\u1ea5t, d\u1ef1a tr\u00ean l\u01b0\u1ee3t \u201clikes&#8221; c\u1ee7a c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n, tr\u00ean pub.dev m\u00e0 b\u1ea1n n\u00ean bi\u1ebft:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/pub.dev\/packages\/get\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">get:<\/span><\/a><span style=\"font-weight: 400;\"> M\u1edf screen\/snackbar\/dialog without context, qu\u1ea3n l\u00fd tr\u1ea1ng th\u00e1i v\u00e0 inject dependency m\u1ed9t c\u00e1ch d\u1ec5 d\u00e0ng v\u1edbi GetX.<\/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;\">: M\u1ed9t wrapper bao b\u1ecdc xung quanh InheritedWidget \u0111\u1ec3 gi\u00fap ch\u00fang d\u1ec5 s\u1eed d\u1ee5ng h\u01a1n v\u00e0 c\u00f3 th\u1ec3 t\u00e1i s\u1eed d\u1ee5ng nhi\u1ec1u h\u01a1n.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/pub.dev\/packages\/shared_preferences\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">shared_preferences<\/span><\/a><span style=\"font-weight: 400;\">: M\u1ed9t Flutter plugin d\u00f9ng \u0111\u1ec3 \u0111\u1ecdc v\u00e0 vi\u1ebft c\u00e1c c\u1eb7p key-value \u0111\u01a1n gi\u1ea3n. Package n\u00e0y wrap kho l\u01b0u tr\u1eef li\u00ean t\u1ee5c d\u00e0nh ri\u00eang cho t\u1eebng n\u1ec1n t\u1ea3ng \u0111\u1ed1i v\u1edbi d\u1eef li\u1ec7u \u0111\u01a1n gi\u1ea3n (NSUserDefaults tr\u00ean iOS v\u00e0 macOS, SharedPreferences tr\u00ean Android, v.v.)<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/pub.dev\/packages\/http\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">http<\/span><\/a><span style=\"font-weight: 400;\">: M\u1ed9t Future-based <\/span><a href=\"https:\/\/itviec.com\/blog\/api-la-gi\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">API<\/span><\/a><span style=\"font-weight: 400;\"> \u0111a n\u1ec1n t\u1ea3ng, composable d\u00e0nh cho c\u00e1c y\u00eau c\u1ea7u HTTP.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/pub.dev\/packages\/url_launcher\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">url_launcher<\/span><\/a><span style=\"font-weight: 400;\">: M\u1ed9t Flutter plugin d\u00f9ng \u0111\u1ec3 kh\u1edfi ch\u1ea1y m\u1ed9t URL. H\u1ed7 tr\u1ee3 c\u00e1c scheme email, web, \u0111i\u1ec7n tho\u1ea1i v\u00e0 SMS.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/pub.dev\/packages\/flutter_native_splash\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">flutter_native_splash<\/span><\/a><span style=\"font-weight: 400;\">: T\u00f9y ch\u1ec9nh m\u00e0n h\u00ecnh splash m\u00e0u tr\u1eafng m\u1eb7c \u0111\u1ecbnh c\u1ee7a v\u1edbi m\u00e0u n\u1ec1n v\u00e0 h\u00ecnh \u1ea3nh splash. H\u1ed7 tr\u1ee3 ch\u1ebf \u0111\u1ed9 t\u1ed1i, to\u00e0n m\u00e0n h\u00ecnh, v.v.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/pub.dev\/packages\/dio\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">dio<\/span><\/a><span style=\"font-weight: 400;\">: M\u1ed9t g\u00f3i HTTP m\u1ea1nh m\u1ebd d\u00e0nh cho Dart\/Flutter, h\u1ed7 tr\u1ee3 c\u00e0i \u0111\u1eb7t Global, Interceptors, FormData, T\u1ea3i l\u00ean v\u00e0 t\u1ea3i xu\u1ed1ng t\u1ec7p, Requests timeout, Custom adapters, v.v.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/pub.dev\/packages\/flutter_bloc\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">flutter_bloc<\/span><\/a><span style=\"font-weight: 400;\">: Flutter Widget gi\u00fap d\u1ec5 d\u00e0ng tri\u1ec3n khai design pattern BLoC (Business Logic Component). Package n\u00e0y \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng \u0111\u1ec3 s\u1eed d\u1ee5ng v\u1edbi <\/span><a href=\"https:\/\/bloclibrary.dev\/#\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">bloc state management package<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/pub.dev\/packages\/flutter_launcher_icons\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">flutter_launcher_icons<\/span><\/a><span style=\"font-weight: 400;\">: M\u1ed9t package gi\u00fap \u0111\u01a1n gi\u1ea3n h\u00f3a t\u00e1c v\u1ee5 c\u1eadp nh\u1eadt bi\u1ec3u t\u01b0\u1ee3ng tr\u00ecnh kh\u1edfi ch\u1ea1y \u1ee9ng d\u1ee5ng Flutter.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/pub.dev\/packages\/image_picker\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">image_picker<\/span><\/a><span style=\"font-weight: 400;\">: M\u1ed9t Flutter plugin d\u00f9ng \u0111\u1ec3 ch\u1ecdn h\u00ecnh \u1ea3nh t\u1eeb th\u01b0 vi\u1ec7n h\u00ecnh \u1ea3nh Android v\u00e0 iOS v\u00e0 ch\u1ee5p \u1ea3nh m\u1edbi b\u1eb1ng m\u00e1y \u1ea3nh.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/pub.dev\/packages\/flutter_local_notifications\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">flutter_local_notifications<\/span><\/a><span style=\"font-weight: 400;\">: M\u1ed9t plugin \u0111a n\u1ec1n t\u1ea3ng d\u00f9ng \u0111\u1ec3 hi\u1ec3n th\u1ecb v\u00e0 l\u00ean l\u1ecbch th\u00f4ng b\u00e1o n\u1ed9i b\u1ed9 cho c\u00e1c \u1ee9ng d\u1ee5ng Flutter v\u1edbi kh\u1ea3 n\u0103ng t\u00f9y ch\u1ec9nh cho t\u1eebng n\u1ec1n t\u1ea3ng.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/pub.dev\/packages\/animations\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">animations<\/span><\/a><span style=\"font-weight: 400;\">: C\u00e1c animation \u0111\u01b0\u1ee3c d\u1ef1ng s\u1eb5n v\u00f4 c\u00f9ng \u0111\u1eb9p m\u1eaft m\u00e0 b\u1ea1n c\u00f3 th\u1ec3 d\u1ec5 d\u00e0ng t\u00edch h\u1ee3p v\u00e0o b\u1ea5t k\u1ef3 \u1ee9ng d\u1ee5ng Flutter n\u00e0o.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/pub.dev\/packages\/hive\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">hive<\/span><\/a><span style=\"font-weight: 400;\">: M\u1ed9t c\u01a1 s\u1edf d\u1eef li\u1ec7u key-value nh\u1eb9 v\u00e0 nhanh \u0111\u01b0\u1ee3c vi\u1ebft b\u1eb1ng Dart. \u0110\u01b0\u1ee3c m\u00e3 h\u00f3a m\u1ea1nh m\u1ebd b\u1eb1ng AES-256.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/pub.dev\/packages\/google_fonts\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">google_fonts<\/span><\/a><span style=\"font-weight: 400;\">: M\u1ed9t Flutter package d\u00f9ng \u0111\u1ec3 s\u1eed d\u1ee5ng ph\u00f4ng ch\u1eef t\u1eeb fonts.google.com. H\u1ed7 tr\u1ee3 t\u00ecm n\u1ea1p HTTP, l\u01b0u v\u00e0o b\u1ed9 nh\u1edb \u0111\u1ec7m v\u00e0 g\u00f3i n\u1ed9i dung.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/pub.dev\/packages\/cached_network_image\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">cached_network_image<\/span><\/a><span style=\"font-weight: 400;\">: M\u1ed9t Flutter library d\u00f9ng \u0111\u1ec3 t\u1ea3i v\u00e0 l\u01b0u tr\u1eef h\u00ecnh \u1ea3nh m\u1ea1ng. C\u0169ng c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng v\u1edbi c\u00e1c widget <\/span><a href=\"https:\/\/api.flutter.dev\/flutter\/widgets\/Placeholder-class.html\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">placeholder<\/span><\/a><span style=\"font-weight: 400;\"> v\u00e0 <\/span><a href=\"https:\/\/api.flutter.dev\/flutter\/widgets\/ErrorWidget-class.html\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">error<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/li>\n<\/ol>\n<h2><span class=\"ez-toc-section\" id=\"Uu_diem_Flutter_la_gi\"><\/span><b> \u01afu \u0111i\u1ec3m Flutter l\u00e0 g\u00ec?<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><b> L\u00fd t\u01b0\u1edfng \u0111\u1ec3 ph\u00e1t tri\u1ec3n s\u1ea3n ph\u1ea9m MVP c\u1ee7a startup<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">V\u1edbi c\u00e1c startup c\u1ea7n gi\u1edbi thi\u1ec7u m\u1ed9t s\u1ea3n ph\u1ea9m \u1ed5n \u0111\u1ecbnh trong th\u1eddi gian ng\u1eafn nh\u1ea5t \u0111\u1ebfn v\u1edbi c\u00e1c nh\u00e0 \u0111\u1ea7u t\u01b0, b\u1ea1n c\u00f3 th\u1ec3 c\u00e2n nh\u1eafc ch\u1ecdn Flutter \u0111\u1ec3 ph\u00e1t tri\u1ec3n s\u1ea3n ph\u1ea9m MVP. V\u00ec sao l\u1ea1i nh\u01b0 v\u1eady?<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Ti\u1ebft ki\u1ec7m chi ph\u00ed: B\u1ea1n c\u00f3 th\u1ec3 ph\u00e1t tri\u1ec3n c\u00e1c \u1ee9ng d\u1ee5ng \u0111a n\u1ec1n t\u1ea3ng b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng m\u1ed9t codebase n\u00ean kh\u00f4ng c\u1ea7n chi tr\u1ea3 cho nhi\u1ec1u team ph\u00e1t tri\u1ec3n ri\u00eang bi\u1ec7t cho t\u1eebng n\u1ec1n t\u1ea3ng.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">T\u1ed1i \u01b0u hi\u1ec7u qu\u1ea3: G\u1ea7n nh\u01b0 kh\u00f4ng c\u00f3 s\u1ef1 kh\u00e1c bi\u1ec7t qu\u00e1 l\u1edbn gi\u1eefa \u1ee9ng d\u1ee5ng g\u1ed1c v\u00e0 \u1ee9ng d\u1ee5ng Flutter.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Ti\u1ebft ki\u1ec7m th\u1eddi gian: Ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m nhanh h\u01a1n v\u00e0 d\u1ec5 d\u00e0ng h\u01a1n nh\u1edd v\u00e0o ngu\u1ed3n ti\u1ec7n \u00edch, packages s\u1eb5n c\u00f3 d\u1ed3i d\u00e0o v\u00e0 c\u00e1 nh\u00e2n h\u00f3a ch\u00fang \u0111\u1ec3 t\u1ea1o UI ph\u00f9 h\u1ee3p v\u1edbi t\u1ec7p kh\u00e1ch h\u00e0ng.<\/span><\/li>\n<\/ul>\n<blockquote><p><em>Tham kh\u1ea3o: IT <a href=\"https:\/\/itviec.com\/blog\/how-to-start-it-startup\/\" target=\"_blank\" rel=\"noopener\">Startup l\u00e0 g\u00ec?<\/a> L\u00e0m th\u1ebf n\u00e0o \u0111\u1ec3 startup th\u00e0nh c\u00f4ng?<\/em><\/p><\/blockquote>\n<h3><b> Documentation r\u00f5 r\u00e0ng<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">\u0110i\u1ec1u quan tr\u1ecdng khi ti\u1ebfp x\u00fac v\u1edbi c\u00f4ng ngh\u1ec7 m\u1edbi l\u00e0 ph\u1ea3i c\u00f3 documentation r\u00f5 r\u00e0ng.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">B\u1ea1n c\u00f3 th\u1ec3 h\u1ecdc \u0111\u01b0\u1ee3c nhi\u1ec1u \u0111i\u1ec1u t\u1eeb <\/span><a href=\"https:\/\/docs.flutter.dev\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">documentation Flutter<\/span><\/a><span style=\"font-weight: 400;\">\u00a0v\u00e0 m\u1ecdi th\u00f4ng tin \u0111\u1ec1u \u0111\u01b0\u1ee3c h\u01b0\u1edbng d\u1eabn r\u1ea5t chi ti\u1ebft v\u1edbi c\u00e1c v\u00ed d\u1ee5 d\u1ec5 hi\u1ec3u cho c\u00e1c tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng c\u01a1 b\u1ea3n. M\u1ed7i l\u1ea7n b\u1ea1n g\u1eb7p s\u1ef1 c\u1ed1 v\u1edbi m\u1ed9t trong c\u00e1c ti\u1ec7n \u00edch trong khi vi\u1ebft code, b\u1ea1n \u0111\u1ec1u c\u00f3 th\u1ec3 ki\u1ec3m tra t\u00e0i li\u1ec7u v\u00e0 c\u00f3 ngay c\u00e2u tr\u1ea3 l\u1eddi c\u1ea7n thi\u1ebft.<\/span><\/p>\n<h3><b> C\u1ed9ng \u0111\u1ed3ng r\u1ed9ng l\u1edbn<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Flutter c\u00f3 nhi\u1ec1u c\u1ed9ng \u0111\u1ed3ng h\u1ed7 tr\u1ee3 m\u1ea1nh m\u1ebd m\u00e0 b\u1ea1n c\u00f3 th\u1ec3 tham gia th\u1ea3o lu\u1eadn, t\u00ecm ki\u1ebfm s\u1ef1 gi\u00fap \u0111\u1ee1 ho\u1eb7c \u0111\u01a1n gi\u1ea3n l\u00e0 chia s\u1ebb c\u00f9ng nhau ph\u00e1t tri\u1ec3n.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">M\u1ed9t v\u00e0i c\u1ed9ng \u0111\u1ed3ng, ngu\u1ed3n t\u00e0i li\u1ec7u Flutter m\u00e0 b\u1ea1n c\u00f3 th\u1ec3 tham kh\u1ea3o:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/flutterawesome.com\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Flutter Awesome<\/span><\/a><span style=\"font-weight: 400;\">: Trang web Flutter Awesome l\u00e0 m\u1ed9t trang chuy\u00ean t\u1ed5ng h\u1ee3p c\u00e1c th\u01b0 vi\u1ec7n v\u00e0 c\u00f4ng c\u1ee5 Flutter t\u1ed1t nh\u1ea5t. Trang web n\u00e0y l\u00ean n\u1ed9i dung h\u1eb1ng ng\u00e0y v\u1edbi r\u1ea5t nhi\u1ec1u v\u00ed d\u1ee5, m\u1eabu \u1ee9ng d\u1ee5ng, l\u1eddi khuy\u00ean,&#8230; h\u1eefu \u00edch cho b\u1ea1n ai \u0111ang d\u00f9ng Flutter.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/github.com\/Solido\/awesome-flutter\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Awesome Flutter<\/span><\/a><span style=\"font-weight: 400;\">: M\u1ed9t GitHub repository (k\u1ebft n\u1ed1i v\u1edbi Flutter Awesome) v\u1edbi danh s\u00e1ch c\u00e1c b\u00e0i vi\u1ebft, video, component, ti\u1ec7n \u00edch,&#8230;<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/itsallwidgets.com\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">It\u2019s all widgets!<\/span><\/a><span style=\"font-weight: 400;\">: M\u1ed9t danh s\u00e1ch c\u00e1c \u1ee9ng d\u1ee5ng \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n v\u1edbi Flutter.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/medium.com\/flutter-community\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Flutter Medium Community<\/span><\/a><span style=\"font-weight: 400;\">: M\u1ed9t c\u1ed9ng \u0111\u1ed3ng Flutter tr\u00ean Medium m\u00e0 b\u1ea1n c\u00f3 th\u1ec3 tham kh\u1ea3o b\u00e0i vi\u1ebft, tutorial v\u00e0 nhi\u1ec1u ti\u1ec7n \u00edch hay ho kh\u00e1c.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Ngo\u00e0i ra, Flutter c\u00f2n m\u1edf nhi\u1ec1u c\u1ed9ng \u0111\u1ed3ng ho\u1ea1t \u0111\u1ed9ng t\u00edch c\u1ef1c tr\u00ean Reddit, Discord, Slack, Stack Overflow v\u00e0 Gitter. C\u1ed9ng \u0111\u1ed3ng c\u1ee7a Flutter \u0111\u00e3 t\u1ea1o ra h\u00e0ng ngh\u00ecn package c\u1ee7a b\u00ean th\u1ee9 ba v\u00e0 c\u00e1c c\u00f4ng c\u1ee5 tuy\u1ec7t v\u1eddi gi\u00fap \u0111\u01a1n gi\u1ea3n h\u00f3a tr\u1ea3i nghi\u1ec7m c\u1ee7a developer.<\/span><\/p>\n<h3><b> \u0110\u01b0\u1ee3c h\u1ed7 tr\u1ee3 b\u1edfi Android Studio v\u00e0 VS Code<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Flutter c\u00f3 s\u1eb5n tr\u00ean c\u00e1c IDE kh\u00e1c nhau n\u00ean b\u1ea1n c\u00f3 th\u1ec3 tho\u1ea3i m\u00e1i ch\u1ecdn IDE \u01b0a th\u00edch c\u1ee7a b\u1ea3n th\u00e2n \u0111\u1ec3 d\u00f9ng v\u1edbi framework n\u00e0y.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Trong \u0111\u00f3, bao g\u1ed3m hai code editor ph\u1ed5 bi\u1ebfn nh\u1ea5t l\u00e0 Android Studio (IntelliJ) v\u00e0 VS Code.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Android Studio l\u00e0 m\u1ed9t ph\u1ea7n m\u1ec1m ho\u00e0n ch\u1ec9nh v\u1edbi m\u1ecdi th\u1ee9 \u0111\u00e3 \u0111\u01b0\u1ee3c t\u00edch h\u1ee3p s\u1eb5n. B\u1ea1n ph\u1ea3i t\u1ea3i xu\u1ed1ng c\u00e1c plugin Flutter v\u00e0 Dart \u0111\u1ec3 b\u1eaft \u0111\u1ea7u.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">VS Code l\u00e0 m\u1ed9t c\u00f4ng c\u1ee5 d\u1ec5 s\u1eed d\u1ee5ng v\u00e0 m\u1ecdi th\u1ee9 \u0111\u1ec1u c\u00f3 th\u1ec3 \u0111\u1ecbnh c\u1ea5u h\u00ecnh th\u00f4ng qua c\u00e1c plugin tr\u00ean th\u1ecb tr\u01b0\u1eddng.<\/span><\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Nhuoc_diem_Flutter_la_gi\"><\/span><b> Nh\u01b0\u1ee3c \u0111i\u1ec3m Flutter l\u00e0 g\u00ec?<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">M\u1eb7c d\u00f9 c\u00f3 nhi\u1ec1u \u01b0u \u0111i\u1ec3m, Flutter v\u1eabn c\u00f3 m\u1ed9t s\u1ed1 nh\u01b0\u1ee3c \u0111i\u1ec3m c\u1ea7n \u0111\u01b0\u1ee3c xem x\u00e9t tr\u01b0\u1edbc khi s\u1eed d\u1ee5ng \u0111\u1ec3 ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng di \u0111\u1ed9ng.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Kh\u00f4ng nhi\u1ec1u th\u01b0 vi\u1ec7n (library) c\u1ee7a b\u00ean th\u1ee9 ba:<\/b><span style=\"font-weight: 400;\"> M\u1eb7c d\u00f9 Flutter c\u00f3 b\u1ed9 widget phong ph\u00fa, nh\u01b0ng v\u1eabn thi\u1ebfu th\u01b0 vi\u1ec7n c\u1ee7a b\u00ean th\u1ee9 ba. Th\u01b0 vi\u1ec7n r\u1ea5t c\u1ea7n thi\u1ebft \u0111\u1ec3 th\u00eam c\u00e1c t\u00ednh n\u0103ng v\u00e0 ch\u1ee9c n\u0103ng c\u1ee7a \u1ee9ng d\u1ee5ng, v\u00ec v\u1eady \u0111i\u1ec1u n\u00e0y ph\u1ea3i \u0111\u01b0\u1ee3c xem x\u00e9t n\u1ebfu mu\u1ed1n s\u1eed d\u1ee5ng mobile framework n\u00e0y.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>C\u00f4ng c\u1ee5 ch\u01b0a t\u1ed1t nh\u01b0 c\u00e1c n\u1ec1n t\u1ea3ng kh\u00e1c:<\/b><span style=\"font-weight: 400;\"> C\u00f4ng c\u1ee5 cho Flutter (nh\u1eefng c\u00f4ng c\u1ee5 m\u00e0 developer s\u1eed d\u1ee5ng \u0111\u1ec3 t\u1ea1o \u1ee9ng d\u1ee5ng) ch\u01b0a tr\u01b0\u1edfng th\u00e0nh ho\u1eb7c m\u1ea1nh m\u1ebd nh\u01b0 c\u00e1c n\u1ec1n t\u1ea3ng kh\u00e1c, ch\u1eb3ng h\u1ea1n nh\u01b0 Swift tr\u00ean Xcode.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Dart &#8211; ng\u00f4n ng\u1eef d\u00f9ng trong Flutter, kh\u00f4ng ph\u1ea3i l\u00e0 ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng r\u1ed9ng r\u00e3i:<\/b><span style=\"font-weight: 400;\"> Dart l\u00e0 ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh t\u01b0\u01a1ng \u0111\u1ed1i m\u1edbi so v\u1edbi c\u00e1c ng\u00f4n ng\u1eef \u0111\u00e3 tr\u01b0\u1edfng th\u00e0nh nh\u01b0 Java. \u0110i\u1ec1u n\u00e0y c\u00f3 th\u1ec3 l\u00e0 m\u1ed9t h\u1ea1n ch\u1ebf so v\u1edbi ph\u1ea7n l\u1edbn developer do ch\u1ec9 c\u00f3 s\u1ed1 \u00edt developer quen thu\u1ed9c v\u00e0 c\u00f3 th\u1ec3 l\u00e0m vi\u1ec7c v\u1edbi Dart.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>K\u00edch th\u01b0\u1edbc \u1ee9ng d\u1ee5ng l\u1edbn h\u01a1n:<\/b><span style=\"font-weight: 400;\"> V\u1edbi c\u00e1c ti\u1ec7n \u00edch t\u00edch h\u1ee3p, c\u00e1c \u1ee9ng d\u1ee5ng Flutter c\u00f3 xu h\u01b0\u1edbng c\u00f3 k\u00edch th\u01b0\u1edbc l\u1edbn h\u01a1n c\u00e1c \u1ee9ng d\u1ee5ng \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng v\u1edbi c\u00e1c framework kh\u00e1c. \u0110\u00e2y c\u00f3 th\u1ec3 l\u00e0 m\u1ed9t v\u1ea5n \u0111\u1ec1 n\u1ebfu b\u1ea1n \u0111ang ph\u00e1t tri\u1ec3n cho m\u1ed9t n\u1ec1n t\u1ea3ng c\u00f3 kh\u00f4ng gian l\u01b0u tr\u1eef h\u1ea1n ch\u1ebf.<\/span><\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Cac_cau_hoi_Flutter_thuong_gap\"><\/span><b> C\u00e1c c\u00e2u h\u1ecfi Flutter th\u01b0\u1eddng g\u1eb7p<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><b> Flutter s\u1eed d\u1ee5ng ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh n\u00e0o?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">\u0110\u1ec3 ph\u00e1t tri\u1ec3n v\u1edbi Flutter, b\u1ea1n s\u1ebd s\u1eed d\u1ee5ng ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh c\u00f3 t\u00ean l\u00e0 Dart. Ng\u00f4n ng\u1eef \u0111\u01b0\u1ee3c Google t\u1ea1o ra v\u00e0o th\u00e1ng 10 n\u0103m 2011, nh\u01b0ng ng\u00f4n ng\u1eef n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c c\u1ea3i thi\u1ec7n r\u1ea5t nhi\u1ec1u trong nh\u1eefng n\u0103m qua.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Dart t\u1eadp trung v\u00e0o ph\u00e1t tri\u1ec3n UI v\u00e0 b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng Dart \u0111\u1ec3 t\u1ea1o c\u00e1c \u1ee9ng d\u1ee5ng web v\u00e0 di \u0111\u1ed9ng.<\/span><\/p>\n<h3><b> Flutter d\u00e0nh cho ai?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">B\u1ea1n c\u00f3 th\u1ec3 l\u00e0 developer, l\u00e0 designer, hay manager, b\u1ea1n v\u1eabn c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng mobile framework n\u00e0y v\u1edbi nh\u1eefng l\u00fd do sau:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>\u0110\u1ed1i v\u1edbi developer<\/b><span style=\"font-weight: 400;\">: Flutter gi\u00fap b\u01b0\u1edbc \u0111\u1ea7u x\u00e2y d\u1ef1ng \u1ee9ng d\u1ee5ng d\u1ec5 d\u00e0ng h\u01a1n v\u00e0 gi\u00fap t\u0103ng t\u1ed1c \u0111\u1ed9 ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng v\u00e0 gi\u1ea3m chi ph\u00ed c\u0169ng nh\u01b0 \u0111\u1ed9 ph\u1ee9c t\u1ea1p c\u1ee7a vi\u1ec7c s\u1ea3n xu\u1ea5t \u1ee9ng d\u1ee5ng tr\u00ean c\u00e1c n\u1ec1n t\u1ea3ng.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>\u0110\u1ed1i v\u1edbi designer<\/b><span style=\"font-weight: 400;\">: Flutter cung c\u1ea5p nhi\u1ec1u \u201cb\u1ea3n v\u1ebd&#8221; cho nh\u1eefng tr\u1ea3i nghi\u1ec7m ng\u01b0\u1eddi d\u00f9ng cao c\u1ea5p.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>\u0110\u1ed1i v\u1edbi manager<\/b><span style=\"font-weight: 400;\">: Flutter cho ph\u00e9p h\u1ee3p nh\u1ea5t nhi\u1ec1u developer t\u1eeb mobile, web, desktop developer, ch\u1ec9 c\u00f2n th\u00e0nh m\u1ed9t \u0111\u1ed9i nh\u00f3m duy nh\u1ea5t v\u00e0 kh\u1ea3 n\u0103ng x\u00e2y d\u1ef1ng c\u00e1c \u1ee9ng d\u1ee5ng cho nhi\u1ec1u n\u1ec1n t\u1ea3ng t\u1eeb m\u1ed9t codebase duy nh\u1ea5t. \bFramework n\u00e0y gi\u00fap t\u0103ng t\u1ed1c \u0111\u1ed9 ph\u00e1t tri\u1ec3n t\u00ednh n\u0103ng v\u00e0 \u0111\u1ed3ng b\u1ed9 h\u00f3a l\u1ecbch tr\u00ecnh ph\u00e1t h\u00e0nh tr\u00ean to\u00e0n b\u1ed9 c\u01a1 s\u1edf kh\u00e1ch h\u00e0ng.<\/span><\/li>\n<\/ul>\n<h3><b> B\u1ea1n c\u1ea7n bao nhi\u00eau kinh nghi\u1ec7m trong l\u1eadp tr\u00ecnh \u0111\u1ec3 s\u1eed d\u1ee5ng Flutter?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">C\u00e1c developer quen thu\u1ed9c v\u1edbi c\u00e1c kh\u00e1i ni\u1ec7m <a href=\"https:\/\/itviec.com\/blog\/oop-la-gi\/\" target=\"_blank\" rel=\"noopener\">l\u1eadp tr\u00ecnh h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng<\/a> (class, method, variables v.v.) v\u00e0 c\u00e1c kh\u00e1i ni\u1ec7m l\u1eadp tr\u00ecnh m\u1ec7nh l\u1ec7nh (loop, conditional, v.v.) c\u00f3 th\u1ec3 d\u1ec5 d\u00e0ng s\u1eed d\u1ee5ng Flutter.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Ngo\u00e0i ra, nh\u1eefng ai c\u00f3 r\u1ea5t \u00edt kinh nghi\u1ec7m l\u1eadp tr\u00ecnh c\u0169ng c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng framework n\u00e0y \u0111\u1ec3 t\u1ea1o m\u1eabu v\u00e0 ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Tong_ket\"><\/span><b>T\u1ed5ng k\u1ebft<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Qua b\u00e0i vi\u1ebft tr\u00ean, ITviec \u0111\u00e3 gi\u00fap b\u1ea1n hi\u1ec3u \u0111\u01b0\u1ee3c Flutter l\u00e0 g\u00ec, v\u00ec sao b\u1ea1n n\u00ean s\u1eed d\u1ee5ng Flutter v\u00e0 nh\u1eefng Flutter package gi\u00fap b\u1ea1n ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng nhanh v\u00e0 hi\u1ec7u qu\u1ea3 h\u01a1n. ITviec mong b\u1ea1n s\u1ebd c\u00f3 th\u00eam ph\u01b0\u01a1ng ph\u00e1p \u0111\u1ec3 ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng ph\u00f9 h\u1ee3p h\u01a1n v\u1edbi d\u1ef1 \u00e1n c\u1ee7a b\u1ea1n!<\/span><\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" class=\"sp-no-webp wp-image-5668 aligncenter sp-no-webp entered lazyloaded\" src=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2015\/07\/Robby2.png\" alt=\"robby-2\" width=\"300\" height=\"300\" data-lazy-src=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2015\/07\/Robby2.png\" data-lazy-sizes=\"(max-width: 300px) 100vw, 300px\" data-lazy-srcset=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2015\/07\/Robby2.png 300w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2015\/07\/Robby2-200x200.png 200w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2015\/07\/Robby2-60x60.png 60w\" data-ll-status=\"loaded\" srcset=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2015\/07\/Robby2.png 300w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2015\/07\/Robby2-200x200.png 200w, https:\/\/itviec.com\/blog\/wp-content\/uploads\/2015\/07\/Robby2-60x60.png 60w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>\n<\/div>\n<p id=\"block-bdf220a1-3635-4794-9101-81d879939b92\" class=\"has-text-align-center\" style=\"text-align: center;\"><strong>B\u1ea1n th\u1ea5y b\u00e0i vi\u1ebft hay v\u00e0 h\u1eefu \u00edch? \u0110\u1eebng ng\u1ea1i Share v\u1edbi b\u1ea1n b\u00e8 v\u00e0 \u0111\u1ed3ng nghi\u1ec7p nh\u00e9.<\/strong><\/p>\n<p id=\"block-a1315aab-406f-48df-97fc-6b9584e6e134\" class=\"has-text-align-center\" style=\"text-align: center;\"><strong>V\u00e0 nhanh tay tham kh\u1ea3o\u00a0<a href=\"http:\/\/itviec.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">vi\u1ec7c l\u00e0m IT<\/a>\u00a0\u201cch\u1ea5t\u201d tr\u00ean ITviec<\/strong>!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Flutter l\u00e0 g\u00ec? Khi nh\u1eafc \u0111\u1ebfn ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng d\u00e0nh cho thi\u1ebft b\u1ecb di \u0111\u1ed9ng, c\u00f3 hai framework m\u00e3 ngu\u1ed3n m\u1edf ph\u1ed5 bi\u1ebfn nh\u1ea5t l\u00e0 Flutter v\u00e0 React Native. Trong b\u00e0i vi\u1ebft n\u00e0y, b\u1ea1n s\u1ebd \u0111\u01b0\u1ee3c hi\u1ec3u s\u00e2u h\u01a1n v\u1ec1 Flutter \u0111\u1ec3 t\u1ea1o d\u1ef1ng s\u1ef1 nghi\u1ec7p th\u00e0nh c\u00f4ng trong l\u0129nh v\u1ef1c ph\u00e1t tri\u1ec3n Mobile [&hellip;]<\/p>\n","protected":false},"author":95,"featured_media":31823,"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-31812","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>Flutter l\u00e0 g\u00ec? Top 15 Flutter package b\u1ea1n s\u1ebd c\u1ea7n - ITviec Blog<\/title>\n<meta name=\"description\" content=\"Flutter l\u00e0 g\u00ec? Hi\u1ec3u s\u00e2u h\u01a1n v\u1ec1 Flutter \u0111\u1ec3 t\u1ea1o d\u1ef1ng s\u1ef1 nghi\u1ec7p th\u00e0nh c\u00f4ng trong l\u0129nh v\u1ef1c ph\u00e1t tri\u1ec3n Mobile App.\" \/>\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\/flutter-la-gi\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Flutter l\u00e0 g\u00ec? Top 15 Flutter package b\u1ea1n n\u00ean bi\u1ebft v\u00e0 s\u1eed d\u1ee5ng\" \/>\n<meta property=\"og:description\" content=\"Flutter l\u00e0 g\u00ec? Khi nh\u1eafc \u0111\u1ebfn ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng d\u00e0nh cho thi\u1ebft b\u1ecb di \u0111\u1ed9ng, c\u00f3 hai framework m\u00e3 ngu\u1ed3n m\u1edf ph\u1ed5 bi\u1ebfn nh\u1ea5t l\u00e0 Flutter v\u00e0 React Native. Trong\" \/>\n<meta property=\"og:url\" content=\"https:\/\/itviec.com\/blog\/flutter-la-gi\/\" \/>\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=\"2023-06-26T09:58:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-07-10T08:28:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2023\/06\/flutter-la-gi-thumbnail.jpg\" \/>\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\/jpeg\" \/>\n<meta name=\"author\" content=\"Tuong Uyen\" \/>\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=\"Tuong Uyen\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 ph\u00fat\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Flutter l\u00e0 g\u00ec? Top 15 Flutter package b\u1ea1n s\u1ebd c\u1ea7n - ITviec Blog","description":"Flutter l\u00e0 g\u00ec? Hi\u1ec3u s\u00e2u h\u01a1n v\u1ec1 Flutter \u0111\u1ec3 t\u1ea1o d\u1ef1ng s\u1ef1 nghi\u1ec7p th\u00e0nh c\u00f4ng trong l\u0129nh v\u1ef1c ph\u00e1t tri\u1ec3n Mobile App.","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\/flutter-la-gi\/","og_locale":"vi_VN","og_type":"article","og_title":"Flutter l\u00e0 g\u00ec? Top 15 Flutter package b\u1ea1n n\u00ean bi\u1ebft v\u00e0 s\u1eed d\u1ee5ng","og_description":"Flutter l\u00e0 g\u00ec? Khi nh\u1eafc \u0111\u1ebfn ph\u00e1t tri\u1ec3n \u1ee9ng d\u1ee5ng d\u00e0nh cho thi\u1ebft b\u1ecb di \u0111\u1ed9ng, c\u00f3 hai framework m\u00e3 ngu\u1ed3n m\u1edf ph\u1ed5 bi\u1ebfn nh\u1ea5t l\u00e0 Flutter v\u00e0 React Native. Trong","og_url":"https:\/\/itviec.com\/blog\/flutter-la-gi\/","og_site_name":"ITviec Blog","article_publisher":"https:\/\/www.facebook.com\/ITviec","article_published_time":"2023-06-26T09:58:08+00:00","article_modified_time":"2023-07-10T08:28:25+00:00","og_image":[{"width":640,"height":337,"url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2023\/06\/flutter-la-gi-thumbnail.jpg","type":"image\/jpeg"}],"author":"Tuong Uyen","twitter_card":"summary_large_image","twitter_creator":"@ITviec","twitter_site":"@ITviec","twitter_misc":{"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi":"Tuong Uyen","\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"10 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/itviec.com\/blog\/flutter-la-gi\/#article","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/flutter-la-gi\/"},"author":{"name":"Tuong Uyen","@id":"https:\/\/itviec.com\/blog\/#\/schema\/person\/e97d0e359f8840eaea7dc3a96006a8d4"},"headline":"Flutter l\u00e0 g\u00ec? Top 15 Flutter package b\u1ea1n n\u00ean bi\u1ebft v\u00e0 s\u1eed d\u1ee5ng","datePublished":"2023-06-26T09:58:08+00:00","dateModified":"2023-07-10T08:28:25+00:00","mainEntityOfPage":{"@id":"https:\/\/itviec.com\/blog\/flutter-la-gi\/"},"wordCount":3387,"publisher":{"@id":"https:\/\/itviec.com\/blog\/#organization"},"image":{"@id":"https:\/\/itviec.com\/blog\/flutter-la-gi\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2023\/06\/flutter-la-gi-thumbnail.jpg","articleSection":["Chuy\u00ean m\u00f4n IT"],"inLanguage":"vi"},{"@type":"WebPage","@id":"https:\/\/itviec.com\/blog\/flutter-la-gi\/","url":"https:\/\/itviec.com\/blog\/flutter-la-gi\/","name":"Flutter l\u00e0 g\u00ec? Top 15 Flutter package b\u1ea1n s\u1ebd c\u1ea7n - ITviec Blog","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/itviec.com\/blog\/flutter-la-gi\/#primaryimage"},"image":{"@id":"https:\/\/itviec.com\/blog\/flutter-la-gi\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2023\/06\/flutter-la-gi-thumbnail.jpg","datePublished":"2023-06-26T09:58:08+00:00","dateModified":"2023-07-10T08:28:25+00:00","description":"Flutter l\u00e0 g\u00ec? Hi\u1ec3u s\u00e2u h\u01a1n v\u1ec1 Flutter \u0111\u1ec3 t\u1ea1o d\u1ef1ng s\u1ef1 nghi\u1ec7p th\u00e0nh c\u00f4ng trong l\u0129nh v\u1ef1c ph\u00e1t tri\u1ec3n Mobile App.","breadcrumb":{"@id":"https:\/\/itviec.com\/blog\/flutter-la-gi\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/itviec.com\/blog\/flutter-la-gi\/"]}]},{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/flutter-la-gi\/#primaryimage","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2023\/06\/flutter-la-gi-thumbnail.jpg","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2023\/06\/flutter-la-gi-thumbnail.jpg","width":640,"height":337,"caption":"flutter l\u00e0 g\u00ec itviec blog"},{"@type":"BreadcrumbList","@id":"https:\/\/itviec.com\/blog\/flutter-la-gi\/#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":"Flutter l\u00e0 g\u00ec? Top 15 Flutter package b\u1ea1n n\u00ean bi\u1ebft v\u00e0 s\u1eed d\u1ee5ng"}]},{"@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\/e97d0e359f8840eaea7dc3a96006a8d4","name":"Tuong Uyen","image":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2022\/10\/tuong-uyen-profile-picture-100x100.jpg","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2022\/10\/tuong-uyen-profile-picture-100x100.jpg","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2022\/10\/tuong-uyen-profile-picture-100x100.jpg","caption":"Tuong Uyen"},"url":"https:\/\/itviec.com\/blog\/author\/tuong-uyen-pikachu\/"}]}},"_links":{"self":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/31812","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\/95"}],"replies":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/comments?post=31812"}],"version-history":[{"count":0,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/31812\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media\/31823"}],"wp:attachment":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media?parent=31812"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/categories?post=31812"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/tags?post=31812"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}