Skip to content

Commit f8c8f2b

Browse files
committed
mg updated dev readme and reg readme
1 parent d55826b commit f8c8f2b

File tree

2 files changed

+50
-35
lines changed

2 files changed

+50
-35
lines changed

README.md

Lines changed: 37 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
<h1 align="center">
1+
<h1 align="center">
2+
23
<br>
3-
<img src ="./assets/readme-logo-300-no-version.png" width="300"/>
4+
<img src ="./assets/logos/chromeExtensionIcons/marqueePromoTitle.png"/>
45
<br>
56
<br>
67
React Performance Tool
@@ -9,7 +10,7 @@
910
<br>
1011
</h1>
1112

12-
<h4 align="center"> Reactime is an open source Chrome developer tool for time travel debugging and performance monitoring in React applications. Reactime enables developers to record snapshots of application state, jump between and inspect state snapshots, and monitor performance metrics such as component render time and render frequency. </h4>
13+
<h4 align="center"> Reactime is an open-source Chrome developer tool for time travel debugging and performance monitoring in React applications. Reactime enables developers to record snapshots of application state, jump between and inspect state snapshots, and monitor performance metrics such as component render time and render frequency. </h4>
1314

1415
<br>
1516
<p align="center">
@@ -28,7 +29,7 @@
2829
<br>
2930

3031
<p align="center">
31-
<img src="./assets/v20/Overview.gif" />
32+
<img src="./assets/gifs/main_v21.gif" />
3233
</p>
3334

3435
<p align="center">
@@ -47,14 +48,22 @@ be viewed in Diff mode.
4748
<br>
4849

4950
<p align="center">
50-
<img src="./assets/v20/map.gif" />
51+
<img src="./assets/gifs/timeTravelHistory_v21.gif" />
5152
</p>
5253
<br>
5354

55+
### 🔹 Recording
56+
57+
Whenever the state is changed (whenever setState, useState is called), this
58+
extension will create a snapshot of the current state tree and record it. Each
59+
snapshot will be displayed in Chrome DevTools under the Reactime panel.
60+
<br>
61+
<br>
62+
5463
### 🔹 Snapshot Series and Action Comparison
5564

5665
You can save a series of state snapshots and use it to analyze changes in
57-
component render performance between current and previous series of snapshots.
66+
component render performance between the current and the previous series of snapshots.
5867
You can also name specific snapshots and compare all snapshots with the same
5968
name.
6069
<br>
@@ -69,16 +78,14 @@ each component upon hovering.
6978
<br>
7079
<br>
7180

72-
### 🔹 Recording
81+
### 🔹 Download/Upload Snapshots
7382

74-
Whenever state is changed (whenever setState, useState is called), this
75-
extension will create a snapshot of the current state tree and record it. Each
76-
snapshot will be displayed in Chrome DevTools under the Reactime panel.
83+
Download the recorded snapshots as a JSON file and upload them to access state trees across different sessions.
7784
<br>
7885
<br>
7986

8087
<p align="center">
81-
<img src="./assets/v20/history.gif" />
88+
<img src="./assets/gifs/importExport_v21.gif" />
8289
</p>
8390
<br>
8491

@@ -90,7 +97,7 @@ Performance tab in Chrome DevTools under the Reactime panel.
9097

9198
### 🔹 Jumping
9299

93-
Using the actions sidebar, a user can jump to any previous recorded snapshots.
100+
Using the actions sidebar, a user can jump to any previously recorded snapshots.
94101
Hitting the jump button on any snapshot will allow a user to view state data at
95102
any point in the history of the target application.
96103

@@ -103,7 +110,7 @@ features and visual representation of the tree components.
103110
### 🔹 Next.js
104111

105112
Reactime offers debugging and performance tools for Next.js apps: time-traveling
106-
debugging, preventing unnecessary components re-renders and making your
113+
debugging, preventing unnecessary component re-renders and making your
107114
application faster.
108115

109116
### 🔹 Remix
@@ -115,7 +122,7 @@ needs to be added for multi-route time traveling. Every other feature works.
115122

116123
Reactime offers support for TypeScript applications using stateful class
117124
components and functional components. Further testing and development is
118-
required for custom hooks, and Concurrent Mode.
125+
required for custom hooks and Concurrent Mode.
119126

120127
### 🔹 Documentation
121128

@@ -127,26 +134,25 @@ of the structure and interfaces of the codebase.
127134

128135
### <b>Additional Features</b>
129136

130-
- In-app tab specific tutorial walkthroughs
137+
- In-app tab-specific tutorial walkthroughs
131138
- Hover over a component to view tooltip details on state visualizations
132139
- Double-click to collapse child components
133140
- Click to focus on a portion of the component map
134-
- A dropdown to support development of projects on multiple tabs
141+
- A dropdown to support the development of projects on multiple tabs
135142
- Intuitive navigation between state snapshots
136-
- Download/upload the current snapshots in memory
137143
- Locked/unlocked feature allowing temporary pause of state monitoring
138144

139145
<h1>What's New!</h1>
140146

141-
Reactime 20.0 includes several key improvements under the hood to improve performance and resolve existing bugs, as well as a revamped UX to achieve WCAG compatibility.
147+
Reactime 21.0 focuses on several key performance issues to improve application stability and reliability, bug fixes, a revamped UI, and the inclusion of a state export and import feature.
142148

143149
<i>Under the Hood</i>
144150

145-
We have resolved several persistent bugs, including a major issue that caused apps using Reactime to crash when using login or submit functionality. As part of our effort to improve Reactime performance overall, we have continued to implement TypeScript throughout the codebase and created new tests with React Testing Library. We have also made testing more robust, improving existing tests and fixing broken test environments. Lastly, we have upgraded Reactime by removing some deprecated code and packages, reducing compilation errors.
151+
We have resolved several persistent bugs that would result in a black screen during regular application use. One of the major causes of Reactime’s black screen bug was related to the use of deprecated packages, such as an outdated Material UI package. Another source of black screens and poor user experience appeared to be related to the application frequently terminating ports. This prevented Reactime’s contentScript.ts, background.js, and MainContainer.tsx from communicating with the developer’s application. Through the implementation of a ‘keepAlive’ function, we allow the connection to stay long-lived for longer. Updating the current Material UI package from v4 to v5 and implementing keepAlive connections have resulted in a drastic decrease in port disconnects.
146152

147-
<i>Accessibility</i>
153+
In an effort to improve maintainability and application longevity, there were several engineering interventions that were implemented. One of the goals for Reactime 21.0 was to decrease the dependency on external libraries and packages, which we have done by updating or removing packages. While the documentation for the backend and extension was adequate, there was a severe lack of documentation of all the front-end components. Reactime 21.0 has changed this with documentation covering more than 90% of front-end component logic. We have also added new images and charts so future developers can understand how components are interconnected. These improvements should lead to faster development of features in the future.
148154

149-
We have updated the UX, seeking consistency with the Web Content Accessibility Guidelines (WCAG). Specifically, we have improved the size and design of target elements throughout Reactime and carefully chosen new color contrasts to ensure WCAG compatibility.
155+
For user experience, we focused on several major goals. The new download and upload feature allows developers to download their current state history so that developers may share their findings or review them later down the road. Another focus was to remove features that did not meet Reactime’s standards for user experience. The “Compare Actions” option has been removed until the feature becomes more concrete. The initial application load screen has had timings loosened to allow developers with slower computers to allow better connection between Reactime and their application. Loading error messages have been improved to allow easier initial troubleshooting to decrease frustration. Last but not least, while we have now migrated to Material UI v5, we have started the slow transition to convert various components into Material UI. Along with a new take on Reactime’s logo, this has resulted in a cleaner and more modern appearance.
150156

151157
If you would like to read more about previous releases, click <a href="https://github.com/open-source-labs/reactime/releases">here!</a>
152158

@@ -175,7 +181,7 @@ your browser.
175181
Go to Chrome Extensions (make sure Chrome Extension is in Developer Mode) for
176182
manual installation in (https://developer.chrome.com/extensions/faq#faq-dev-01)
177183
and click on Load Unpacked. Use `src/extension/build/` to load this extension.
178-
Turn on 'Allow access to file URLs' in extension details page if testing
184+
Turn on 'Allow access to file URLs' in the extension details page if testing
179185
locally.
180186

181187
### Looking to contribute to Reactime?
@@ -196,7 +202,7 @@ Then open up your Chrome DevTools and navigate to the Reactime panel.
196202
### ❓ <b>Why is Reactime telling me that no React application is found?</b>
197203

198204
Reactime initially runs using the dev tools global hook from the Chrome API. It
199-
takes time for Chrome to load this. Try refreshing your application a couple
205+
takes time for Chrome to load this. Try refreshing your application a couple of
200206
times until you see Reactime running.
201207

202208
### ❓ <b>Why do I need to have React Dev Tools enabled?</b>
@@ -210,19 +216,19 @@ clicking the right mouse button “Reload frame”.
210216

211217
### ❓ <b>I found a bug in Reactime</b>
212218

213-
Reactime is an open source project, and we'd love to hear from you about
219+
Reactime is an open-source project, and we'd love to hear from you about
214220
improving the user experience. Please read [DEVELOPER README](src/README.md),
215221
and create a pull request (or issue) to propose and collaborate on changes to Reactime.
216222

217223
### ❓ <b>Node version compatibility</b>
218224

219-
With release of Node v18.12.1(LTS) on 11/4/22, the script has been updated to
225+
With the release of Node v18.12.1(LTS) on 11/4/22, the script has been updated to
220226
'npm run dev' | 'npm run build' for backwards compatibility.<br/> For version
221227
Node v16.16.0, please use script 'npm run devlegacy' | 'npm run buildlegacy'
222228

223229
## <b>Read More</b>
224230

225-
- [It's time for Reactime 20.0!](linkhere)
231+
- [Cheers to Reactime, Version 21!](https://medium.com/@brok3turtl3/cheers-to-reactime-version-21-fa4dafa4bc74)
226232

227233
## <b>Authors</b>
228234

@@ -313,6 +319,11 @@ Node v16.16.0, please use script 'npm run devlegacy' | 'npm run buildlegacy'
313319
- **James McCollough** - [@j-mccoll](https://github.com/j-mccoll)
314320
- **Mike Bednarz** - [@mikebednarz](https://github.com/mikebednarz)
315321
- **Sergei Liubchenko** - [@sergeylvq](https://github.com/sergeylvq)
322+
- **Yididia Ketema** - [@yididiaketema](https://github.com/yididiaketema)
323+
- **Morah Geist** - [@morahgeist](https://github.com/morahgeist)
324+
- **Eivind Del Fierro** - [@EivindDelFierro](https://github.com/EivindDelFierro)
325+
- **Kyle Bell** - [@KyEBell](https://github.com/KyEBell)
326+
- **Sean Kelly** - [@brok3turtl3](https://github.com/brok3turtl3)
316327

317328
## <b>License </b>
318329

src/README.md

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## Brief
44

5-
Our mission at Reactime is to maintain and iterate constantly, but never at the expense of future developers. We know how hard it is to quickly get up to speed and onboard in a new codebase. So here are some helpful pointers to help you hit the ground running. 🏃🏾💨
5+
Our mission at Reactime is to maintain and iterate constantly, but never at the expense of future developers. We know how hard it is to quickly get up to speed and onboard in a new codebase. So here are some helpful pointers to help you hit the ground running. 🏃🏾
66

77
## Building from source
88

@@ -22,7 +22,7 @@ npm install --legacy-peer-deps
2222
npm run dev
2323
```
2424

25-
(if ‘–legacy-peer-deps’ doesn’t work, use the ‘–force’ flag)
25+
If ‘npm install –legacy-peer-deps’ doesn’t work, install dependencies using ‘npm install --force’
2626

2727
With release of Node v18.12.1 (LTS) on 11/4/22, the script has been updated to 'npm run dev' || 'npm run build' for backwards compatibility.<br/>
2828
For version Node v16.16.0, please use script 'npm run devlegacy' || 'npm run buildlegacy'
@@ -45,7 +45,7 @@ Similar approach for Next.js and Remix demo apps
4545
- Navigate to http://localhost:8080/ to inspect the demo application using Reactime!
4646
- Once the initial build has been completed and loaded into chrome as an unpacked extension, you may enter the root directory and run ‘npm run dev’ to hot load the chrome extension. You should see ‘[ Starting the Chrome Hot Plugin Reload Server... ]’. You should now be able to see changes without having to rebuild the extension. If for some reason it does not, feel free to rebuild and then try the Hot Plugin Reload Server again.
4747

48-
![extension](../assets/reactime-dev-setup.gif)
48+
![extension](../assets/gifs/reactime-dev-setup.gif)
4949

5050
## Linting
5151

@@ -73,7 +73,7 @@ Any changes to console.logs in Reactime can be seen by refreshing the browser th
7373

7474
## Replace Functionality for Outdated Packages
7575

76-
Package dependencies need to be trimmed down, updated, and/or removed. Peer dependency errors are the reason npm install --force is necessary when installing the dependencies of Reactime.
76+
Package dependencies need to be trimmed down, updated, and/or removed. Peer dependency errors are the reason npm install --force may be necessary when installing the dependencies of Reactime. While Reactime v21.0 has reduced package dependency errors for developers from multiple pages of errors down to ~15 errors, the goal is to decrease overall package/library dependency to a minimum to promote long-term maintainability
7777

7878
Material-ui/core has been updated to use React 18. Future developers may choose to remove Material-ui/core from the application to ensure compatibility in the future or continue to build out the UI. The choice is yours!
7979

@@ -90,6 +90,10 @@ Can Reactime functionality be extended so applications using Redux can track sta
9090

9191
Yes, but it would be very time-consuming and not the most feasible option while Redux devtools exists already. With how Redux devtools is currently set up, a developer is unable to use Redux devtools as a third-party user and integrate its functionality into their own application, as Redux devtools is meant to be used directly on an application using Redux for state-tracking purposes. Since the devtools do not appear to have a public API for integrated use in an application or it simply does not exist, Redux devtools would need to be rebuilt from the ground up and then integrated into Reactime, or built into Reactime directly still from scratch.
9292

93+
Can Reactime be refactored into a Redux application?
94+
95+
Yes, in fact, it should be. Reactime currently uses [Immer](https://github.com/immerjs/immer#readme) to handle immutable data structures. The foundation for Redux is already there, as Reactime uses reducers, a store, action creators, and action types. Adding a state management library like Redux, would allow for further application stability and maintainability as it would decrease the amount of less frequently maintained package/libraries.
96+
9397
# File Structure
9498

9599
In the _src_ folder, there are three directories we care about: _app_, _backend_, and _extension_.
@@ -148,7 +152,7 @@ All the diagrams of data flows are available on [MIRO](https://miro.com/app/boar
148152

149153
![FRONTEND DEPENDENCY CHART](../assets/Front_End_Dependency_Chart_v21.png)
150154

151-
![BACKEND DEPENDENCY CHART](../assets/BackEndDependencyChart.png)
155+
![BACKEND DEPENDENCY CHART](../assets/Back_End_Dependency_Chart_v21.png)
152156

153157
![FRONTEND DATA FLOW](../assets/frontend-diagram.png)
154158

@@ -192,7 +196,7 @@ Console.logs from the Extension folder you can find here:
192196
- Chrome Extension (Developer mode)
193197
- Background page
194198

195-
![extension](../assets/extension-console.gif)
199+
![extension](../assets/gifs/extension-console.gif)
196200

197201
### <b> /src/app </b>
198202

@@ -201,7 +205,7 @@ Console.logs from the App folder you can find here:
201205
- Chrome Browser
202206
- Inspect
203207

204-
![frontend](../assets/console.gif)
208+
![frontend](../assets/gifs/console.gif)
205209

206210
### <b> /src/backend </b>
207211

@@ -210,7 +214,7 @@ Console.logs from the App folder you can find here:
210214
- Open the Reactime extension in Chrome
211215
- Click "Inspect" on Reactime
212216

213-
![backend](../assets/reactime-console.gif)
217+
![backend](../assets/gifs/reactime-console.gif)
214218

215219
# Chrome Developer Resources
216220

@@ -255,7 +259,7 @@ Once you are ready for launch, follow these steps to simplify deployment to the
255259

256260
# Past Medium Articles for Reference
257261

258-
-[Reactime 21: ]
262+
-[Reactime 21: Cheers to Reactime, Version 21!](https://medium.com/@brok3turtl3/cheers-to-reactime-version-21-fa4dafa4bc74)
259263

260264
- [Reactime 20: Reactime just keeps getting better!](https://medium.com/@njhuemmer/reactime-just-keeps-getting-better-b37659ff8b71)
261265
- [Reactime 19: What time is it? It’s still Reactime!](https://medium.com/@minzo.kim/what-time-is-it-its-still-reactime-d496adfa908c)

0 commit comments

Comments
 (0)