We just released a Flutter Devtools Extension for Flame and I made a 2 minute video showing how it works.
If you are a package developer I really recommend checking out the devtools extension possibilities, you can do some really useful things with it! 😃
https://t.co/wBv9ZXFedw
Faster Flutter iOS/macOS builds ⚡
When we changed our Firebase SDKs for Apple platforms to default to Swift, we accidentally broke an optimization step in the build pipeline for Flutter apps.
This has now been fixed, so go forth and build…💨
More → https://t.co/KgxgoP0Wur
이번에는 『튜링의 사과』 에서 조금 특별한 강의를 준비했습니다. 연세대 컴퓨터과학과 이시윤 교수님께 듣는 '알고리즘과 문제의 해결' 강의 입니다. 강의와 함께 알고리즘에 대한 이해를 더 깊게 할 수 있는 도서, <논리적 사고를 기르는 알고리즘 수업>까지 증정해 드려요.
3월 21일(목) 오후 7시입니다. 30명 선착순 신청이예요. 놓치지 마세요!
https://t.co/ZTEXhTjEMl
fpdart experiments 🧪
Problem: Too many types, little shared code, need to convert between `IO`, `Task`, `TaskEither` etc.
Solution
What if they can all derive from the same superclass? 🤔
Working on it #fpdartv2 🛠️
Type safety to the next level with extension types 🚀
You can use extension types to limit or change the API of any class in @dart_lang 🪄
Convert unsafe methods back to safety 👇
Did you know?
If you have assets that are only used in a specific flavor in your app, you can *conditionally* bundle them using the "path" and "flavors" options in your pubspec.yaml file.
This prevents your app bundle size from being bloated by unused assets.
𝗗𝗲𝗳𝗶𝗻𝗶𝗻𝗴, 𝗠𝗲𝗮𝘀𝘂𝗿𝗶𝗻𝗴, 𝗮𝗻𝗱 𝗠𝗮𝗻𝗮𝗴𝗶𝗻𝗴 𝗧𝗲𝗰𝗵𝗻𝗶𝗰𝗮𝗹 𝗗𝗲𝗯𝘁 𝗯𝘆 𝗚𝗼𝗼𝗴𝗹𝗲
In the latest paper by Google Engineers, they researched how to define, measure, and manage Technical Debt. They use quarterly engineering satisfaction surveys to analyze the results.
𝟭. 𝗗𝗲𝗳𝗶𝗻𝗶𝘁𝗶𝗼𝗻 𝗼𝗳 𝗧𝗲𝗰𝗵𝗻𝗶𝗰𝗮𝗹 𝗗𝗲𝗯𝘁
Google took an empirical approach to defining technical debt. They asked engineers about the types of technical debt they encountered and what mitigations would be appropriate to fix this debt. This resulted in a collectively exhaustive and mutually exclusive list of 10 categories of technical debt, including:
🔹 Migration is needed or in progress: This may be motivated by the need for code or systems to be updated, migrated, or maintained.
🔹 Code degradation: The codebase has degraded or not kept up with changing standards over time. The code may be in maintenance mode, needing updates or migrations.
🔹 Documentation on project and application programming interfaces (APIs): Information on your project's work is hard to find, missing, or incomplete.
🔹 Testing: Poor test quality or coverage, such as missing tests or poor test data, results in fragility and flaky tests.
🔹 Code quality: Product architecture or project code must be better designed. It may have been rushed or a prototype/demo.
🔹 Dead and abandoned code: Code/features/projects were replaced or superseded but still need removal.
🔹 Team needs more expertise: This may be due to staffing gaps, turnover, or inherited orphaned code/projects.
🔹 Dependencies: Dependencies are unstable, rapidly changing, or trigger rollbacks.
🔹 Migration could have been better executed or abandoned: This may have resulted in maintaining two versions.
🔹 Release process: The rollout and monitoring of production need to be updated, migrated, or maintained.
𝟮. 𝗠𝗲𝗮𝘀𝘂𝗿𝗶𝗻𝗴 𝗧𝗲𝗰𝗵𝗻𝗶𝗰𝗮𝗹 𝗗𝗲𝗯𝘁
Google measures technical debt through a quarterly engineering survey. They ask engineers about which of these categories of technical debt have hindered their work. The responses to these surveys help Google identify teams that struggle with managing different types of technical debt. They found that engineers working on machine learning systems face different types of technical debt compared to engineers who build and maintain back-end services.
They focused on code degradation, teams needing more expertise, and migrations being required or in progress. Then, they explored 117 metrics proposed as indicators of one of these forms of technical debt—the results were that no single metric predicted reports of technical debt from engineers.
𝟯. 𝗠𝗮𝗻𝗮𝗴𝗶𝗻𝗴 𝗧𝗲𝗰𝗵𝗻𝗶𝗰𝗮𝗹 𝗗𝗲𝗯𝘁
Over the last four years, Google has made a concerted effort to better define, measure, and manage technical debt. Some of the steps taken include:
🔸 Creating a technical debt management framework to help teams establish good practices
🔸 Creating a technical debt management maturity model and accompanying technical debt maturity assessment that
evaluates and characterizes an organization's technical debt management process
🔸 Organizing classroom instruction and self-guided courses to evangelize best practices and community forums to drive continual engagement and sharing of resources.
🔸 Tooling that supports the identification and management of technical debt (for example, indicators of poor test coverage, stale documentation, and deprecated dependencies)
It's important to note that zero technical debt is not the goal at Google. The presence of deliberate, prudent technical debt reflects the practicality of developing systems in the real world. The key is to manage it thoughtfully and responsibly.
#technology #softwareengineering #programming #techworldwithmilan #development
Attention Flutter developers!
I'm about to release a new interceptor library for the HTTP library in Flutter. This addition aims to streamline concurrent request handling, a feature once unique to Dio. While Dio is good at this, it had its limitations elsewhere.
This library combines the interceptor capabilities of Dio with the more reliable HTTP library. It's also designed for compatibility and works with other HTTP clients, so you can easily use cupertino_http or cronet.
The package will be released in a few days. Keep an eye out for it! #Flutter
I just published a PR to pub-dev that makes it possible to publish new Flutter & Dart package versions by clicking a button in the GitHub UI, instead of going through the terminal. Let's just hope it gets approved! 🤞
한국에서 미국으로 놀러오는 개발자분들과 만날때면
"미국으로 넘어오시죠!"
가볍게 말하곤 하는데, 사실 미국 취업에서 큰 걸림돌 중 하나는 바로 취업 비자다.
미국의 취업 비자를 따기 어렵다고는 하지만 주변을 돌려보면 성공적으로 미국에 정착하신 분들이 정말 많이 계신다.
혹시 미국 진출을 생각하신 분들에게 도움이 될까 취업 비자 정리글을 써보았다. 내가 이민 전문가는 아니고 틀린 부분이 있을 수도 있지만, 누군가에겐 도움이 되었음 좋겠다.
https://t.co/Afl0Qyc43N
Macros are live on the Flutter master channel (SDK https://t.co/FAYZ6DfbTu), that means you can do the following without any code generation, no freezed and no json_serializable! 😍🤯
Thanks to millsteed for the example