<?xml version="1.0" encoding="UTF-8" ?>
<rss
    version="2.0"
    xmlns:atom="http://www.w3.org/2005/Atom"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:webfeeds="http://webfeeds.org/rss/1.0"
    xmlns:media="http://search.yahoo.com/mrss/"
    >
    <channel>
        <title>Android-architecture Tag - Viblo</title>
        <link>https://viblo.asia/rss</link>
        <description><![CDATA[Free service for technical knowledge sharing]]></description>
        <atom:link href="https://viblo.asia/rss/tags/android-architecture.rss" rel="self"></atom:link>
                <copyright>Sun* Inc.</copyright>
                                                <webfeeds:logo>https://viblo.asia/logo_full.svg</webfeeds:logo>
        <image>
            <url>https://viblo.asia/logo_full.svg</url>
            <title>Android-architecture Tag - Viblo</title>
            <link>https://viblo.asia/rss</link>
        </image>
                                <language>vi-vn</language>
        <lastBuildDate>2026-05-14T17:54:01+07:00</lastBuildDate>
                <item>
            <title><![CDATA[Đừng để Redis &quot;bốc khói&quot;: Tuyệt chiêu chống Spike Enqueue với Bulk Dispatch và Master-Worker Pattern]]></title>
                        <link>https://viblo.asia/p/dung-de-redis-boc-khoi-tuyet-chieu-chong-spike-enqueue-voi-bulk-dispatch-va-master-worker-pattern-gjLN0MOd432</link>
            <guid isPermaLink="true">https://viblo.asia/p/dung-de-redis-boc-khoi-tuyet-chieu-chong-spike-enqueue-voi-bulk-dispatch-va-master-worker-pattern-gjLN0MOd432</guid>
            <description><![CDATA[Chào anh em cộng đồng Viblo!

Hãy tưởng tượng một kịch bản thế này: Hệ thống của bạn chuẩn bị chạy chương trình Sale lúc 00:00 đêm. Sếp yêu cầu đúng 0...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Huy Hoàng</dc:creator>
            <pubDate>2026-05-14 17:34:19</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[&quot;Trái tim&quot; của mọi hệ thống Backend: Giải phẫu Nginx, Reverse Proxy và nguyên lý Event-Driven]]></title>
                        <link>https://viblo.asia/p/trai-tim-cua-moi-he-thong-backend-giai-phau-nginx-reverse-proxy-va-nguyen-ly-event-driven-AY4qQdxw4Pw</link>
            <guid isPermaLink="true">https://viblo.asia/p/trai-tim-cua-moi-he-thong-backend-giai-phau-nginx-reverse-proxy-va-nguyen-ly-event-driven-AY4qQdxw4Pw</guid>
            <description><![CDATA[Chào anh em cộng đồng Viblo!

Ở bài viết trước về PHP-FPM, mình có ví von Nginx giống như một "Anh lễ tân" đứng đón khách, còn PHP-FPM là "Nhà bếp". L...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Huy Hoàng</dc:creator>
            <pubDate>2026-05-13 11:59:56</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Bỏ ngay thói quen &quot;If-Else&quot; lồng nhau: Tuyệt chiêu Guard Clause cứu rỗi những dòng code &quot;mì tôm&quot;]]></title>
                        <link>https://viblo.asia/p/bo-ngay-thoi-quen-if-else-long-nhau-tuyet-chieu-guard-clause-cuu-roi-nhung-dong-code-mi-tom-AWVpXgPaV05</link>
            <guid isPermaLink="true">https://viblo.asia/p/bo-ngay-thoi-quen-if-else-long-nhau-tuyet-chieu-guard-clause-cuu-roi-nhung-dong-code-mi-tom-AWVpXgPaV05</guid>
            <description><![CDATA[Chào anh em cộng đồng Viblo!

Nhớ lại thời chúng ta còn mài đũng quần trên ghế nhà trường, môn Lập trình hướng đối tượng (OOP) với C++ hay Java luôn l...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Huy Hoàng</dc:creator>
            <pubDate>2026-05-12 21:25:28</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Abstract Class là gì? Đừng nhầm lẫn nó với Interface nữa!]]></title>
                        <link>https://viblo.asia/p/abstract-class-la-gi-dung-nham-lan-no-voi-interface-nua-AoJe8zyD41j</link>
            <guid isPermaLink="true">https://viblo.asia/p/abstract-class-la-gi-dung-nham-lan-no-voi-interface-nua-AoJe8zyD41j</guid>
            <description><![CDATA[Chào anh em cộng đồng Viblo!

Nhớ lại thời chúng ta còn mài đũng quần trên ghế nhà trường, môn Lập trình hướng đối tượng (OOP) với C++ hay Java luôn l...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Huy Hoàng</dc:creator>
            <pubDate>2026-05-12 15:47:32</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Đừng để code ngập ngụa trong IF-ELSE: Giải cứu Backend với Strategy Pattern]]></title>
                        <link>https://viblo.asia/p/dung-de-code-ngap-ngua-trong-if-else-giai-cuu-backend-voi-strategy-pattern-18J2ej2q4YK</link>
            <guid isPermaLink="true">https://viblo.asia/p/dung-de-code-ngap-ngua-trong-if-else-giai-cuu-backend-voi-strategy-pattern-18J2ej2q4YK</guid>
            <description><![CDATA[Chào anh em đồng âm Viblo!

Hôm nay chúng ta sẽ bàn về một chủ đề muôn thuở trong thiết kế phần mềm. Bạn đã bao giờ nhìn vào một function dài 500 dòng...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Huy Hoàng</dc:creator>
            <pubDate>2026-05-10 08:50:52</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[[C++ OOP Thực Chiến] Bài 35: Đặc tính cơ bản của kế thừa đơn - Sự truyền ngôi của các Class!]]></title>
                        <link>https://viblo.asia/p/c-oop-thuc-chien-bai-35-dac-tinh-co-ban-cua-ke-thua-don-su-truyen-ngoi-cua-cac-class-ymJXDQ15Jkq</link>
            <guid isPermaLink="true">https://viblo.asia/p/c-oop-thuc-chien-bai-35-dac-tinh-co-ban-cua-ke-thua-don-su-truyen-ngoi-cua-cac-class-ymJXDQ15Jkq</guid>
            <description><![CDATA[Chào anh em! Hãy tưởng tượng bạn đang viết phần mềm quản lý nhân sự cho một công ty IT.
Ban đầu, bạn tạo một Class NhanVien với các thuộc tính cơ bản:...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Huy Hoàng</dc:creator>
            <pubDate>2026-05-10 11:19:25</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Đừng nhầm lẫn giữa &quot;Toy Project&quot; và &quot;Hệ thống Enterprise&quot; - Giải mã xương sống của doanh nghiệp lớn]]></title>
                        <link>https://viblo.asia/p/dung-nham-lan-giua-toy-project-va-he-thong-enterprise-giai-ma-xuong-song-cua-doanh-nghiep-lon-13VM9DvGVY7</link>
            <guid isPermaLink="true">https://viblo.asia/p/dung-nham-lan-giua-toy-project-va-he-thong-enterprise-giai-ma-xuong-song-cua-doanh-nghiep-lon-13VM9DvGVY7</guid>
            <description><![CDATA[Rất nhiều anh em dev trẻ khi làm xong một cái web bán hàng bằng Laravel hay React, thấy nó chạy mượt mà trên server là bắt đầu ảo tưởng sức mạnh, nghĩ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Huy Hoàng</dc:creator>
            <pubDate>2026-04-29 11:44:42</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[[C++ OOP Thực Chiến] Bài 27: Toán tử số đối (Non-member function) - Góc nhìn từ bên ngoài pháo đài]]></title>
                        <link>https://viblo.asia/p/c-oop-thuc-chien-bai-27-toan-tu-so-doi-non-member-function-goc-nhin-tu-ben-ngoai-phao-dai-bA468B5GLKv</link>
            <guid isPermaLink="true">https://viblo.asia/p/c-oop-thuc-chien-bai-27-toan-tu-so-doi-non-member-function-goc-nhin-tu-ben-ngoai-phao-dai-bA468B5GLKv</guid>
            <description><![CDATA[Chào anh em! Ở [Bài 25], chúng ta đã nạp chồng toán tử số đối (Unary Minus -) bằng cách viết hàm trực tiếp vào bên trong Class. Lợi thế là chúng ta ch...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Huy Hoàng</dc:creator>
            <pubDate>2026-04-22 16:30:53</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[[C++ OOP Thực Chiến] Bài 24: Giới thiệu Nạp chồng toán tử (Operator Overloading) - Phép thuật thao túng C++]]></title>
                        <link>https://viblo.asia/p/c-oop-thuc-chien-bai-24-gioi-thieu-nap-chong-toan-tu-operator-overloading-phep-thuat-thao-tung-c-XP4WE2NoL7G</link>
            <guid isPermaLink="true">https://viblo.asia/p/c-oop-thuc-chien-bai-24-gioi-thieu-nap-chong-toan-tu-operator-overloading-phep-thuat-thao-tung-c-XP4WE2NoL7G</guid>
            <description><![CDATA[Chào anh em! Ở [Bài 23], chúng ta đã giải quyết bài toán cộng phân số bằng cách gọi hàm:
PhanSo tong = ToanHoc::cong(ps1, ps2);

Tuy nhiên, đối với mộ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Huy Hoàng</dc:creator>
            <pubDate>2026-04-22 07:34:23</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[[C++ OOP Thực Chiến] Bài 23: Lớp bạn (Friend Class) - Khi một người bạn được giao &quot;chìa khóa nhà&quot;]]></title>
                        <link>https://viblo.asia/p/c-oop-thuc-chien-bai-23-lop-ban-friend-class-khi-mot-nguoi-ban-duoc-giao-chia-khoa-nha-ZoJjeGl74Y7</link>
            <guid isPermaLink="true">https://viblo.asia/p/c-oop-thuc-chien-bai-23-lop-ban-friend-class-khi-mot-nguoi-ban-duoc-giao-chia-khoa-nha-ZoJjeGl74Y7</guid>
            <description><![CDATA[Chào anh em! Ở [Bài 22], chúng ta đã biết cách "mở cửa hậu" cho một hàm tự do bằng từ khóa friend.

Nhưng hãy tưởng tượng, bạn đang viết một hệ thống ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Huy Hoàng</dc:creator>
            <pubDate>2026-04-21 22:15:41</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[[C++ OOP Thực Chiến] Bài 9: Định nghĩa phương thức bằng cách chia file - Giải mã &quot;lời nguyền&quot; Include chéo]]></title>
                        <link>https://viblo.asia/p/c-oop-thuc-chien-bai-9-dinh-nghia-phuong-thuc-bang-cach-chia-file-giai-ma-loi-nguyen-include-cheo-kY4gDY8RJAe</link>
            <guid isPermaLink="true">https://viblo.asia/p/c-oop-thuc-chien-bai-9-dinh-nghia-phuong-thuc-bang-cach-chia-file-giai-ma-loi-nguyen-include-cheo-kY4gDY8RJAe</guid>
            <description><![CDATA[Chào anh em! Trong các bài trước, chúng ta đã thống nhất quy tắc Vàng của một Kỹ sư C++: File Header (.h) là Menu (khai báo), File Source (.cpp) là Nh...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Huy Hoàng</dc:creator>
            <pubDate>2026-04-19 09:31:52</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[[C++ OOP Thực Chiến] Bài 7: Khai báo Class chuẩn dự án - Tạm biệt &quot;nồi lẩu&quot; main.cpp!]]></title>
                        <link>https://viblo.asia/p/c-oop-thuc-chien-bai-7-khai-bao-class-chuan-du-an-tam-biet-noi-lau-maincpp-RlL5eQl8LbB</link>
            <guid isPermaLink="true">https://viblo.asia/p/c-oop-thuc-chien-bai-7-khai-bao-class-chuan-du-an-tam-biet-noi-lau-maincpp-RlL5eQl8LbB</guid>
            <description><![CDATA[Chào anh em! Nếu anh em đã đi cùng mình qua 6 bài trước và nắm vững 4 trụ cột của OOP, thì xin chúc mừng, anh em đã có tư duy của một Kỹ sư phần mềm.
...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Huy Hoàng</dc:creator>
            <pubDate>2026-04-19 07:55:49</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Giải Phẫu In-Memory Database: Tại Sao RAM Lại Đánh Bại Mọi Ổ Cứng SSD?]]></title>
                        <link>https://viblo.asia/p/giai-phau-in-memory-database-tai-sao-ram-lai-danh-bai-moi-o-cung-ssd-XP4WEoyrL7G</link>
            <guid isPermaLink="true">https://viblo.asia/p/giai-phau-in-memory-database-tai-sao-ram-lai-danh-bai-moi-o-cung-ssd-XP4WEoyrL7G</guid>
            <description><![CDATA[Ở bài trước, chúng ta đã lột tả sự lợi hại của phần "Data Structure" (Cấu trúc dữ liệu như List, Set, Hash). Hôm nay, chúng ta sẽ đào sâu vào phần đầu...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Huy Hoàng</dc:creator>
            <pubDate>2026-04-16 09:36:25</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Tạo Server Node.js Đầu Tiên: Vượt Qua &quot;Hello World&quot; Để Chạm Tới Chuẩn Production]]></title>
                        <link>https://viblo.asia/p/tao-server-nodejs-dau-tien-vuot-qua-hello-world-de-cham-toi-chuan-production-y0VGwGZzVPA</link>
            <guid isPermaLink="true">https://viblo.asia/p/tao-server-nodejs-dau-tien-vuot-qua-hello-world-de-cham-toi-chuan-production-y0VGwGZzVPA</guid>
            <description><![CDATA[Bất kỳ ai học Node.js cũng bắt đầu bằng bài toán "Tạo Server". Chỉ tốn đúng 5 dòng code và 10 giây để in ra chữ "Hello World". Nhưng mang 5 dòng code ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Huy Hoàng</dc:creator>
            <pubDate>2026-04-14 23:18:06</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Imperative CLI: Tư Duy &quot;Cầm Tay Chỉ Việc&quot; &amp; Sự Tiến Hóa Lên Declarative]]></title>
                        <link>https://viblo.asia/p/imperative-cli-tu-duy-cam-tay-chi-viec-su-tien-hoa-len-declarative-XP4WEo7qL7G</link>
            <guid isPermaLink="true">https://viblo.asia/p/imperative-cli-tu-duy-cam-tay-chi-viec-su-tien-hoa-len-declarative-XP4WEo7qL7G</guid>
            <description><![CDATA[Hồi mới tập tành làm DevOps kiêm Backend, mình từng viết một cái shell script (bash) cực kỳ tâm huyết để tự động hóa việc deploy con app Node.js lên s...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Huy Hoàng</dc:creator>
            <pubDate>2026-04-14 17:22:08</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Plan Before You Code: Đừng Để AI Xây Lâu Đài Trên Cát]]></title>
                        <link>https://viblo.asia/p/plan-before-you-code-dung-de-ai-xay-lau-dai-tren-cat-8X4EjG9jJN2</link>
            <guid isPermaLink="true">https://viblo.asia/p/plan-before-you-code-dung-de-ai-xay-lau-dai-tren-cat-8X4EjG9jJN2</guid>
            <description><![CDATA[Chắc hẳn anh em dev nào cũng từng trải qua cảm giác này: Nhận một ticket requirement mới trông có vẻ "ngon ăn". Máu nghề nổi lên, bạn lập tức bật Curs...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Huy Hoàng</dc:creator>
            <pubDate>2026-04-13 10:07:57</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Giải mã &quot;Bản đồ Microservices&quot;: Từ Request của User đến kiến trúc]]></title>
                        <link>https://viblo.asia/p/giai-ma-ban-do-microservices-tu-request-cua-user-den-kien-truc-lZL9Xe37JQK</link>
            <guid isPermaLink="true">https://viblo.asia/p/giai-ma-ban-do-microservices-tu-request-cua-user-den-kien-truc-lZL9Xe37JQK</guid>
            <description><![CDATA[
1. Lớp Tiền sảnh: Đón tiếp và Điều phối (Gateway & CDN)

Request của người dùng không bao giờ bay thẳng vào server. Nó phải đi qua một "hàng rào bảo ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Huy Hoàng</dc:creator>
            <pubDate>2026-04-12 10:15:18</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[[Microservices Series]  Đừng chia nhỏ hệ thống nếu bạn chưa sẵn sàng đối mặt với &quot;Nỗi đau&quot;]]></title>
                        <link>https://viblo.asia/p/microservices-series-dung-chia-nho-he-thong-neu-ban-chua-san-sang-doi-mat-voi-noi-dau-wd43EKOjLX9</link>
            <guid isPermaLink="true">https://viblo.asia/p/microservices-series-dung-chia-nho-he-thong-neu-ban-chua-san-sang-doi-mat-voi-noi-dau-wd43EKOjLX9</guid>
            <description><![CDATA[Chào anh em! Dạo một vòng các diễn đàn công nghệ hay các tin tuyển dụng, cụm từ Microservices xuất hiện dày đặc như một "tiêu chuẩn vàng" cho các hệ t...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Huy Hoàng</dc:creator>
            <pubDate>2026-03-30 22:28:27</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[[System Design] Load Balancing: &quot;Người Điều Phối&quot; Thầm Lặng Đứng Sau Hệ Thống Triệu View]]></title>
                        <link>https://viblo.asia/p/system-design-load-balancing-nguoi-dieu-phoi-tham-lang-dung-sau-he-thong-trieu-view-1QLxnYEo4Aw</link>
            <guid isPermaLink="true">https://viblo.asia/p/system-design-load-balancing-nguoi-dieu-phoi-tham-lang-dung-sau-he-thong-trieu-view-1QLxnYEo4Aw</guid>
            <description><![CDATA[Nếu anh em từng làm việc với những hệ thống có lượng traffic lớn, hoặc đơn giản là một ngày đẹp trời con server "cưng" của anh em bỗng dưng lăn ra chế...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyễn Huy Hoàng</dc:creator>
            <pubDate>2026-03-18 10:13:50</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Scaling Android Architecture #4: Android Dependency Inversion — Avoid rewriting your app]]></title>
                        <link>https://viblo.asia/p/scaling-android-architecture-4-android-dependency-inversion-avoid-rewriting-your-app-2oKLnx8Q4QO</link>
            <guid isPermaLink="true">https://viblo.asia/p/scaling-android-architecture-4-android-dependency-inversion-avoid-rewriting-your-app-2oKLnx8Q4QO</guid>
            <description><![CDATA[Khi chúng ta xây dựng các ứng dụng di động, chúng ta thích dựa vào các external tools giúp đơn giản hóa công việc của chúng ta. HTPP or GraphQL client...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Thành Lê</dc:creator>
            <pubDate>2023-05-30 14:29:00</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Scaling Android Architecture #3: Domain Driven Android — Building a Model which makes sense]]></title>
                        <link>https://viblo.asia/p/scaling-android-architecture-3-domain-driven-android-building-a-model-which-makes-sense-obA463yBJKv</link>
            <guid isPermaLink="true">https://viblo.asia/p/scaling-android-architecture-3-domain-driven-android-building-a-model-which-makes-sense-obA463yBJKv</guid>
            <description><![CDATA[Trong thế giới phát triển Android, có sự cạnh tranh liên tục để có kiến trúc tốt nhất. MVC vs MVP vs MVVM vs MVI là một chủ đề phổ biến của nhiều bài ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Thành Lê</dc:creator>
            <pubDate>2023-05-30 14:15:07</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Scaling Android Architecture #2: Android modularization from MVP to Enterprise]]></title>
                        <link>https://viblo.asia/p/scaling-android-architecture-2-android-modularization-from-mvp-to-enterprise-7ymJXxn6Jkq</link>
            <guid isPermaLink="true">https://viblo.asia/p/scaling-android-architecture-2-android-modularization-from-mvp-to-enterprise-7ymJXxn6Jkq</guid>
            <description><![CDATA[Tất cả chúng ta đều đã nghe ít nhất một lần về tầm quan trọng của việc mô đun hóa (modularization). Có rất nhiều lời chỉ trích xung quanh một mô-đun ứ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Thành Lê</dc:creator>
            <pubDate>2023-05-30 13:49:16</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Scaling Android Architecture #1: Động não đơn giản hơn với Class Diagram]]></title>
                        <link>https://viblo.asia/p/scaling-android-architecture-1-dong-nao-don-gian-hon-voi-class-diagram-EbNVQx11LvR</link>
            <guid isPermaLink="true">https://viblo.asia/p/scaling-android-architecture-1-dong-nao-don-gian-hon-voi-class-diagram-EbNVQx11LvR</guid>
            <description><![CDATA[Chào mừng bạn đến với tập đầu tiên của loạt bài Mở rộng kiến trúc Android .
Trước khi bắt đầu sử dụng Android Studio và tạo một số đoạn code, hãy xem ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Thành Lê</dc:creator>
            <pubDate>2023-05-30 13:16:41</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Mô hình MVI - Android Tutorial for Beginners]]></title>
                        <link>https://viblo.asia/p/mo-hinh-mvi-android-tutorial-for-beginners-RQqKLe0zZ7z</link>
            <guid isPermaLink="true">https://viblo.asia/p/mo-hinh-mvi-android-tutorial-for-beginners-RQqKLe0zZ7z</guid>
            <description><![CDATA[![](https://images.viblo.asia/f816a5e9-e581-404b-a83a-170a64a41faa.png)


Giới thiệu
Các mẫu kiến trúc Android đang phát triển từng ngày. Khi chúng ta...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyen Manh Duc</dc:creator>
            <pubDate>2020-10-10 11:12:58</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Single activity android là gì ? Đã đến lúc thay đổi kiến trúc Android sang single activity ?]]></title>
                        <link>https://viblo.asia/p/single-activity-android-la-gi-da-den-luc-thay-doi-kien-truc-android-sang-single-activity-OeVKB8aJlkW</link>
            <guid isPermaLink="true">https://viblo.asia/p/single-activity-android-la-gi-da-den-luc-thay-doi-kien-truc-android-sang-single-activity-OeVKB8aJlkW</guid>
            <description><![CDATA[I, Tổng quan
* Trong Android, các component ở mức application level như Content Provider, Broadcast Receiver, Service, Activity...
* Activity điểm tru...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vu Duc Sang</dc:creator>
            <pubDate>2019-09-22 16:28:26</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Thao tác điều hướng mới trong Android Q]]></title>
                        <link>https://viblo.asia/p/thao-tac-dieu-huong-moi-trong-android-q-GrLZDWk2Kk0</link>
            <guid isPermaLink="true">https://viblo.asia/p/thao-tac-dieu-huong-moi-trong-android-q-GrLZDWk2Kk0</guid>
            <description><![CDATA[Với Android Q, một hệ thống điều hướng mới đã được thêm vào, cho phép người dùng điều hướng quay lại, điều hướng đến màn hình Home
và kích hoạt trợ lý...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bui Huu Tuan</dc:creator>
            <pubDate>2019-09-09 15:40:01</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Saving state trong Android]]></title>
                        <link>https://viblo.asia/p/saving-state-trong-android-Qbq5QpgElD8</link>
            <guid isPermaLink="true">https://viblo.asia/p/saving-state-trong-android-Qbq5QpgElD8</guid>
            <description><![CDATA[I, Lời nói đầu
* Xin chào mọi người, hôm nay mình xin chia sẻ 1 vấn đề mà mọi người rất quen thuộc: saving state trong Android.
* Android architecture...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vu Duc Sang</dc:creator>
            <pubDate>2019-08-21 16:02:58</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Android Architecture Components : Room]]></title>
                        <link>https://viblo.asia/p/android-architecture-components-room-Qbq5QkLXZD8</link>
            <guid isPermaLink="true">https://viblo.asia/p/android-architecture-components-room-Qbq5QkLXZD8</guid>
            <description><![CDATA[1. Introduction

Room là thư viện lưu trữ lâu dài cung cấp một abstraction layer dựa trên SQLite cho phép truy cập CSDL mạnh mẽ hơn trong khi khai thá...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyen Quoc Huy B</dc:creator>
            <pubDate>2019-06-22 04:54:45</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Chọn hình ảnh từ Camera/Gallery với function Crop trong Android]]></title>
                        <link>https://viblo.asia/p/chon-hinh-anh-tu-cameragallery-voi-function-crop-trong-android-L4x5xEYYKBM</link>
            <guid isPermaLink="true">https://viblo.asia/p/chon-hinh-anh-tu-cameragallery-voi-function-crop-trong-android-L4x5xEYYKBM</guid>
            <description><![CDATA[Chụp ảnh từ Máy ảnh hoặc chọn ảnh từ Thư viện là một tính năng thiết yếu cho nhiều ứng dụng Android.
Lấy một hình ảnh thu nhỏ từ máy ảnh rất dễ dàng, ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bui Huu Tuan</dc:creator>
            <pubDate>2019-06-10 14:27:37</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Tìm hiểu mô hình MVVM trong Android thông qua ví dụ - Phần 4 (cuối cùng): View]]></title>
                        <link>https://viblo.asia/p/tim-hieu-mo-hinh-mvvm-trong-android-thong-qua-vi-du-phan-4-cuoi-cung-view-gAm5yXPVldb</link>
            <guid isPermaLink="true">https://viblo.asia/p/tim-hieu-mo-hinh-mvvm-trong-android-thong-qua-vi-du-phan-4-cuoi-cung-view-gAm5yXPVldb</guid>
            <description><![CDATA[Sau 3 phần trước đây
* PHẦN 1 - Giới thiệu về MVVM trong Android
* PHẦN 2 - Tìm hiểu Model
* PHẦN 3 - Tìm hiểu ViewModel

Thì hôm nay, chúng ta sẽ đi ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dinhlam</dc:creator>
            <pubDate>2019-05-23 16:42:44</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Tìm hiểu mô hình MVVM trong Android thông qua ví dụ - Phần 3: ViewModel]]></title>
                        <link>https://viblo.asia/p/tim-hieu-mo-hinh-mvvm-trong-android-thong-qua-vi-du-phan-3-viewmodel-Do754qOVKM6</link>
            <guid isPermaLink="true">https://viblo.asia/p/tim-hieu-mo-hinh-mvvm-trong-android-thong-qua-vi-du-phan-3-viewmodel-Do754qOVKM6</guid>
            <description><![CDATA[Chào các bạn, lại là mình đây :D, thông qua 2 phần trước đây phần 1 và phần 2 thì chúng ta đã cùng nhau tìm hiểu lý thuyết cũng như thành phần đầu
tiê...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dinhlam</dc:creator>
            <pubDate>2019-05-21 16:16:42</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Tìm hiểu mô hình MVVM trong Android thông qua ví dụ - Phần 2: Model]]></title>
                        <link>https://viblo.asia/p/tim-hieu-mo-hinh-mvvm-trong-android-thong-qua-vi-du-phan-2-model-924lJdGNKPM</link>
            <guid isPermaLink="true">https://viblo.asia/p/tim-hieu-mo-hinh-mvvm-trong-android-thong-qua-vi-du-phan-2-model-924lJdGNKPM</guid>
            <description><![CDATA[Chào các bạn
Là mình đây, như mình đã giới thiệu về MVVM trong Android ở phần trước thì trong MVVM có 3 thành phần là Model - View - ViewModel. Ở phần...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dinhlam</dc:creator>
            <pubDate>2019-05-20 15:04:48</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[5 lỗi chung khi sử dụng Architecture Components]]></title>
                        <link>https://viblo.asia/p/5-loi-chung-khi-su-dung-architecture-components-924lJdNaKPM</link>
            <guid isPermaLink="true">https://viblo.asia/p/5-loi-chung-khi-su-dung-architecture-components-924lJdNaKPM</guid>
            <description><![CDATA[1. Leaking LiveData observers in Fragments
Fragment có vòng đời khá phức tạp và khi đã detach hoặc re-attach, không phải lúc nào nó cũng được destroy....]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Phuoc Bui</dc:creator>
            <pubDate>2019-05-20 11:02:04</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Tìm hiểu mô hình MVVM trong Android thông qua ví dụ - Phần 1: Giới thiệu]]></title>
                        <link>https://viblo.asia/p/tim-hieu-mo-hinh-mvvm-trong-android-thong-qua-vi-du-phan-1-gioi-thieu-bWrZn67nZxw</link>
            <guid isPermaLink="true">https://viblo.asia/p/tim-hieu-mo-hinh-mvvm-trong-android-thong-qua-vi-du-phan-1-gioi-thieu-bWrZn67nZxw</guid>
            <description><![CDATA[Các bạn có thể xem phần 2 tại đây nha

Trong Android chúng ta thường biết đến hai mô hình phổ biến là MVP (Model - View - Presenter)
và MVVM (Model - ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">dinhlam</dc:creator>
            <pubDate>2019-05-16 16:48:54</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Android Architecture - Tại sao chọn MVVM hơn là MVP]]></title>
                        <link>https://viblo.asia/p/android-architecture-tai-sao-chon-mvvm-hon-la-mvp-E375zXObZGW</link>
            <guid isPermaLink="true">https://viblo.asia/p/android-architecture-tai-sao-chon-mvvm-hon-la-mvp-E375zXObZGW</guid>
            <description><![CDATA[I. Vấn đề
Một số vấn đề để một lập trình viên quyết định chọn mô hình xây dựng ứng dụng như  là làm sao để tái sử dụng code, dễ maintenance, dễ viết u...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyen Van Thanh</dc:creator>
            <pubDate>2019-05-14 19:33:45</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Navigation architecture component phần I]]></title>
                        <link>https://viblo.asia/p/navigation-architecture-component-phan-i-gAm5yX9Vldb</link>
            <guid isPermaLink="true">https://viblo.asia/p/navigation-architecture-component-phan-i-gAm5yX9Vldb</guid>
            <description><![CDATA[I, Giới thiệu
- XIn chào mọi người lại là mình đây. Trong bài viết lần này mình sẽ cùng mọi người tìm hiểu seri về navigation - 1 trong các component ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vu Duc Sang</dc:creator>
            <pubDate>2019-04-21 11:35:39</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[6 Bước để đến gần hơn với Room]]></title>
                        <link>https://viblo.asia/p/6-buoc-de-den-gan-hon-voi-room-yMnKMY3AK7P</link>
            <guid isPermaLink="true">https://viblo.asia/p/6-buoc-de-den-gan-hon-voi-room-yMnKMY3AK7P</guid>
            <description><![CDATA[Room là một persistence library, một phần của Android Architecture Components. Nó giúp bạn dễ dàng là việc với đối tượng SQLiteDatabase trong ứng dụng...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ông Hoàng Nhật Phương</dc:creator>
            <pubDate>2019-04-22 08:51:41</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Android - Architecture Components: ViewModel]]></title>
                        <link>https://viblo.asia/p/android-architecture-components-viewmodel-Ljy5VMnGlra</link>
            <guid isPermaLink="true">https://viblo.asia/p/android-architecture-components-viewmodel-Ljy5VMnGlra</guid>
            <description><![CDATA[I. Giới thiệu
Như bạn đã biết ViewModel rất hữu ích khi bạn muốn cung cấp và quản lý dữ liệu cho UI như Activity hay Fragment. Trong bài viết này, chú...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nguyen Van Thanh</dc:creator>
            <pubDate>2019-04-15 22:09:35</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Android Architecture Components : Paging Library]]></title>
                        <link>https://viblo.asia/p/android-architecture-components-paging-library-djeZ19Y8ZWz</link>
            <guid isPermaLink="true">https://viblo.asia/p/android-architecture-components-paging-library-djeZ19Y8ZWz</guid>
            <description><![CDATA[Introduction

Hiện nay việc tải và hiển thị dữ liệu dưới dạng danh sách rất phổ biến và hầu như ứng dụng nào cũng có. Với những tập dữ liệu đầu vào vừ...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Pham Trung Huong</dc:creator>
            <pubDate>2019-05-20 14:01:13</pubDate>
                                                                                                        </item>
                <item>
            <title><![CDATA[Sử dụng reactive pattern với LiveData trong ViewModel part II]]></title>
                        <link>https://viblo.asia/p/su-dung-reactive-pattern-voi-livedata-trong-viewmodel-part-ii-V3m5WANyZO7</link>
            <guid isPermaLink="true">https://viblo.asia/p/su-dung-reactive-pattern-voi-livedata-trong-viewmodel-part-ii-V3m5WANyZO7</guid>
            <description><![CDATA[I, Giới thiệu
* Xin chào mọi người lại là mình đây. Ở bài viết lần trước, mình đã trình bày phần I của việc sử dụng reactive pattern của LiveData tron...]]></description>
                        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vu Duc Sang</dc:creator>
            <pubDate>2019-03-21 18:11:04</pubDate>
                                                                                                        </item>
            </channel>
</rss>
