Joel Ross
Autumn 2024

<info 340/>

Conclusions

View of the Day

  • Last Questions?

  • Firebase Authentication Review/Demo?

  • Conclusions: Tools & Libraries

  • Administrivia: Evaluations, etc

Any last questions?

(can also review any Firebase stuff)

Project Final Draft

For the Final Draft of the project, we're looking for it to be totally complete! See the Canvas page for full details.

  • Well-structured and appropriate HTML (in React)
  • Well-constructed React Components. Uses props and state!
  • Interactive features: "two and a half" significant features
  • Routing and navigation Needs multiple pages; url params
  • External React Library rendering a Component. react-bootstrap is okay (if used meaningfully e.g., interactive widget)
  • Data Persistence through Firebase (includes asynchronous work; effect hooks, etc)
  • Good Style, Accessibility, Responsiveness
  • Correct code style -- check the course textbook!

Firebase Authentication

Email Enum Protection

On Sep 15 2023 Google added additional security features to avoid login information being leaked from sign-in forms. This can potentially cause issues when doing frequent log-ins for Firebase.

As a workaround, when doing development, you can turn off this feature (just remember to turn it back on for deployment!)

FirebaseUI

A library (provided by Firebase) that created a sign-in form for your page.

React 18 workarounds

The React bindings for FirebaseUI (firebaseui-web-react) was not updated for React 18, has since been abandoned.
See the open pull request from Gabriel Villenave.

//in package.json
"react-firebaseui": "https://gitpkg.now.sh/gvillenave/firebaseui-web-react/dist"
# Install library (on command line)
npm install https://gitpkg.now.sh/gvillenave/firebaseui-web-react/dist

A second option is to instead install the firebaseui library (instead of the React bindings) and copy in the StyledFirebaseAuth.jsx file yourself.

Until the pull request is accepted, one work around is to install the updated fork instead of the usual package:

What have we learned...?

So many tools...

Tool Dependency

Much of the web (and software in general) is built on shared, reusable libraries.

"Protestware"

Are they the right tools?

The juxtaposition of The HTTP Archive’s analysis and The State of JS 2020 Survey results suggest that a disproportionately small—yet exceedingly vocal minority—of white male developers advocate strongly for React, and by extension, a development experience that favors thick client/thin server architectures which are given to poor performance in adverse conditions. Such conditions are less likely to be experienced by white male developers themselves, therefore reaffirming and reflecting their own biases in their work.

Future of Frameworks?

I've been building lots of apps by using LLMs and Agents. I'm currently up to about 17 tools, utilities and demos over the duration of a couple of weeks. I build them for me and because tools like Replit have enabled me during my small spots of free time to build fully working sites and apps that solve the immediate problem that I have. I've felt incredibly productive.

...

I'm of the belief that software development is entering a radical shift that is currently driven by agents like Replit's and there is a world where a person never actually has to manipulate code directly anymore. As I was making broad and sweeping changes to the functionality of the applications by throwing the Agent a couple of prompts here and there, the software didn't seem to care that there was repetition in the code across multiple views, it didn't care about shared logic, extensibility or inheritability of components... it just implemented what it needed to do and it did it as vanilla as it could. I was just left wondering if there will be a need for frameworks in the future? Do the architecture patterns we've learnt over the years matter? Will new patterns for software architecture appear that favour LLM management?

- Paul Kinlan, Chrome Developer Relations Team lead, Nov 2024

Course Feedback

Check your email for course evaluations! Do them NOW please!

Thank you for your hard work in this class!

Action Items!

  • Complete the Course Evaluation

  • Late/missing Problem Sets due by Friday Dec 6

  • Final Project due on Monday Dec 9

    • Hard deadline; no grace period

    • Extra office hours on Monday (time TBD)

  • Have a great break!


Next: Do we need to meet Wednesday?
           Work time / office hours?

info340au24-conclusions

By Joel Ross

info340au24-conclusions

  • 443