tasco_ota
Package tasco_ota tích hợp hạ tầng cập nhật ứng dụng tức thì (Over-The-Air Update) bằng cách triển khai thực tế công cụ Shorebird Engine bên dưới lớp trừu tượng OtaUpdater của tasco_core.
1. Cơ chế hoạt động
OtaUpdaterInterface: Khai báo các giao tiếp cập nhật trongtasco_coređể các module khác (như màn hình khởi động Splash) có thể gọi mà không cần biết engine thực tế là gì:checkForUpdate(): Kiểm tra xem có bản vá (Patch) nào mới trên server hay không.downloadUpdate(): Tải bản vá mới về thiết bị.installUpdate(): Áp dụng bản vá vào luồng khởi chạy của ứng dụng.
ShorebirdOtaUpdater: Lớp thực thi (Implementation) nằm trongtasco_ota, giao tiếp trực tiếp với Shorebird SDK.
2. Hướng dẫn sử dụng
Khởi chạy và kiểm tra cập nhật tại màn hình Splash
import 'package:tasco_core/tasco_core.dart';
import 'package:tasco_ota/tasco_ota.dart';
class SplashCubit extends Cubit<SplashState> {
final OtaUpdater _otaUpdater; // Được GetIt resolve ra ShorebirdOtaUpdater từ tasco_ota
SplashCubit(this._otaUpdater) : super(SplashInitial());
Future<void> handleAppStartup() async {
try {
// 1. Kiểm tra bản vá mới
final bool hasUpdate = await _otaUpdater.checkForUpdate();
if (hasUpdate) {
// 2. Tiến hành tải bản vá
await _otaUpdater.downloadUpdate();
// 3. Thông báo cho người dùng khởi động lại hoặc tự động cập nhật
print('Đã cập nhật bản vá thành công. Ứng dụng sẽ áp dụng vào lần khởi động tới.');
}
} catch (e) {
// Bỏ qua lỗi cập nhật để không làm gián đoạn trải nghiệm khởi động app của user
print('Lỗi kiểm tra OTA: $e');
}
// Tiếp tục chuyển hướng vào màn hình chính
emit(SplashNavigateToHome());
}
}