ru
Feedback
Android разработка

Android разработка

Открыть в Telegram
4 861
Подписчики
Нет данных24 часа
+117 дней
+430 день

Загрузка данных...

Привлечение подписчиков
август '26
август '26
+59
в 34 каналах
июль '26
+46
в 42 каналах
Get PRO
июнь '26
+29
в 0 каналах
Get PRO
май '26
+21
в 1 каналах
Get PRO
апрель '26
+29
в 0 каналах
Get PRO
март '26
+37
в 0 каналах
Get PRO
февраль '26
+21
в 0 каналах
Get PRO
январь '26
+43
в 0 каналах
Get PRO
декабрь '25
+46
в 0 каналах
Get PRO
ноябрь '25
+104
в 43 каналах
Get PRO
октябрь '25
+80
в 14 каналах
Get PRO
сентябрь '25
+97
в 37 каналах
Get PRO
август '25
+171
в 2 каналах
Get PRO
июль '25
+245
в 57 каналах
Get PRO
июнь '25
+195
в 59 каналах
Get PRO
май '25
+83
в 0 каналах
Get PRO
апрель '25
+101
в 27 каналах
Get PRO
март '25
+70
в 2 каналах
Get PRO
февраль '25
+140
в 42 каналах
Get PRO
январь '25
+142
в 44 каналах
Get PRO
декабрь '24
+224
в 43 каналах
Get PRO
ноябрь '24
+143
в 53 каналах
Get PRO
октябрь '24
+338
в 55 каналах
Get PRO
сентябрь '24
+339
в 198 каналах
Get PRO
август '24
+254
в 40 каналах
Get PRO
июль '24
+324
в 50 каналах
Get PRO
июнь '24
+397
в 57 каналах
Get PRO
май '24
+217
в 37 каналах
Get PRO
апрель '24
+326
в 47 каналах
Get PRO
март '24
+243
в 22 каналах
Get PRO
февраль '24
+131
в 1 каналах
Get PRO
январь '24
+253
в 43 каналах
Get PRO
декабрь '23
+130
в 39 каналах
Get PRO
ноябрь '23
+73
в 31 каналах
Get PRO
октябрь '23
+114
в 1 каналах
Get PRO
сентябрь '23
+178
в 0 каналах
Get PRO
август '23
+2 019
в 0 каналах
Get PRO
июль '23
+611
в 0 каналах
Get PRO
июнь '23
+52
в 0 каналах
Get PRO
май '23
+548
в 0 каналах
Get PRO
апрель '23
+49
в 0 каналах
Get PRO
март '23
+67
в 0 каналах
Get PRO
февраль '23
+73
в 0 каналах
Get PRO
январь '23
+177
в 0 каналах
Get PRO
декабрь '22
+244
в 0 каналах
Get PRO
ноябрь '22
+151
в 0 каналах
Get PRO
октябрь '22
+1 281
в 0 каналах
Get PRO
сентябрь '22
+93
в 0 каналах
Get PRO
август '22
+67
в 0 каналах
Get PRO
июль '22
+135
в 0 каналах
Get PRO
июнь '22
+780
в 0 каналах
Get PRO
май '22
+1 206
в 0 каналах
Дата
Привлечение подписчиков
Упоминания
Каналы
26 августа+3
25 августа+2
24 августа+6
23 августа+9
22 августа+7
21 августа0
20 августа0
19 августа+2
18 августа+1
17 августа+3
16 августа0
15 августа+2
14 августа+2
13 августа+1
12 августа+1
11 августа+4
10 августа+2
09 августа+1
08 августа+1
07 августа+2
06 августа+2
05 августа+3
04 августа+3
03 августа0
02 августа+1
01 августа+1
Посты канала
✔️ Как работают SAM-conversions Single Abstract Method (SAM) интерфейсы — это интерфейсы только с одним абстрактным методом (функциональные интерфейсы). Kotlin поддерживает соглашение SAM — автоматическую конвертацию функций и lambda между Kotlin и Java. SAM-conversions позволяют использовать Java-интерфейсы с единственным абстрактным методом в Kotlin, как если бы это были функциональные типы. В Kotlin вы можете использовать такие интерфейсы для создания лямбда-выражений без явного определения функционального типа. При использовании интерфейса с единственным абстрактным методом в качестве функционального интерфейса в Java, вы можете передавать его экземпляры вместо лямбда-выражений. Это тоже возможно в Kotlin, но на самом деле Kotlin предоставляет более простой синтаксис для этого. Когда вам нужно использовать функциональный интерфейс в Kotlin, вы можете передать lambda-выражение, которое соответствует сигнатуре единственного метода интерфейса, вместо экземпляра интерфейса. Компилятор сам преобразует лямбда-выражение в экземпляр интерфейса, используя функцию-расширение метода invoke интерфейса. Пример:

interface OnClickListener {
    fun onClick(view: View)
}

class Button {
    fun setOnClickListener(listener: OnClickListener) {
        // ...
    }
}

val button = Button()
button.setOnClickListener { view -> 
    // обработка нажатия кнопки
}
В этом примере мы определяем интерфейс OnClickListener с единственным абстрактным методом onClick. Затем мы создаем класс Button, который может иметь слушатель, реализующий данный интерфейс. После этого мы создаем экземпляр Button и передаем лямбда-выражение с соответствующей сигнатурой в качестве слушателя. Компилятор автоматически преобразует это лямбда-выражение в экземпляр интерфейса OnClickListener, используя функцию-расширение invoke интерфейса. #буст #JuniorKit #Kotlin

2
🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку Окружение решает больше, чем кажется. Собрал папки и каналы, где можн
🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку Окружение решает больше, чем кажется. Собрал папки и каналы, где можно быстрее влиться в нужное направление, следить за трендами и не вариться в своём пузыре. AI: t.me/ai_machinelearning_big_data Python: t.me/pythonl Linux: t.me/linuxacademiya Хакинг: t.me/linuxkalii DevOps: t.me/DevOPSitsec Docker: https://t.me/+90Z5TAyfuNU5YmRi Golang: t.me/Golang_google Rust: t.me/rust_code C++: t.me/cpluspluc C#: t.me/csharp_1001_notes Java: t.me/javatg JavaScript: t.me/javascriptv React: t.me/react_tg Frontend: t.me/front PHP: t.me/phpshka Android: t.me/android_its Мобильная разработка: t.me/mobdevelop Базы данных: t.me/sqlhub Data Science: t.me/data_analysis_ml Big Data: t.me/bigdatai Математика: t.me/data_math Физика: t.me/fizmat Kubernetes: t.me/kubernetc GameDev: https://t.me/gamedev Haskell: t.me/haskell_tg Собеседования и карьера: DS собеседования: t.me/machinelearning_interview Python собеседования: t.me/python_job_interview Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy Папка Frontend: https://t.me/addlist/mzMMG3RPZhY2M2Iy Полезное сверху: ИТ-мемы: t.me/memes_prog Английский для программистов: t.me/english_forprogrammers ИИ и технологии: t.me/vistehno 954 ГБ open-source курсов: https://t.me/+rKBQEMccAA01MTcy ИТ-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy Max Ai: https://max.ru/ai_machinelearning_big_data Max python: https://max.ru/pythonl ТЕХНО: https://max.ru/vistehno Max Go: https://max.ru/Golang_google Max Linux: https://max.ru/linuxkalii Devops: https://max.ru/DevOPSitsec C#: https://max.ru/csharp_ci C++: https://max.ru/cpluspluc SQL: https://max.ru/sqlhub Java: https://max.ru/javatg Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.
336
3
✔️ Апдейт ChatGPT: изолированный контекст в Projects, тесты для проверки знаний и правки для Android У проектов появился пере
✔️ Апдейт ChatGPT: изолированный контекст в Projects, тесты для проверки знаний и правки для Android У проектов появился переключатель контекста - модель может брать общую память или работать только с тем, что загружено внутрь проекта, игнорируя историю остальных чатов. Пересоздавать проект для этого не нужно. Проекты с общим доступом работают только во втором режиме. Пользователи платных тарифов стали видеть на стартовом экране персональные подсказки, которые собираются из прошлых чатов и истории использования инструментов. Бесплатным и образовательным аккаунтам добавили генерацию тестов для самопроверки. В приложении для Android починили сброс фокуса при подключении физической клавиатуры, а кнопка голосового ввода больше не пропадает после того, как прикрепишь файл. @ai_machinelearning_big_data #news #ai #ml
614
4
💡 Android/Kotlin: не перезапускайте `Flow` после каждого поворота экрана Частая ошибка в ViewModel: val uiState = repository.observeData() .stateIn( scope = viewModelScope, started = SharingStarted.WhileSubscribed(), initialValue = UiState.Loading ) У WhileSubscribed() тайм-аут по умолчанию равен нулю. Когда Activity пересоздаётся при повороте экрана, подписчик исчезает, upstream-поток сразу останавливается, а затем запускается заново. Это может повторно инициировать запросы, чтение базы или тяжёлые вычисления. Добавьте небольшой период ожидания: val uiState = repository.observeData() .stateIn( scope = viewModelScope, started = SharingStarted.WhileSubscribed(5_000), initialValue = UiState.Loading ) Теперь поток продолжит работать ещё пять секунд после исчезновения последнего подписчика. Этого обычно достаточно, чтобы новая Activity успела подключиться после изменения конфигурации. В Compose собирайте состояние с учётом жизненного цикла: val uiState by viewModel.uiState.collectAsStateWithLifecycle() Получается полезный баланс: - поворот экрана не перезапускает весь pipeline; - при реальном уходе со страницы поток остановится; - ViewModel не тратит ресурсы без активного интерфейса. 5_000 - не магическое значение. Для дорогого подключения его можно увеличить, а для быстрого локального потока - уменьшить. #Android #Kotlin #StateFlow #JetpackCompose
1 040
5
Лето, ИТ-Пикник и музыка известных артистов уже через несколько дней! 8 августа в Коломенском пройдет ИТ-Пикник. В программе
Лето, ИТ-Пикник и музыка известных артистов уже через несколько дней! 8 августа в Коломенском пройдет ИТ-Пикник. В программе — выступления проекта LAB Антона Беляева, IOWA, Cream Soda, Pompeya, мартина и Совы. А днем — научпоп-лекции, дискуссии об ИИ и больших языковых моделях, мастер-классы и интерактивы. Полезные знакомства и развлечения тоже будут. Зарегистрироваться и узнать подробности можно на сайте мероприятия. В билет входит +1 — можно позвать близких и друзей. До встречи в месте притяжения ИТ.
860
6
🔥 JetBrains открыла исходники KotlinLLM - Kotlin-код, который дописывает себя во время выполнения KotlinLLM - исследовательс
🔥 JetBrains открыла исходники KotlinLLM - Kotlin-код, который дописывает себя во время выполнения KotlinLLM - исследовательский плагин для IntelliJ IDEA, который позволяет делегировать часть логики приложения LLM прямо во время запуска. Пример: val apiUrl: String = asLlm( "JetBrains/kotlin", hint = "Верни URL для GitHub Issues API" ) val service: GithubService = mockLlm() Когда приложение сталкивается с новым сценарием, плагин: 1. получает runtime-значения и типы; 2. просит LLM сгенерировать обновление; 3. компилирует новый код; 4. горячо перезагружает класс; 5. повторно выполняет исходный вызов. Главная идея - модель не вызывается постоянно. Успешное решение сохраняется как обычный Kotlin-файл, который можно проверить, изменить, закоммитить и запускать дальше уже без LLM. Сейчас доступны два основных механизма: - asLlm<F, T>() - преобразует значение одного типа в другой; - mockLlm<T>() - генерирует реализацию интерфейса и развивает её по мере появления новых сценариев. Пока это исследовательский прототип для Kotlin/JVM. Проект распространяется по лицензии Apache 2.0. GitHub: https://github.com/JetBrains-Research/kotlinllm-plugin
891
7
Google убрала последний барьер для перехода с iPhone на Android 😐 В Android 17 переезд с iPhone сделали максимально бесшовны
Google убрала последний барьер для перехода с iPhone на Android 😐 В Android 17 переезд с iPhone сделали максимально бесшовным: новый смартфон сам подтягивает фотографии, видео, сообщения, контакты, сохранённые сети Wi-Fi и даже eSIM. Без отдельных приложений, без танцев с бубном и без традиционного «что-то точно не перенесётся». На первый взгляд — просто обновление. На практике — это ломает один из последних якорей, которые держали людей в экосистеме Apple.  Кто с Pixel или новыми Samsung Z Flip8 / Z Fold8 — уже могут щупать. Остальным — подвезут позже.
1 018
8
⚡️ Локальные LLM стали серьёзнее: Bonsai 27B весит меньше 4 ГБ PrismML взяла модель класса 27B и сжала её через 1-bit quantiz+4
⚡️ Локальные LLM стали серьёзнее: Bonsai 27B весит меньше 4 ГБ PrismML взяла модель класса 27B и сжала её через 1-bit quantization: с примерно 54 ГБ до 3.8–3.9 ГБ. Заявляют, что при таком сжатии модель сохраняет около 90% качества оригинала. Это уже размер, с которым можно думать не только про серверы, но и про ноутбуки, браузер и смартфоны. Есть и более качественная версия Ternary Bonsai 27B: около 5.9 ГБ и до 95% качества baseline. Модель поддерживает мультимодальность, reasoning, кодинг, tool calling и агентные сценарии. То есть это не просто локальный чат, а база для локальных AI-агентов. Для Bonsai уже сделали WebGPU demo: кастомные kernel’ы позволяют запускать модель прямо в браузере. По словам Xenova, часть WebGPU-кода помогали писать Fable 5 и GPT 5.6 Sol. HF collection: https://huggingface.co/collections/prism-ml/bonsai-27b WebGPU demo: https://huggingface.co/spaces/webml-community/bonsai-webgpu-kernels @ai_machinelearning_big_data #llm #ai #ml
1 257
9
Open-source IDE на Qt6 для реверс-инжиниринга Android APK. https://github.com/vaibhavpandeyvpz/apkstudio
Open-source IDE на Qt6 для реверс-инжиниринга Android APK. https://github.com/vaibhavpandeyvpz/apkstudio
1 153
10
Java и инкапсуляция без магии Публичные поля выглядят удобно ровно до первого бага. account.balance = new BigDecimal("-100");
Java и инкапсуляция без магии Публичные поля выглядят удобно ровно до первого бага. account.balance = new BigDecimal("-100"); Код скомпилировался, объект изменился, бизнес-правило сломалось. Никакой проверки, никакого контроля, никакой гарантии, что BankAccount остаётся в корректном состоянии. Поэтому поле баланса не должно быть частью публичного API. Наружу можно отдать чтение, а изменение проводить через методы, где явно описаны правила: private BigDecimal balance = BigDecimal.ZERO; public BigDecimal getBalance() { return balance; } public void withdraw(BigDecimal amount) { if (amount.signum() <= 0) { throw new IllegalArgumentException("amount must be positive"); } if (balance.compareTo(amount) < 0) { throw new IllegalStateException("insufficient funds"); } balance = balance.subtract(amount); } Геттеры и сеттеры нужны не для того, чтобы механически обернуть каждое поле методами. Смысл инкапсуляции в том, чтобы объект сам защищал свои инварианты: баланс не уходит в минус, сумма списания валидна, состояние нельзя сломать прямым присваиванием. Если значение можно менять только по правилам, это уже не просто структура данных, а нормальная доменная модель.
918
11
В библиотеку ANGLE, используемую в Chrome и Android, добавлена поддержка Wayland Разработчики Chromium реализовали поддержку протокола Wayland библиотеке ANGLE. Библиотека осуществляет трансляцию вызовов OpenGL ES в графические API OpenGL, Direct3D 9/11 и Vulkan, и применяется в Chrome в качестве бэкенда для WebGL, а в Android для реализации OpenGL ES поверх Vulkan. Упоминается, что изменение позволит реализовать поддержку Wayland во фреймворке CEF (Chromium Embedded Framework), предназначенном для встраивания браузерного движка Chromium в приложения. Среди прочего, отсутствие поддержки Wayland в CEF не позволяет реализовать Wayland-версию клиента Steam. Подробнее: https://opennet.ru/65541/ https://opennet.me/65541/
1 034
12
🖥 Китайский разработчик выложил в открытый доступ целую автомобильную ОС, которая превращает любой Android-смартфон в беспро
🖥 Китайский разработчик выложил в открытый доступ целую автомобильную ОС, которая превращает любой Android-смартфон в беспроводной адаптер CarPlay. Она называется OkcarOS. Это кастомная прошивка Android 13, которая напрямую общается с экраном автомобиля по протоколу CarPlay. → Подключение за 4 секунды → Видео 60 fps, битрейт 25 Мбит/с → Без потерь аудио PCM → Разрешение 1:1 с экраном в автомобиле 100% с открытым исходным кодом. https://github.com/okcar-os/android
1 213
13
Google показала Android 17 - систему, где Gemini встраивают почти в каждый слой Android 17 выглядит не как обычное обновление+3
Google показала Android 17 - систему, где Gemini встраивают почти в каждый слой Android 17 выглядит не как обычное обновление с новыми иконками, а как попытка превратить смартфон в полноценного AI-ассистента. Что обещают внутри: - ИИ сможет взаимодействовать с приложениями от имени пользователя - система будет собирать автоматизации под конкретные задачи - появятся кастомные AI-виджеты - голосовой ввод научат чистить от пауз, мусора и слов-паразитов - Gemini Intelligence станет частью повседневных сценариев, а не отдельной кнопкой в приложении Одна из самых заметных фич - Screen Reactions. Она позволит одновременно записывать экран и себя, а потом накладывать реакцию поверх видео, комментариев или другого контента. По сути, встроенный инструмент для реактов и коротких роликов без стороннего софта. Отдельно Google анонсировала Googlebook - премиальные компьютеры под ChromeOS и глубокую интеграцию Gemini Intelligence. Похоже, Google больше не продаёт просто Android и ChromeOS. Она собирает экосистему, где ИИ становится стандартным интерфейсом между пользователем, приложениями и устройством.
1 637
14
🔍📱 Doorr: Android интерфейс для поиска с Prowlarr и Jackett Doorr — это мобильное приложение для Android, которое упрощает
🔍📱 Doorr: Android интерфейс для поиска с Prowlarr и Jackett Doorr — это мобильное приложение для Android, которое упрощает поиск контента через Prowlarr и Jackett. Удобный интерфейс и функциональные возможности делают его отличным инструментом для пользователей. 🚀Основные моменты: - Интуитивно понятный интерфейс для поиска - Поддержка Prowlarr и Jackett - Легкий доступ к файлам и настройкам 📌 GitHub: https://github.com/Lifailon/doorr
1 064
15
Tencent ужал переводчик до 440 мегабайт и сделал его умнее Google Translate Китайцы из Tencent выложили в открытый доступ мод+1
Tencent ужал переводчик до 440 мегабайт и сделал его умнее Google Translate Китайцы из Tencent выложили в открытый доступ модель Hy-MT1.5-1.8B-1.25bit, и это тот случай, когда длинное название скрывает по-настоящему любопытную штуку. Переводчик весит 440 мегабайт, целиком работает офлайн на телефоне, понимает 33 языка и при этом обгоняет Google Translate на стандартных бенчмарках. Главный фокус тут в квантовании. Обычно модель такого размера в FP16 занимает около 3,3 гигабайта, что для смартфона уже многовато. Tencent сжали её до 1,25 бита на вес, и в итоге получили файл в семь с половиной раз меньше оригинала. Что особенно приятно, это не привычная история «сжали и оно начало нести чушь». Точность не просела, а по сравнению с предыдущими подходами на 1,67 бита новая версия ещё и работает примерно на десять процентов быстрее. При своих скромных 1,8 миллиарда параметров модель умудряется тягаться с коммерческими API и даже с гигантами на 235 миллиардов. То есть на стандартных тестах перевода она играет в одной лиге с системами, которые в сотню раз тяжелее и крутятся в дата-центрах, а не у вас в кармане. Покрытие тоже не для галочки. 33 языка, 5 диалектов и 1056 направлений перевода, причём в список попали тибетский и монгольский. Это редкий случай, когда крупный игрок не ограничивается английским, испанским и парой ходовых европейских, а реально вкладывается в малые языки, которые обычно остаются за бортом коммерческих сервисов. В довесок Tencent напоминают, что их переводческий стек уже тридцать раз брал первые места на международных соревнованиях по машинному переводу и стоит внутри продуктов компании. ЭТО боевая технология, которую просто решили отдать наружу. На Hugging Face лежит сама модель, на GitHub код, и есть готовый APK для Android, чтобы потрогать всё руками без танцев со сборкой. Если коротко, то идея «переводчик уровня Google прямо на телефоне без интернета и подписки» из разряда фантастики окончательно переехала в разряд скачал и пользуйся. 📲Demo APK (Android): https://huggingface.co/AngelSlim/Hy-MT1.5-1.8B-1.25bit-GGUF/resolve/main/Hy-MT-demo.apk 🤗Hugging Face:: https://huggingface.co/AngelSlim/Hy-MT1.5-1.8B-1.25bit 🔗GitHub: https://github.com/tencent/AngelSlim 📄Paper: https://arxiv.org/abs/2601.07892
1 356
16
⚡️ CORS в Spring Boot: не лечите это костылями на фронте Если frontend и backend живут на разных доменах или портах, браузер
⚡️ CORS в Spring Boot: не лечите это костылями на фронте Если frontend и backend живут на разных доменах или портах, браузер начнет резать запросы по CORS. Это не баг Spring Boot и не проблема React. Это нормальный механизм безопасности браузера. Правильный способ - настроить CORS на стороне backend. В Spring Boot это можно сделать глобально через WebMvcConfigurer: указать маршруты, разрешенные origins, HTTP-методы, заголовки и работу с credentials. Главное - не ставить бездумно * везде подряд, особенно если используете cookies, токены или allowCredentials(true). В проде лучше явно перечислять доверенные домены, например frontend-домен приложения. Такой подход дает централизованный контроль: вы один раз задаете политику CORS и не размазываете настройки по каждому контроллеру. Для Java backend-разработчика это базовая, но важная вещь: CORS должен быть частью архитектуры API, а не случайной правкой перед деплоем.
1 005
17
🦀 Google затащили Rust туда, где его реально ждали - прямо в cellular baseband у Pixel 10. Не в приложение, не в системный с
🦀 Google затащили Rust туда, где его реально ждали - прямо в cellular baseband у Pixel 10. Не в приложение, не в системный сервис и даже не в очередную утилиту, а в прошивку модема. Это уже совсем другой уровень. Первым шагом заменили DNS-парсер, который раньше был написан на C и регулярно оставался источником memory-safety проблем. Теперь там Rust на базе hickory-proto: bare-metal, no_std, FFI к существующим C-аллокаторам - все по-взрослому. И самое важное тут даже не сам DNS-парсер. Главное, что Google уже протащили Rust в build system baseband. А значит, это не разовая демонстрация, а начало нормальной поэтапной миграции. Вот так и выглядит реальное внедрение Rust в критическую инфраструктуру: без громких лозунгов, но с максимальной пользой. Сначала один опасный компонент, потом еще один, а дальше язык постепенно заходит в самые уязвимые части системы. Для всей индустрии это очень показательный кейс. Rust все чаще идет не в новые игрушечные проекты, а в старые и сложные куски железа, где цена ошибки слишком высокая. security.googleblog.com/2026/04/bringing-rust-to-pixel-baseband.html #Rust #RustLang #MemorySafety #EmbeddedSystems #Android
1 218
18
🔥 Одна аннотация, которая экономит тонны кода в Spring @RestController - это не просто удобство, а скрытая магия, про котору
🔥 Одна аннотация, которая экономит тонны кода в Spring @RestController - это не просто удобство, а скрытая магия, про которую многие забывают. Под капотом это комбинация @Controller + @ResponseBody . То есть тебе не нужно писать @ResponseBody в каждом методе - всё работает автоматически. • Меньше бойлерплейта • чище код • меньше шансов забыть и получить неожиданный результат Кажется мелочью, но на больших проектах это реально экономит время и нервы Если до сих пор используешь @Controller + @ResponseBody вручную - пора упрощать
1 076
19
Два брата запустили стартап на ИИ и делают $3 млн в день Самый быстрый путь к миллионам сейчас - ИИ. Без команды, без офиса,
Два брата запустили стартап на ИИ и делают $3 млн в день Самый быстрый путь к миллионам сейчас - ИИ. Без команды, без офиса, почти без кода руками. Medvi - телемед-сервис для похудения на GLP-1 препаратах. Его собрал Мэттью Галлахер прямо у себя дома в Лос-Анджелесе: $20 000 бюджета и всего 2 месяца на запуск. Дальше - интереснее. Почти всё делают нейросети: ChatGPT, Claude и Grok пишут код, собирают сайт, крутят рекламу и даже отвечают клиентам. Да, иногда ИИ косячит - путает цены, предлагает не то. Но экономика всё равно бьётся. Цифры выглядят как баг в реальности: 300 клиентов в первый месяц $401 млн за первый год прогноз — $1,8 млрд в этом году И самое безумное - в компании до сих пор всего два человека. Похоже, “маленькая команда” больше не ограничение, а новая суперсила. https://www.forbes.com/sites/josipamajic/2026/04/02/ai-and-20000-helped-one-man-build-a-18-billion-telehealth-startup/
1 287
20
🖥 Маленький, но мощный трюк для продакшена в Spring Boot. Если вы используете Hibernate, добавьте: spring.jpa.hibernate.ddl-
🖥 Маленький, но мощный трюк для продакшена в Spring Boot. Если вы используете Hibernate, добавьте: spring.jpa.hibernate.ddl-auto=validate Что это даёт: - Приложение проверяет, совпадает ли схема БД с entity - Если есть расхождения — сервис не запустится - Никаких случайных изменений структуры в продакшене Идеальный сценарий - использовать вместе с Flyway или Liquibase: spring.jpa.hibernate.ddl-auto=validate spring.flyway.enabled=true Что в итоге: - Все изменения БД — только через migration-скрипты - Fail fast, если схема и код не совпадают - Меньше сюрпризов после деплоя Это один из тех параметров, которые могут спасти продакшен от тихих и очень дорогих ошибок. #SpringBoot #JavaDev
1 004