Skip to content

Commit a1d11d0

Browse files
chore: refactor example app, add new screen for custom traces, update native dependencies
1 parent b5bde68 commit a1d11d0

File tree

9 files changed

+75
-11
lines changed

9 files changed

+75
-11
lines changed

android/native.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
project.ext.instabug = [
2-
version: '15.0.1.6985154-SNAPSHOT'
2+
version: '15.0.2.7020723-SNAPSHOT'
33
]
44

55
dependencies {

examples/default/ios/Podfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ target 'InstabugExample' do
1515
config = use_native_modules!
1616
rn_maps_path = '../node_modules/react-native-maps'
1717
pod 'react-native-google-maps', :path => rn_maps_path
18-
pod 'Instabug', :podspec => 'https://ios-releases.instabug.com/custom/faeture-screen_rendering-release/15.1.15/Instabug.podspec'
18+
pod 'Instabug', :podspec => 'https://ios-releases.instabug.com/custom/faeture-screen_rendering-release/15.1.16/Instabug.podspec'
1919
# Flags change depending on the env values.
2020
flags = get_default_flags()
2121

examples/default/src/navigation/HomeStack.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import {
2222
import { GoogleMapsScreen } from '../screens/user-steps/GoogleMapsScreen';
2323
import { LargeImageListScreen } from '../screens/user-steps/LargeImageListScreen';
2424
import { APMScreen } from '../screens/apm/APMScreen';
25+
import { CustomUITraceScreen } from '../screens/apm/CustomUITraceScreen';
2526
import { NetworkScreen } from '../screens/apm/NetworkScreen';
2627
import { FlowsScreen } from '../screens/apm/FlowsScreen';
2728
import { SessionReplayScreen } from '../screens/SessionReplayScreen';
@@ -43,7 +44,7 @@ export type HomeStackParamList = {
4344
BasicComponents: undefined;
4445
ScrollView: undefined;
4546
FlatList: undefined;
46-
ComplexViews: undefined;
47+
ComplexViews: { initialDepth?: number; initialBreadth?: number } | undefined;
4748
SectionList: undefined;
4849
Gestures: undefined;
4950
GoogleMapsScreen: undefined;
@@ -56,7 +57,7 @@ export type HomeStackParamList = {
5657
// APM //
5758
APM: undefined;
5859
NetworkTraces: undefined;
59-
ExecutionTraces: undefined;
60+
CustomUITraces: undefined;
6061
AppFlows: undefined;
6162
WebViews: undefined;
6263
FullWebViews: undefined;
@@ -141,6 +142,7 @@ export const HomeStackNavigator: React.FC = () => {
141142
<HomeStack.Screen name="Gestures" component={GesturesScreen} />
142143
<HomeStack.Screen name="APM" component={APMScreen} />
143144
<HomeStack.Screen name="NetworkTraces" component={NetworkScreen} />
145+
<HomeStack.Screen name="CustomUITraces" component={CustomUITraceScreen} />
144146
<HomeStack.Screen name="AppFlows" component={FlowsScreen} />
145147
<HomeStack.Screen
146148
name="LegacyMode"

examples/default/src/screens/apm/APMScreen.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ export const APMScreen: React.FC<NativeStackScreenProps<HomeStackParamList, 'APM
3434
{CustomGap.smallV}
3535
<ListTile title="End App launch" onPress={() => APM.endAppLaunch()} />
3636
<ListTile title="Network Screen" onPress={() => navigation.navigate('NetworkTraces')} />
37+
<ListTile title="Custom UI Traces" onPress={() => navigation.navigate('CustomUITraces')} />
3738
<ListTile title="Flows" onPress={() => navigation.navigate('AppFlows')} />
3839
<ListTile title="WebViews" onPress={() => navigation.navigate('WebViews')} />
3940
<ListTile title="Complex Views" onPress={() => navigation.navigate('ComplexViews')} />
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import React, { useState } from 'react';
2+
import { APM } from 'instabug-reactnative';
3+
import { ScrollView } from 'react-native';
4+
import { Section } from '../../components/Section';
5+
import { Screen } from '../../components/Screen';
6+
import { VStack } from 'native-base';
7+
import { InputField } from '../../components/InputField';
8+
import { CustomButton } from '../../components/CustomButton';
9+
import BackgroundTimer from 'react-native-background-timer';
10+
11+
export const CustomUITraceScreen: React.FC = () => {
12+
const [traceName, setTraceName] = useState<string>('');
13+
14+
function startUITrace() {
15+
if (!traceName.trim()) {
16+
console.log('Please enter a trace name before starting.');
17+
return;
18+
}
19+
APM.startUITrace(traceName);
20+
21+
console.log(`UI trace "${traceName}" started.`);
22+
}
23+
24+
function startDelayedUITrace() {
25+
if (!traceName.trim()) {
26+
console.log('Please enter a trace name before starting.');
27+
return;
28+
}
29+
return BackgroundTimer.setTimeout(() => {
30+
APM.startUITrace(traceName);
31+
console.log(`Delayed UI trace "${traceName}" started.`);
32+
}, 5000);
33+
}
34+
35+
function endUITrace() {
36+
APM.endUITrace();
37+
console.log('UI trace ended.');
38+
}
39+
40+
return (
41+
<ScrollView>
42+
<Screen>
43+
<Section title="Custom UI Traces">
44+
<VStack space={2}>
45+
<InputField
46+
placeholder="UI Trace Name"
47+
onChangeText={(text) => setTraceName(text)}
48+
value={traceName}
49+
/>
50+
<CustomButton title="Start UI Trace" onPress={startUITrace} />
51+
<CustomButton title="Start 5s Delayed UI Trace" onPress={startDelayedUITrace} />
52+
<CustomButton title="End UI Trace" onPress={endUITrace} />
53+
</VStack>
54+
</Section>
55+
</Screen>
56+
</ScrollView>
57+
);
58+
};

examples/default/src/screens/apm/ExecutionTraceScreen.tsx

Whitespace-only changes.

examples/default/src/screens/apm/ScreenRender.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ const ScreenRenderPage: React.FC<NativeStackScreenProps<HomeStackParamList, 'Scr
248248
};
249249

250250
const navigateToComplexPage = (): void => {
251-
navigation.navigate('ComplexViews');
251+
navigation.navigate('ComplexViews', { initialDepth: 10, initialBreadth: 2 });
252252
};
253253

254254
// Cleanup timeout on unmount
@@ -273,7 +273,7 @@ const ScreenRenderPage: React.FC<NativeStackScreenProps<HomeStackParamList, 'Scr
273273

274274
<View style={styles.buttonContainer}>
275275
<InstabugButton
276-
text={isBlocking ? 'Frames are Delayed! (Wait...)' : 'Trigger Frozen Frames (5s)'}
276+
text={isBlocking ? 'Frames are Delayed! (Wait...)' : 'Trigger Delayed Frames (5s)'}
277277
onPress={triggerFrozenFrames}
278278
disabled={isBlocking}
279279
/>

examples/default/src/screens/user-steps/ComplexViewsScreen.tsx

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import React, { useRef, useState } from 'react';
2+
import type { NativeStackScreenProps } from '@react-navigation/native-stack';
3+
import type { HomeStackParamList } from '../../navigation/HomeStack';
24

35
import { Screen } from '../../components/Screen';
46
import { Section } from '../../components/Section';
@@ -7,10 +9,11 @@ import { Button } from 'react-native';
79
import { ScrollView, VStack } from 'native-base';
810
import { InputField } from '../../components/InputField';
911

10-
export const ComplexViewsScreen: React.FC = () => {
11-
const initialDepth = 10;
12-
const initialBreadth = 2;
13-
12+
export const ComplexViewsScreen: React.FC<
13+
NativeStackScreenProps<HomeStackParamList, 'ComplexViews'>
14+
> = ({ route }) => {
15+
const initialDepth = route.params?.initialDepth ?? 10;
16+
const initialBreadth = route.params?.initialBreadth ?? 2;
1417
const depthRef = useRef(initialDepth);
1518
const breadthRef = useRef(initialBreadth);
1619

ios/native.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
$instabug = { :version => '15.1.15' }
1+
$instabug = { :version => '15.1.16' }
22

33
def use_instabug! (spec = nil)
44
version = $instabug[:version]

0 commit comments

Comments
 (0)