โ What would be the best way to implement CI/CD for flutter apps?
๐ ฐ๏ธ The most tricky part in CI/CD is automated testing. Otherwise, just building and deploying is relatively easy. Then, testing on the Flutter's part isn't hard. In most apps, all you need is click through some use cases. Much harder is the backend to which your app talks. You typically need a copy of the system with its storage, message queues, and all the rest. What of that you can isolate or mock varies widely. So start your CI/CD with the backend. When it's done, its specific architecture usually will hint a straightforward way to add Flutter or any other client on top of it.
See the recent article for the example for the backend.
๐ ฐ๏ธ The most tricky part in CI/CD is automated testing. Otherwise, just building and deploying is relatively easy. Then, testing on the Flutter's part isn't hard. In most apps, all you need is click through some use cases. Much harder is the backend to which your app talks. You typically need a copy of the system with its storage, message queues, and all the rest. What of that you can isolate or mock varies widely. So start your CI/CD with the backend. When it's done, its specific architecture usually will hint a straightforward way to add Flutter or any other client on top of it.
See the recent article for the example for the backend.
๐6
I made a tiny package to dump the last HTTP request. It helps a lot in debugging failed requests.
https://pub.dev/packages/http_log
https://pub.dev/packages/http_log
Dart packages
http_log | Dart package
A logger for HTTP requests, stores the last request, can pretty-print it in cURL or raw
๐ฅ5๐4
My new article: The 2 new lints in Dart 3.4.
https://medium.com/p/5596edbf3746
https://medium.com/p/5596edbf3746
Medium
The 2 new lints in Dart 3.4
Improve your documentation formatting and clean up deprecated โpart ofโ directives.
๐ฅ3
Playing with Dart 3.5 macros already? I made a CLI tool to show augmentation for a given source file if your IDE is buggy or does not yet support macros:
https://pub.dev/packages/show_augmentation
https://pub.dev/packages/show_augmentation
๐ฅ2
Playing with Dart 3.5 macros already?
Anonymous Poll
8%
I made my own macros already
3%
I tried JsonCodable and want to make my own macros
0%
I just tried JsonCodable
32%
I've heard about Dart 3.5 macros and want to try them
29%
Wow, I never heard of Dart 3.5 macros
29%
I don't care / will wait until it's stable
A first hands-on with custom macros: https://medium.com/@alexey.inkin/creating-your-own-macro-instead-of-code-generation-in-dart-3-5-27274f8a5bf6
Medium
Creating your own macro instead of code generation in Dart 3.5
What a macro is, how it works, learning from JsonCodable macro, and creating our own hello-world macro.
๐ฅ2โค1
I have re-written enum_map package with macros. This package takes an
The most straightforward use of the package is to make sure your Flutter tabs never fall out of sync with the tab controller and tab headers. I use it in every Flutter project in the last ~2 years. The highest it made to is Apache Beam with 7.7k stars. More in my article "Compile-time safety for Flutter tabs" from before.
With macros, you no longer need code generation with build_runner. You just add an annotation to an enum and instantly get the map class ready to use.
Check out the pre-release version.
enum and creates a map class that gives you a compile-time guarantee that the map has an entry for each of the enum constants. No more bangs after getting a value from a map.The most straightforward use of the package is to make sure your Flutter tabs never fall out of sync with the tab controller and tab headers. I use it in every Flutter project in the last ~2 years. The highest it made to is Apache Beam with 7.7k stars. More in my article "Compile-time safety for Flutter tabs" from before.
With macros, you no longer need code generation with build_runner. You just add an annotation to an enum and instantly get the map class ready to use.
Check out the pre-release version.
Dart packages
enum_map | Dart package
A Map with compile-time check that every enum constant has an entry in it.
๐11๐ฅ1
Every time I think something is too trivial to go with classes I end up rewriting it with classes. Tomorrow I will lose 1 hour changing
There is "Domain-Driven Development" (DDD) principle. It says to create a classes for logically distinguished things. For instance, you should have classes
Don't neglect DDD.
List<double> into TimeSeries because it "suddenly" needed to be aware of timestamps.There is "Domain-Driven Development" (DDD) principle. It says to create a classes for logically distinguished things. For instance, you should have classes
Password, Url, Username, etc. and not use just String for them. If I followed it and created TimeSeries from the beginning since I was dealing with a time series, I would have saved 1 hour of my life.Don't neglect DDD.
๐7โค5
Alexey Inkin | Flutter GDE
A first hands-on with custom macros: https://medium.com/@alexey.inkin/creating-your-own-macro-instead-of-code-generation-in-dart-3-5-27274f8a5bf6
The second part on macros, as I promised:
https://medium.com/@alexey.inkin/deep-dive-into-writing-macros-in-dart-3-5-a1dd50914a7d
This time, it's everything I learned in a month of playing with them, and I dive into all aspects of writing and testing using my Args macro as an example.
May those who didn't unfollow after the Spanish post be rewarded.
https://medium.com/@alexey.inkin/deep-dive-into-writing-macros-in-dart-3-5-a1dd50914a7d
This time, it's everything I learned in a month of playing with them, and I dive into all aspects of writing and testing using my Args macro as an example.
May those who didn't unfollow after the Spanish post be rewarded.
Medium
Deep dive into writing macros in Dart 3.5
I spent a monthโs vacation full-time playing with macros, and hereโs all you need to start fast.
๐1๐ฅ1
What do you think is the world's single most fundamental problem that all others are induced by? The one you can't ask "why?" to get closer to the root.
If you have Twitter, please reply there. Otherwise, here in a comment.
https://x.com/alexeyinkin/status/1820797300588884114?s=46
If you have Twitter, please reply there. Otherwise, here in a comment.
https://x.com/alexeyinkin/status/1820797300588884114?s=46
๐ค2
How to write golden tests for your code generators:
https://medium.com/flutter-senior/writing-golden-tests-for-code-generation-in-dart-d2951e25ce00
https://medium.com/flutter-senior/writing-golden-tests-for-code-generation-in-dart-d2951e25ce00
Medium
Writing golden tests for code generation in Dart
Some time ago I improved source_gen_test package by Kevin Moore to support external golden files. The package is used to write tests forโฆ
๐1๐ฅ1
The Responsibility of the Tech Community over Telegram Prosecution
Telegram & Pavel Durov are under attack over South Korea deep fake crisis. A tech community has an obligation to the public to protect the freedoms by explaining this case.
Any official calling to stop the deep fake crisis is either incompetent or double-playing. The generation is done with dual-purpose open-source software that can be installed on any computer. Once open-source is out there, it canโt be unwritten. Itโs omnipresent. And itโs also used on every phone in the world for legitimate purposes like hiding your wrinkles. Itโs like campaigning against Photoshop because someone does naughty stuff with it.
Moreover, with hardware getting better, in 10 years anyone will be able to deep-fake anything in a split-second without any restrictions. Itโs just the new world we have to learn to live in where anyone can be in porn, and itโs up to a beholder to ignore it, like today you ignore photoshopped horns on your head.
In 10 years we will adapt, but until then the authorities are free to manipulate us into agreeing to ban everything they point the public to blame.
With the French case, Telegram was a mean of communication for some crimes, but with deep fake generation itโs just an entry point for a purchase, and the generation is done on 3rd party backends. That purchase is otherwise trivial with disposable domain names, and has been for decades for other black market info like private data & card numbers.
If an official desnโt know that, they must be fired for incompetence. If they do, they must be jailed for abusing their power to prosecute and for conspiracy to push you into using other software that spies on you and gives them access.
I have a set of questions in my mental toolkit I find most rewarding to ask. One of them is:
If this battle is staged, then what is it staged to hide?
Recursively ask it until you see the obvious.
In Tech, we understand that. It's our responsibility to educate others on this to retain our freedoms.
Telegram & Pavel Durov are under attack over South Korea deep fake crisis. A tech community has an obligation to the public to protect the freedoms by explaining this case.
Any official calling to stop the deep fake crisis is either incompetent or double-playing. The generation is done with dual-purpose open-source software that can be installed on any computer. Once open-source is out there, it canโt be unwritten. Itโs omnipresent. And itโs also used on every phone in the world for legitimate purposes like hiding your wrinkles. Itโs like campaigning against Photoshop because someone does naughty stuff with it.
Moreover, with hardware getting better, in 10 years anyone will be able to deep-fake anything in a split-second without any restrictions. Itโs just the new world we have to learn to live in where anyone can be in porn, and itโs up to a beholder to ignore it, like today you ignore photoshopped horns on your head.
In 10 years we will adapt, but until then the authorities are free to manipulate us into agreeing to ban everything they point the public to blame.
With the French case, Telegram was a mean of communication for some crimes, but with deep fake generation itโs just an entry point for a purchase, and the generation is done on 3rd party backends. That purchase is otherwise trivial with disposable domain names, and has been for decades for other black market info like private data & card numbers.
If an official desnโt know that, they must be fired for incompetence. If they do, they must be jailed for abusing their power to prosecute and for conspiracy to push you into using other software that spies on you and gives them access.
I have a set of questions in my mental toolkit I find most rewarding to ask. One of them is:
If this battle is staged, then what is it staged to hide?
Recursively ask it until you see the obvious.
In Tech, we understand that. It's our responsibility to educate others on this to retain our freedoms.
๐5๐2
How often do you have issues with iOS? I spent an hour on a trivial thing today because Flutter is not good at finding and fixing iOS misconfigurations. I hit something like that every time I upgrade something. So I filed a feature request to improve this: https://github.com/flutter/flutter/issues/154663
If you have suggestions to improve Flutter tooling for iOS that do not qualify as separate issues, you can post them as comments there.
If you have suggestions to improve Flutter tooling for iOS that do not qualify as separate issues, you can post them as comments there.
GitHub
Require less iOS knowledge to build a Flutter app ยท Issue #154663 ยท flutter/flutter
Use case I find that the tools for building a Flutter app for iOS are too thin of a layer above the native tools for building for iOS. A few examples: When packages get their dependencies wrong, th...
๐2
Got an excellent interview question for you.
What will happen and why?
Enjoy.
What will happen and why?
Enjoy.
void main() {
final future = Future.error('My error');
future.catchError((e, st) => print('Caught'));
future.whenComplete(() => print('whenComplete()'));
}Last Sunday, I moved to The United States as a permanent resident under EB-1A program of extraordinary ability in science. I'm waiting for my green card to arrive by mail in a few months.
Here is my complete petition with just a few private things blacked out, the process of writing it, my strategy for each criterion, and all the reasoning:
https://github.com/alexeyinkin/eb-1a/tree/main/2-petition
And here is the entire process, every form I filled out, and every piece of interaction with each of the United States bodies I went through:
https://github.com/alexeyinkin/eb-1a/tree/main/1-process
I will be updating it with the few steps left as I will receive my SSN card and the green card.
To those of you who want to do the same, here's how I can help:
https://github.com/alexeyinkin/eb-1a/tree/main/4-help
I made a dedicated chat to answer any of your questions on this program: @eb1a_chat
Please join it even if just to say "Hi!"
I like to hear from those who want to come to this great country!
Here is my complete petition with just a few private things blacked out, the process of writing it, my strategy for each criterion, and all the reasoning:
https://github.com/alexeyinkin/eb-1a/tree/main/2-petition
And here is the entire process, every form I filled out, and every piece of interaction with each of the United States bodies I went through:
https://github.com/alexeyinkin/eb-1a/tree/main/1-process
I will be updating it with the few steps left as I will receive my SSN card and the green card.
To those of you who want to do the same, here's how I can help:
https://github.com/alexeyinkin/eb-1a/tree/main/4-help
I made a dedicated chat to answer any of your questions on this program: @eb1a_chat
Please join it even if just to say "Hi!"
I like to hear from those who want to come to this great country!
๐ฅ27๐9โค5๐3
pub.dev now shows the download count for packages.
This is experimental. Go here to enable it: https://pub.dev/experimental
Here are my humble stats.
This is experimental. Go here to enable it: https://pub.dev/experimental
Here are my humble stats.
๐ฅ4โค1๐1
Media is too big
VIEW IN TELEGRAM
Can you help me reach Elon or Vivek with my application for a job at the Department of Government Efficiency?
I want to optimize the operations in legal work immigration.
Getting this green card was long, expensive, and exhausting. I spent $7k even without a lawyer, spent 4 months full-time writing my petition of over 500 pages long (I also published it, take a look [1]), and waited for 11 months after that to be able to come to the United States.
I want to cut this from months to days for those who follow, because America needs to greatly expand legal skilled work immigration, especially after the border with Mexico is closed. The United States loses over a billion in GDP every year from delaying the workers who are already found qualified.
And I have a plan that pays for itself from taxes right away. Check it out as well [2].
To give you an idea of how bad things are in legal immigration:
- You won't believe it, but there is a quota in the extraordinary ability program. And it's not just the high bar, but even the number of people who have already proven they qualified is limited by Congress. Last year, the quota depleted before the end of the year, and the whole machine halted for over a month. What is the purpose of that?
- To make it worse, there is a quota per country of birth. People born in India currently wait 3 years longer than others under the highest program for most talented people, and 10 years longer under the second-most preferred program. This is racist. Not to mention that every petitioner must prove that their immigration will significantly benefit the United States, so we are talking about those who have proven that already. But the law says: 'We got it, we will benefit significantly, now wait for 12 years. In the meantime, your kids will grow up, and you won't be able to take them with you, even though they qualify now. Too bad that the wait is that long'. Crazy.
- Next, a doctor of the Olympic team of a large Asian country could not evaluate her diploma and is unable to work in the United States. It's nearly impossible for doctors to immigrate and work here, and that's a major healthcare cost driving factor. In my homeland, an MRI scan costs $50, and many do it out of pocket multiple times a year for even minor issues, but in the US it costs thousands and is the last resort after weeks of patient's suffering.
See more in the video.
Dear Elon & Vivek, please consider me for DoGE! We need many right people here fast. Make immigration great again!
To help me reach Elon or Vivek, please share:
This post on X: https://x.com/AlexeyInkin/status/1867992122827182233
Or this YouTube video anywhere: https://www.youtube.com/watch?v=M_d3k_6Rw5c
Or this on LinkedIn: https://www.linkedin.com/feed/update/urn:li:activity:7273770178067255296/
[1] My petition: https://github.com/alexeyinkin/eb-1a/tree/main/2-petition
[2] My plan: https://github.com/alexeyinkin/eb-1a/tree/main/3-improvements
X: https://x.com/AlexeyInkin
LinkedIn: https://www.linkedin.com/in/alexey-inkin/
Instagram: https://www.instagram.com/alexey.inkin/
GitHub: https://github.com/alexeyinkin
Telegram: https://t.me/ainkin_com
I want to optimize the operations in legal work immigration.
Getting this green card was long, expensive, and exhausting. I spent $7k even without a lawyer, spent 4 months full-time writing my petition of over 500 pages long (I also published it, take a look [1]), and waited for 11 months after that to be able to come to the United States.
I want to cut this from months to days for those who follow, because America needs to greatly expand legal skilled work immigration, especially after the border with Mexico is closed. The United States loses over a billion in GDP every year from delaying the workers who are already found qualified.
And I have a plan that pays for itself from taxes right away. Check it out as well [2].
To give you an idea of how bad things are in legal immigration:
- You won't believe it, but there is a quota in the extraordinary ability program. And it's not just the high bar, but even the number of people who have already proven they qualified is limited by Congress. Last year, the quota depleted before the end of the year, and the whole machine halted for over a month. What is the purpose of that?
- To make it worse, there is a quota per country of birth. People born in India currently wait 3 years longer than others under the highest program for most talented people, and 10 years longer under the second-most preferred program. This is racist. Not to mention that every petitioner must prove that their immigration will significantly benefit the United States, so we are talking about those who have proven that already. But the law says: 'We got it, we will benefit significantly, now wait for 12 years. In the meantime, your kids will grow up, and you won't be able to take them with you, even though they qualify now. Too bad that the wait is that long'. Crazy.
- Next, a doctor of the Olympic team of a large Asian country could not evaluate her diploma and is unable to work in the United States. It's nearly impossible for doctors to immigrate and work here, and that's a major healthcare cost driving factor. In my homeland, an MRI scan costs $50, and many do it out of pocket multiple times a year for even minor issues, but in the US it costs thousands and is the last resort after weeks of patient's suffering.
See more in the video.
Dear Elon & Vivek, please consider me for DoGE! We need many right people here fast. Make immigration great again!
To help me reach Elon or Vivek, please share:
This post on X: https://x.com/AlexeyInkin/status/1867992122827182233
Or this YouTube video anywhere: https://www.youtube.com/watch?v=M_d3k_6Rw5c
Or this on LinkedIn: https://www.linkedin.com/feed/update/urn:li:activity:7273770178067255296/
[1] My petition: https://github.com/alexeyinkin/eb-1a/tree/main/2-petition
[2] My plan: https://github.com/alexeyinkin/eb-1a/tree/main/3-improvements
X: https://x.com/AlexeyInkin
LinkedIn: https://www.linkedin.com/in/alexey-inkin/
Instagram: https://www.instagram.com/alexey.inkin/
GitHub: https://github.com/alexeyinkin
Telegram: https://t.me/ainkin_com
๐ฅ13๐2๐2โค1
Announcing http://eb1ai.com
I'm building an app to aggregate granular statistics for EB-1A for the cases I know. Yes, it's in Flutter. :)
It was important for me to launch in 2024, so please enjoy the release that can't do a thing. You can see the 11 cases I got a hold of so far. The criteria icons show what was approved and what was not. In a few weeks, you will be able to click the criteria to see the most approved achievements.
If you are anxious, see the raw data file: https://eb1ai.com/assets/assets/data.yaml
To keep updated, follow the dedicated Twitter of https://x.com/eb1ai_com or join my Telegram chat: https://t.me/eb1a_chat
I'm looking for more RFEs and giving consultations for you to respond to an RFE for free.
One day I will make some artificial intelligence features to evaluate your case or suggest what achievements to pursue. Until then, let the 'ai' stand for 'Alexey Inkin'.
I'm building an app to aggregate granular statistics for EB-1A for the cases I know. Yes, it's in Flutter. :)
It was important for me to launch in 2024, so please enjoy the release that can't do a thing. You can see the 11 cases I got a hold of so far. The criteria icons show what was approved and what was not. In a few weeks, you will be able to click the criteria to see the most approved achievements.
If you are anxious, see the raw data file: https://eb1ai.com/assets/assets/data.yaml
To keep updated, follow the dedicated Twitter of https://x.com/eb1ai_com or join my Telegram chat: https://t.me/eb1a_chat
I'm looking for more RFEs and giving consultations for you to respond to an RFE for free.
One day I will make some artificial intelligence features to evaluate your case or suggest what achievements to pursue. Until then, let the 'ai' stand for 'Alexey Inkin'.
๐ฅ3โค2๐2๐2
In the year 2024, I have:
๐ฐ Earned $20'830.39 and paid $182 in taxes.
๐บ๐ธ Became a permanent resident of the US.
โ๏ธ Published 15 articles, which were viewed 55'000 times.
๐ธ Published 46 photos, which were liked 460 times.
๐ Spent 304 days in Batumi, 36 days in Dallas, 22 days in Farmersville, 3 days in Tbilisi, 1 day in Istanbul.
๐บ Been dancing for 444 hours and 15 minutes, singing for 18 hours, flying for 15 hours, sailing for 2 hours, and swimming for 10 minutes.
๐ถโโ๏ธ Walked 2559 km.
๐ฎ Ate at 43 cafes.
๐ Read 5 books, ๐ "My Childhood" by Gorky.
๐ฌ Watched 37 movies, ๐ "Shakespeare in Love". Watched 14 series, ๐ "Slovo Patsana".
๐ช๐ธ Aprendรญ 978 palabras en Espaรฑol.
๐ฝ Invested $33 to RFK Jr.'s campaign and Trump's victory.
๐ฆ Been sent 1 photo with tits.
๐ Petted 4 pussies.
๐ Launched 1 service.
๐ฅ Hit the following following:
- VK: 4027 (-78)
- Medium: 3688 (+2634)
- LinkedIn: 726 (+441)
- Telegram: 618 (+208)
- Instagram: 507 (+145)
- YouTube: 379 (+16)
- Facebook: 378 (=)
- Telegram RU: 170 (-11)
- Telegram EB-1A: 161 (+161)
- Twitter: 143 (+96)
- Habr: 71 (+31)
- Twitter EB-1A: 5 (+5)
๐งโโ๏ธ Got older than van Gogh.
--
2023: $34'231, https://www.instagram.com/p/C1gjDMyIWMM/
2022: $45'257, https://www.instagram.com/p/Cm1GY4MMGbN/
2021: $6'240, https://www.instagram.com/p/CYJUd7YNNhV/
2020: $24'797, https://www.instagram.com/p/CJemaErJllM/
2019: $15'801, https://www.instagram.com/p/B6udOvmJx4Y/
2018: $1'596.
2017: $4'615.
2016: $20'375.
2015: $46'470, https://vk.com/wall1798445_3633
2014: $19'200, https://vk.com/wall1798445_3147
2013: ~$12'000, https://vk.com/wall1798445_2419
๐ฐ Earned $20'830.39 and paid $182 in taxes.
๐บ๐ธ Became a permanent resident of the US.
โ๏ธ Published 15 articles, which were viewed 55'000 times.
๐ธ Published 46 photos, which were liked 460 times.
๐ Spent 304 days in Batumi, 36 days in Dallas, 22 days in Farmersville, 3 days in Tbilisi, 1 day in Istanbul.
๐บ Been dancing for 444 hours and 15 minutes, singing for 18 hours, flying for 15 hours, sailing for 2 hours, and swimming for 10 minutes.
๐ถโโ๏ธ Walked 2559 km.
๐ฎ Ate at 43 cafes.
๐ Read 5 books, ๐ "My Childhood" by Gorky.
๐ฌ Watched 37 movies, ๐ "Shakespeare in Love". Watched 14 series, ๐ "Slovo Patsana".
๐ช๐ธ Aprendรญ 978 palabras en Espaรฑol.
๐ฝ Invested $33 to RFK Jr.'s campaign and Trump's victory.
๐ฆ Been sent 1 photo with tits.
๐ Petted 4 pussies.
๐ Launched 1 service.
๐ฅ Hit the following following:
- VK: 4027 (-78)
- Medium: 3688 (+2634)
- LinkedIn: 726 (+441)
- Telegram: 618 (+208)
- Instagram: 507 (+145)
- YouTube: 379 (+16)
- Facebook: 378 (=)
- Telegram RU: 170 (-11)
- Telegram EB-1A: 161 (+161)
- Twitter: 143 (+96)
- Habr: 71 (+31)
- Twitter EB-1A: 5 (+5)
๐งโโ๏ธ Got older than van Gogh.
--
2023: $34'231, https://www.instagram.com/p/C1gjDMyIWMM/
2022: $45'257, https://www.instagram.com/p/Cm1GY4MMGbN/
2021: $6'240, https://www.instagram.com/p/CYJUd7YNNhV/
2020: $24'797, https://www.instagram.com/p/CJemaErJllM/
2019: $15'801, https://www.instagram.com/p/B6udOvmJx4Y/
2018: $1'596.
2017: $4'615.
2016: $20'375.
2015: $46'470, https://vk.com/wall1798445_3633
2014: $19'200, https://vk.com/wall1798445_3147
2013: ~$12'000, https://vk.com/wall1798445_2419
๐7โค4๐3โคโ๐ฅ2