Skip to content

Commit daf6323

Browse files
authored
Merge pull request #27 from fthdmirr/firebase-analytics
2 parents 52e2b60 + 91ad692 commit daf6323

File tree

5 files changed

+127
-10
lines changed

5 files changed

+127
-10
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import 'package:firebase_analytics/firebase_analytics.dart';
2+
import 'package:firebase_analytics/observer.dart';
3+
4+
class AnalytcisManager{
5+
static final AnalytcisManager _instance = AnalytcisManager._init();
6+
static AnalytcisManager get instance => _instance;
7+
AnalytcisManager._init();
8+
9+
static final _analytics = FirebaseAnalytics();
10+
11+
final observer = FirebaseAnalyticsObserver(analytics: _analytics);
12+
13+
Future<void> customEvent(String name) async {
14+
//her şey yapılabilir
15+
await observer.analytics.logEvent(name: name);
16+
}
17+
18+
//USER ANALYTICS
19+
//kayıt sırasında user ıd yi almak için
20+
Future setUserAnalytics(
21+
{ String userID, String name, String value}) async {
22+
await _analytics.setUserId(userID);
23+
24+
//kullanıcılara rol vermek için kullanılabilir (ADMİN-KULLANICI-PREMIUMS VS VS)
25+
//bunu yapacaksak öncelikle
26+
//firebase consola git
27+
//custom definision tıkla
28+
//sap üstte create custom dimensions bas
29+
//user property ye bu parametrdeki name ile aynı ismi ver
30+
//scope den user ı seç
31+
//dimension name ya raporda gözükecek olan başlığı yaz
32+
//descriptiona ufak bi açıklamasını yaz
33+
if (name != null && value != null) {
34+
await observer.analytics.setUserProperty(name: name, value: value);
35+
}
36+
}
37+
38+
Future<void> userLogin(String signUpMethod) async {
39+
await _analytics.logLogin(loginMethod: signUpMethod);
40+
}
41+
42+
Future<void> userSignUp(String signUpMethod) async {
43+
await observer.analytics.logSignUp(signUpMethod: signUpMethod);
44+
}
45+
}

lib/core/init/navigation/navigation_route.dart

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ class NavigationRoute {
2323
return normalNavigate(SplashView());
2424

2525
case NavigationConstants.TEST_VIEW:
26+
firebase-analytics
27+
return normalNavigate(TestsView(),NavigationConstants.TEST_VIEW);
28+
2629
return normalNavigate(TestsView());
2730

2831
case NavigationConstants.BUY_VIEW:
@@ -39,16 +42,19 @@ class NavigationRoute {
3942
}
4043
throw NavigateException<SettingsDynamicModel>(args.arguments);
4144

45+
master
4246
default:
4347
return MaterialPageRoute(
4448
builder: (context) => NotFoundNavigationWidget(),
4549
);
4650
}
4751
}
4852

49-
MaterialPageRoute normalNavigate(Widget widget) {
53+
MaterialPageRoute normalNavigate(Widget widget,String pageName) {
5054
return MaterialPageRoute(
5155
builder: (context) => widget,
56+
//analytciste görülecek olan sayfa ismi için pageName veriyoruz
57+
settings: RouteSettings(name: pageName)
5258
);
5359
}
5460
}

lib/main.dart

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
import 'package:easy_localization/easy_localization.dart';
22
import 'package:flutter/material.dart';
3+
firebase-analytics
4+
import 'package:fluttermvvmtemplate/core/init/analytics/analytics_manager.dart';
5+
36
import 'package:kartal/kartal.dart';
7+
master
48
import 'package:provider/provider.dart';
59

610
import 'core/constants/app/app_constants.dart';
@@ -41,6 +45,7 @@ class MyApp extends StatelessWidget {
4145
locale: context.locale,
4246
onGenerateRoute: NavigationRoute.instance.generateRoute,
4347
navigatorKey: NavigationService.instance.navigatorKey,
48+
navigatorObservers: [AnalytcisManager.instance.observer],
4449
);
4550
}
4651
}

pubspec.lock

Lines changed: 65 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -247,14 +247,7 @@ packages:
247247
name: easy_localization
248248
url: "https://pub.dartlang.org"
249249
source: hosted
250-
version: "3.0.0"
251-
easy_logger:
252-
dependency: transitive
253-
description:
254-
name: easy_logger
255-
url: "https://pub.dartlang.org"
256-
source: hosted
257-
version: "0.0.2"
250+
version: "2.3.3+1"
258251
fake_async:
259252
dependency: transitive
260253
description:
@@ -276,6 +269,55 @@ packages:
276269
url: "https://pub.dartlang.org"
277270
source: hosted
278271
version: "6.1.0"
272+
firebase:
273+
dependency: transitive
274+
description:
275+
name: firebase
276+
url: "https://pub.dartlang.org"
277+
source: hosted
278+
version: "7.3.3"
279+
firebase_analytics:
280+
dependency: "direct main"
281+
description:
282+
name: firebase_analytics
283+
url: "https://pub.dartlang.org"
284+
source: hosted
285+
version: "7.0.1"
286+
firebase_analytics_platform_interface:
287+
dependency: transitive
288+
description:
289+
name: firebase_analytics_platform_interface
290+
url: "https://pub.dartlang.org"
291+
source: hosted
292+
version: "1.1.0"
293+
firebase_analytics_web:
294+
dependency: transitive
295+
description:
296+
name: firebase_analytics_web
297+
url: "https://pub.dartlang.org"
298+
source: hosted
299+
version: "0.1.1"
300+
firebase_core:
301+
dependency: transitive
302+
description:
303+
name: firebase_core
304+
url: "https://pub.dartlang.org"
305+
source: hosted
306+
version: "0.7.0"
307+
firebase_core_platform_interface:
308+
dependency: transitive
309+
description:
310+
name: firebase_core_platform_interface
311+
url: "https://pub.dartlang.org"
312+
source: hosted
313+
version: "3.0.1"
314+
firebase_core_web:
315+
dependency: transitive
316+
description:
317+
name: firebase_core_web
318+
url: "https://pub.dartlang.org"
319+
source: hosted
320+
version: "0.2.1+3"
279321
fixnum:
280322
dependency: transitive
281323
description:
@@ -498,7 +540,21 @@ packages:
498540
name: nested
499541
url: "https://pub.dartlang.org"
500542
source: hosted
501-
version: "1.0.0"
543+
version: "0.0.4"
544+
node_interop:
545+
dependency: transitive
546+
description:
547+
name: node_interop
548+
url: "https://pub.dartlang.org"
549+
source: hosted
550+
version: "1.2.1"
551+
node_io:
552+
dependency: transitive
553+
description:
554+
name: node_io
555+
url: "https://pub.dartlang.org"
556+
source: hosted
557+
version: "1.1.1"
502558
octo_image:
503559
dependency: transitive
504560
description:

pubspec.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,13 @@ dependencies:
3131
# dio: ^4.0.0-prev3
3232
# vexana has a package
3333
easy_localization: ^3.0.0
34+
firebase-analytics
35+
firebase_analytics: any
36+
flutter_mobx: ^2.0.0-nullsafety.3
37+
3438
flutter_mobx: ^2.0.0
3539
flutter_rating_bar: ^4.0.0
40+
master
3641
flutter_svg: ^0.21.0-nullsafety.0
3742
json_annotation: ^4.0.1
3843
json_serializable: ^4.1.0

0 commit comments

Comments
 (0)