Flutter Projelerinde Hata İzleme: sentry_flutter Kullanımı
Uygulamalar geliştikçe hata izleme ve raporlama büyük bir gereksinim haline gelir. Flutter projelerinde hataları takip etmek, sorunları…

Flutter Projelerinde Hata İzleme: sentry_flutter Kullanımı
Uygulamalar geliştikçe hata izleme ve raporlama büyük bir gereksinim haline gelir. Flutter projelerinde hataları takip etmek, sorunları hızlıca tespit etmek ve çözmek için Sentry gibi araçlar oldukça kullanışlıdır. Bu yazıda, Flutter projelerinde sentry_flutter: ^8.8.0 paketini kullanarak hata raporlama işlemini nasıl yapabileceğimizi göreceğiz.
1. sentry_flutter Paketini Projeye Ekleme
İlk olarak, sentry_flutter paketini projeye eklememiz gerekiyor. Bunun için pubspec.yaml dosyanızda şu satırı ekleyin:
dependencies:
sentry_flutter: ^8.8.0
Daha sonra terminalde şu komutu çalıştırarak paketi yükleyin:
flutter pub get
2. Sentry API Anahtarı Alma
Sentry’yi kullanabilmek için bir DSN (Data Source Name) anahtarına ihtiyacımız var. Bunun için Sentry platformuna buradan üye olup, yeni bir proje oluşturarak DSN anahtarını edinin.
3. sentry_flutter Paketini Yapılandırma
Paketi yapılandırmak için uygulamanın başlangıcında, yani main.dart dosyasında, Sentry'yi initialize etmemiz gerekiyor. Bunun için runApp() fonksiyonunu SentryFlutter.init() fonksiyonu içine alarak Sentry'yi başlatıyoruz.
import 'package:flutter/material.dart';
import 'package:sentry_flutter/sentry_flutter.dart';
void main() async {
// Sentry'yi başlatmak için init fonksiyonunu kullanıyoruz.
await SentryFlutter.init(
(options) {
// Burada Sentry DSN anahtarınızı veriyoruz.
options.dsn = 'https://<YOUR_DSN_KEY>@sentry.io/<YOUR_PROJECT_ID>';
// Performans izleme gibi ek özellikleri etkinleştirebilirsiniz.
options.tracesSampleRate = 1.0; // Tüm işlemleri izlemek için
},
// Uygulamanızın başlangıç widget'ını burada çalıştırın.
appRunner: () => runApp(MyApp()),
);
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Sentry Flutter Demo',
home: MyHomePage(),
);
}
}
Bu kod bloğunda, Sentry’yi uygulama başında başlattık ve DSN anahtarını ekledik. Ayrıca tracesSampleRate ayarı ile performans izleme oranını belirledik. Bu oran 0.0 ile 1.0 arasında bir değer alır ve performans izleme için kaç işlemin raporlanacağını belirler.
4. Hata Yakalama ve Bildirme
Sentry’yi doğru yapılandırdıktan sonra, uygulamanızdaki hataları otomatik olarak yakalar ve Sentry sunucularına raporlar. Ancak bazı durumlarda belirli hataları manuel olarak yakalamak isteyebilirsiniz.
Try-Catch Bloklarıyla Hata Yakalama
Örnek olarak, bir try-catch bloğunda bir hatayı manuel olarak yakalayıp Sentry'ye raporlayalım:
void _simulateError() async {
try {
// Burada bilinçli bir hata oluşturuyoruz.
throw Exception("Manuel olarak raporlanan hata");
} catch (error, stackTrace) {
// Hata Sentry'ye gönderiliyor.
await Sentry.captureException(
error, // Hata nesnesi
stackTrace: stackTrace, // Stack trace, hatanın nerede oluştuğunu gösterir
);
print("Hata raporlandı: $error");
}
}
Bu kod, bir hata oluşturduğumuzda veya yakaladığımızda, Sentry.captureException() fonksiyonu ile hatayı ve stack trace'i Sentry'ye rapor eder.
5. Performans İzleme
SentryFlutter yalnızca hata yakalamakla kalmaz, aynı zamanda uygulamanızdaki performans metriklerini de izleyebilir. Aşağıda, bir işlemin performansını izlemek için basit bir örnek gösterilmiştir.
Future<void> _trackTransaction() async {
// Yeni bir işlem (transaction) başlatıyoruz
final transaction = Sentry.startTransaction(
'app_init', // İşlem adı
'task', // İşlem tipi
);
try {
// İşlem süresini simüle etmek için bir gecikme ekleyelim.
await Future.delayed(Duration(seconds: 2));
// İşlemi başarılı olarak işaretleyelim.
transaction.finish(status: SpanStatus.ok());
} catch (error, stackTrace) {
// İşlemi hatalı olarak işaretleyelim.
transaction.finish(status: SpanStatus.internalError());
// Hatayı Sentry'ye raporlayalım.
await Sentry.captureException(error, stackTrace: stackTrace);
}
}
Bu örnekte, belirli bir işlemi (transaction) başlatıyoruz ve işlem süresini izliyoruz. İşlem başarıyla tamamlanırsa SpanStatus.ok(), bir hata olursa SpanStatus.internalError() ile durumu işaretliyoruz.
6. Ek Özellikler: Kullanıcı Bilgileri ve Etiketler
Hata raporlarını daha anlamlı hale getirmek için kullanıcı bilgilerini veya özel etiketler eklemek isteyebilirsiniz. Aşağıda, bir kullanıcı bilgisi ekleme örneği bulabilirsiniz:
void _setUserInfo() {
Sentry.configureScope((scope) {
scope.setUser(SentryUser(
id: '12345', // Kullanıcı ID'si
username: 'example_user', // Kullanıcı adı
email: 'user@example.com', // E-posta adresi
));
});
}
Kullanıcı bilgilerini Sentry raporlarına eklemek, belirli bir kullanıcıya bağlı hataları takip etmenizi sağlar.
7. Sonuç
Bu yazıda, sentry_flutter: ^8.8.0 paketini kullanarak Flutter projelerinde hata izleme ve raporlama işlemlerini ele aldık. Sentry'yi entegre etmek, hataları hızlıca bulmanızı ve çözmenizi sağlar, bu da uygulamanızın daha kararlı ve güvenilir olmasına katkıda bulunur.
메타데이터
- post_id
- b7c32cd665b4
- slug
- flutter-projelerinde-hata-i̇zleme-sentry-flutter-kullanımı-b7c32cd665b4
- url
- https://medium.com/@frknyldz006/flutter-projelerinde-hata-i%CC%87zleme-sentry-flutter-kullan%C4%B1m%C4%B1-b7c32cd665b4
- canonical_url
- https://medium.com/@frknyldz006/flutter-projelerinde-hata-i%CC%87zleme-sentry-flutter-kullan%C4%B1m%C4%B1-b7c32cd665b4
- author_url
- https://medium.com/@frknyldz006
- status
- ok
- fetched_at
- 2026-07-22 21:30:12