Boehrsi.de - Blog

Flutter Designsysteme - Es muss nicht immer Material sein

Erstellt am event Uhr von account_circle Boehrsi in label Development
Flutter Designsysteme - Es muss nicht immer Material sein Bild

Ich bin ein Freund von Designsystemen die entweder direkt in einem Framework integriert oder als zusätzliche Plugins verfügbar sind. Das heißt nicht das ich der Meinung bin das der Entwickler keine Freiheit haben sollten, aber eine Basis zu bieten, die bei Bedarf genutzt werden kann, ist für mich persönlich sehr praktisch. Ich bin Softwareentwickler und kein Designer, insofern fällt es mir mitunter schwer einheitliche Konzepte, die innerhalb einer gesamten App gut aussehen und konsistent sind zu erschaffen. Genau dabei helfen besagte Designsysteme.
Nur weil allerdings ein Standard vorhanden ist, wie z.B. bei Flutter mit Material und Cupertino, was quasi Android und iOS abbildet, heißt dies nicht das man nicht auch mal über den Tellerrand hinaus schauen sollte. Genau dies habe ich in den letzten Monaten getan und ich kann sagen es war durchaus ein Erfolg. Ich habe dabei kein komplett eigenes Designsystem erstellt, denn wie oben erwähnt ist dies nicht unbedingt mein Fachgebiet, ich habe stattdessen andere Systeme ausprobiert und war durchaus angetan.

Related Links

Dartpad - Dart Code im Browser ausführen

Erstellt am event Uhr von account_circle Boehrsi in label Development
Dartpad - Dart Code im Browser ausführen Bild

Manchmal will man schnell etwas ausprobieren, egal ob innerhalb eines großen Projekts oder auch komplett losgelöst von einem spezifischen Kontext. Dafür kann man eine dedizierte IDE öffnen, einen Test schreiben und ausführen, wenn das Ganze innerhalb eines großen Projekts ist oder verschiedene andere Tricks nutzen. Meiner Meinung nach ist eine weitere IDE allerdings nerviger Overhead und einen Test zu schreiben, welcher dann wieder entfernt wird, weil man nur kurz etwas ausprobieren wollte ist auch unpraktisch, z.B. wenn man vergisst ihn wieder zu löschen.
Für solche Dinge habe ich mir tatsächlich angewöhnt einfach Dartpad zu nutzen. Die Webseite ist sofort offen, die Umgebung ist bereit und ich kann direkt ein paar Zeilen Dart schreiben und selbige ohne weiteren Aufwand ausführen. Vor allem wenn es um das Verhalten von System- oder Framework Methoden geht, welche man anhand eines konkreten Beispiels ausprobieren will, finde ich diesen Ansatz durchaus gangbar.
In diesem Kontext würde mich interessieren wie ihr derartige Situationen behandelt. Darüber hinaus plane ich für die Zukunft mal einen Blick auf Googles Project IDX open_in_new zu werfen. Hier erhält man eine komplette IDE im Browser, welche bereits jetzt diverse Sprachen und Frameworks unterstützt. Hier bin ich allerdings noch skeptisch, denn für eine komplette IDE habe ich tatsächlich lieber eine lokale Umgebung, auch wenn selbige etwas mehr Aufwand für die Einrichtung bedarf.

Related Links

Migration von WillPopScope zu PopScope

Erstellt am event Uhr von account_circle Boehrsi in label Development
Migration von WillPopScope zu PopScope Bild

Deprecation ist etwas natürliches in der Softwareentwicklung. Code Teile werden als veraltet markiert, Alternativen werden geschaffen und die Entwickler wechseln auf die neuen Klassen und Methoden. Leider kommt es immer wieder vor, dass die angebotene Alternative anders funktioniert als erwartet oder gewünscht und es entsprechend zu Problemen kommt.
Selbiges Problem habe ich mit der Migration von WillPopScope open_in_new zu PopScope open_in_new. Beide sind dafür zuständig in einer Flutter App die normale Behandlung des Back-Buttons zu verändern. Ich nutze dies z.B. in meiner Tessa App. Mit WillPopScope gab es keine Probleme, aber aufgrund einer Änderung im Android System mussten die Flutter Entwickler hier etwas neues schaffen, um auch die Funktionen in neueren Android Version zu unterstützen.
Während WillPopScope für meine verschiedenen Fälle immer funktionierte, nutzt PopScope einen anderen Ansatz und zwang mich zum umdenken. Dabei geht es nicht nur mir so, wie der GitHub Issue open_in_new zum Thema zeigt.