Mac! I absolutely love MacOS for development. It gives me the power of Unix with a whole lot of convenience. Can it be replaced with Unix? YES! Do I want to? No. As a full stack developer and CTO of my company, I spend 80% of my day in three apps:
Shell/Terminal IDE Browser These three are the same no matter which OS I use. I see MacOS simply as a shell for my Unix environment.
In a 2009 talk, Tony Hoare traced the invention of the null pointer to his design of the Algol W language and called it a “mistake”:
I call it my billion-dollar mistake. It was the invention of the null reference in 1965. At that time, I was designing the first comprehensive type system for references in an object oriented language (ALGOL W). My goal was to ensure that all use of references should be absolutely safe, with checking performed automatically by the compiler.
TLDR; I got faster at writing (code and articles) once I stopped fighting the editor. My journey from a mouse dependent editor to a keyboard one.
As an active developer, I constantly strive to optimize my workflows. Anything that is repetitive must be automated to the nth degree. All actions that are pure, that is to say, yield the same result if the inputs are same are easy to do.
Over the years the choices of IDEs and code editors have reduced significantly. We earlier had quite a few options across OSes from BBEdit, Notepad++, Eclipse, etc. However now with the need for advanced IDEs there are only a handful picks that work across all OSes, and that is great! We have contenders in both the open source (VS Code, Vim, etc) and commercial (Intellij, Sublime Text, etc) spaces. These are all amazing editors and IDEs but when it comes to native ones that are fast and native the choices are quite limited.
All apps need a setting panel for its configuration. Generating one requires the same boiler plate code to be written for each app.
Although the configuration itself is myriad depending on the application purpose the set of widgets remain the same.
Flutter out-of-the-box does not provide a generic way of constructing configuration panels. Clean settings project delivers a simple yet rich way of building the configuration panel.
The default StreamBuilder in Flutter is amazing and helps with Widget construction really well. If used as is,
StreamBuilder requires basic plumbing to handle states that can have default behaviors.
mainstream_extended solves this by providing widgets and handlers for most common result data scenarios.