Forwarded from 🅵🅾️🆇
This media is not supported in your browser
VIEW IN TELEGRAM
Шиммер реализованный через шейдер, без всяких левых либ.
Набираем 20 лайкосов и делюсь сорцами.
Набираем 20 лайкосов и делюсь сорцами.
Forwarded from 🅵🅾️🆇
flutter compose up
Шиммер реализованный через шейдер, без всяких левых либ. Набираем 20 лайкосов и делюсь сорцами.
#chicken #shimmer #skeleton #shader
Держите, малятки:
https://gist.github.com/PlugFox/7cb6362f020363d1544495fa262aa6a1
Держите, малятки:
https://gist.github.com/PlugFox/7cb6362f020363d1544495fa262aa6a1
Gist
Flutter Shimmer & Skeleton
Flutter Shimmer & Skeleton. GitHub Gist: instantly share code, notes, and snippets.
# Задача 001
Даны две бесконечных возрастающих последовательности чисел A и B. i-ый член последовательности A равен i^2. i-ый последовательности B равен i^3.
Требуется найти C_x, где C — возрастающая последовательность, полученная при объединении последовательностей A и B. Если существует некоторое число, которое встречается и в последовательности A и в последовательности B, то в последовательность C это число попадает в единственном экземпляре.
# Формат ввода
В единственной строке входного файла дано натуральное число x (1 <= x <= 10^7).
# Формат вывода
В выходной файл выведите C_x.
# Решение
#algorithm
Даны две бесконечных возрастающих последовательности чисел A и B. i-ый член последовательности A равен i^2. i-ый последовательности B равен i^3.
Требуется найти C_x, где C — возрастающая последовательность, полученная при объединении последовательностей A и B. Если существует некоторое число, которое встречается и в последовательности A и в последовательности B, то в последовательность C это число попадает в единственном экземпляре.
# Формат ввода
В единственной строке входного файла дано натуральное число x (1 <= x <= 10^7).
# Формат вывода
В выходной файл выведите C_x.
# Решение
int findCx(int x) {
int i = 1, j = 1; // Начальные индексы для квадратов и кубов
int count = 0; // Счетчик найденных элементов
int current = 0; // Текущий элемент последовательности C
while (count < x) {
int square = i * i;
int cube = j * j * j;
if (square < cube) {
current = square;
i += 1;
} else if (square > cube) {
current = cube;
j += 1;
} else {
current = square; // или current = cube, значения равны
i += 1;
j += 1;
}
count += 1;
}
return current;
}#algorithm
Forwarded from Surf Flutter Team
Каркас фичи за 7 секунд. Чем может быть полезен mason?
В какой-то момент у всех появляются лучшие подходы к написанию кода, которые кочуют из проекта в проект. Они превращаются в шаблонный код, который мы привыкли называть бойлерплейт.
Никто не любит бойлерплейт: для старта проектов появляются шаблоны, как, например, Surf Flutter App Template, для небольших кусков кода существуют Snippets (VSCode) и Live Templates (IntelliJ IDEA, Android Studio).
Но что, если этих инструментов недостаточно? Если есть потребность в более гибком инструменте для генерации шаблонного кода?
Мы во Flutter-команде Surf задались этими вопросами, и пришли к mason — мощному и гибкому генератору кода по шаблонам. И сейчас покажем, как его использовать.
Ссылки из карточек:
🔵 mustache
🔵 mason_cli
🔵 BrickHub
🔵 Синтаксис brick
#surf_flutter
В какой-то момент у всех появляются лучшие подходы к написанию кода, которые кочуют из проекта в проект. Они превращаются в шаблонный код, который мы привыкли называть бойлерплейт.
Никто не любит бойлерплейт: для старта проектов появляются шаблоны, как, например, Surf Flutter App Template, для небольших кусков кода существуют Snippets (VSCode) и Live Templates (IntelliJ IDEA, Android Studio).
Но что, если этих инструментов недостаточно? Если есть потребность в более гибком инструменте для генерации шаблонного кода?
Мы во Flutter-команде Surf задались этими вопросами, и пришли к mason — мощному и гибкому генератору кода по шаблонам. И сейчас покажем, как его использовать.
Ссылки из карточек:
#surf_flutter
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Если у вас VS Code тормозит из-за каких-то расширений, то есть такое:
F1 -> Developer: Open Process Explorer
F1 -> Developer: Show Running Extensions
и вообще:
F1 -> Developer: ...
#vscode
F1 -> Developer: Open Process Explorer
F1 -> Developer: Show Running Extensions
и вообще:
F1 -> Developer: ...
#vscode
Одна из лучших лекций про асинхронку от профессионального преподавателя
2 часа полезных знаний
https://www.youtube.com/live/Fux9LhX2ODA
2 часа полезных знаний
https://www.youtube.com/live/Fux9LhX2ODA
YouTube
Асинхронка — ШМР 2024
Асинхронное программирование в дарте. Future, FutureOr, Stream, async, await, yield, Zone... Как это всё работает? Копаем вглубь, ломаем стереотипы, убираем магию.
👍1
Forwarded from Дневник Flutter-разработчика (Dmitry Lyovochkin)
Команда Яндекса делится опытом в разработке на Flutter:)
Все вышедшие на сегодняшний день лекции:
Для чего Flutter используют в Яндекс Драйве и Яндекс Маркете? Как Flutter показал себя в Практикуме? Есть ли будущее у Flutter в Такси?
Асинхронное программирование в дарте. Future, FutureOr, Stream, async, await, yield, Zone... Как это всё работает? Копаем вглубь, ломаем стереотипы, убираем магию.
Лекция в широком смысле рассказывает об архитектуре как явлении и указывает, о чём важно помнить при проектировании приложения
На лекции мы обсудим идею state management в целом, ее архитектурные особенности при работе с состоянием. Обсудим популярные подходы к state management и самые популярные реализации. Сравним их по критериям, важным для масштабируемого приложения. Наконец, обсудим, какие решения лучше подходят для конкретных кейсов.
Как виджеты превращаются в пиксели на экране? Почему Flutter еще не переписали на Kotlin? Что круче — Skia или Impeller?
Спикер: Глеб Осотов, Flutter-разработчик Яндекс Про
На лекции мы рассмотрим, зачем нужны анимации в приложениях, как они устроены во Flutter. Вы узнаете не только какие виды анимаций можно использовать во Flutter, но и как они устроены внутри.
Спикер: Даниил Артамонов, руководитель группы мобильной разработки Яндекс Лавки
В рамках лекции мы познакомимся с пакетами, плагинами и другими способами делиться кодом между проектами на Dart. Познаем семантическое версионирование и научимся управлять зависимостями в больших проектах; Для этого погрузимся в инструментарий Dart и Flutter cli.
Научимся публиковать свои пакеты для общего и не очень доступа и изучим pub.dev.
Спикер: Константин Федуров, Flutter-разработчик Яндекс Про
В лекции рассмотрим, как работают и как использовать пакеты для кодогенерации, научимся исследовать код и покажем это на демо. Вместе с этим мы узанем как работает анализатор, и как мы можем писать свои правила для увеличения качества кода нашего проекта.
Спикер: Дмитрий Золотов, Flutter-разработчик Яндекс Доставки
На лекции мы научимся использовать навигацию на основе Router, разберем какие бывают диплинки и как их правильно обрабатывать, а также посмотрим на особенности Flutter Web в обработке ссылок и настройки стратегии навигации.
Спикер: Андрей Смирнов, Flutter-разработчик Яндекс Про
В этой лекции мы научимся писать Unit-тесты, UI-тесты, интеграционные тесты и узнаем, что такое golden тесты. А также разберем, что такое code coverage и научимся его собирать.
Спикер: Евгений Седанов, руководитель группы мобильной разработки Яндекс Про
Пуши и уведомления - это одно и то же? Может ли быть пуш без нотификации и нотификация без пуша? Что такое TTL пуша и почему пуши могут потеряться? Какие есть различия в пуш уведомлениях на Android и iOS? Можно ли выполнить Dart код по пушу или даже запустить приложение? Что такое VOIP пуши и чем они отличаются от обычных? Всё это и многое другое вы узнаете на этой лекции.
Спикер: Никита Березовский, Flutter-разработчик Яндекс Про
На лекции мы разберёмся с CI/CD и настроим пайплайн для github actions. Разберем что нужно знать чтобы довести приложение до релиза в сторы. Узнаем как наш код превращается в приложение: начиная с вызова flutter build и до запуска конечного артефакта.
Весь список лекций ШМР 2024: https://www.youtube.com/playlist?list=PLXtiZNKIobF4R3g_CCVkXgaMDg4E4pxeH
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Флаттер-мастерская: опыт команд Яндекса в разработке на Flutter — ШМР 2024
Для чего Flutter используют в Яндекс Драйве и Яндекс Маркете? Как Flutter показал себя в Практикуме? Есть ли будущее у Flutter в Такси?
В рамках дискуссии представители разных сервисов Яндекса расскажут, как и зачем в стеке технологий их продуктов появился…
В рамках дискуссии представители разных сервисов Яндекса расскажут, как и зачем в стеке технологий их продуктов появился…
👍1
Forwarded from Николай Хитров | Блог
Валидация названий commit-ов
Недавно затащили к себе в проект gitlint. Оказалась прям годной штукой. Довольно шустро работает, подробная дока. Ему можно скормить названия через пайпы обычным текстом, а можно подтягивать имена коммитов через
Но самое клевое, что можно писать свои плагины. Мы у себя в проекте сделали проверку названий контекстов - тупо на питончике проходимся по определенным папкам в проекте и используем их названия как список допустимых значений. Больше никаких тыканий на ревью, что и как нужно называть. Чистый кайф🤤🤤🤤
#git #python #gitlint
Недавно затащили к себе в проект gitlint. Оказалась прям годной штукой. Довольно шустро работает, подробная дока. Ему можно скормить названия через пайпы обычным текстом, а можно подтягивать имена коммитов через
git. Есть встроенные проверки по типу длины строки, conventional commits и т.д.Но самое клевое, что можно писать свои плагины. Мы у себя в проекте сделали проверку названий контекстов - тупо на питончике проходимся по определенным папкам в проекте и используем их названия как список допустимых значений. Больше никаких тыканий на ревью, что и как нужно называть. Чистый кайф🤤🤤🤤
#git #python #gitlint
Jorisroovers
Introduction - Gitlint
Linting for your git commit messages
Forwarded from Flutter на Русском 🇷🇺
Media is too big
VIEW IN TELEGRAM
Мега крутое выступление Вячеслава Егорова про то как работает среда выполнения Dart.
Из выступления вы узнаете:
✔️ Как работает компилятор в Dart
✔️ Что такое IRHydra 2
✔️ Как вызывать Dart код из Swift
✔️ Как в Swift реализовать горячую перезагрузку c помощью Dart кода
✔️ Как в Jetpack compose реализовать горячую перезагрузку ч помощью Dart кода
✔️ Некоторые умопомрачительные новые функции которые знает только команда Dart
📌 Смотреть на VK:
https://vk.com/flutter_na_ruskom
📌 Оригинал:
https://www.youtube.com/watch?v=jV2Zx3hjHPc
#dart #mraleph
Из выступления вы узнаете:
📌 Смотреть на VK:
https://vk.com/flutter_na_ruskom
📌 Оригинал:
https://www.youtube.com/watch?v=jV2Zx3hjHPc
#dart #mraleph
Please open Telegram to view this post
VIEW IN TELEGRAM
# Задача 002
На входе предоставляется список целых чисел. Необходимо сжать список в строку, объединив последовательные числа в диапазон. Если в списке есть числа, которые не являются последовательными, они должны быть выведены отдельно. Если в списке есть только одно число, оно должно быть выведено отдельно.
# Формат ввода:
Список целых чисел, разделенных запятыми или пробелами. Список может быть пустым.
## Примеры ввода:
[1, 4, 5, 2, 3, 9, 8, 11, 0]
[1, 4, 3, 2]
[1, 4]
[]
# Формат вывода:
Строка, содержащая сжатые диапазоны чисел, разделенные запятыми. Если в списке есть только одно число, оно должно быть выведено отдельно. Если в списке нет чисел, должна быть выведена пустая строка.
## Примеры вывода:
"0-5,8-9,11"
"1-4"
"1,4"
""
#algorithm
На входе предоставляется список целых чисел. Необходимо сжать список в строку, объединив последовательные числа в диапазон. Если в списке есть числа, которые не являются последовательными, они должны быть выведены отдельно. Если в списке есть только одно число, оно должно быть выведено отдельно.
# Формат ввода:
Список целых чисел, разделенных запятыми или пробелами. Список может быть пустым.
## Примеры ввода:
[1, 4, 5, 2, 3, 9, 8, 11, 0]
[1, 4, 3, 2]
[1, 4]
[]
# Формат вывода:
Строка, содержащая сжатые диапазоны чисел, разделенные запятыми. Если в списке есть только одно число, оно должно быть выведено отдельно. Если в списке нет чисел, должна быть выведена пустая строка.
## Примеры вывода:
"0-5,8-9,11"
"1-4"
"1,4"
""
String compressRanges(List<int> nums) {
// Если список пустой, сразу возвращаем пустую строку
if (nums.isEmpty) {
return "";
}
// Сортируем числа
nums.sort((a, b) => a.compareTo(b));
List<String> result = [];
int start = nums[0];
int end = nums[0];
for (int i = 1; i < nums.length; i++) {
if (nums[i] == end + 1) {
// Если текущее число продолжает диапазон
end = nums[i];
} else {
// Если диапазон прерывается, добавляем его в результат
if (start == end) {
result.add(start.toString());
} else {
result.add("$start-$end");
}
start = nums[i];
end = nums[i];
}
}
// Добавляем последний диапазон
if (start == end) {
result.add(start.toString());
} else {
result.add("$start-$end");
}
// Объединяем диапазоны в строку
return result.join(",");
}#algorithm
Forwarded from Vue-FAQ
Как выяснилось, за последний год в мире
Вышел в open source
По функционалу с большим отрывом лидирует
Мир устал от жирного, жадного и неповоротливого online-only
#hoppscotch #yaak #bruno #api #tauri #postman
API клиентов случилась почти что революцияВышел в open source
Yaak (React, Tauri), релизнулся и активно развивается вполне достойный Bruno (Next.js, Tauri) и наконец-то появилась десктопная версия Hoppscotch (Vue 3, Tauri). Hoppscotch пока в альфа версии, но вполне хорошо работает и решены проблемы с прокси для запросов. Дистрибутив занимает всего 10Мб (у Yaak 120Mb, у Bruno - 40Mb). На скриншоте, сколько они отъедают памяти в холостом режиме. Ну и просто какой-то бенефис Tauri.Yaak и Bruno полностью оффлайновые, поэтому их UI работает очень быстро, Hoppscotch синхронизирует данные в облаке, поэтому есть небольшая задержка, но в целом хорошо.По функционалу с большим отрывом лидирует
Hoppscotch, за ним - BrunoМир устал от жирного, жадного и неповоротливого online-only
Postman-a. Попробуйте эти клиенты и забудьте Postman как страшный сон.#hoppscotch #yaak #bruno #api #tauri #postman
13 способов исправить ошибки в Git
https://gitprotect.io/blog/git-undo-13-ways-to-undo-mistakes-in-git/
https://gitprotect.io/blog/git-undo-13-ways-to-undo-mistakes-in-git/
Blog | GitProtect.io
Git Undo: 13 Ways to Undo Mistakes in Git - Blog | GitProtect.io
In the words of American motivational writer William Arthur Ward “to make mistakes is human; to stumble is commonplace; to be able to laugh at yourself is maturity”. Not all mistakes in life are easy to recover from, but the main goal of technology development…