MỞ ĐẦU
App Startup là thư viện trong bộ Architecture Components do Google cung cấp. App Startup hỗ trợ khởi tạo các thành phần một cách rõ ràng, tuần tự và gọn gàng hơn, nhờ đó cải thiện tốc độ khi khởi chạy ứng dụng.
ĐẶC ĐIỂM
App Startup hỗ trợ cơ chế khai báo dependencies Initializer. Khi khai báo dependences thì App Startup sẽ hiểu rằng: “Tôi cần phải chuẩn bị các thành phần này để chuẩn bị dữ liệu/thành phần cho Initializer chính”.
Theo mình đánh giá thì điểm hay nhất của App Startup chính là, bạn có thể tách bạch các logic khởi tạo của từng thành phần, mỗi thành phần sẽ được tách riêng thành 1 class. Điều nà giúp code của bạn trở nên sáng sủa và dễ maintain hơn. Code cũng “sang sịn mịn” hơn hẳn, hehe.
CÁCH SỬ DỤNG
Bước 1: Khai báo App Startup vào gradle
dependencies { implementation("androidx.startup:startup-runtime:1.1.1") }
Bước 2: Tạo class Initializer cho các component cần khởi tạo:
class AppDataInitializer : Initializer<AppData> { override fun create(context: Context): AppData { return AppData.initData() } override fun dependencies(): List<Class<out Initializer<*>>> { return listOf(LogInitializer::class.java) } }
Bước 3: Khai báo trong Android Manifest
<provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" android:exported="false" tools:node="merge"> <!-- This entry makes AppDataInitializer discoverable. --> <meta-data android:name="com.example.AppDataInitializer" android:value="androidx.startup" /></provider>
Khi khai báo trong Android Manifest, App Startup sẽ tự động tìm và khởi tạo các Initializer. Có một cách làm khác là bạn có thể khai báo bằng code. Chi tiết có trong bài hướng dẫn của Google mà mình có dẫn link ở bên dưới.
TỔNG KẾT
Vậy là bạn đã biết thêm cách khởi tạo data một cách chuyên nghiệp theo phong cách chuyên gia rồi đấy. Nếu bạn gặp vấn đề hay câu hỏi gì thì có thể comment ở phía bên dưới nha.
Tham khảo
App Startup | Android Developers
Source Code demo:
wakiratohf/DemoArchitectureAppStartup (github.com)