Explore all courses in this category.
Explore all courses in this category.
Nguyễn Đình Cường
0 comment
09 Nov, 2026
Sau khi phát hành, bạn không còn nhìn thấy máy của người dùng. Ứng dụng sập ở đâu, họ bỏ giữa chừng ở màn hình nào? Báo cáo lỗi sập và phân tích hành vi giúp bạn trả lời những câu hỏi đó bằng dữ liệu thay vì phỏng đoán. Bài viết giới thiệu ý tưởng và cách bắt đầu.
Crashlytics là công cụ báo cáo lỗi sập miễn phí phổ biến, tích hợp với Firebase. Với Flutter, sau khi thiết lập Firebase, thêm gói và gắn các trình xử lý lỗi:
flutter pub add firebase_crashlytics
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_crashlytics/firebase_crashlytics.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
// Lỗi từ framework Flutter
FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterFatalError;
// Lỗi bất đồng bộ nằm ngoài framework
PlatformDispatcher.instance.onError = (error, stack) {
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true);
return true;
};
runApp(const MyApp());
}
Bạn cũng có thể ghi lỗi không gây sập nhưng đáng lưu ý, và gắn thêm ngữ cảnh:
try {
await repository.checkout();
} catch (e, st) {
FirebaseCrashlytics.instance.log('Thanh toán thất bại ở bước xác nhận');
FirebaseCrashlytics.instance.recordError(e, st);
}
Nếu đã làm rối mã khi build, nhớ tải tệp symbols hoặc mapping lên để stack trace đọc được.
import 'package:firebase_analytics/firebase_analytics.dart';
await FirebaseAnalytics.instance.logEvent(
name: 'add_to_cart',
parameters: {
'item_id': 'sku_42',
'category': 'books',
},
);
await FirebaseAnalytics.instance.logScreenView(screenName: 'ProductDetail');
Đừng ghi mọi thứ; hãy bắt đầu từ câu hỏi bạn cần trả lời.
Thống nhất quy ước, ví dụ dạng động từ_đối_tượng viết thường có gạch dưới, và ghi tài liệu danh sách sự kiện. Tên lộn xộn khiến dữ liệu không dùng được sau vài tháng.
Dữ liệu chỉ có giá trị khi dẫn đến quyết định. Đặt lịch xem lại báo cáo sau mỗi bản phát hành, đặt mục tiêu như giảm tỉ lệ sập, rồi theo dõi. Kết hợp với phát hành theo giai đoạn để phát hiện lỗi sớm và dừng lại trước khi lan rộng.
Crashlytics cho bạn biết ứng dụng hỏng ở đâu, analytics cho biết người dùng đang làm gì. Cài đặt cả hai từ sớm, ghi sự kiện có chủ đích và tôn trọng quyền riêng tư, bạn sẽ cải thiện sản phẩm dựa trên dữ liệu thật.
Theo dõi dữ liệu mà không có quy trình thì dữ liệu chỉ nằm đó. Hãy bật cảnh báo khi xuất hiện lỗi sập mới hoặc tỉ lệ sập vượt ngưỡng sau một bản phát hành. Phân công người xem báo cáo hằng tuần, gắn lỗi với phiên bản và tạo công việc sửa lỗi ưu tiên theo số người bị ảnh hưởng. Sau khi sửa, kiểm tra lại ở bản kế tiếp xem lỗi đã biến mất chưa. Đây là vòng lặp nhỏ nhưng giúp chất lượng ứng dụng tăng đều theo thời gian.
Để học cách vận hành ứng dụng sau khi phát hành, bạn có thể xem các khóa học tại codebem.com.
Nguyễn Đình Cường
0 comment