Tumgik
bridge-supplies · 4 days
Text
A Eulogy for the Fur-Bound
Jolene "Jojo" H-D
March 12, 2004 - Sept 9, 2024
I firmly believe that pets are brought into our lives for two main reasons.
1. For them to teach us empathy.
2. For us to teach them identity.
Tumblr media
The following section was originally written in the immediate hours following her peaceful passing at home.
Jolene changed my life, receiving her as a gift for my 11th birthday. I grew up reading Calvin & Hobbes comics, and always wanted a "tiger" pal of my own. When my mom introduced me to "Jolyn" at the Animal Rescue League, she was the last of her litter still with her mom. After bringing her home I renamed her Jolene/Jojo, and she quickly made herself at home with my parents' black cat Pepper and our small white dog Baby. Over the years she showed herself as a fierce and loyal companion. She refused to stay a housecat, escaping outside whenever we weren't looking, getting into fights with neighborhood cats to earn a missing chip out of her right ear that would last her whole life. Sometimes she'd meow at us from outside our second story windows, leaving us to only guess how she made it out this time. Sometimes we'd find "Jolene-y Houdini" hiding in blanket baskets or behind any furniture with just enough space. And she made sure to let you know she did not like sitting on laps for more than 5 seconds at a time. Fast forward through me leaving for college, us selling the house I grew up in, me working in the Boston area for 7 years, and Jolene transitioning to an indoor cat while living with my mom. In 2022 I was able to move Jolene back into my own apartment in RI, in what I like to call her "retirement home". But alas, she wasn't done yet, oh no. Even though her kidneys, arthritis, and age were catching up with her, she even managed to catch a mouse in my space at age 18! With me still working from home, she also allowed herself to ~experiment~ being a lapcat, and become a lapcat she absolutely did. Soon I'd be struggling to get work done because whenever I sat at my desk, she saw it as an opportunity for a nap and wouldn't stop letting me know she wanted UP, damnit! She has always been stubbornly brave. Even when the surprise malignant tumor in her nose was giving her pain, she always made sure she was near me and my mom as we've watched her these last few days. She visibly showed her love for her humans, including the friends and family who have watched her when I've been away. She knew she was loved back as well, and never feared that we had each other's backs through thick and thin (even if it meant meowing at the bathroom door every time I was in there for more than a minute 😹). So, this is a celebration of her life and everything she's meant to me, my family, and friends that got to know her, and what we've done for her: give her love, companionship, and an opportunity to become the best Jolene she could possibly be. Love grows when shared. You'll be in my heart forever, sweetheart. ❤️
Tumblr media
That evening, either as a response to the release of stress or a communion with the recently passed, I felt her energy bouncing around the walls of the apartment we've shared the last two years, joyful to be released from that old bag of bones. She was happy to have graduated.
I've never been a religious person. My spiritual path has gone from teenage atheist, to agnosticism, apatheism, and absurdism. Nowadays I've come to accept that materialism can't possibly explain the breadth of recorded experiences, and to be open to the unexplainable. That has led me to entertain some fascinating stories, such as the Law of One channelings by L/L Research, which I find myself mentioning a lot nowadays.
Posed as a series of questions to an extraterrestrial entity in the 1980s (continuing to today with other entites), the channelings paint an interesting potential picture of the nature of existence. Its primary focuses cover the unity of all things, the distinction between "service to self" and "service to others", and the graduation of our consciousness through a series of "densities" via a form of reincarnation.
Tumblr media
Through sharing love with our lower density companions, we permanently raise them up to that next level of existence beside us, showing them the beginning of their path of individuality and personal expressions of love.
Feb 9, 1981 Questioner: So more and more second-density entities are making it into third density. Can you give me an example of a second-density entity coming into third density, say, in the recent past? Ra: I am Ra. Perhaps the most common occurrence of second-density graduation during third-density cycle is the so-called pet. The animal which is exposed to the individualizing influences of the bond between animal and third-density entity, this individuation causes a sharp rise in the potential of the second-density entity so that upon the cessation of physical complex the mind/body complex does not return unto the undifferentiated consciousness of that species, if you will.
Tumblr media
While we raise up our companions, they aide our own evolution as well, pushing us along the positive path of service to others.
Dec 14, 2019 Austin: ... I was wondering if you could give any insight into how we might deepen that sort of relationship with our pets to help them on their spiritual journeys. Q’uo: ... We would suggest that as the pet is related to by the owner, that the love which the owner feels for the pet be expressed in any way possible, and in every opportunity possible, in order that the love of the owner for the pet is invested in the pet so that it is much likened unto a seed that begins to grow within the pet and the pet then begins to feel a loving response for the owner, as it feels the love from the owner to it. This is a reciprocal opportunity to give that which is understanding, love, compassion, to the pet so that it may feel engulfed by the open-hearted unconditional love of the owner. This is a situation which is most usually accomplished over a long period of time, usually measured in years, for the experience of the pet and the owner to reach the full fruition of the pet being invested to the degree that the next incarnation that it will experience will be that of the third-density entity. Thus, there is the type of giving and taking of love and light that is most beneficial between the pet and the owner. The owner also benefits in great degree by being of service to the pet so that in its own polarization process, the owner moves further and further along the positive path as the pet has become the vehicle, not only for the pet’s evolution, but for the owner’s evolution as well.
Tumblr media
The bonds we forge with our pets during this incarnation are unbreakable, as a true recognition of the Oneness of all things.
Sept 23, 2023 G: Several of us have been dealing with the death of one of the second-density entities that we call pets. ... Is there a particular spiritual or metaphysical reason why our pets have a relatively short lifespan? Q’uo: ... The span of life for all sentient beings is that which is infinite. Within your third-density illusion, the infinity of beingness of the second-density pet is limited in many cases, in this illusion, to a certain number of years, as you would call them. During these years of exchanging love and companionship back and forth from pet to you, from you to pet, you are aiding this second-density being in his own evolution so that at some point it may also become a third-density being because of its relationship with you; and its life continues as third-density being, though it ended as a second-density being. We would also suggest to you that as it is within what you would call the inner planes ... this being is frequently with you, in your dreams, in your experience of the daily round of activities, when it may be there to greet you in some way that may or may not be recognized, that when there is the connection of hearts, whether they be second or third density, this connection has been expressed in the life path of both entities. This is a connection that cannot be broken, for it represents the connection of the One Infinite Creator’s love that created all that there is in the infinite universe; and through this love made what we see as the planets and stars and the galaxies as the love became light. In love and light you are connected to your pets, and they are always with you while you are here. And when you leave your body and move as an eternal being into the inner realms to the higher planes, you will see them again. And this time you will recognize them for who they are, the One Creator, as are you, knowing Itself through each expression of any form of life on every planet in the infinite universe.
Tumblr media
As I still await the receipt of Jolene's urn, my family has been imagining ideas on how to best honor her life and effect on us all, like needle-felting her incredibly soft fur, 3D-printing from her old photos, and decorating the urn with Lego and flowers.
The feelings I have had over the last week+ has been a mixture of gratitude for the experience of being her caretaker, relief over being relieved of service and the cessation of her suffering, and bittersweet sadness that reminds me of the utmost importance and power of positive companionship in our lives.
Jolene cannot be replaced, yet her energies and memories live on through everyone who witnessed her. If that's not emblematic of One-ness, I do not know what is.
0 notes
bridge-supplies · 13 days
Text
Updates: 9/2 - 9/15
BLUF: Josh's 20 year old cat Jolene had a sudden health issue at the end of last week, and had to be put down on Monday, Sept 9. Josh is a bit of a mess, and will continue Archetypist development after a period of mourning. Hug and love your pets while you have them 🙏❤️
0 notes
bridge-supplies · 20 days
Text
Updates: 8/26 - 9/1
BLUF: Foundation v1.1.10 has continued importing features, UI tweaks, and code consolidations from Adepticadian and Archetypist.
Latest Updates
W.I.P.s
Foundation - Continued work on v1.1.10 with code consolidations from other projects
Full Circle - N/A
Published Projects
Class Warfare - N/A
Adepticadian - Continued work on v2.0.1 with code consolidations from other projects
Archetypist - Continued work on v3.0.0 with code consolidations from other projects
Common - N/A
Next Goals
W.I.P.s
Foundation - Prepare v1.1.10 with updates from Archetypist re-make
Full Circle - Plan out Foundation-based refactor
Published Projects
Class Warfare - Update Compose theme to match material usages from Full Circle - Attempt LazyColumn optimizations for map views - Plan out Foundation-based v2 of app
Adepticadian - Solicit feedback for v2.0.0 beta on Google Play
Archetypist - Continue Foundation-based re-make based off of workbook sketches
Common - N/A
0 notes
bridge-supplies · 27 days
Text
Updates: 8/19 - 8/25
BLUF: Foundation v1.1.9 has been released with updates from the Adepticadian rework, Adepticadian v2.0.1 is receiving some minor updates, and the Archetypist v3.0.0 project skeleton and Info screen has been set up.
Latest Updates
W.I.P.s
Foundation - Published v1.1.9 with changes from Adepticadian - Began work on v1.1.10 with changes from Archetypist - Added LinkButton, Title/Subtitle/BodyText, ExpandableTItledCard composables from Archetypist
Full Circle - N/A
Published Projects
Class Warfare - N/A
Adepticadian - Began v2.0.1 beta branch - Added LinkButton, Title/Subtitle/BodyText, ExpandableTItledCard composables from Archetypist
Archetypist - Began v3.0.0 Foundation-based re-make - Standardized UI composables like expandable card - Finished Info screen with expandable card list and saved state
Common - N/A
Next Goals
W.I.P.s
Foundation - Prepare v1.1.10 with updates from Archetypist re-make
Full Circle - Plan out Foundation-based refactor
Published Projects
Class Warfare - Update Compose theme to match material usages from Full Circle - Attempt LazyColumn optimizations for map views - Plan out Foundation-based v2 of app
Adepticadian - Solicit feedback for v2.0.0 beta on Google Play
Archetypist - Continue Foundation-based re-make based off of workbook sketches
Common - N/A
0 notes
bridge-supplies · 1 month
Text
Updates: 8/12 - 8/18
BLUF: The Adepticadian 2.0.0 public beta release has been uploaded to Google Play for testing! Sign up for the public beta and give us your feedback 🙌
Latest Updates
W.I.P.s
Foundation - Prepare to publish v1.1.9 with compiled changes from Adepticadian
Full Circle - N/A
Published Projects
Class Warfare - N/A
Adepticadian - Bugfix for catalyst note dates - Upload & release beta 2.0.0 on Google Play for public testing
Archetypist - N/A
Common - N/A
Next Goals
W.I.P.s
Foundation - Prepare v1.1.9 with updates from Archetypist re-make
Full Circle - Plan out Foundation-based refactor
Published Projects
Class Warfare - Update Compose theme to match material usages from Full Circle - Attempt LazyColumn optimizations for map views - Plan out Foundation-based v2 of app
Adepticadian - Solicit feedback for v2.0.0 beta on Google Play
Archetypist - Setup Foundation-based re-make based off of workbook sketches
Common - N/A
0 notes
bridge-supplies · 1 month
Text
Updates: 8/5 - 8/11
BLUF: More Adepticadian polish, like startup tips and a reworked portrait overview layout. More bugfixes have been ported back to Foundation v1.1.9, such as addressing BottomSheets not reacting properly to orientation changes.
Latest Updates
W.I.P.s
Foundation - Add optional startup tips - Removed AppliedColorScheme - Fix BottomSheet orientation bug - Add PastOrPresent date range selector
Full Circle - N/A
Published Projects
Class Warfare - N/A
Adepticadian - Continued KMP-Compose re-make and ported improvements back to Foundation v1.1.9 - Reworked user sorting, scroll to new user - Refactored portrait Overview screen so whole screen is scrollable - Bug fixes, code clean/consolidation - App startup tips
Archetypist - N/A
Common - N/A
Next Goals
W.I.P.s
Foundation - Prepare v1.1.9 with updates from Archetypist re-make
Full Circle - Plan out Foundation-based refactor
Published Projects
Class Warfare - Update Compose theme to match material usages from Full Circle - Attempt LazyColumn optimizations for map views - Plan out Foundation-based v2 of app
Adepticadian - Start testing Adepticadian builds with others - Publish final v2.0.0 to Google Play
Archetypist - Setup Foundation-based re-make based off of workbook sketches
Common - N/A
0 notes
bridge-supplies · 2 months
Text
Updates: 7/29 - 8/4
BLUF: Adepticadian continues to be polished, with improved UI and cleaned up code. Code consolidations were also ported back to Foundation for the next v1.1.9.
Latest Updates
W.I.P.s
Foundation - Consolidated TextInput and fade-edge lists, added StaggeredGrid support
Full Circle - N/A
Published Projects
Class Warfare - N/A
Adepticadian - Continued KMP-Compose re-make and ported improvements back to Foundation v1.1.9 - Info bottom sheet - Delete user bottom sheet - Catalyst notes and reflection times - Refactored Phase/Cycle handling
Archetypist - N/A
Common - N/A
Next Goals
W.I.P.s
Foundation - Prepare v1.1.9 with updates from Archetypist re-make
Full Circle - Plan out Foundation-based refactor
Published Projects
Class Warfare - Update Compose theme to match material usages from Full Circle - Attempt LazyColumn optimizations for map views - Plan out Foundation-based v2 of app
Adepticadian - Start testing Adepticadian builds with others - Publish final v2.0.0 to Google Play
Archetypist - Setup Foundation-based re-make based off of workbook sketches
Common - N/A
0 notes
bridge-supplies · 2 months
Text
Updates: 7/22 - 7/28
BLUF: The Adepticadian re-make is nearing completion, and almost ready for initial rounds of testing. Meanwhile, Foundation has been updated to v1.1.8 to include core functionalities developed for Adepticadian.
Latest Updates
W.I.P.s
Foundation - Fixed some file names - KMP-supporting system settings, web browser launching - Automated license generation & in-app display - Top app bar actions support
Full Circle - N/A
Published Projects
Class Warfare - N/A
Adepticadian - Continued KMP-Compose re-make and ported improvements back to Foundation v1.1.8 - Improved UI, detail/chart view screen
Archetypist - N/A
Common - N/A
Next Goals
W.I.P.s
Foundation - Take screenshots for v1.1.8 - Prepare v1.1.9 with updates from Archetypist re-make
Full Circle - Plan out Foundation-based refactor
Published Projects
Class Warfare - Update Compose theme to match material usages from Full Circle - Attempt LazyColumn optimizations for map views - Plan out Foundation-based v2 of app
Adepticadian - Start testing Adepticadian builds with others - Publish final v2.0.0 to Google Play
Archetypist - Setup Foundation-based re-make based off of workbook sketches
Common - N/A
0 notes
bridge-supplies · 2 months
Text
Updates: 7/15 - 7/21
BLUF: The Adepticadian re-make continues to continue. The UI is becoming more polished and a standardization to our approach to Material is being landed upon. Time zones are also, always fun to deal with.
Latest Updates
W.I.P.s
Foundation - Fixed some datetime handling - Added circular reveal to camera UI - Added edge fade list Composables
Full Circle - N/A
Published Projects
Class Warfare - N/A
Adepticadian - Continued KMP-Compose re-make and ported improvements back to Foundation v1.1.8 - Set up main UI, users, sharing/scanning, edit/delete
Archetypist - N/A
Common - N/A
Next Goals
W.I.P.s
Foundation - Add missing functionality while working through the Adepticadian re-make
Full Circle - Plan out Foundation-based refactor
Published Projects
Class Warfare - Update Compose theme to match material usages from Full Circle - Attempt LazyColumn optimizations for map views - Plan out Foundation-based v2 of app
Adepticadian - Continue building out Foundation-based re-make
Archetypist - Setup Foundation-based re-make based off of workbook sketches
Common - N/A
0 notes
bridge-supplies · 2 months
Text
Updates: 7/8 - 7/14
BLUF: The Adepticadian re-make has continued, porting more features over to its fresh Foundation-derived base, and adding core functionalities back into the next v1.1.8 of Foundation itself.
Latest Updates
W.I.P.s
Foundation - Fixed some file names - Updated some serialization methods - Added random UUIDs generators for each platform
Full Circle - N/A
Published Projects
Class Warfare - N/A
Adepticadian - Continued KMP-Compose re-make and ported improvements back to Foundation v1.1.8 - Set up core navigation, icons, DataStore entries
Archetypist - N/A
Common - N/A
Next Goals
W.I.P.s
Foundation - Add missing functionality while working through the Adepticadian re-make
Full Circle - Plan out Foundation-based refactor
Published Projects
Class Warfare - Update Compose theme to match material usages from Full Circle - Attempt LazyColumn optimizations for map views - Plan out Foundation-based v2 of app
Adepticadian - Continue building out Foundation-based re-make
Archetypist - Setup Foundation-based re-make based off of workbook sketches
Common - N/A
0 notes
bridge-supplies · 3 months
Text
Updates: 6/24 - 7/7
BLUF: No updates, Josh is on vacation 😇
0 notes
bridge-supplies · 3 months
Text
Updates: 6/17 - 6/23
BLUF: Josh continued to make improvements to the Foundation template app, while preparing for a two-week "vacation" from his unemployment. The Adepticadian re-make has also begun, based off of v1.1.7 of the Foundation template.
Latest Updates
W.I.P.s
Foundation - Updated transition animations per-platform - Added circular reveal animation when launching - Updated readme with new screenshots and videos - Posted about it on LinkedIn - Created a page for it here
Full Circle - N/A
Published Projects
Class Warfare - N/A
Adepticadian - Began KMP-Compose re-make based off Foundation v1.1.7
Archetypist - N/A
Common - N/A
Next Goals
W.I.P.s
Foundation - Add missing functionality while working through the Adepticadian re-make
Full Circle - Plan out Foundation-based refactor
Published Projects
Class Warfare - Update Compose theme to match material usages from Full Circle - Attempt LazyColumn optimizations for map views - Plan out Foundation-based v2 of app
Adepticadian - Continue building out Foundation-based re-make
Archetypist - Setup Foundation-based re-make based off of workbook sketches
Common - N/A
0 notes
bridge-supplies · 3 months
Text
Updates: 6/10 - 6/16
BLUF: Josh made some significant improvements to Foundation, adding important features like data encryption, theme improvements, and the ability to import images when scanning for QR codes.
Latest Updates
W.I.P.s
Foundation - Improvements to theming - Encryption and compression of shared data - Layout adjustments - Image import for code scanning, flash toggle - Updated settings page and encryption toggle
Full Circle - N/A
Published Projects
Class Warfare - N/A
Adepticadian - N/A
Archetypist - N/A
Common - N/A
Next Goals
W.I.P.s
Foundation - Continue porting features from existing apps - Determine any missing KMP-supporting libraries
Full Circle - Plan out Foundation-based refactor
Published Projects
Class Warfare - Update Compose theme to match material usages from Full Circle - Attempt LazyColumn optimizations for map views - Plan out Foundation-based v2 of app
Adepticadian - Plan out Foundation-based v2 of app
Archetypist - Plan out Foundation-based v2 of app
Common - Plan out Foundation-based v2 of app
0 notes
bridge-supplies · 3 months
Text
Updates: 6/3 - 6/9
BLUF: Josh is somehow still sick, and his MacBook had to go to the computer doctor (Apple store) for a few days to fix a line of dead pixels. I updated a few more apps to use Kotlin 2.0, but not much else. Josh knows he keeps switching between first and 3rd person, but I'm just rolling with it.
Latest Updates
W.I.P.s
Foundation - Updated HomeScreen layout with more info - Added NavigationRail when in landscape mode
Full Circle - N/A
Published Projects
Class Warfare - Updated to Kotlin 2.0
Adepticadian - Updated to Kotlin 2.0
Archetypist - Updated to Kotlin 2.0
Common - Updated to Kotlin 2.0
Next Goals
W.I.P.s
Foundation - Continue porting features from existing apps - Determine any missing KMP-supporting libraries
Full Circle - Plan out Foundation-based refactor
Published Projects
Class Warfare - Update Compose theme to match material usages from Full Circle - Attempt LazyColumn optimizations for map views - Plan out Foundation-based v2 of app
Adepticadian - Plan out Foundation-based v2 of app
Archetypist - Plan out Foundation-based v2 of app
Common - Plan out Foundation-based v2 of app
0 notes
bridge-supplies · 4 months
Text
Updates: 5/27 - 6/2
BLUF: Josh has been sick with a cold all week, hampering the Vital Coding Spirit. Regardless, the last week has been used to begin planning out Foundation-based refactors for Bridge Supplies' existing suite of applications, update Gradle, and upgrade existing Compose-based apps to Kotlin 2.0.
Latest Updates
W.I.P.s
Foundation - Updated Gradle to 8.4.1 - Updated packages
Full Circle - Updated Kotlin to 2.0 - Updated Gradle to 8.4.1 - Updated packages
Published Projects
Class Warfare - Updated Kotlin to 2.0 - Updated Gradle to 8.4.1 - Updated packages
Adepticadian - Updated Gradle to 8.4.1 - Updated packages
Archetypist - Updated Gradle to 8.4.1 - Updated packages
Common - Updated Gradle to 8.4.1 - Updated packages
Next Goals
W.I.P.s
Foundation - Continue porting features from existing apps - Determine any missing KMP-supporting libraries
Full Circle - Plan out Foundation-based refactor
Published Projects
Class Warfare - Update Compose theme to match material usages from Full Circle - Attempt LazyColumn optimizations for map views - Plan out Foundation-based v2 of app
Adepticadian - Plan out Foundation-based v2 of app
Archetypist - Plan out Foundation-based v2 of app
Common - Plan out Foundation-based v2 of app
0 notes
bridge-supplies · 4 months
Text
Updates: 5/20 - 5/26
BLUF: I updated our Foundation KMP-Compose project to use the new Kotlin 2.0 and K2 compiler. Plans for our existing apps to be updated with the Foundation project are underway, mostly around reorganizing UI to fit a more Material-like theme.
Latest Updates
W.I.P.s
Foundation - Updated Kotlin to v2.0, use K2 compiler
Full Circle - Updated packages
Published Projects
Class Warfare - Updated packages
Adepticadian - Updated packages
Archetypist - Updated packages
Common - Updated packages
Next Goals
W.I.P.s
Foundation - Continue porting features from existing apps - Determine any missing KMP-supporting libraries
Full Circle - Plan out Foundation-based refactor
Published Projects
Class Warfare - Update Compose theme to match material usages from Full Circle - Attempt LazyColumn optimizations for map views - Plan out Foundation-based v2 of app
Adepticadian - Plan out Foundation-based v2 of app
Archetypist - Plan out Foundation-based v2 of app
Common - Plan out Foundation-based v2 of app
0 notes
bridge-supplies · 4 months
Text
#7: Building Foundation
Bridge Supplies' first major project since our reboot has officially been published on GitHub: A Kotlin Multiplatform with Compose app template supporting Android, iOS, and Desktop. Why did we decide to build this? What challenges have we already faced? And what are our plans going forward?
The Big Why
I, Josh, was laid off from my long-time tech job at the beginning of April. My only professional employment I've had since college has been to build and maintain a primarily Kotlin consumer ecommerce application for a startup. Naturally, if I find more opportunities to continue using the language that dunks on Java's boilerplate (at least in the realm of Android development), I'm going to take it.
Using Kotlin for Android development naturally leads one to encounter Jetpack Compose, Google's currently preferred way of creating declarative, reusable, state-driven UI. Before it was announced that our company would be dissolving, I'd had several chances to push for us to experiment with Compose in our consumer app. When you come from the world of XML-based Views, declarative UI can take a while to get used to. However, after working with it in a few personal apps (and ultimately publishing a game made with Compose) I found it much easier to quickly iterate on small projects.
I had been keeping an eye on the Kotlin Multiplatform project for a while - I still remember attending a local Boston Kotlin meetup pre-pandemic where the idea of running Kotlin on multiple platforms was in very early stages. The reason I had stuck with Android development for so long instead of branching out to iOS/Swift was primarily because I didn't want to half-ass learning two platforms, I wanted to whole-ass one of them as best I could. But now, the idea of using my existing Kotlin knowledge to develop for other popular platforms like iOS has become increasingly realistic.
Compose Multiplatform is an even more curiously powerful idea. By using a familiar language (Kotlin), and a familiar UI framework (Compose), you can build for multiple platforms simultaneously. Of course, the technology is still in early stages, and the resources to answer obscure questions are harder to find or nonexistent. So, as my own contribution to the Compose Multiplatform discourse, I will discuss several KMP issues I encountered and how I resolved them.
Challenges Build Character
The three issues I'm about to cover are certainly not the only ones I encountered, but they were certainly ones that were not obvious to me after reading what I could find online.
1. Using Compose theming (auto/light/dark/dynamic) for Android, iOS, and Desktop.
This was the first thing to really teach me how to use Kotlin's expect/actual keywords. By placing the following code in the commonMain package, and corresponding actual declarations in androidMain, iosMain, and desktopMain, I could add support for Android's dynamic Material You theming, while still supporting Light and Dark modes on iOS and Desktop.
Tumblr media
Example from Android's actual declaration, where I'm able to use Android's dynamic color scheme functions:
Tumblr media
Compared with the actual implementations on iOS and Desktop, which only supports Light/Dark modes right now.
Tumblr media
2. Changing the Desktop MacOS app from having a "MainKt" menu bar name.
When deploying the app to Desktop on MacOS, myself and others noticed that despite the app window saying the correct title "Foundation", the menu bar would be labeled "MainKt". The solution to labeling the app menu correctly is due to how Kotlin generates classes for use by other systems. In the standard KMP Wizard configuration, Desktop's file that houses the main() function was called Main.kt, translating to MainKt (I'm not sure why it uses this class name for the menu bar). My solution was to encapsulate the main() function with a class called Foundation, storing it in its companion object, and renaming the file to Foundation.desktop.kt.
Tumblr media
Due to how the gradle desktopRun run configuration is constructed, I also had to modify it as such:
desktopRun -DmainClass=Foundation --quiet
Tumblr media
I also had to make sure the Main class name was correctly used in the composeApp directory's build.gradle.kts file, resolving to "bridge.supplies.foundation.Foundation".
3. Using DataStore Preferences with Koin Dependency Injection on Android, iOS, and Desktop
After reading through several differing reports on how to integrate DataStore, I realized I had to just work through it myself if I wanted it implemented on all three supported platforms myself. One article only talked about Android and Desktop, another was only Android and iOS (the same as the official documentation), and the last used all three, but was designed without Koin.
Tumblr media
From top to bottom, Android, iOS, and Desktop's implementations of the dataStore() function.
Tumblr media
That function gets called when the Koin module is initialized as a singleton (Android on top, iOS and Desktop on bottom).
What's coming next?
With the official publication of the Foundation project, we will be regularly publishing updates until it can be considered "production-ready":
Able to cover most functionality of Bridge Supplies' existing Android apps
Publishable on Google Play Store (Android)
Publishable on Apple App Store (iOS, MacOS?)
Able to host/distribute desktop builds (Windows, Linux)
In order to determine what is needed, the simpler apps such as Adepticadian and Archetypist will be refactored with Foundation. More complicated apps like Common (notifications and exact alarms) may take more time, and could possibly remain as a classic XML-based app. Class Warfare, since it is already fully Compose, will be refactored soon after the other apps, as it should be more straightforward to port.
Going forward, I intend to make this template application as accessible as possible for developers to utilize in order to create their own apps that follow modern, multiplatform patterns from the start. I also intend to use this Foundation as the base for all foreseeable Bridge Supplies app projects, and to keep it up to date as the underlying Multiplatform framework evolves.
Thanks for reading this far, you big ol' nerd. Let's see how far this project goes.
0 notes