This is project that I’ve been working on for the past 6 months. We are now officially selling the software, so I wanted to give a brief overview of how I implemented this. There’s no secrets here – nothing here that you couldn’t work out easily from looking at the site.
Some quick lessons learned:
- React is really nice 🙂
- I initially implemented the gamma correction graphs in HTML 5 Canvas, but found it difficult to get it to look nice on high density displays. I switched to creating SVGs instead.
- Modifying SVGs on the fly using React is really really nice!
- I initially developed without using Redux, but was eventually persuaded into switching to Redux. Honestly, I’m really not convinced it was the right choice. Dan Abramov, the co-author of Redux, wrote an article called: “You might not need Redux” which I agree with.
- I intended from the start to have a “fake backend” that acted like a simulator of the feel hardware and used the same websocket protocol. This turned out to be extremely useful, and paid itself back over and over.
- Keep in touch with the end users as much as possible, and release early and release often. There’s a lot of hate for the word ‘Agile’, but I’ve used it in 3 major projects so far, and I’m a true believer in it.
- Visual Studio Code (not Visual Studio) works in Linux flawlessly and is absolutely awesome. It’s won me over after being a heavy vim user for 15 years. It supports ES7 and JSX syntax.
- Don’t go for a minimal react setup, but use a boilerplate with the most common things included, such as this. It can seem really heavy for a beginner, but things like babel, router, image loader, ES7, etc are just awesome.