
{"id":104722,"date":"2025-05-30T17:25:49","date_gmt":"2025-05-30T17:25:49","guid":{"rendered":"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d9%be%d9%84%db%8c%da%a9%db%8c%d8%b4%d9%86-%d9%81%d9%87%d8%b1%d8%b3%d8%aa-%da%a9%d8%a7%d8%b1%d9%87%d8%a7-%d8%a8%d8%a7-%d8%ac%d8%aa\/"},"modified":"2025-05-30T17:25:51","modified_gmt":"2025-05-30T17:25:51","slug":"%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d9%be%d9%84%db%8c%da%a9%db%8c%d8%b4%d9%86-%d9%81%d9%87%d8%b1%d8%b3%d8%aa-%da%a9%d8%a7%d8%b1%d9%87%d8%a7-%d8%a8%d8%a7-%d8%ac%d8%aa","status":"publish","type":"product","link":"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d9%be%d9%84%db%8c%da%a9%db%8c%d8%b4%d9%86-%d9%81%d9%87%d8%b1%d8%b3%d8%aa-%da%a9%d8%a7%d8%b1%d9%87%d8%a7-%d8%a8%d8%a7-%d8%ac%d8%aa\/","title":{"rendered":"\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0641\u0647\u0631\u0633\u062a \u06a9\u0627\u0631\u0647\u0627 \u0628\u0627 \u062c\u062a\u200c\u067e\u06a9 \u06a9\u0627\u0645\u067e\u0648\u0632 \u0648 \u0645\u0639\u0645\u0627\u0631\u06cc MVVM &#8211; \u062a\u0648\u0633\u0639\u0647 \u0627\u0646\u062f\u0631\u0648\u06cc\u062f \u062f\u0627\u0646\u0644\u0648\u062f"},"content":{"rendered":"<table class=\"course-info-table\" border=\"1\" cellpadding=\"8\" cellspacing=\"0\" style=\"width: 100%; margin-bottom: 20px; border-collapse: collapse;\">\n<tr>\n<th style=\"background-color: #f5f5f5; text-align: right; width: 40%;\">\u0646\u0627\u0645 \u0645\u062d\u0635\u0648\u0644 \u0628\u0647 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc<\/th>\n<td style=\"text-align: right;\">To-Do App with Jetpack Compose MVVM &#8211; Android Development \u062f\u0627\u0646\u0644\u0648\u062f<\/td>\n<\/tr>\n<tr>\n<th style=\"background-color: #f5f5f5; text-align: right;\">\u0646\u0627\u0645 \u0645\u062d\u0635\u0648\u0644 \u0628\u0647 \u0641\u0627\u0631\u0633\u06cc<\/th>\n<td style=\"text-align: right;\">\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0641\u0647\u0631\u0633\u062a \u06a9\u0627\u0631\u0647\u0627 \u0628\u0627 \u062c\u062a\u200c\u067e\u06a9 \u06a9\u0627\u0645\u067e\u0648\u0632 \u0648 \u0645\u0639\u0645\u0627\u0631\u06cc MVVM &#8211; \u062a\u0648\u0633\u0639\u0647 \u0627\u0646\u062f\u0631\u0648\u06cc\u062f \u062f\u0627\u0646\u0644\u0648\u062f<\/td>\n<\/tr>\n<tr>\n<th style=\"background-color: #f5f5f5; text-align: right;\">\u0632\u0628\u0627\u0646<\/th>\n<td style=\"text-align: right;\">\u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u0628\u0627 \u0632\u06cc\u0631\u0646\u0648\u06cc\u0633 \u0641\u0627\u0631\u0633\u06cc<\/td>\n<\/tr>\n<tr>\n<th style=\"background-color: #f5f5f5; text-align: right;\">\u0646\u0648\u0639 \u0645\u062d\u0635\u0648\u0644<\/th>\n<td style=\"text-align: right;\">\u0622\u0645\u0648\u0632\u0634 \u0648\u06cc\u062f\u06cc\u0648\u06cc\u06cc<\/td>\n<\/tr>\n<tr>\n<th style=\"background-color: #f5f5f5; text-align: right;\">\u0646\u062d\u0648\u0647 \u062a\u062d\u0648\u06cc\u0644<\/th>\n<td style=\"text-align: right;\">\u0628\u0647 \u0635\u0648\u0631\u062a \u062f\u0627\u0646\u0644\u0648\u062f\u06cc<\/td>\n<\/tr>\n<\/table>\n<div style=\"\r\n  background-color: #FFFBEA;\r\n  border: 1px solid #FCD34D;\r\n  border-left: 6px solid #FBBF24;\r\n  padding: 20px;\r\n  border-radius: 10px;\r\n  margin-top: 30px;\r\n  font-family: 'Vazirmatn', sans-serif;\r\n  color: #78350F;\r\n  line-height: 1.8;\r\n  box-shadow: 0 4px 12px rgba(0,0,0,0.04);\r\n\">\r\n  <strong style=\"display: block; font-size: 1.1rem; margin-bottom: 10px;\">\u062a\u0648\u062c\u0647 \u0645\u0647\u0645:<\/strong>\r\n  <p style=\"margin: 0;\">\r\n    \u0627\u06cc\u0646 \u062f\u0648\u0631\u0647 \u0622\u0645\u0648\u0632\u0634\u06cc <span style=\"font-weight: bold;\">\u062f\u0627\u0646\u0644\u0648\u062f\u06cc<\/span> \u0628\u0648\u062f\u0647 \u0648 \u0647\u0645\u0631\u0627\u0647 \u0628\u0627 <span style=\"font-weight: bold;\">\u0632\u06cc\u0631\u0646\u0648\u06cc\u0633 \u0641\u0627\u0631\u0633\u06cc<\/span> \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u06af\u0631\u062f\u062f.\r\n  <\/p>\r\n  <p style=\"margin: 8px 0 0 0;\">\r\n    \u062d\u062f\u0627\u06a9\u062b\u0631 \u062a\u0627 <strong>\u06f2\u06f4 \u0633\u0627\u0639\u062a \u067e\u0633 \u0627\u0632 \u0633\u0641\u0627\u0631\u0634<\/strong>\u060c \u0644\u06cc\u0646\u06a9 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u062f\u0648\u0631\u0647 \u0628\u0631\u0627\u06cc \u0634\u0645\u0627 \u0633\u0627\u062e\u062a\u0647 \u0648 \u062c\u0647\u062a \u062f\u0627\u0646\u0644\u0648\u062f \u0627\u0631\u0633\u0627\u0644 \u062e\u0648\u0627\u0647\u062f \u0634\u062f.\r\n  <\/p>\r\n  <p style=\"margin: 8px 0 0 0;\">\r\n    \u062c\u0647\u062a \u067e\u06cc\u06af\u06cc\u0631\u06cc \u0633\u0641\u0627\u0631\u0634\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0648\u0627\u062a\u0633\u200c\u0627\u067e \u0628\u0627 \u0634\u0645\u0627\u0631\u0647 <strong>09395106248<\/strong> \u06cc\u0627 \u0622\u06cc\u062f\u06cc \u062a\u0644\u06af\u0631\u0627\u0645\u06cc <strong>@ma_limbs<\/strong> \u062f\u0631 \u062a\u0645\u0627\u0633 \u0628\u0627\u0634\u06cc\u062f.\r\n  <\/p>\r\n<\/div>\r\n\r\n\n<article class=\"violin-complex-pieces\" style=\"font-family: 'Vazirmatn', sans-serif;color: #2E2E2E;line-height: 1.75;max-width: 800px;margin: 40px auto;padding: 30px;background: #FFFFFF;border-radius: 12px;box-shadow: 0 6px 20px rgba(0,0,0,0.05);\">\n<h1>\u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0641\u0647\u0631\u0633\u062a \u06a9\u0627\u0631\u0647\u0627 \u0628\u0627 \u062c\u062a\u200c\u067e\u06a9 \u06a9\u0627\u0645\u067e\u0648\u0632 \u0648 \u0645\u0639\u0645\u0627\u0631\u06cc MVVM &#8211; \u062a\u0648\u0633\u0639\u0647 \u0627\u0646\u062f\u0631\u0648\u06cc\u062f \u062f\u0627\u0646\u0644\u0648\u062f<\/h1>\n<div class=\"section-box\">\n<h2>\u0645\u0639\u0631\u0641\u06cc \u062f\u0648\u0631\u0647<\/h2>\n<p>\n    \u062f\u0631 \u0627\u06cc\u0646 \u062f\u0648\u0631\u0647 \u0639\u0645\u0644\u06cc \u0648 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc\u060c \u0634\u0645\u0627 \u0628\u0627 \u0633\u0627\u062e\u062a \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0641\u0647\u0631\u0633\u062a \u06a9\u0627\u0631\u0647\u0627 (To-Do App) \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 Jetpack Compose \u0648 \u0627\u0644\u06af\u0648\u06cc \u0645\u0639\u0645\u0627\u0631\u06cc MVVM \u0622\u0634\u0646\u0627 \u062e\u0648\u0627\u0647\u06cc\u062f \u0634\u062f. \u0647\u062f\u0641 \u0627\u0635\u0644\u06cc \u0627\u06cc\u0646 \u062f\u0648\u0631\u0647\u060c \u0627\u0646\u062a\u0642\u0627\u0644 \u0645\u0641\u0627\u0647\u06cc\u0645 \u067e\u0627\u06cc\u0647 \u0648 \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u062f\u0631 \u062a\u0648\u0633\u0639\u0647 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0627 \u06a9\u0627\u0645\u067e\u0648\u0632\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0636\u0639\u06cc\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0627 ViewModel \u0648 LiveData\u060c \u0648 \u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u0645\u0646\u0637\u0642 \u062a\u062c\u0627\u0631\u06cc \u0648 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0627\u0633\u062a. \u062f\u0631 \u0637\u0648\u0644 \u0645\u0633\u06cc\u0631\u060c \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0631\u0633\u0645\u06cc \u0627\u0646\u062f\u0631\u0648\u06cc\u062f \u0645\u0627\u0646\u0646\u062f Hilt \u0628\u0631\u0627\u06cc <span class=\"highlight\">Dependency Injection<\/span> \u0648 Room \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0645\u062d\u0644\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.\n  <\/p>\n<\/div>\n<div class=\"section-box\">\n<h2>\u062f\u0627\u0646\u0634\u062c\u0648\u06cc\u0627\u0646 \u0686\u0647 \u062e\u0648\u0627\u0647\u0646\u062f \u0622\u0645\u0648\u062e\u062a<\/h2>\n<ul>\n<li>\u0637\u0631\u0627\u062d\u06cc \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0648\u0627\u06a9\u0646\u0634\u200c\u06af\u0631\u0627 \u0628\u0627 Jetpack Compose \u0648 \u06a9\u0627\u0645\u067e\u0648\u0632\u0627\u0628\u0644\u200c\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc<\/li>\n<li>\u0627\u06cc\u062c\u0627\u062f ViewModel \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 LiveData\/StateFlow \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0636\u0639\u06cc\u062a<\/li>\n<li>\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Room Database \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u062d\u0644\u06cc<\/li>\n<li>\u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0622\u0645\u06cc\u062e\u062a\u06af\u06cc \u06a9\u062f \u0628\u0627 Hilt \u0648 \u0627\u0635\u0648\u0644 <span class=\"highlight\">DI<\/span><\/li>\n<li>\u0633\u0627\u062e\u062a\u0627\u0631\u062f\u0647\u06cc \u067e\u0631\u0648\u0698\u0647 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0645\u0639\u0645\u0627\u0631\u06cc MVVM \u0648 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0634\u06cc\u0648\u0647\u200c\u0647\u0627\u06cc \u06a9\u062f\u0646\u0648\u06cc\u0633\u06cc<\/li>\n<li>\u0622\u0632\u0645\u0648\u0646\u200c\u0646\u0648\u06cc\u0633\u06cc \u0648\u0627\u062d\u062f \u0648 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647\u200c\u0633\u0627\u0632\u06cc \u0628\u0627 JUnit \u0648 Espresso<\/li>\n<\/ul>\n<\/div>\n<div class=\"section-box\">\n<h2>\u0645\u0632\u0627\u06cc\u0627\u06cc \u062f\u0648\u0631\u0647<\/h2>\n<ul>\n<li>\u062a\u0645\u0631\u06a9\u0632 \u06a9\u0627\u0645\u0644 \u0628\u0631 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u062f\u0631\u0646 Jetpack Compose \u0648 \u0645\u0639\u0645\u0627\u0631\u06cc MVVM<\/li>\n<li>\u0627\u0631\u0627\u0626\u0647 \u0645\u062b\u0627\u0644\u200c\u0647\u0627\u06cc \u0648\u0627\u0642\u0639\u06cc \u0648 \u067e\u0631\u0648\u0698\u0647 \u0645\u062d\u0648\u0631 \u0628\u0631\u0627\u06cc \u0627\u0646\u062a\u0642\u0627\u0644 \u0645\u0641\u0627\u0647\u06cc\u0645 \u0639\u0645\u06cc\u0642<\/li>\n<li>\u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0627 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0627\u0644\u06af\u0648\u0647\u0627 \u0648 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f\u0647\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u0646\u062f\u0631\u0648\u06cc\u062f<\/li>\n<li>\u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0646\u062d\u0648\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0636\u0639\u06cc\u062a \u0648 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u067e\u0648\u06cc\u0627<\/li>\n<li>\u0627\u0641\u0632\u0627\u06cc\u0634 \u0628\u0647\u0631\u0647\u200c\u0648\u0631\u06cc \u0648 \u0642\u0627\u0628\u0644\u06cc\u062a \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u06a9\u062f \u0628\u0627 \u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u0644\u0627\u06cc\u0647\u200c\u0647\u0627<\/li>\n<li>\u0622\u0645\u0627\u062f\u06af\u06cc \u0628\u0631\u0627\u06cc \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u062d\u0631\u0641\u0647\u200c\u0627\u06cc \u0648 \u0622\u0632\u0645\u0648\u0646 \u0645\u0647\u0627\u0631\u062a \u062f\u0631 \u0635\u0646\u0639\u062a<\/li>\n<\/ul>\n<\/div>\n<div class=\"section-box\">\n<h2>\u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632\u0647\u0627<\/h2>\n<ul>\n<li>\u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0627 \u0632\u0628\u0627\u0646 Kotlin \u0648 \u0645\u0641\u0627\u0647\u06cc\u0645 \u0627\u0635\u0644\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc \u0634\u06cc\u0621\u200c\u06af\u0631\u0627<\/li>\n<li>\u062a\u062c\u0631\u0628\u0647 \u0627\u0648\u0644\u06cc\u0647 \u0628\u0627 Android Studio \u0648 \u0633\u0627\u062e\u062a\u0627\u0631 \u067e\u0631\u0648\u0698\u0647 \u0627\u0646\u062f\u0631\u0648\u06cc\u062f<\/li>\n<li>\u062f\u0631\u06a9 \u067e\u0627\u06cc\u0647 \u0627\u0632 \u0645\u0639\u0645\u0627\u0631\u06cc MVC \u06cc\u0627 MVP (\u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u0627\u0645\u0627 \u06a9\u0645\u06a9\u200c\u06a9\u0646\u0646\u062f\u0647)<\/li>\n<li>\u062f\u0627\u0646\u0634 \u0627\u0628\u062a\u062f\u0627\u06cc\u06cc \u0627\u0632 LiveData \u0648 ViewModel (\u062f\u0631 \u0635\u0648\u0631\u062a \u0627\u0645\u06a9\u0627\u0646)<\/li>\n<li>\u0646\u0635\u0628 JDK \u0648 Android SDK \u062f\u0631 \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647<\/li>\n<\/ul>\n<\/div>\n<div class=\"section-box\">\n<h2>\u0633\u0631\u0641\u0635\u0644\u200c\u0647\u0627\u06cc \u062f\u0648\u0631\u0647<\/h2>\n<ul>\n<li><strong>\u0628\u062e\u0634 1:<\/strong> \u0645\u0639\u0631\u0641\u06cc Jetpack Compose \u0648 \u0646\u0635\u0628 \u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632\u0647\u0627<\/li>\n<li><strong>\u0628\u062e\u0634 2:<\/strong> \u0633\u0627\u062e\u062a \u0627\u0648\u0644\u06cc\u0646 \u06a9\u0627\u0645\u067e\u0648\u0632\u0627\u0628\u0644\u200c\u0647\u0627 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0686\u06cc\u062f\u0645\u0627\u0646<\/li>\n<li><strong>\u0628\u062e\u0634 3:<\/strong> \u0645\u0641\u0647\u0648\u0645 State \u0648 State Hoisting \u062f\u0631 Compose<\/li>\n<li><strong>\u0628\u062e\u0634 4:<\/strong> \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc ViewModel \u0648 LiveData\/StateFlow<\/li>\n<li><strong>\u0628\u062e\u0634 5:<\/strong> \u062a\u0646\u0638\u06cc\u0645 \u0648 \u06a9\u0627\u0631 \u0628\u0627 Room Database \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647\u200c\u0633\u0627\u0632\u06cc<\/li>\n<li><strong>\u0628\u062e\u0634 6:<\/strong> \u062a\u0632\u0631\u06cc\u0642 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0628\u0627 Hilt \u0648 \u0645\u0627\u0698\u0648\u0644\u200c\u0647\u0627\u06cc DI<\/li>\n<li><strong>\u0628\u062e\u0634 7:<\/strong> \u0627\u06cc\u062c\u0627\u062f \u0635\u0641\u062d\u0627\u062a \u0627\u0635\u0644\u06cc: \u0641\u0647\u0631\u0633\u062a\u060c \u0627\u0641\u0632\u0648\u062f\u0646 \u0648 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0627\u0631\u0647\u0627<\/li>\n<li><strong>\u0628\u062e\u0634 8:<\/strong> \u0622\u0632\u0645\u0648\u0646\u200c\u0647\u0627\u06cc \u0648\u0627\u062d\u062f \u0648 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0627 JUnit \u0648 Espresso<\/li>\n<li><strong>\u0628\u062e\u0634 9:<\/strong> \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f \u0648 \u062f\u06cc\u0628\u0627\u06af \u067e\u06cc\u0634\u0631\u0641\u062a\u0647<\/li>\n<li><strong>\u0628\u062e\u0634 10:<\/strong> \u0627\u0646\u062a\u0634\u0627\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062f\u0631 \u0628\u0627\u0632\u0627\u0631\u0647\u0627\u06cc \u0627\u0646\u062f\u0631\u0648\u06cc\u062f<\/li>\n<\/ul>\n<\/div>\n<div class=\"section-box\">\n<h2>\u0645\u062b\u0627\u0644\u200c\u0647\u0627\u06cc \u0639\u0645\u0644\u06cc<\/h2>\n<p>\n    \u062f\u0631 \u0647\u0631 \u0628\u062e\u0634\u060c \u0645\u062b\u0627\u0644\u200c\u0647\u0627\u06cc \u0639\u0645\u0644\u06cc \u0648 \u06a9\u062f\u0647\u0627\u06cc \u0642\u062f\u0645\u200c\u0628\u0647\u200c\u0642\u062f\u0645 \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647\u200c\u0627\u0646\u062f. \u0628\u0631\u0627\u06cc \u0646\u0645\u0648\u0646\u0647\u060c \u062f\u0631 \u0628\u062e\u0634 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0636\u0639\u06cc\u062a\u060c \u0627\u0632 \u0642\u0637\u0639\u0647 \u0632\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:\n  <\/p>\n<ul>\n<li>\n      ViewModel \u0633\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0644\u06cc\u0633\u062a \u06a9\u0627\u0631\u0647\u0627:<\/p>\n<pre><code>class TodoViewModel : ViewModel() {\n    private val _tasks = MutableStateFlow<List<Task>>(emptyList())\n    val tasks: StateFlow<List<Task>> = _tasks\n\n    fun addTask(task: Task) {\n        _tasks.value = _tasks.value + task\n    }\n}<\/code><\/pre>\n<\/li>\n<li>\n      \u0646\u0645\u0648\u0646\u0647 \u06a9\u0627\u0645\u067e\u0648\u0632\u0627\u0628\u0644 \u0646\u0645\u0627\u06cc\u0634 \u0644\u06cc\u0633\u062a:<\/p>\n<pre><code>@Composable\nfun TaskList(tasks: List<Task>, onRemove: (Task) -> Unit) {\n    LazyColumn {\n        items(tasks) { task ->\n            TaskItem(task = task, onRemove = onRemove)\n        }\n    }\n}<\/code><\/pre>\n<\/li>\n<li>\n      \u0630\u062e\u06cc\u0631\u0647 \u0648 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0628\u0627 Room:<br \/>\n      <span class=\"highlight\">@Dao<\/span> \u0648 <span class=\"highlight\">@Entity<\/span> \u0628\u0631\u0627\u06cc \u0646\u06af\u0627\u0634\u062a \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0628\u0647 \u062c\u062f\u0648\u0644 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647.\n    <\/li>\n<\/ul>\n<\/div>\n<div class=\"section-box\">\n<h2>\u0646\u06a9\u0627\u062a \u06a9\u0644\u06cc\u062f\u06cc<\/h2>\n<ul>\n<li>\u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u0645\u0633\u0626\u0648\u0644\u06cc\u062a\u200c\u0647\u0627 \u0628\u0627 MVVM \u0628\u0627\u0639\u062b <span class=\"highlight\">\u0642\u0627\u0628\u0644 \u062a\u0633\u062a\u200c\u062a\u0631<\/span> \u0634\u062f\u0646 \u06a9\u062f \u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n<li>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 StateFlow\/LiveData \u0628\u0631\u0627\u06cc \u0628\u0647\u200c\u0631\u0648\u0632\u200c\u0631\u0633\u0627\u0646\u06cc \u0631\u0627\u0628\u0637 \u062f\u0631 \u0632\u0645\u0627\u0646 \u0648\u0627\u0642\u0639\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a.<\/li>\n<li>Jetpack Compose \u0633\u0631\u06cc\u0639\u200c\u062a\u0631 \u0627\u0632 XML \u0628\u0648\u062f\u0647 \u0648 \u0627\u0645\u06a9\u0627\u0646 \u0633\u0641\u0627\u0631\u0634\u06cc\u200c\u0633\u0627\u0632\u06cc \u0628\u06cc\u0634\u062a\u0631 \u0631\u0627 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/li>\n<li>\u062a\u0632\u0631\u06cc\u0642 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0628\u0627 Hilt\u060c \u0648\u0627\u0628\u0633\u062a\u06af\u06cc\u200c\u0647\u0627 \u0631\u0627 \u0633\u0627\u062f\u0647 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a\u200c\u067e\u0630\u06cc\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<li>Room Database \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u062d\u0644\u06cc \u0627\u0645\u0646 \u0648 \u06a9\u0627\u0631\u0622\u0645\u062f \u0627\u0633\u062a.<\/li>\n<li>\u0622\u0632\u0645\u0648\u0646 \u0648\u0627\u062d\u062f \u0648 UI \u0628\u0631\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u067e\u0627\u06cc\u062f\u0627\u0631\u06cc \u0648 \u0639\u062f\u0645 \u0628\u0631\u0648\u0632 \u0628\u0627\u06af \u0636\u0631\u0648\u0631\u06cc \u0627\u0633\u062a.<\/li>\n<li>\u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc\u200c\u0647\u0627\u06cc Jetpack Compose \u0631\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0627\u0632 \u0627\u0645\u06a9\u0627\u0646\u0627\u062a \u062c\u062f\u06cc\u062f \u0628\u0647\u0631\u0647\u200c\u0645\u0646\u062f \u0634\u0648\u06cc\u062f.<\/li>\n<li>\u0633\u0639\u06cc \u06a9\u0646\u06cc\u062f \u06a9\u062f \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0645\u0627\u0698\u0648\u0644\u200c\u0647\u0627\u06cc \u06a9\u0648\u0686\u06a9 \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0631\u062f\u0647 \u0648 <span class=\"highlight\">Single Responsibility Principle<\/span> \u0631\u0627 \u0631\u0639\u0627\u06cc\u062a \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ul>\n<\/div>\n<div class=\"section-box\">\n<h2>\u062c\u0645\u0639\u200c\u0628\u0646\u062f\u06cc<\/h2>\n<p>\n    \u0627\u06cc\u0646 \u062f\u0648\u0631\u0647 \u0646\u0642\u0637\u0647 \u0634\u0631\u0648\u0639\u06cc \u0639\u0627\u0644\u06cc \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u0646\u062f\u0631\u0648\u06cc\u062f \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u0646\u062f \u0628\u0627 \u0631\u0648\u06cc\u06a9\u0631\u062f\u0647\u0627\u06cc \u0645\u062f\u0631\u0646 UI \u0648 \u0645\u0639\u0645\u0627\u0631\u06cc MVVM \u0622\u0634\u0646\u0627 \u0634\u0648\u0646\u062f. \u0628\u0627 \u067e\u0627\u06cc\u0627\u0646 \u062f\u0648\u0631\u0647\u060c \u062a\u0648\u0627\u0646\u0627\u06cc\u06cc \u0637\u0631\u0627\u062d\u06cc\u060c \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0648 \u062a\u0633\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0631\u0627 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u0627\u0634\u062a. \u0627\u06cc\u0646 \u067e\u0631\u0648\u0698\u0647 \u0639\u0645\u0644\u06cc\u060c \u0634\u0645\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u0647 \u0628\u0627\u0632\u0627\u0631 \u06a9\u0627\u0631 \u0648 \u062a\u0648\u0633\u0639\u0647 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627\u06cc \u0645\u0642\u06cc\u0627\u0633\u200c\u067e\u0630\u06cc\u0631 \u0622\u0645\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.\n  <\/p>\n<\/div>\n<\/article>\n","protected":false},"excerpt":{"rendered":"<p>\u0646\u0627\u0645 \u0645\u062d\u0635\u0648\u0644 \u0628\u0647 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc To-Do App with Jetpack Compose MVVM &#8211; Android Development \u062f\u0627\u0646\u0644\u0648\u062f \u0646\u0627\u0645 \u0645\u062d\u0635\u0648\u0644 \u0628\u0647 \u0641\u0627\u0631\u0633\u06cc \u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 [&hellip;]<\/p>\n","protected":false},"featured_media":67493,"comment_status":"open","ping_status":"closed","template":"","meta":{"pmpro_default_level":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}}},"product_cat":[1225],"product_tag":[33001,3343,3344,9398,33004,22047,33000,33003,33002,32997,20776,32994,32993,3333,32999,3332,32996,1166,32998,32995],"class_list":{"0":"post-104722","1":"product","2":"type-product","3":"status-publish","4":"has-post-thumbnail","6":"product_cat-1225","7":"product_tag-android-app","8":"product_tag-android-development","9":"product_tag-android-programming","10":"product_tag-jetpack-compose","11":"product_tag-mvvm-android-project","12":"product_tag-mvvm-architecture","13":"product_tag-to-do-app","14":"product_tag-to-do-list-app","15":"product_tag-ui-with-jetpack-compose","16":"product_tag-ui--jetpack-compose","17":"product_tag-user-interface-design","18":"product_tag-32994","19":"product_tag-32993","20":"product_tag-3333","21":"product_tag--mvvm-","22":"product_tag-3332","23":"product_tag-32996","24":"product_tag-1166","25":"product_tag-32998","26":"product_tag--mvvm","27":"pmpro-has-access","28":"desktop-align-left","29":"tablet-align-left","30":"mobile-align-left","32":"first","33":"instock","34":"shipping-taxable","35":"purchasable","36":"product-type-variable"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0641\u0647\u0631\u0633\u062a \u06a9\u0627\u0631\u0647\u0627 \u0628\u0627 \u062c\u062a\u200c\u067e\u06a9 \u06a9\u0627\u0645\u067e\u0648\u0632 \u0648 \u0645\u0639\u0645\u0627\u0631\u06cc MVVM - \u062a\u0648\u0633\u0639\u0647 \u0627\u0646\u062f\u0631\u0648\u06cc\u062f \u062f\u0627\u0646\u0644\u0648\u062f - \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/express24.ir\/d\/product\/\u062f\u0627\u0646\u0644\u0648\u062f-\u062f\u0648\u0631\u0647-\u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646-\u0641\u0647\u0631\u0633\u062a-\u06a9\u0627\u0631\u0647\u0627-\u0628\u0627-\u062c\u062a\/\" \/>\n<meta property=\"og:locale\" content=\"fa_IR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0641\u0647\u0631\u0633\u062a \u06a9\u0627\u0631\u0647\u0627 \u0628\u0627 \u062c\u062a\u200c\u067e\u06a9 \u06a9\u0627\u0645\u067e\u0648\u0632 \u0648 \u0645\u0639\u0645\u0627\u0631\u06cc MVVM - \u062a\u0648\u0633\u0639\u0647 \u0627\u0646\u062f\u0631\u0648\u06cc\u062f \u062f\u0627\u0646\u0644\u0648\u062f - \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633\" \/>\n<meta property=\"og:description\" content=\"\u0646\u0627\u0645 \u0645\u062d\u0635\u0648\u0644 \u0628\u0647 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc To-Do App with Jetpack Compose MVVM &#8211; Android Development \u062f\u0627\u0646\u0644\u0648\u062f \u0646\u0627\u0645 \u0645\u062d\u0635\u0648\u0644 \u0628\u0647 \u0641\u0627\u0631\u0633\u06cc \u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/express24.ir\/d\/product\/\u062f\u0627\u0646\u0644\u0648\u062f-\u062f\u0648\u0631\u0647-\u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646-\u0641\u0647\u0631\u0633\u062a-\u06a9\u0627\u0631\u0647\u0627-\u0628\u0627-\u062c\u062a\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-30T17:25:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/express24.ir\/d\/wp-content\/uploads\/2025\/05\/Express24_ir.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u0632\u0645\u0627\u0646 \u062a\u0642\u0631\u06cc\u0628\u06cc \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 \u062f\u0642\u06cc\u0642\u0647\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d9%be%d9%84%db%8c%da%a9%db%8c%d8%b4%d9%86-%d9%81%d9%87%d8%b1%d8%b3%d8%aa-%da%a9%d8%a7%d8%b1%d9%87%d8%a7-%d8%a8%d8%a7-%d8%ac%d8%aa\/\",\"url\":\"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d9%be%d9%84%db%8c%da%a9%db%8c%d8%b4%d9%86-%d9%81%d9%87%d8%b1%d8%b3%d8%aa-%da%a9%d8%a7%d8%b1%d9%87%d8%a7-%d8%a8%d8%a7-%d8%ac%d8%aa\/\",\"name\":\"\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0641\u0647\u0631\u0633\u062a \u06a9\u0627\u0631\u0647\u0627 \u0628\u0627 \u062c\u062a\u200c\u067e\u06a9 \u06a9\u0627\u0645\u067e\u0648\u0632 \u0648 \u0645\u0639\u0645\u0627\u0631\u06cc MVVM - \u062a\u0648\u0633\u0639\u0647 \u0627\u0646\u062f\u0631\u0648\u06cc\u062f \u062f\u0627\u0646\u0644\u0648\u062f - \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633\",\"isPartOf\":{\"@id\":\"https:\/\/express24.ir\/d\/#website\"},\"datePublished\":\"2025-05-30T17:25:49+00:00\",\"dateModified\":\"2025-05-30T17:25:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d9%be%d9%84%db%8c%da%a9%db%8c%d8%b4%d9%86-%d9%81%d9%87%d8%b1%d8%b3%d8%aa-%da%a9%d8%a7%d8%b1%d9%87%d8%a7-%d8%a8%d8%a7-%d8%ac%d8%aa\/#breadcrumb\"},\"inLanguage\":\"fa-IR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d9%be%d9%84%db%8c%da%a9%db%8c%d8%b4%d9%86-%d9%81%d9%87%d8%b1%d8%b3%d8%aa-%da%a9%d8%a7%d8%b1%d9%87%d8%a7-%d8%a8%d8%a7-%d8%ac%d8%aa\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d9%be%d9%84%db%8c%da%a9%db%8c%d8%b4%d9%86-%d9%81%d9%87%d8%b1%d8%b3%d8%aa-%da%a9%d8%a7%d8%b1%d9%87%d8%a7-%d8%a8%d8%a7-%d8%ac%d8%aa\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u062e\u0627\u0646\u0647\",\"item\":\"https:\/\/express24.ir\/d\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u0641\u0631\u0648\u0634\u06af\u0627\u0647\",\"item\":\"https:\/\/express24.ir\/d\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0641\u0647\u0631\u0633\u062a \u06a9\u0627\u0631\u0647\u0627 \u0628\u0627 \u062c\u062a\u200c\u067e\u06a9 \u06a9\u0627\u0645\u067e\u0648\u0632 \u0648 \u0645\u0639\u0645\u0627\u0631\u06cc MVVM &#8211; \u062a\u0648\u0633\u0639\u0647 \u0627\u0646\u062f\u0631\u0648\u06cc\u062f \u062f\u0627\u0646\u0644\u0648\u062f\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/express24.ir\/d\/#website\",\"url\":\"https:\/\/express24.ir\/d\/\",\"name\":\"\u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/express24.ir\/d\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fa-IR\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0641\u0647\u0631\u0633\u062a \u06a9\u0627\u0631\u0647\u0627 \u0628\u0627 \u062c\u062a\u200c\u067e\u06a9 \u06a9\u0627\u0645\u067e\u0648\u0632 \u0648 \u0645\u0639\u0645\u0627\u0631\u06cc MVVM - \u062a\u0648\u0633\u0639\u0647 \u0627\u0646\u062f\u0631\u0648\u06cc\u062f \u062f\u0627\u0646\u0644\u0648\u062f - \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633","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:\/\/express24.ir\/d\/product\/\u062f\u0627\u0646\u0644\u0648\u062f-\u062f\u0648\u0631\u0647-\u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646-\u0641\u0647\u0631\u0633\u062a-\u06a9\u0627\u0631\u0647\u0627-\u0628\u0627-\u062c\u062a\/","og_locale":"fa_IR","og_type":"article","og_title":"\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0641\u0647\u0631\u0633\u062a \u06a9\u0627\u0631\u0647\u0627 \u0628\u0627 \u062c\u062a\u200c\u067e\u06a9 \u06a9\u0627\u0645\u067e\u0648\u0632 \u0648 \u0645\u0639\u0645\u0627\u0631\u06cc MVVM - \u062a\u0648\u0633\u0639\u0647 \u0627\u0646\u062f\u0631\u0648\u06cc\u062f \u062f\u0627\u0646\u0644\u0648\u062f - \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633","og_description":"\u0646\u0627\u0645 \u0645\u062d\u0635\u0648\u0644 \u0628\u0647 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc To-Do App with Jetpack Compose MVVM &#8211; Android Development \u062f\u0627\u0646\u0644\u0648\u062f \u0646\u0627\u0645 \u0645\u062d\u0635\u0648\u0644 \u0628\u0647 \u0641\u0627\u0631\u0633\u06cc \u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 [&hellip;]","og_url":"https:\/\/express24.ir\/d\/product\/\u062f\u0627\u0646\u0644\u0648\u062f-\u062f\u0648\u0631\u0647-\u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646-\u0641\u0647\u0631\u0633\u062a-\u06a9\u0627\u0631\u0647\u0627-\u0628\u0627-\u062c\u062a\/","og_site_name":"\u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633","article_modified_time":"2025-05-30T17:25:51+00:00","og_image":[{"width":1024,"height":1024,"url":"https:\/\/express24.ir\/d\/wp-content\/uploads\/2025\/05\/Express24_ir.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"\u0632\u0645\u0627\u0646 \u062a\u0642\u0631\u06cc\u0628\u06cc \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646":"1 \u062f\u0642\u06cc\u0642\u0647"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d9%be%d9%84%db%8c%da%a9%db%8c%d8%b4%d9%86-%d9%81%d9%87%d8%b1%d8%b3%d8%aa-%da%a9%d8%a7%d8%b1%d9%87%d8%a7-%d8%a8%d8%a7-%d8%ac%d8%aa\/","url":"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d9%be%d9%84%db%8c%da%a9%db%8c%d8%b4%d9%86-%d9%81%d9%87%d8%b1%d8%b3%d8%aa-%da%a9%d8%a7%d8%b1%d9%87%d8%a7-%d8%a8%d8%a7-%d8%ac%d8%aa\/","name":"\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0641\u0647\u0631\u0633\u062a \u06a9\u0627\u0631\u0647\u0627 \u0628\u0627 \u062c\u062a\u200c\u067e\u06a9 \u06a9\u0627\u0645\u067e\u0648\u0632 \u0648 \u0645\u0639\u0645\u0627\u0631\u06cc MVVM - \u062a\u0648\u0633\u0639\u0647 \u0627\u0646\u062f\u0631\u0648\u06cc\u062f \u062f\u0627\u0646\u0644\u0648\u062f - \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633","isPartOf":{"@id":"https:\/\/express24.ir\/d\/#website"},"datePublished":"2025-05-30T17:25:49+00:00","dateModified":"2025-05-30T17:25:51+00:00","breadcrumb":{"@id":"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d9%be%d9%84%db%8c%da%a9%db%8c%d8%b4%d9%86-%d9%81%d9%87%d8%b1%d8%b3%d8%aa-%da%a9%d8%a7%d8%b1%d9%87%d8%a7-%d8%a8%d8%a7-%d8%ac%d8%aa\/#breadcrumb"},"inLanguage":"fa-IR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d9%be%d9%84%db%8c%da%a9%db%8c%d8%b4%d9%86-%d9%81%d9%87%d8%b1%d8%b3%d8%aa-%da%a9%d8%a7%d8%b1%d9%87%d8%a7-%d8%a8%d8%a7-%d8%ac%d8%aa\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/express24.ir\/d\/product\/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d9%be%d9%84%db%8c%da%a9%db%8c%d8%b4%d9%86-%d9%81%d9%87%d8%b1%d8%b3%d8%aa-%da%a9%d8%a7%d8%b1%d9%87%d8%a7-%d8%a8%d8%a7-%d8%ac%d8%aa\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u062e\u0627\u0646\u0647","item":"https:\/\/express24.ir\/d\/"},{"@type":"ListItem","position":2,"name":"\u0641\u0631\u0648\u0634\u06af\u0627\u0647","item":"https:\/\/express24.ir\/d\/"},{"@type":"ListItem","position":3,"name":"\u062f\u0627\u0646\u0644\u0648\u062f \u062f\u0648\u0631\u0647 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0641\u0647\u0631\u0633\u062a \u06a9\u0627\u0631\u0647\u0627 \u0628\u0627 \u062c\u062a\u200c\u067e\u06a9 \u06a9\u0627\u0645\u067e\u0648\u0632 \u0648 \u0645\u0639\u0645\u0627\u0631\u06cc MVVM &#8211; \u062a\u0648\u0633\u0639\u0647 \u0627\u0646\u062f\u0631\u0648\u06cc\u062f \u062f\u0627\u0646\u0644\u0648\u062f"}]},{"@type":"WebSite","@id":"https:\/\/express24.ir\/d\/#website","url":"https:\/\/express24.ir\/d\/","name":"\u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/express24.ir\/d\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fa-IR"}]}},"_links":{"self":[{"href":"https:\/\/express24.ir\/d\/wp-json\/wp\/v2\/product\/104722","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/express24.ir\/d\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/express24.ir\/d\/wp-json\/wp\/v2\/types\/product"}],"replies":[{"embeddable":true,"href":"https:\/\/express24.ir\/d\/wp-json\/wp\/v2\/comments?post=104722"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/express24.ir\/d\/wp-json\/wp\/v2\/media\/67493"}],"wp:attachment":[{"href":"https:\/\/express24.ir\/d\/wp-json\/wp\/v2\/media?parent=104722"}],"wp:term":[{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/express24.ir\/d\/wp-json\/wp\/v2\/product_cat?post=104722"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/express24.ir\/d\/wp-json\/wp\/v2\/product_tag?post=104722"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}