Posts

Demonstrating bidirectional messaging between Flutter and a hosting web app

Image
We're modifying the sample Flutter application to demonstrate bi-directional messaging between the HTML/Javascript and the Flutter code. The sample Flutter counter app is embedded in a web page. It communicates with Javascript via browser window messages. Demonstrates messaging Flutter to the web app via window messages whenever the counter increments. Demonstrates messaging from the web app to Flutter whenever a button is pressed on the HTML page. An "increment" message is passed to Flutter via the browser window messaging which causes the Flutter app to increment its counter. Show me the code Extracted snippets can be seen by scrolling down on this page. https://github.com/freemansoft/flutter-embedded https://github.com/freemansoft/flutter-embedded/tree/main/v1 Video on Joe's YouTube channel The videos are always more expressive than anything I would write here. Demonstration and overview Demonstration and code Flutter Initiated message flow Diagram used in the vid

Titles matter when they give you a seat at the big people's table

Image
A title acts as a credibility and conversation gate for enterprise communication and decision-making. Senior management expects to participate in meetings and make decisions with people at their level or, one below. Meaningful two-way skip-level communication is often rare. Feedback and input are filtered by the title and role of the person making the request relative to the person receiving the request. This applies across organizations as well.  "The business" often engages their counterparts at the same level effectively cutting off senior contributors.  Conway's law for Titles? The Impact of Title on Impact I'm talking about the title itself, not the job level which drives pay and rating bands. The " Director " level is the first real breakpoint for this.  Inter-org networking happens at a job title level where people attend the same events or training.  Companies often create decision-making groups, hold off-sites, and do major planning at the Director

Organizing Flutter for standalone and embedding

Image
The flutter world is pretty straightforward if you are building new multi-channel applications. You can probably leverage 90% of the same Flutter/Dart code across your Native mobile and web applications. Flutter's out-of-the-box project organization may work with little modification. Enterprises get a different experience when they already have iOS, Android, and web applications on different tech stacks with overlapping functionality.  Enterprises change their tech stack by incrementally replacing native or javascript functionality with Flutter modules.  The Flutter default project structure must be recast in this situation. Organizing Flutter for Standalone and Embedded applications on YouTube The rest of this article is converted in greater depth in the video.  The content exists here for search optimization and will be updated over time. Default "greenfield" organization This is the project structure for a new standalone application that can be deployed as web, Android

Breaking Down the House - I mean Flutter Projects

Image
Flutter makes it easy to create code that can be deployed on web, mobile, or PC-type native applications.  The Flutter templates are the perfect starting place in a greenfield scenario where you don't intend to embed Flutter in another application.  The default templates don't work as well when you want to drop your Flutter code into existing applications written with other tools while at the same time supporting standalone development apps or test jigs. Here is my opinionated view on organizing code if you are building a simple application that works across channels and that may be embedded in existing applications on some platforms. Video Breaking down the Flutter project structure on YouTube The Various Flutter Directories Flutter maintains or creates various directories based on your target environments. Flutter supports having multiple target environments in the same project.  It has an opinionated file structure that prescribes where platform-specific / non-flutter pieces

Running Android Apps on Windows with the Bluestacks Emulator

Image
Microsoft's Windows Subsystem for Android is dead but you can still run Android applications on Windows 11 with the Bluestacks Android emulator. Demonstration Here I use the Wyze Android application to watch a 3D print in progress. Software and Hardware used in this video Site:  https://www.bluestacks.com/download.html Version: Bluestacks 5 Emulator Variant: Android 11 Windows 11 Ryzen 7 5700G Note: Bluestacks does have an advertiser pane to the left of the emulator that is not shown in the video Revision History Created 2024 05

Flutter democratizes UI development and grows the UI developer pool

Image
Google's open-source Flutter is a multi-platform UI tool that can bring more people into professional UI development.  In other words, Flutter democratizes user interface construction, taking it out of the hands of a few platform-specific specialists. It lets one person implement business functions across web applications, iOS native, and Android native. This reduces specialization and the amount of skew between the different platform implementations. Platform specialization may still be required.  We still need experts.   We just need fewer of them when building our applications. Flutter is a User Interface toolset that lets software developers create mobile and web applications without requiring that they be user interface specialists. Flutter isn't a tool built on top of another tool built on top of some weird 1990s library. It was created to build applications with mobile, web, and desktop portability in mind.  Less living on an island UI development in general and Mobile d

An argument for public or opensource contributions as part of a personal portolio

Image
We expect artists to bring previous work, architects to bring previous designs, and writers to bring previous articles. Why are programmers any different? Opensource contributions or personal repositories are pieces of that person's portfolio. They give a feel for your interests, how you think, problem solve and, what you think is important. "Walk me through why you put this together this way". "I only had a little time and the primary thing I needed was XYZ". A person's contributions and comments give a feel for the person in a way a synthetic 45-minute crush programming test in an unfamiliar environment by itself does not. Using Open Source Contributions as a Technical Portfolio on YouTube If your company doesn't give you 20% time, how do you expect to get out of the narrow niche your company has you working in? How do you expect to enhance your technical radar without external exploration and discovery? Self Improvement pays off in multiple ways So

Why are there 4 different windows backup tools?

Image
I do not understand how any mere mortal has any idea what data protection backup tool to pick or how to balance the risks. The Windows backup/data protection story is a sorry mess. Windows 11 and 10 have at least 4 different ways to protect or backup your files. Who thought this was a good idea? Why isn't there a Microsoft-provided capabilities matrix? I understand that these are legacy but someone should have at least pulled this stuff together and put a pretty cover page on it. Some of these are traditional backup tools.  Others are network drives or network drive mirrors where files in the mirror are deleted when you delete the file locally.  This can leave you one action away from losing data depending on how the trash folder operates. A backup is an off-drive copy of your data that can be recovered when your hard drive goes bad, a machine is damaged/stolen or you accidentally delete a file.  Backups are usually saved on network shares, cloud drives, or removable media.  Micros

Resetting and using Philips Hue bulbs with the Amazon Echo or hub

Image
The Amazon Alex app is a unifying console for IOT and other experiences.   I recently struggled trying to reset some legacy Zigbee devices that were paired with controllers I no longer had. It turns out I can use that app to reset my bulbs even though: It isn't obvious how you reset devices. The failure connect screen doesn't offer reset as an option. The program doesn't list my Amazon Echo as being able to do that on the screen where it describes resetting the devices. Backstory I received a pair of white Philips Hue A19 bulbs as part of an Amazon promotion.  Later I sold my Echo and got a new Amazon Echo with the built-in hub.  Newer Hue lighting supports both Zigbee and Bluetooth while older devices are controllable over Zigbee networks.  Never have I ever owned a Philips Hue hub. The bulbs must be reset to factory settings to onboard them to a new hub. In my case, my 4th gen Amazon Echo. The older bulbs can't be reset over Bluetooth. I couldn't get the rapid on/