Thoughts on a Feed Collecting Service Specification

I was thinking about what the definition of a core Feed Collecting Service Specification would look like and authentication is such a PITA. Of course what I’d specify wouldn’t include auth, but it’s still painful to think about.

What would a minimal feed collecting service need?

Add Feed Remove Feed Get Feeds Get Feed Add Category Remove Category Add Category to Feed

Watch out! It's a blog fly!Now, I may be missing something that should be in a core specification but that seems kind of like a minimum to me. Even the Category functions may be too much for the core of it. Of course the service could still have their own proprietary way of managing feeds. They could choose to build that on top of this core set of features or next to it or add this spec on top of their existing API. You know what I’m saying. 😄

Dave Winer’s FeedLand got me thinking about this. There is also this great podcast episode where he explains what he wants to do. His tool could implement this specification if he wanted it to. I don’t think there’s an API to it but a very generic specification, implemented by multiple third parties, would open up feed readers to supporting multiple feed services without having to do special client side work to support each service. Just do it once and connect to any. Specs aren’t ever perfect but they 100% allow for interop between clients and other services.

I’d love to be part of a group working through something like this. Specifically I’d love to get it added to the same collective that includes ActivityPub and ActivityStream, perhaps what I’m after is WebSub? I haven’t read through it yet. I also need to read Social Web Protocols.

I think what I’m looking for is less social protocol and more simiple, agreed upon, API implementation. It is, of course, kind of selfish because I work on a feed reader and would love to be able to connect through a well specified API.

Oh, one more thing! I listened to Dave’s latest podcast episode on the way into the coffee shop this morning and he put the final touches on his vision for a rebooted weblogging system. He’s now covered writing, feed subscription, and finally, discourse. His idea is quite good because it would really make folks who reply to your post think before posting. Listen to the podcast and it will become obvious — I think — why.

iPhone Pro - 17

There are two things I really like about the new iPhone Pro.

  1. I can get it in orange
  2. It has an aluminum body

Aluminum is my favorite material. It’s light, easy to recycle and reuse, and I love the way it wears. The little scratches it collects make it unique. My old iPhone 7 looks amazing because of it.

No, I will not be getting one. I’ll most likely have to purchase a used one down the road because they will, of course, not have an orange one next year or the year after or the year after that when I’m ready to get a new one.

Making Development Easier for Developers

Brent Simmons

And it seems retro in the worst way that we’re still using anything other than a scripting language for most of our code. We should be using something simple and light that can configure toolbars, handle networking callbacks, query databases, manage views, and so on. And maybe with a DSL for SwiftUI-like declarative UI.

Almost none of that code needs to be in a lower-level language like Swift or Objective-C. It really doesn’t. (I say this as a performance junkie!)

It could be in Ruby, Lua, Python, or JavaScript. Better still would be a new language invented specifically for the problem of writing apps, something designed to make the common challenges of app writing easier.

We did have this stuff decades ago. Not for app making in general, sure — but now it’s 25 years later, and a company like Apple could make this real for all its app makers.

Where to start? Let’s start by saying I agree 100% with Brent. Having a built in scripting language with dynamic UI updating and easier ways to build code and UI would be absolutely incredible! And, like Brent says, I’d love to see Apple make this happen.

A hojillion years ago when I worked at Visio we had VBA (Visual Basic for Applications) integrated right into Visio. It was a fantastic way to build custom Add-Ons for Visio. You could embed your VBA solution right into your template or document so folks could invoke it right from the app. This allowed folks to make fancy automation to fit their particular need and do it in a high level scripting language that could control Visio in all kinds of ways! I loved it! I spent a lot of time working on Add-Ons to Visio in C and C++ but I used VBA to test things before implementing them as an Add-On — Add-Ons had the advantage of being usable app wide.

I’m not sure how VBA is used in Visio today but before I left Microsoft had added a way to build your solution code into binary form so it could be signed before including it as a part of your solution package. It was such a marvelous development environment.

Now, if you’ve ever used VBA in Visio, Excel, or Word you know exactly how powerful it is. Could you imagine having access to something like that within your Xcode dev environment that was fully integrated, or even supported like VBA in an application? Yes, it’s a lot of work to make something like VBA work but it is so worth it.

Brent mentions Ruby, Lua, Python, and JavaScript as the scripting languages but I have to say Microsoft’s Visual Basic for Applications is so much easier to understand and use than any of those languages and it was easy to open functionality to it using Microsoft COM, IDispatch specifically, in the app. I know, COM has a bad reputation for being difficult. Yes, like I said earlier, it’s a LOT of work, but it’s so worth it when you can open all that power to your users and yourself! Taking that to the next level, like Brent’s talking about, would be a huge boon to Apple Platform Developers. AppKit, UIKit, SwiftUI, Objective-C, and Swift are still too deep to move quickly. If developers creating code for any of Apple’s platforms ever took some time to use VBA they’d see what I’m talking about. The paradigm is a bit different than they’re used to but, hell, I was so confused when I came to iOS development! They’d get used it after a time.

Building UI and code behind VBA forms is so easy. Drag and drop a UI, double-click on the element you’d like to add code for, and write your code. That’s it. It’s that easy! I would totally embrace this idea for application development on Apple platforms.

You can build at a higher level today using awesome tools like Xojo that give you a very Visual Basic like experience complete with a drag-and-drop forms builder just like Visual Basic!

Psst, did you know that folks have been scripting applications for iOS, complete with dynamic UI updating, with React Native? Yeah, it’s true! I’ve been working on an application like that for the last two years. We’ve almost completely rewritten the application in 100% React Native, which uses JavaScript as its backing language and a way to build UI in a very HTML/CSS manner. Think SwiftUI with web technologies. It works.

I know of many applications using Electron to deliver cross platform apps, like 1Password. They used Rust for mission critical code and put an Electron “front end” on top of it. Microsoft has fully embraced React Native. They like it so much they’re the primary maintainer of React Native for Windows!

Am I saying React Native is a perfect solution? Hell no! It’s a terrible developer experience in my opinion. Most folks use Visual Studio Code — I prefer Nova myself — as their editor and don’t have a nice debugger to fall back on. Nothing is integrated. It’s a bunch of tools losely hung together by duct tape that let you kind of see what’s happening in your app. Hey, if you think console.log is the height of debugging then this environment is for you! 🤣

In the end I, like Brent, would love to see a modern scripting environment that’s embedable or standalone that is fully supported by and used by Apple internally to create applications. The embedded environment is very enticing to me. Something like Visual Basic for stand alone development and Visual Basic for Applications for embedded scripting would be absolutely incredible!

Modern means easy to use UI builder and code behind that is a super simple language like BASIC and on top of it make it easy for third-parites to make extensions to the environment and provide code modules that give developers the power they need for specialized applications.

Look at Xojo. That’s it. Apple, buy it and make a version that’s 100% built for your platforms and is embedable in applications.

What is Sleep Token?

I don’t know what to make of Sleep Token. I like them, a lot, but what genre do they fit into? I’ve heard metal, and I can see that, but it’s a different type of metal, don’t you think?

I’ve thought of some names but they’d be new, I think? Operatic Metal or Theatrical Metal?

To me there is no doubting their musicianship.

You can hear the metal in songs like The Summoning but their new album, Even in Arcadia, is very melodic, not very metal. I know opinions will vary, that’s fine. Like I said, I like them, a lot.

They’re a melodic metal band. At times I’ve heard some Polyphia, at other times I hear grinding metal, and soaring lyrics, but it’s just great musician doing their thing.

Oh, I also love the look! If they haven’t said who they are they should definitely keep it a secret for as long as they can. I love the mystery of it. 🎭

Like Tool, they’re their own thing. At least that’s what I see.

Hire Iconfactory

Sean Heber via Mastodon

ChatGPT and other AI services are basically killing @Iconfactory and I’m not exaggerating or being hyperbolical.

Reading this sent chills down my spine.

Iconfactory has a very long history of creating beloved applications and designs for Mac and iOS.

Ollie! The beloved Twitterrific MascotTheir designers craft beautiful interfaces, icons, and other illustrations.

To think they could go away because people are using AI generated slop designs and icons is gut wrenching.

I’m a huge fan of Iconfactory work. I use their apps everyday. Two in particular; Tot and Tapestry.

I’m writing this blog post using Tot. It’s perfect for it. Simple text editor with Markdown support and automatic save that syncs with iCloud. It’s an example of simplicity that is absolutely useful. I’ve been using Tot for years to write all of my blog posts, including Saturday Morning Coffee. ☕️

Tapestry is a new app. It is a new take on feed readers. Sure, it’s a competitor to Stream but it’s beautifully designed and implemented.

I’m a Wallaroo and xScope user and I’ve heard wonderful things about Linea Sketch.

Their craft is second to none.

Stream had the honor of being featured in the App Store in October of 2023. I worked with Iconfactory to create the banner Apple needed for the feature. It was a completely painless process and the results were beautiful and better than I could’ve imagined.

If you need someone to design your app, icon, or other materials, give Iconfactory a shout you will not regret it. ❤️

Of course it’s all about the money! DUH!

Tim Hardwick • MacRumors

“A federal court cannot force Apple to permanently give away free access to its products and services, including intellectual property,” Apple’s lawyers wrote in the motion.

I don’t like it when Apple makes claims like this. I know my software uses their SDK but I wrote the code that is the app, it’s not theirs.

Sure, the operating system is theirs, the tooling is theirs, and the software that gives our software access to the operating is theirs. But me selling an app using a different payment system denies them money and doesn’t jeopardize their “products, services, and intellectual property.” They’re worried about the, potentially billions, of dollars they could lose.

Just say that. Say “we’re going to lose hundreds of millions of dollars if people choose different payment methods.”

Or, or, how about this! Change your percentage to 5% and call it a day. I’ll bet folks wouldn’t change their payment mechanism then, because it would be competitively priced.

I’m happy for developers who want to take advantage of the new rules. Good for them and their bottom line.

I don’t make much off of Stream and RxCalc so I’ll probably continue to use Apple’s payment system.

Inbound RSS as a Protocol

Dave Winer • Scripting News

The one that would really open them up is inbound RSS, the protocol that all the other twitter-like systems refuse to support. Want to blow the doors off now instead of some vague time in the future? Support outbound and inbound RSS. Let the trains come into the station and leave the station on a well established protocol. It could be done in a few weeks, really. Maybe the very intelligent and curious people who read this blog would like to take the time to understand what this means and the doors it would open? It’s a way to change the subject from “good idea but hopeless” to “hey we can have freedom now."#

When I first saw Dave mention inbound and outbound RSS I thought he was taking about a mechanism to do threaded replies using RSS so we could have something akin to Mastodon or Bluesky.

I was wrong. He would like to have the ability to not only subscribe to an RSS feed but also populate a social service timeline with an RSS feed. That’s a good idea.

Brain in a jarMastodon or Bluesky could add the ability to have your timeline subscribe to an RSS feed. When that feed changes it could publish the content into the timeline. There would be some intelligence baked in to know if it’s already posted the feed, and I’d imagine some other niceties, but the idea is really good!

The problem is the platform folks tend to say “use our API.” Which makes sense, but most API’s are painful in some way because of authentication or some hoop you have to go through. If the platform natively supported inbound RSS it would greatly simplify the developer and user experience. Let me pick an RSS feed to follow and use it! BOOM! 💥

Dave also believes Bluesky is leading us down the same path as Twitter. We’re all jamming our content into a centralized system. That’s not great. By having your own site with a weblog and the ability to publish RSS and have that content or link to that content published to Bluesky you’re not so locked in. Your blog is the primary source. A source you control.

To date I believe Micro.blog is the best at doing this. It supports ActivityPub so your @micro.blog account can be used as a Mastodon account and show up in your timeline. It also has its own timeline and it’s a full on blogging system. The post you’re reading now is a Micro.blog managed blog!

The other great thing it does is publish to other systems. My blog post text is either fully published to Mastodon, Tumblr, and Bluesky or a link to the post is published if it has a title and goes over a certain character count. I believe this is the perfect solution to the limited character count issue on the various social networks.

E.G. when I publish Saturday Morning Coffee that post goes to this blog. Here’s what it looks like on Mastodon, Tumblr, and Bluesky.

The main source is my blog. It’s then distributed to these secondary sources. Mastodon and Bluesky get links and Tumblr gets a full copy. 👍🏼

Now, Micro.blog goes to all the trouble to connect to those API’s so it can publish to each platform. That’s a royal pain for the team at Micro.blog. I am grateful they support all these platforms, but wouldn’t it be cool if Mastodon, Bluesky, and Tumblr let me, the user, go to a settings screen and tell it to use my RSS feed instead? Yes, yes it would! 😃

Another great post from Dave.

Developers: This is the WordPress API. Compare it to AT Proto and ActivityPub. It's got a lot of advantages. It does the basics of social media. It scales, is mature and stable, and well-managed. A better foundation imho to build on than the others. developer.wordpress.com

I Love RSS!

It’s a real shame Substack loves Nazis so much. I thought it was a great platform up to that point.

Their iOS app is really quite nice and the styling of the website and app are fantastic. It gets out of the way and lets you do what you’re there for, reading.

TikTok TikTok

RibbitI feel bad for the folks who made a living on TikTok. I’m hoping they’ll find another job to take the place of being an influencer or whatever they did on TickTok to make a living.

As for the folks who are bummed because they liked watching it. You’ll get over it. I wasn’t happy when Space Karen took over Twitter and shut down the API so I stopped using it, exported my tweets, and deleted my account. I don’t miss it because Mastodon is even better and isn’t controlled by a single company.

I suspect it will be back soon. Hang in there.

Chiefs over Texans Lions over Commanders Bills over Ravens Eagles over Rams

The Bills/Ravens game is gonna be a great game.

Donnie Boy is afraid of a little cold

President-elect Donald Trump said his inauguration on Monday will take place inside the U.S. Capitol rather than outdoors because of severe cold, the first time in 40 years that U.S. presidential inaugural ceremonies will be moved indoors.

The reason is simple. Through all the bluster, Donald Trump is just a big sissy boy. He’s afraid he’s gonna get a little cold sitting outside. A real man would suck it up and enjoy the moment.

Well, there’s that, and he’s terrified his crowd size will, once again, be much, much, smaller than previously. Remember how tiny his crowd was in 2017? Yeah, it was tiny compared to the mass of folks who went for President Obama or President Biden who followed him.

He’s so hated I’d imagine most of the CEO’s he’s somehow gotten to be there would rather be sitting alone in the cold than be seated behind him.

Electron and React Native are taking over the world

At work we’ve started using Bruno. It’s nice but it’s also an Electron App. I’m already learning React Native on iOS because we are getting a lot of requests for applications written using React Native. We build apps for clients so it makes sense for their apps to be written once so they work on both Android and iOS. They get their money’s worth, I suppose. It’s all about squeezing more out of us. But what does that say about craft? To me it says it doesn’t matter. We’ve fallen into the Accenture trap. We are hired guns who need to pound out code everyday at the fastest possible pace, with high quality of course, and use the lowest common denominator toolset. 🤢🤮

Anyway, I’m feeling a bit spicy this morning for some reason. I really need to improve my SwiftUI and pound all the new concurrency stuff into my tiny brain but I’m torn because to be useful to my company I need to become a React Native expert.

Guess I’ll have to use Stream and Top Secret Project to learn SwiftUI and Swift Concurrency. 👍🏼

Dutch Brothers iOS App

Gotta say it, the Dutch Brothers Coffee app is really well done. It’s beautiful, stable, has a personality, and does exactly what it’s supposed to do. Lets you order and pay for coffee.

I wonder who makes it? Do they do all dev work in house or do they have a studio, like WillowTree, work on it? I’m super curious.

If you know, send a message my way, rob.fahrni@gmail.com.

Abandoning Space Karen’s X

Jason Herbert • Historians At The Movies

Folks, the Twitter that once was is no longer. It doesn’t fit us anymore. What was once an interesting place to find news, meet people, and share in the human experience is gone, dead, and buried. And Elon Musk is holding the shovel.

It has taken the “normals” a really long time to figure out what a lot of us realized the day Space Karen cut third party access to the Twitter API.

A wonderful bouquet of flowers.Now if we could convince Mr. Herbert to abandon Substack because of its Nazi problem we will have accomplished something.

A bunch of really great writers have abandoned Substack in favor of Ghost and Beehiiv, you can too Mr. Herbert. 💐

Coke Oreos are not good.

Christian Nationalism

Jennifer Palmer, Paul Monies, Heather Warlick • USA Today

Bids opened Monday for a contract to supply the state Department of Education with 55,000 Bibles. According to the bid documents, vendors must meet certain specifications: Bibles must be the King James Version; must contain the Old and New Testaments; must include copies of the Pledge of Allegiance, Declaration of Independence, U.S. Constitution and the Bill of Rights; and must be bound in leather or leather-like material.

Oklahoma is on the front line of the war to make Christian Nationalism the norm in America. How they can manage this with a First Amendment clearly stating:

Congress shall make no law respecting an establishment of religion, or prohibiting the free exercise thereof; or abridging the freedom of speech, or of the press; or the right of the people peaceably to assemble, and to petition the Government for a redress of grievances.

Granted, Republicans are so good at skipping the parts they don’t like, like the Second Amendments inclusion of the need for a well regulated militia being necessary as part of the right to own and carry weapons, maybe they just skipped the part about the separation of church and state?

Hopefully the Supreme Court will strike this abomination of a law down and let folks choose their own religion and how they learn about it.

The Religious Right — Christian Nationalists — have done so much harm to Christianity and the person in Jesus.

Watch out! It's a blog fly!They love Trump and all of his hate. Can y’all see Jesus standing at the border to the United States of America with an M-16 turning people away? Maybe you can. I can’t. I picture someone welcoming the tired and sick with open arms, providing them water, food, and a place to stay.

The GOP view of Christianity is a brutal idol in the form of Donald J. Trump and his ilk.

Yeah, your vote really matters to the future of this country. Get out and vote. Let’s stop this evil man and his sycophants dead in their tracks and keep this country great.

NASCAR International?

Brain in a jarI would really love to see NASCAR add a couple international dates to their schedule. Maybe these dates are in place of some track dates that get two races and they’re only done every-other-year?

Regardless, I think it would be good for the sport. Granted I’m a total NASCAR noob but I’ve really come to appreciate the skill, strategy, and excitement of NASCAR.

Exciting? Really?

Yep. I think it’s the most exciting of the three racing leagues I keep an eye on; NASCAR, IndyCar, and F1. Of those F1 is, hands down, the most boring of the three with NASCAR being the most exciting. And, no, it’s not just because of the incredible wrecks it’s because on each weekend you could have a different winner. Sure, there are favorites who will win more races than others but you do have a distribution of winners.

Where would they go?

That’s the big question and I have opinions!

Mexico

Mexico City - Autodromo Hermanos Rodriguez

F1 currently runs at Mexico City so they’re ready to host a major car racing series.

The track is 2.67 miles of road course. Not an oval, of course.

England

Brands Hatch

Billed as Britain’s Best Loved Circuit, Brands Hatch is a 2.3 mile road course and would be a total blast to see NASCAR compete there.

Who knows, if NASCAR were to have some international events like this perhaps they could run a few European tracks.

Germany

Nürburgring

I would LOVE to see them run THE LEGENDARY GREEN HELL. It’s huge! Just shy of 13 miles of road course with elevation changes and tricky turns.

If that’s just too much track they could run the F1 track instead. It’s just over 3 miles of road course.

Japan

Suzuka Circuit

Another course on the F1 circuit that runs 2.6 miles in length.

And that’s that!

Perhaps one of these tracks per year, maybe two or three in Europe while they’re there.

NASCAR is a very different type of organization. They are extremely conservative and that may not translate well to an audience outside America, but I’d love to see them try.

Mega Ultra Smart Meta Employees

Ryan Peterman, via LinkedIn

They are so rare that most people don’t work with them directly, but their work is highly visible.

Just say no to MetaThe thing that stands out to me is Meta has all these absolutely amazing people working for them and what exactly do they work on? New ways to extract personal information or track people around the web?

It’s too bad they’re wasting their talent at such a horrible company.

If I were that talented I would, unfortunately, be tempted by a $3mm per year salary. Thing is, I kind of doubt that entire $3mm+ is entirely salary. It’s probably some mix of salary, benefits, bonuses, and stock options. That’s how Meta keeps their talent I suppose, those golden handcuffs are tempting.

To quote the Tool song, Hooker with a Penis:

All you know about me is what I’ve sold you, dumb fuck I sold out long before you’d ever even heard my name I sold my soul to make a record, dip shit And then you bought one

Yes indeed. I suppose we’re all Hookers at some level.

U.S. Government bites Apple

Six Colors

Imagine trying to sell regular people on the idea that they’d be better off with a bunch of different banking apps implementing NFC payments in random ways, rather than using the Wallet system Apple built.

The bit above really grabbed my attention because if you replace different banking apps with browser apps you have one of the reason the Government sued Microsoft in 1998.

How does this grab you?

Imagine trying to sell regular people on the idea that they’d be better off with a bunch of different banking apps software companies implementing NFC payments browsers in random ways, rather than using the Wallet system browser Apple built.

One of the big reasons for the suit was Microsoft’s dominance in the browser market. They gave Internet Explorer away, as part of the OS, and Netscape couldn’t compete with that.

From a piece on Investopedia from October 2021:

The suit was brought following the browser wars that led to the collapse of Microsoft’s top competitor, Netscape, which occurred when Microsoft began giving away its browser software for free.

Now, if you’re being pedantic Apple never allowed anyone to create NFC payments on their system then decided to make their own. They had one to start with, but hopefully you see the point? Apple does compete directly with the likes of Spotify and definitely has an advantage over them because they own the OS.

I personally don’t care about Apple opening up parts of their OS, like NFC, but I do care about how the App Store works and some of the rules surrounding it. If I were a developer who made his living as an Indie developer I’d want to make as much as I could off of each sell of my apps on the store. As it stands today Apple take a 15-30% cut for each sale of your app or in-app purchases of digital goods. I’d love to see a breakdown of Apple’s expenses related to the App Store vs. income. It has become a big profit center for them so losing any of that revenue would hit their bottom line hard. I’m sure that’s why they’re doing things the way they are in the European Union for compliance with the DMA. Their current plan certainly discourages, and flat out denies small companies, to create their own App Stores.

That’s neither here nor there I suppose. I’m gonna get out some popcorn and keep an eye on how this goes. If the Microsoft case is any indicator of how things will go it’s gonna be a wild ride.

A Substacker Replies

Ken White A.K.A. The Popehat

I’m thinking about what I am doing, Rob, as I said expressly in the post you just commented on.

Sorry, did I miss that I am contractually obligated to inform you during a particular time period?

Ken is a valued read and is a very funny guy. The above is a reply to me asking him when he’s leaving Substack and it’s nice to know he’s working on it.

I don’t plan on posting links to the platform any longer, as if my two readers will make a difference. 😄

Like I said in a prior post — or possibly Mastodon — this time period is going to be tough on authors as they sort through their options.

Unfortunately some of my favorite writers remain on the platform. I hope they all eventually decide to leave. 🤞🏼

Matt Mullenweg on Messages and RCS

Matt Mullenweg

I’ve heard stories of teenagers being ostracized because they couldn’t afford an iPhone, of group chats rejecting people who turn the chat from blue to green. I know that sounds petty, but do you remember middle school? It’s about status, and Apple knows that. Everything they make bleeds status and signaling. They’re the best in the world at it, and I should know—I’m typing this post from a M3 Max black MacBook with 128GB of RAM. But while status signaling with amazing hardware and design touches is harmless, in software and social settings in can be harmful.

I have suspicions about the Messages API. Apple are keeping it close to their chest for one or more good reasons. Could it be seriously flawed if not used in a very specific way? Sure, that’s plausible. Is it probable? Who the heck knows? I certainly don’t. Apple aren’t know for their network services abilities. Some folks have great experiences, others live with a complete mess. It’s a crap shoot. If you’re a developer of iOS and/or Mac Apps and used CloudKit for anything you’ve most likely experienced frustrated users because their data isn’t syncing. Like I said earlier, it’s a crap shoot and Apple don’t seem to care enough to enhance these frameworks and services. Gotta push on with those new features for next years OS updates!

Another reason they may be keeping it to themselves is the most likely scenario. It’s a competitive advantage like no other on the iPhone. I’d put money on this being the reason any day. Question is, why can’t they have a competitive advantage?

Steve Jobs initially pledged to make available as an open standard but ultimately restricted to iOS devices. iMessage availability has been a particular sore point in the rivalry between Android and iOS, with iMessage’s “green bubbles” attaching significant social stigma to Android phones. - Russell Brandom • The Verge

What I’d like to see is Apple create a new team just for the RCS Messaging app and fully embrace the specification. This would allow them to seep their “blue bubble” app nice and clean and give folks a full featured and secure RCS experience. Sure, iPhone and Mac users would have to use two separate apps, so what. It’ll get Google and EU regulators off their back and allow Apple to keep Messages less complicated.

Eat your own dog food.As an aside, being able to create a new RCS app from scratch would allow Apple to make a 100% from the ground up SwiftUI experience for iOS, iPadOS, and macOS. That would be really nice in my opinion. Apple need to build a new, preferably larger, app in SwiftUI to show the world how it’s done and to eat their own dog food.

I also have a question for the Messages team. Why isn’t the Messages icon blue, like the bubbles in the app? Seems like it should be.

React Native Impressions

RibbitI’m on a project at work using React Native but not in the typical way, which is to say it didn’t start as a React Native project. It’s an exiting app out in the world actively uses by, I’d imagine, tens and tens of thousands of people. Perhaps hundreds of thousands. Bottom line is, it’s a frontline app and is important to our client.

Our client has a large team of React developers and a team dedicated to the design and development of reusable React components for the company. They’ve done an amazing job creating a platform for their devs to build on and would like to have those devs build mobile experiences as well. I can’t blame them. They’re very good at it.

They currently have native iOS and Android apps that are almost ten years old and use various frameworks and technologies. Your typical legacy codebase. That’s nothing new or frightening. All code develops its rough patches over time and as time goes by we go in and turn the soil so to speak. We replace outdated frameworks developed out of necessity with new platform supplied frameworks and our code is more robust and easier to read and maintain, especially for developers coming right out of school.

Brain in a jarWith all that in mind here’s what our client is looking to do. We are building new features in React Native and leveraging much of the internal native code to fetch network data, build models, and return that data to React Native code. The API or Interface to the native code is well defined and implemented on iOS and Android. The React Native team code is the same for both platforms. I’m part of the platform team integrating React Native into the existing app and providing the API/Interfaces to the React Native developers.

Like I said, this is a non-standard way of doing this but it’s been done by others with stories of success and failure. I believe we are on track to have a story of success. It’s not going to be free of bumps along the way but we’re making really great progress and I believe we will hit a steady working state as soon as next week. That means the foundation to strap up and host React Native code is in place and working as expected. Now it’s time to build out the API more thoroughly, driven by our React Native developers need for specific data or business logic. It’s a single app, purpose built, API. The idea is to hide any ugly code on the native side and keep the API to the app clean for the React Native developers.

Cool Bits

One of the extremely cool things about how we’re approaching it is how our React Native devs work.

They work inside of a separate application while they’re developing new views and logic. It allows them to move more quickly and not have to rely on the native apps to update before writing their code. It also means they don’t have to worry about keeping the existing native app building on their computers. That can be a headache, I wish it weren’t, but it can be. More on that in a bit.

How does it work? Well, when you create a brand new React Native project you run some tool to generate the project for you. It creates the scaffolding for your React Native code as well and iOS and Android host app projects complete with the frameworks necessary to build the native host apps. On iOS uses CocoaPods. I don’t know what Android used.

That allows the React Native Developers to run ahead of the platform native developers to build their UI’s.

Ok, so how does that work?

We negotiate with the React Native development team to define an API signature for the native apps. They build a mock version of that in their development host app that matches the agreed upon signature and go about coding.

We build out the platform side to do the true implementation. When we have something to test we pull over a packaged version of the React Native code and give it a spin. If there are problems we work directly with the React Native developers to figure it out. Once it’s ironed out it’s wash, rinse, repeat. We currently have a feature built by WillowTree and one built by our client working in the development host and in the existing native applications.

It’s pretty darned magical when it works! 🧙🏼‍♂️

The Ugly Bits

Getting the React Native frameworks and nuanced build settings and scripts in place has been a bit of a struggle but I think we may finally have all that figured out. But it is painful for a native developer who’s used to opening Xcode, loading the project, hitting build, and it runs. Sure, we may have to use CocoaPods to get started, but that’s rare now since Apple introduced Swift Package Manager, or SPM.

SPM is integrated into Xcode and works really well. I’ve never had an issue with it, knock wood, and went through Stream a couple years back and replaced my use of Carthage and CocoaPods with SPM. It’s been glorious.

This option is, unfortunately, not available to React Native projects AFAIK. That’s fine. CocoaPods works and is familiar.

AHHHHHH!The one really ugly bit, at least to me, is the requirement to use npm. I know web devs are accustomed to using it but it feels really strange and fragile to use these two package managers to be able to build and run an app that includes React Native. I know I’ve run into random issues I can’t explain when node packages change or are added but that’s just me being a big whiny cry baby developer. I understand it well enough to be dangerous but I don’t currently have that deep knowledge I like to have. I’m learning new stuff everyday but I’ve only scratched the surface.

Great! How do you feel about it overall? 🤔

Red sock.I can see why companies are making this choice, especially companies with an army of React developers. It makes complete sense for them to build great UI with their existing developers. And, yes, you can build a great iOS UI with React Native. I’ve witnessed it first hand. If you didn’t know a view was React Native you wouldn’t know the difference in this app. It’s seamless. It’s great in that way.

Angelo Stavrow

but oof — it still feels like I’m working with a business decision, rather than a sharp tool.

I think Angelo’s quote above is a nice TL;DR for me. On the downside I really dislike the tooling. It feels so arcane. I’d love to see something integrated into the Xcode UI for package management and project settings. That’s probably asking a bit much but I’d rather have some do an amazing job of all this scaffolding so I can just hit the build button to run the app.

All that said, it’s still worth using. 👍🏼

NASCAR + LGBTQ?

As I’ve mentioned here and other places I’ve gotten into NASCAR this year. It started with F1 then I started watching IndyCar which lead to NASCAR.

I like NASCAR for a couple reasons. It’s more an everyday Joan’s sport. You know, for us common folks. It’s not hoity-toity like F1 and I think the racing is just plain better. The modern NASCAR cars all share the same design as defined and built by NASCAR. The power trains are the only real difference from an engineering perspective so it’s all down to setup and, more importantly, the driver. But I digress.

There is something that bothers me about NASCAR. Fans seem to be very, uh, conservative. Meaning it’s all about God, country, and to many the Confederate flag and all the hate that comes with it. Bubba Wallace asked NASCAR to ban the Confederate flag and they did, it was a step in the right direction. All that said they have a long way to go, which brings me to why I started writing this.

Which team is progressive enough to put a Progress Pride Flag on the car as the entire livery? I think it would look amazing and start to break down that next wall in the sport.

Writers on Substack don’t care

Anil Dash via Blue Sky

I think I am just giving up on getting people to realize that, by committing their words and personal reputation to Substack’s platform, they’re enabling openly venal people to profit from their creativity and labor. I guess folks just really truly do not care.

RibbitBack when Nilay Patel interviewed Substacks CEO and it became clear they clearly do not care if you’re a racist, misogynist, or Nazi, they’ll give you a platform for cold hard cash I reached out via Substack’s own Notes product to tell a couple of my favorite reads; Robert Reich and Steven Beschloss, about that interview. They paid no attention. I mean, why would they? I’m Joe Nobody. 😕

No, I really want you to answer that question. Is that allowed on Substack Notes? “We should not allow brown people in the country.” - Nilay Patel from Substack CEO interview

I love that Anil points to using WordPress to do a newsletter. That’s a great choice. ❤️

Mastodon’s supposed “death”

Matt Birchler

I continue to be flummoxed by the popular take that Bluesky is doing so much better than Mastodon. Mastodon has 2 million active users and is built on ActivityPub, which means it also communicates with other services that use the same protocol. Oh, and Threads will bring its 100+ million users to ActivityPub soon(ish).

No, Mastodon isn’t “dead” or “dying.”

A wonderful bouquet of flowers.Look, this platform isn’t something corporations control and isn’t something that needs to make money as a centralized service. It’s run by the people. I run my instance — well, masto.host does — and I don’t require my friends to pay me a monthly fee, some have sent me money to keep it going (thanks Steven!) but overall the $20US per month is cheap for me to have my own instance with a few friends on it.

Anywho, it’s all about the people, not about corporate profits so who cares how many users there are on the network? I don’t.