My upcoming game has a Steam page now so that folks can wishlist it:
It's called GIANT ROBOT GAME. Here's the first trailer, for which I recommend sound on and volume up:
I got an email that
@year_progress
has been suspended from Twitter API, and I have to re-sign-up. At least I know where I'm at. (There was no communication till now.)
My bot is eligible for the free tier, I think, but the sign up form doesn't work. ¯\_(ツ)_/¯
Sorry folks.
I guess I was too of an optimist to believe it would happen, but Putⅰn launched a full scale attack on a neighboring country today.
I grew up in a totalitarian country in the Soviet bloc. Let me tell you how *you* can help.
Thread ↓
I avoided saying anything about GetX while I was employed at Google because I didn't want my personal opinion confused with official stance. Now that I've quit:
I don't like GetX.
* It hides complexity.
* Magic everywhere.
* Not thought thru.
Scott explains it more eloquently.
I've tried really hard to stay away from the whole subject of GetX for a lot of reasons, but one came up recently that I feel I have to mention. I'll try to say it as objectively as possible.
It’s time to put on our hipster glasses, y’all.
Source: . This is a single freelancing network's data, from a single country. So take this with a grain of salt, please.
Flutter 2.8 is here, with better performance, smoother Firebase integration, Ads support, etc.
This is my 10 minute summary of what's new. (Plus 2 minutes to explain my black eye.)
My first Flutter-related video since I left Google!
I'm trying to push myself to come up with nicer designs for the default Flutter starter app ("Counter"), using code only. Nothing official, of course.
Opinions?
If you know a person who expressed interest in giving Flutter a go but hasn't done so yet, my
#GoogleIO
workshop is just 👌 for them.
Here:
(Ignore "Session is full", the number of people who can watch is ∞.)
I think Flutter needs an audio engine plugin (as opposed to an audio *player* plugin). For mixing, gapless loops, effects, streaming, performance. Something that can easily support a game (or an immersive app).
1/2
#fluttertip
If you want users to know that a list continues below the fold, you fade out the scrollable area toward the bottom.
Here's how to conceptually do this in Flutter:
The implementation here is naive (73 lines) but should give you an idea.
🧵👇🏻
Remember my call for a proper audio engine for Flutter?
Turns out there's `pkg:flutter_soloud`, which already does most of the things we need. I spent the last few weeks helping Marco, the author of the package, to make the API more Dart-isan.
So...
1/2
PSA: You can write executable Dart scripts the same way you write Bash or Python scripts, using a shebang line:
#!/usr/bin/env dart
The Dart file then becomes directly executable.
This is useful for small scripts, like git hooks, or throwaway scripts.
The last several months, my part-time project was to build an open source casual game in Flutter. It's part of the Flutter Casual Games Toolkit, as a sample!
Source:
iOS:
Android:
Little known fact: on Fridays, I don't work for Google, and instead I do my own game development (). This is a new setup for me, and very exciting.
I'll try starting a weekly live-coding stream.
First attempt: Friday, Aug 9th.
I have all these little notes on programming that are too broad for Flutter but still useful, I think. So, after a few months of deliberation, I'm starting a blog / newsletter for these things:
In a recent tech talk, I speak about how an app's performance is often just a matter of perception. I show this little demo and ask: which of these animations is faster?
The DartPad code (with the answer) is here:
Guess what? I have a YouTube video that's finishing upload right now where I attempt to build a full game in
#Flutter
in 10 minutes straight. U.I., A.I., everything.
It was *very* fun to make. Hope to see y'all at the "Premiere" of this thing tomorrow:
Want a completely impractical (but educational) deep dive into the Flutter animations framework? Do you burn with desire to understand what `SingleTickerProviderStateMixin` really means?
Here:
This is something I'm very excited about. A lot of thought went into the Motion system that Material Design launched today.
And it's available from day 1 to Flutter developers as an easy-to-use package.
Today,
@materialdesign
launched the Motion system, a set of transition patterns that helps users understand and navigate an app.
More →
☝️As a Flutter developer, you can use it immediately via the new `animations` package →
Hey, I'm thinking of paying someone to occasionally help me out with some Dart work. I made this extremely reductionist form in case you're interested.
We are happy to announce the availability of the Linux alpha for
@FlutterDev
alongside
@Google
. With desktop Linux support,
@Canonical
makes it easy for app developers to publish apps for Linux users via the Snap Store, the app store for Linux.
#Flutter
PSA: Go to to create your own icon font, with just the icons you need. You can select from 16 icon libraries, plus you can upload your own SVG.
The tool even generates some Dart for your convenience.
Well, this was fun! I challenged myself to build a game in 10 minutes, in Flutter.
From the starter app to ... a game with an A.I. opponent, a "menu", and of course U.I. No copy-pasting, no libraries.
Something I wanted to do since before I left Google.
I know I should be working on my strategy game but I just couldn't resist.
Ingredients: zesage's experimental 3D renderer (pkg:flutter_cube),
@wolfenrain
's Umbra,
@reNotANumber
's blur shader idea, a bit of
@Shadertoy
experimenting, and a free Gundam 3D model I found years ago.
Are you a beginner/intermediate Flutter developer? Have you recently completed a Flutter Course or built your first app?
If so, and if you can spare 20 minutes to talk about your experience, please DM me.
After yesterday’s Flutter 2.8 “what’s new” video, here’s one about the new Dart 2.15. The performance improvements are 🔥🔥🔥.
I know many people will think 2.15 is “just” an incremental update, but to me that’s the best news ever, and I explain why.
Wait, does this mean all Twitter bots are now either on a paid plan, or dead?
If the latter, then I might have some bad news about
@year_progress
. As much as I love the bot, I never wanted it to be a commercial project...
I was hesitant to brag at the beginning since so many of the first reviews were friends and acquaintances, but now I. Can't. Hold it. Anymore.
These are some select user reviews of on iOS and Android. Some of them could go on my tombstone.
Hi. I agreed with another dev to take over running this account. This means that — fingers crossed — the account will start tweeting again quite soon.
Once again, thanks for all the support. I'm out.
—
@filiphracek
Matt cared so deeply about Flutter developers outside of Google, he accidentally became one of them.
We will miss you,
@mjohnsullivan
. But this was a fantastic move to a fantastic company (which also happens to be based close by), so I can only agree with the decision. Congrats!
Very fortunate to have joined
@rive_app
, where I now get to work with all the talented folks there. Thanks for having me aboard!
@guidorosso
@luigirosso
my 5 year old kid (before sleep today): when I grow up I want to just sleep all day
me: ok good luck
kid: what's that called?
me:
kid: oh I know it's called minding your own business
me: [suppressing laughter]
[10 seconds]
kid: I'm gonna be a businessman
me: [dead]
Guess what — I’m doing live streams again! This will be the first one since I left Google in September.
I want to try this new approach where I just work, play some music, and let people chat with me. Even More Boring Than The Boring Show.™
So, after Friday's
#gamedev
lifestream,
@GonPalma
created this glorious picture, and it gets funnier and funnier every time I look at it. Thanks Gonçalo!
On top of what Scott says, I'll also say this:
The developer behind GetX promotes the shit out of his package. (A more diplomatic way to express this would be: "he isn't very humble", but I don't need to be diplomatic anymore.)
At times his claims were plain false.
Uncool.
So, if you want to make Putⅰn hurt, think about harsh economic sanctions. They seem like the most boring, placid, irrelevant thing you can do in reaction to a military attack — but they work.
If you're planning a Flutter live stream, or something else for Flutter developers around the world that happens in real time, these graphs might be useful.
Thread ↓
Flutter PSA: Since Dart 2.4 (currently in Flutter stable), you can send large amounts of data between isolates (i.e. CPU threads) cheaply by using TransferableTypedData.
What’s new in Flutter 2.10? Quite a lot, actually, considering it’s only been 56 days since the last stable release. (Not that I’m counting!)
Here are my thoughts:
I can't enter the Flutter clock challenge () because I work at Google, but I couldn't help it. One early December morning I sat down and made a clock face anyway.
It tells time the way a totally radical hacker would. By using `date` on the command line.
Chances are we are going to be doing conference talks and presentations from home for some time to come.
It's time to think about 1:1 as a better aspect ratio for slides than the usual 16:9. Thread ↓
As a prep work for a future video about Flutter animations, I implemented this astronomically accurate* visualization of Earth's orbit. This was more fun than I expected.
(* Well, accurate to a degree. Earth's orbit is correctly deformed. Most other stuff is fake. ¯\_(ツ)_/¯)
Today, I made progress on the new game's UI. This here is the (small) part of the screen that gives basic info on acquired targets as you select them. Still super crude but hopefully gives a bit of an idea of the "shape" of the game. Feedback / comments welcome!
Speaking of sci-fi UI, every good futuristic screen needs gratuitous amounts of rotating 3D wireframes, right? So I'm experimenting with old school 3D rendering methods like here.
The performance is abysmal but I don't care right now. I just got it to work a few minutes ago.
Flutter PSA: If you're waiting for Bitcode support on iOS, have a look at . It does require you to build the engine locally, but hey, it's a start. Feedback welcome.
You can download a 27GB text file with all the leaked passwords that security researchers know about. The passwords are hashed, of course, so you can't read them, but you can check if any of yours have been exposed.
Thread ↓
Apparently, the thing I will be once famous for is becoming one of the first Open Design animation characters.
I am okay with this.
Here's one particularly cool remix of the "sad Filip" from Flutter Live:
Use arrow keys to see more.
This thread is about JS fundamentals versus React, but the same applies to Dart fundamentals versus Flutter. You don't need to know everything (or even _most_ things) about Dart to start with Flutter.
Put some pixels on the screen first. You'll figure out the rest later.
For my talk, Flutter Mad Science, I'm looking for examples of open source
#Flutter
projects that are, well, mad.
Things like apps within apps, 3D-rotating apps, emulators of obscure machines written in Dart, Flutter widget sets themed like ... 1/2
I've published the first truly technical article at The Self-Improving Developer: .
I remember being truly intimidated by generic types. I hope the article makes that go away for someone out there.
For the game I’m working on, I found myself needing to implement a simple neural network. And since I've already done something similar in the past and it really helped me *get* neural networks, I decided to make a little video. Here it is!
PSA: If you're building a Flutter app, consider subscribing to flutter-announce@. We share long-form updates like planned breaking-changes or new tooling features there.
The solution to the new 64-bit requirement of Play was discussed there recently.
I am proud to have been invited to speak at DevFest for Ukraine, a charitable tech conference (June 14-15).
I'm preparing a talk about — surprise surprise — building games in Flutter! (In particular,
@RaindeadGames
.)
The Flutter team has recently made design docs public by default (which I love). Here's one from me: .
Please take a look and let me know what you think!
Ask your representatives to sanction the hell out of Putin's Russia. Boycott Russian economy yourself if you have the power to do so. Make Russians hate Putⅰn for what he's doing to their reputation and economy.
This is the kind of app I really like seeing built in Flutter. Niche but extremely useful (cardiovascular health), lots of custom graphics (graphs, gauges), use of interesting APIs (Samsung sensors, and a bespoke hardware unit). Great use of the Flutter SDK.
First, they positioned Czechoslovakia as a threat. It wasn't a threat, of course, but "if you tell a lie big enough and keep repeating it, people will eventually come to believe it."
TIL my game (
@RaindeadGames
) is
#3
top paid RPG game on Google Play. If you told me this a year ago, I'd faint.
That said, you might be as surprised as I am that being
#3
in top paid RPGs brings in only a modest number of sales. More on that here:
Extension methods are coming to Dart, and here's a great article by
@redblobgames
about why that's important (although the article doesn't mention Dart _or_ extension methods at all):
I just finished writing this article about the concepts behind GIANT ROBOT GAME's codebase and my approach to coding the game.
I want to write more on this topic in the future, and this seems like a good "intro" article.
I seem to remember that in Dart, it is discouraged to have control statements in try/catch blocks. But now I can't find this guidance in official docs.
Do I remember it correctly? I would like to fully understand this guidance.
cc
@LeafPetersen
@munificentbob
Dart PSA: You can try the dart2native tool (part of the Dart SDK, but not yet in stable) to compile your Dart tools and programs to standalone executables.
I just compiled linkcheck to binaries on Mac, Linux and Windows.
TIL about the Pac-Man rule at conferences. I really like it, and hope I'll be able to practice it soon. (It does require an in-person meetup or conference, so not _that_ soon.)
I haven't posted anything here about the current protests in the US. I didn't think it was needed (yet another opinion, from an outsider) but now I realize my silence could be seen as a signal that I either don't care or don't agree.
Thread ↓
I think we in the software industry don't fully appreciate how *emotional* programming can get.
We tend to think of ourselves as these fully rational beings, using our galaxy brains to work on platonic problems.
Thread ↓
If you have a Dart CLI tool that you want to publish to the world (through Homebrew, Chocolatey, NPM, pub), then Merry Christmas, because Natalie just released a Dart package for just that: .
Haven't tried yet, but it checks all the boxes for my needs.
Wrote a new article for The Self-Improving Developer: an introduction to hashing.
Also, the site is now self-hosted, and should be much faster to load.
Thanks to
@dersimolus
, there is now a JSON schema for pubspec.yaml. What this means is that you will get meaningful code completion in IDEs that support it. (The schema is uploaded to .)
Thread 👇
Hey, I'm trying to start a new thing, "snippets". Weekly short videos where I give updates on stuff and share stories, best practices, and the like. Let me know what you think (ideally in the comments section on YouTube so that I have it all in one place):
Flutter just announced
#FlutterPuzzleHack
, a competition for prizes of about $50K in total in which you build a game in Flutter.
I didn't know about this competition until today, but that can't stop me from making a video with tips and thoughts!