В первой части цикла мы разобрались, зачем вообще нужен Capacitor и почему он стал адекватным выбором для кроссплатформенной разработки.Теперь переходим к самому болезненному и интересному этапу: миграции уже существующего веб-приложения.ОглавлениеПреимущества перехода на Capacitor для существующего проектаНедостатки и ограниченияПример миграции старого React + Webpack проектаЧто делать, если проект использует SSR (Next.js)Настройка Android StudioНастройка XcodeМинимальная сборка под AndroidМин…
2026 год на дворе. Нейросети уже пишут музыку, рисуют картины, сочиняют сценарии и даже спорят с вами в комментариях.А вы всё ещё вручную переписываете for на list comprehension? Пора признать: кодинг тоже изменился. Теперь ваш главный навык – не только знать синтаксис, но и уметь чётко и ясно объяснять задачу тому самому ИИ-напарнику, который уже ждёт в соседней вкладке.Но как объяснить, чтобы не получилось “ну ты понял”? Как заставить модель генерировать идиоматичный, чистый и работающий код …
maneto solverМечта об идеальном двигателеМне кажется, я знаю, как должен быть устроен идеальный электродвигатель. Но чтобы это доказать, нужен инструмент.Существующий софт убивал все желание творить:Ansys Maxwell - мощный, но тяжелый и часто просто отказывается запускаться.FEMM - быстрый, но его интерфейс - пример того, как не надо делать UI в 21 веке.SimScale - удобно, но медленно, и бесплатные лимиты кончаются слишком быстро.За зимние каникулы (плюс пара дней) мы написали свой солвер.Почти ве…
Недостаток знаний часто подталкивает людей к чрезмерно сложным решениям, и рано или поздно это отражается на производительности.Возьмем content-visibility: auto. Он дает тот же эффект, что и React-Window, но без единой строчки JS и без увеличения размера сборки. Аналогичная ситуация с современными единицами высоты окна (dvh, svh, lvh): наконец-то приведена в порядок "мобильная" высота, которую годами пытались компенсировать через window.innerHeight.Обе технологии в 2024 году получили бо…
В JavaScript есть уникальная особенность, переменную или функцию можно использовать по коду выше, её объявление:greeting() function greeting() { console.log('Привет Васятка!') }И это не вызовет ошибок! Такое необычное поведения языка, обусловлено механизмом всплытия (бурж: hoisting), который мы подробно разберём в данной статье.Механика всплытияВсплытие работает так: на стадии компиляции кода, все переменные и функции регистрируются в начале своих областей видимости. Всплывают они …
Привет, Хабр! (И тебе, случайный читатель, который думает, что “код - это магия”, а процессор - маленький гномик, который внутри ноутбука читает for i in range(10) и послушно бегает кругами.)Сегодня разберёмся с вопросом, который в какой-то момент приходит в голову каждому разработчику (пока его не вытеснил дедлайн):Как компьютер "читает" Python, 1С или любой другой язык, если понимает только 0 и 1? И почему идеальный код порой превращается в "segmentation fault", "Неопредел…
Вновь здравствуйте, снова я — Дмитрий, React-разработчик. Все мы видели с вами вот такие карты, именуемые картойдами в данном случае — карта России, я взял первую попавшуюся из интернета для примера.И вот возник вопрос, как такое сделать, и сделать без использования библиотек? А давайте попробуем! В этой статье я покажу, как сделать интерактивную карту России на React с плитками, поддержкой drag & drop и масштабированием, без внешних библиотек.Это будет базовый набросок React + JS для взаим…
Команда JavaScript for Devs подготовила перевод исследования о новой технике кликджекинга, которая использует SVG-фильтры как полноценную среду выполнения логики. Автор показывает, как с их помощью читать пиксели, строить логические схемы, реализовывать многошаговые атаки и даже эксфильтрировать данные через QR-коды — включая реальный кейс атаки на Google Docs.Кликджекинг — это классическая атака, суть которой заключается в том, что поверх страницы размещается iframe с другим сайтом, чтобы обма…
В своей прошлой статье я рассмотрел, как работает Dependency Injection в Ангуляре, но остался один интересный вопрос, как Ангуляр находит и резолвит сервисы в иерархиях почти моментально? Чтобы понять, как Angular находит сервисы в иерархии инжекторов так быстро, нужно заглянуть под капот Ivy. Главная оптимизация здесь переход от объектной модели (View Engine) к структуре плоских массивов и битовых масок.Структуры данных: LView и TViewПервая и главная оптимизация Ivy использование паттерна Flyw…