Несколько часов назад вышел kotlin 2.1.0 и я решил вспомнить про давно анонсированную фичу k2, "explicit backing fields (явные резервные поля)". Получилось с первого раза запустить проект с этим новым представлением state'ов.
Только пред запуском надо:
1. Поднять версию kotlin до 2.0.0 и выше.
2. Включить K2 в IDE
"Settings -> Languages & Frameworks -> Kotlin: Check the "Enable K2 Kotlin Mode"
3. И разрешить использование "ExplicitBackingFields" прописав в \app\build.gradle.kts
Можно пользоваться!
Только пред запуском надо:
1. Поднять версию kotlin до 2.0.0 и выше.
2. Включить K2 в IDE
"Settings -> Languages & Frameworks -> Kotlin: Check the "Enable K2 Kotlin Mode"
3. И разрешить использование "ExplicitBackingFields" прописав в \app\build.gradle.kts
kotlin {
sourceSets.all {
languageSettings.enableLanguageFeature("ExplicitBackingFields")
}
}Можно пользоваться!
Привет, первый подписчик!
Попробовал значит свой первый Хакатон и понял, что идти в соло против команд по 4-6 человек и пытаться сделать всё и сразу - это ОЧЕНЬ НЕУДАЧНЫЙ первый опыт.
Разбор ошибок...
1. Первый день я тупо потратил на планирование, составление моделей, подбор стека, инициализацию проекта, когда это можно было сделать все заранее, потому что я знал какую тему буду реализовывать.
2. Когда всегда писал нативно под android, и хочешь за 48 часов сделать проект на KMP и хоть каким-то настоящим backend'ом, то это гарантированный провал.
3. Надо делать то, что умеешь, а не что знаешь в теории, иначе потратишь кучу времени на разбор множества микромоментов, которым учит только практика. Например, кто знал, что аннотация Preview напрочь не будет работать в CMP, когда JetBrains показывал у себя в статьях что все работает.
4. Ну и самое важное - это не пытаться сделать красивый проект, а надо максимально быстро вкладывать свои знания и показать максимум своих возможностей. То есть не сидим, вспоминая все паттерны, антипаттерны и принципы разработки.
KMP очень мощный инструмент, который реально даёт возможность за короткое время сделать одному разработчику большие количество задач, но при этом сложный и требует какого-то опыта. Ktor уже показал мне, каким он бывает крутым со стороны клиента, но теперь я обязательно сделаю на нём бэк для этого проекта, хоть уже и не в рамках хакатона.
Попробовал значит свой первый Хакатон и понял, что идти в соло против команд по 4-6 человек и пытаться сделать всё и сразу - это ОЧЕНЬ НЕУДАЧНЫЙ первый опыт.
Разбор ошибок...
1. Первый день я тупо потратил на планирование, составление моделей, подбор стека, инициализацию проекта, когда это можно было сделать все заранее, потому что я знал какую тему буду реализовывать.
2. Когда всегда писал нативно под android, и хочешь за 48 часов сделать проект на KMP и хоть каким-то настоящим backend'ом, то это гарантированный провал.
3. Надо делать то, что умеешь, а не что знаешь в теории, иначе потратишь кучу времени на разбор множества микромоментов, которым учит только практика. Например, кто знал, что аннотация Preview напрочь не будет работать в CMP, когда JetBrains показывал у себя в статьях что все работает.
4. Ну и самое важное - это не пытаться сделать красивый проект, а надо максимально быстро вкладывать свои знания и показать максимум своих возможностей. То есть не сидим, вспоминая все паттерны, антипаттерны и принципы разработки.
KMP очень мощный инструмент, который реально даёт возможность за короткое время сделать одному разработчику большие количество задач, но при этом сложный и требует какого-то опыта. Ktor уже показал мне, каким он бывает крутым со стороны клиента, но теперь я обязательно сделаю на нём бэк для этого проекта, хоть уже и не в рамках хакатона.
⚡1
Благодаря недавнему часовому падению рунета, узнал про такую классную утилиту, как Uptime Kuma
Развернул на своем сервере в России web-приложение через контейнер, за пол часа добавил интересные (и не очень) мне сайты и подключил уведомление в тг бота в случае "инцидентов"
Наконец-то не придется самому постоянно следить за работой другого сервера, где развернут сервис на 3 буквы для шифрования трафика. Если завалялся лишний сервер, то однозначно рекомендую
Развернул на своем сервере в России web-приложение через контейнер, за пол часа добавил интересные (и не очень) мне сайты и подключил уведомление в тг бота в случае "инцидентов"
Наконец-то не придется самому постоянно следить за работой другого сервера, где развернут сервис на 3 буквы для шифрования трафика. Если завалялся лишний сервер, то однозначно рекомендую
🔥1
Зашел сейчас в GitHub и увидел на главной странице с лентой последних действий новое окошко Copilot от GitHub. Вроде как он раньше был только по какой-то подписке, а теперь вроде бесплатный и даже без лимитов. Имеет полный доступ к аккаунту и все действия выполняет с помощью API GitHub. Настроен только на ответы связанные с разработкой.
Наверное, полезная штука для тех, кто не очень ориентируется в интерфейсе GitHub. Чем-то напомнило бота Макс с ГосУслуг, только этот реально работает и будет полезен.
Наверное, полезная штука для тех, кто не очень ориентируется в интерфейсе GitHub. Чем-то напомнило бота Макс с ГосУслуг, только этот реально работает и будет полезен.
🔥1
Developer Box
Зашел сейчас в GitHub и увидел на главной странице с лентой последних действий новое окошко Copilot от GitHub. Вроде как он раньше был только по какой-то подписке, а теперь вроде бесплатный и даже без лимитов. Имеет полный доступ к аккаунту и все действия…
Все таки ограничения есть на запросы...
0:1 в пользу бота Макса
0:1 в пользу бота Макса
😭3
Сегодня 10 лет исполняется IDE Android Studio. Благодаря ей я узнал, что среды для разработки бывают удобными, после чего пошел знакомиться с другими продуктами JetBrains и целиком удалил Visual Studio.
Успел попробовать целый зоопарк версий с названием зверушек, начиная с Dolphin в 2022 году.
Радует, что в последних версиях Google и JetBrains решили начать исправлять баги, а не только их добавлять.
Успел попробовать целый зоопарк версий с названием зверушек, начиная с Dolphin в 2022 году.
Радует, что в последних версиях Google и JetBrains решили начать исправлять баги, а не только их добавлять.
🔥1
Недавно случайно обнаружил, что Google сняла жесткий геоблок с Gemini и теперь им можно без проблем пользоваться в России с VPN. Наконец-то решил проверить его в написании документаций и пишет он их отлично. Основывается на контексте происходящего в проекте.
p.s а код на kotlin для android еще ни одна языковая модель не способна писать, даже для самых простых вещей
p.s а код на kotlin для android еще ни одна языковая модель не способна писать, даже для самых простых вещей
⚡1
Продолжаем тему языковых моделей...
Сейчас резко стала популярна китайская моделька от компании DeepSeek. На первый взгляд, один в один ChatGPT ни больше ни меньше. По графикам сравнения точность ответов почти как у ChatGPT-o1.
Такое ощущение, что китайцы полностьюукрали разработки OpenAi и сделали открытыми. API полностью обратно совместимо с ChatGPT. То есть там где сейчас работает разработка OpenAi, можно в одно действие заменить разработкой DeepSeek.
Я же могу сказать, что сейчас многие модельки могут отвечать красиво и правдоподобно, но чтобы понять какая из них реально работает, надо самому шарить в теме задаваемого запроса.
Постараюсь в ближайшее время не публиковать посты по этой теме
Сейчас резко стала популярна китайская моделька от компании DeepSeek. На первый взгляд, один в один ChatGPT ни больше ни меньше. По графикам сравнения точность ответов почти как у ChatGPT-o1.
Такое ощущение, что китайцы полностью
Я же могу сказать, что сейчас многие модельки могут отвечать красиво и правдоподобно, но чтобы понять какая из них реально работает, надо самому шарить в теме задаваемого запроса.
🔥2⚡1
Разработчики Koin (библиотека для внедрения зависимостей) выпустили два дня назад из ограниченного доступа плагин для визуализации зависимостей в проекте. Показывает не так подробно как у Hilt, но уже проще определять что забыл подключить.
Немного о канале:
Немного о канале:
Да, посты редкие, но это не значит, что я меньше стал программировать или нет ничего нового и интересного. Просто не знаю как преподнести информацию, чтобы она не была слишком узконаправленной. Также на меня подписалось много ботов по неизвестной мне причине.
Если ты не бот, то поставь реакцию
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Еще с октября 2024 начали выходить альфа версии обновленной CameraX. Теперь в Compose не надо работать с камерой через AndroidView, который представлял View, а применять новое API напрямую. В январе 2025 Google выпустила несколько полезных статей по работе с обновленной библиотекой камеры:
1. Создание базового видоискателя
2. Создание автофокуса и фокуса по нажатию
3. Реализация поиска лица/лиц (видео в закрепе)
4. Работа с видоискателем для складных устройств (не нашел)
Вот как раньше приходилось внедрять логику камеры на примере моего дипломного проекта в ВУЗе
Вот проект реализованный по статьям выше
1. Создание базового видоискателя
2. Создание автофокуса и фокуса по нажатию
3. Реализация поиска лица/лиц (видео в закрепе)
4. Работа с видоискателем для складных устройств (не нашел)
Вот как раньше приходилось внедрять логику камеры на примере моего дипломного проекта в ВУЗе
Вот проект реализованный по статьям выше
Официальный канал Kotlin предлагает кешировать сборки, чтобы после перезапуска проекта сборка совершалась быстрее
Не очень понимаю о чем речь, так как по ощущениям Gradle и так кеширует все подряд и комментарии под постом Kotlin полностью это подтверждают
Не очень понимаю о чем речь, так как по ощущениям Gradle и так кеширует все подряд и комментарии под постом Kotlin полностью это подтверждают
Developer Box
Официальный канал Kotlin предлагает кешировать сборки, чтобы после перезапуска проекта сборка совершалась быстрее Не очень понимаю о чем речь, так как по ощущениям Gradle и так кеширует все подряд и комментарии под постом Kotlin полностью это подтверждают
Примерно раз в 3 месяца целиком удаляю папку
Хочу попробовать отключать кеширование во всех своих проектах
и посмотреть насколько сильно будет заполняться папка
caches в .gradleХочу попробовать отключать кеширование во всех своих проектах
org.gradle.caching=false
и посмотреть насколько сильно будет заполняться папка
.gradle/cachesЭто не роадмап или рекомендации по изучению мобильной разработки под android. Просто хочу поделиться с источниками информации которые я нашел за время нахождения в области и выделить особенно понравившийся.
Если не считать курса в университете, то начинал я с YT канала NecoRu с прекрасным русскоговорящим автором из Испании. Сейчас он не так активно публикует видео, но когда-то благодаря ему я понял азы работы android приложений, работа с сетью, базами данных и прочими нужными вещами около мобильной разработки. UI начинал создавать я с языка разметки XML и потом перешел на Compose у него же.
Через 1-2 месяца мне перестало хватать материала NecoRu и я случайно наткнулся на бриллиант мобильной разработки Philipp Lackner, автор канала из Германии с прекрасным английским, который не сложно воспринимать . Уже у него я стал активно повторять и изучать все его лучшие практики для разных проблем. Позже наткнулся на еще одного хорошего автора видео по мобильной разработке
Ahmed Guedmioui. У него я впервые попробовал создавать крупные проекты и делать их с наилучшей архитектурой.
Параллельно начал читать статьи Хабр и Medium от разных авторов. На классном сайте с переводом документации Kotlin kotlinlang.ru узнал о великолепной книге "Kotlin в Действии" у которой в конце 2024 вышло второе издание.
Ну и конечно, куда же без телеграм каналов:
@android_broadcast (Один из серии каналов про мобильную разработку легенды сферы, Кирилла Розова)
@kotlin_lang (Очень большой чат с большим количеством веток по разным технологиям, где обязательно помогут)
@kotlin_adept (Хороший блог мобильного разработчика из "Контур")
Так же не хочу упустить большую полезность курсов и интенсивов от компаний. Очень сильно бустят скилы, указывают на ошибки, которые раньше мог не замечать и расширяют кругозор развития. Тчоно могу порекомендовать для жителей Сибири школу Eltex.
Удачи!
Если не считать курса в университете, то начинал я с YT канала NecoRu с прекрасным русскоговорящим автором из Испании. Сейчас он не так активно публикует видео, но когда-то благодаря ему я понял азы работы android приложений, работа с сетью, базами данных и прочими нужными вещами около мобильной разработки. UI начинал создавать я с языка разметки XML и потом перешел на Compose у него же.
Через 1-2 месяца мне перестало хватать материала NecoRu и я случайно наткнулся на бриллиант мобильной разработки Philipp Lackner, автор канала из Германии с прекрасным английским, который не сложно воспринимать . Уже у него я стал активно повторять и изучать все его лучшие практики для разных проблем. Позже наткнулся на еще одного хорошего автора видео по мобильной разработке
Ahmed Guedmioui. У него я впервые попробовал создавать крупные проекты и делать их с наилучшей архитектурой.
Параллельно начал читать статьи Хабр и Medium от разных авторов. На классном сайте с переводом документации Kotlin kotlinlang.ru узнал о великолепной книге "Kotlin в Действии" у которой в конце 2024 вышло второе издание.
Ну и конечно, куда же без телеграм каналов:
@android_broadcast (Один из серии каналов про мобильную разработку легенды сферы, Кирилла Розова)
@kotlin_lang (Очень большой чат с большим количеством веток по разным технологиям, где обязательно помогут)
@kotlin_adept (Хороший блог мобильного разработчика из "Контур")
Так же не хочу упустить большую полезность курсов и интенсивов от компаний. Очень сильно бустят скилы, указывают на ошибки, которые раньше мог не замечать и расширяют кругозор развития. Тчоно могу порекомендовать для жителей Сибири школу Eltex.
Удачи!
⚡1🔥1
Base URL или домен к которому надо обращаться чтобы получить доступ к API (https://example.com). Наверное многие его просто помещают в
В
Теперь собираем проект и получаем в любом месте модуля строку из base URL с помощью
object Constants или сразу в companion object в классе где у вас реализована работа с API. Но что делать если есть тестовый сервер, который должен использоваться только в дебажной сборке? Есть красивое решение - добавить base URL в сборщик, а именно в Gradle.В
build.gradle.kts добавляем debug и buildConfig выставляем в true.android {
...
buildTypes {
debug{
buildConfigField("String", "BASE_URL", "\"https://test.example.com/\"")
}
release {
...
buildConfigField("String", "BASE_URL", "\"https://example.com/\"")
}
}
...
buildFeatures {
buildConfig = true
...
}
}Теперь собираем проект и получаем в любом месте модуля строку из base URL с помощью
BuildConfig.BASE_URL
⚡2🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Отойдем маленько от разработки и снова окунемся в мир нейросетей
В этот раз расскажу как можно воспользоваться новой Gemini 2.0 Flash с редактором фотографий (Больше об обновлении и фишках в статье rozetked)
Воспользоваться новым функционалом на момент публикации поста, можно только в Google Ai Studio
1. Включаем VPN. 2. Заходим в Ai Studio 3. Aвторизируемся с помощью Google аккаунта и открываем новый чат
Теперь в меню справа в окне чата находим раздел Model, в выпадающем меню находим и выбираем Gemini 2.0 Flash Experimental. Готово! Теперь можем отправлять фото и прописывать действия которые надо совершить (желательно на английском)
Для генерации фото с уточками был использован запрос "Add two more ducks in suits and sunglasses"
В этот раз расскажу как можно воспользоваться новой Gemini 2.0 Flash с редактором фотографий (Больше об обновлении и фишках в статье rozetked)
Воспользоваться новым функционалом на момент публикации поста, можно только в Google Ai Studio
1. Включаем VPN. 2. Заходим в Ai Studio 3. Aвторизируемся с помощью Google аккаунта и открываем новый чат
Раньше были проблемы с доступом, если Google понимал, что вы находитесь в стране в которой недоступен Gemini, даже при смене IP-адреса. Сейчас такой проблемы быть не должно
Теперь в меню справа в окне чата находим раздел Model, в выпадающем меню находим и выбираем Gemini 2.0 Flash Experimental. Готово! Теперь можем отправлять фото и прописывать действия которые надо совершить (желательно на английском)
Для генерации фото с уточками был использован запрос "Add two more ducks in suits and sunglasses"
⚡4
Уже давно в Android Studio стоит плагин для Preview в KMP и сколько раз я делал UI на Compose, он ни разу не срабатывал и приходилось делать все представляя в голове и собирать на устройстве. Но сегодня обновил Canary (тестовая сборка) до Narwhal | 2025.1.1 и у меня случайно заработал предпросмотор
UPD: У меня плагин для KMP собирает Preview быстрее, чем встроенный в Android Studio для Android
опустим момент, что у встроенного Preview больше возможностей
UPD: У меня плагин для KMP собирает Preview быстрее, чем встроенный в Android Studio для Android
опустим момент, что у встроенного Preview больше возможностей
⚡2
Доброго времени суток!
Есть у меня один учебный проект, который хочется развить хоть во что-то юзабельное для обычных пользователей. Связан он с внедрением данных в файлы, в моем случае внедрение текста в изображение - называется стеганографией. Изначально проект был создан только под Desktop (Windows, Linux, MacOS или JWM), но по мере углубления в область, желание запускать его и на Android только возрастало. Я решил попробовать найти лучший способ расширить проект под другие платформы, но не нашел ничего лучше, чем самому добавить необходимые зависимости, файлы, директории, модули. Вот коммит со всеми изменениями, которые пришлось сделать для запуска проекта на android. Также на сайте JetBrains есть всевозможные уроки и примеры с миграцией на KMP.
Думаю совсем скоро увидим функционал для работы с разными платформами в IntelliJ IDEA и Android Studio. Благо уже была новость, что не будет отдельного IDE для KMP разработки.
Есть у меня один учебный проект, который хочется развить хоть во что-то юзабельное для обычных пользователей. Связан он с внедрением данных в файлы, в моем случае внедрение текста в изображение - называется стеганографией. Изначально проект был создан только под Desktop (Windows, Linux, MacOS или JWM), но по мере углубления в область, желание запускать его и на Android только возрастало. Я решил попробовать найти лучший способ расширить проект под другие платформы, но не нашел ничего лучше, чем самому добавить необходимые зависимости, файлы, директории, модули. Вот коммит со всеми изменениями, которые пришлось сделать для запуска проекта на android. Также на сайте JetBrains есть всевозможные уроки и примеры с миграцией на KMP.
Думаю совсем скоро увидим функционал для работы с разными платформами в IntelliJ IDEA и Android Studio. Благо уже была новость, что не будет отдельного IDE для KMP разработки.
⚡1🔥1