Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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)

AltStyle によって変換されたページ (->オリジナル) /