Изучайте рефакторинга в IDE для повышения качества кода
У JetBrains вышел новый курс "Введение в рефакторинг кода с помощью IDE в Kotlin". Курс научит вас использовать IDE для форматирования и изменения вашего кода, чтобы он стал более читабельным и с меньшей вероятностью выдавал ошибки. Это отличный выбор для начинающих и развивающихся программистов, желающих писать профессиональный код.
Курс состоит из восьми разделов, в которых вы сможете изучить и применить различные техники рефакторинга. Вы узнаете о лучших практиках по стилю и форматированию кода, о том, как выявлять и избегать распространенных проблем, а также о том, как эффективнее использовать IDE для повышения качества кода.
Некоторые другие темы, которые вы можете встретить в курсе:
• Соглашения об именовании и правила стиля
• Root рефакторинг против floss рефакторинга
• Методы автоматического рефакторинга для перемещения, извлечения и инлайнинга кода
• Рефакторинг в соответствии с паттернами проектирования
Курс: https://plugins.jetbrains.com/plugin/23048-introduction-to-ide-code-refactoring-in-kotlin
Платформа: Android/Kotlin
У JetBrains вышел новый курс "Введение в рефакторинг кода с помощью IDE в Kotlin". Курс научит вас использовать IDE для форматирования и изменения вашего кода, чтобы он стал более читабельным и с меньшей вероятностью выдавал ошибки. Это отличный выбор для начинающих и развивающихся программистов, желающих писать профессиональный код.
Курс состоит из восьми разделов, в которых вы сможете изучить и применить различные техники рефакторинга. Вы узнаете о лучших практиках по стилю и форматированию кода, о том, как выявлять и избегать распространенных проблем, а также о том, как эффективнее использовать IDE для повышения качества кода.
Некоторые другие темы, которые вы можете встретить в курсе:
• Соглашения об именовании и правила стиля
• Root рефакторинг против floss рефакторинга
• Методы автоматического рефакторинга для перемещения, извлечения и инлайнинга кода
• Рефакторинг в соответствии с паттернами проектирования
Курс: https://plugins.jetbrains.com/plugin/23048-introduction-to-ide-code-refactoring-in-kotlin
Платформа: Android/Kotlin
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Spotify-KMP - пример приложения на Kotlin Multiplatform, которое повторяет архитектуру реального продукта. Работает в Android 21 и iOS 15, внутри Kotlin и Swift, Jetpack Compose и SwiftUI, MVVM, корутины + Flow, Ktor, SKIE, KMMBridge, Coil и Kingfisher, Kermit, Paging3, Multiplatform-Settings, Koin, Store и т.п.
Spotify-KMP на GitHub: https://github.com/AshuTyagi16/Spotify-KMP
Платформа: кроссплатформа
⭐️: 95
Spotify-KMP на GitHub: https://github.com/AshuTyagi16/Spotify-KMP
Платформа: кроссплатформа
⭐️: 95
Новая пятничная подборка - видео и подкасты за неделю:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Что вы посмотрели/послушали интересного про разработку? Киньте ссылку в комментарии.
🌐 AppFiles
•
(iOS Ru)
Мок-собеседование iOS-разработчика (все собесы)•
(iOS En)
Floating Tab Bar for macOS•
(iOS En)
SwiftData Debugging The Easy Way •
(iOS En)
Staging and Committing with Xcode•
(And Ru)
Как улучшить код функциональным подходом•
(And Ru)
Разбор кода Android-приложения фоторедактора Image Toolbox•
(And Ru)
TDD: реальная история внедрения в проект•
(And En)
App Performance Analysis with the Android Studio Profiler•
(And En)
The Top 3 State Management Mistakes On Android•
(Crs Ru)
Podlodka: Qt — кроссплатформенная разработка приложений под декстоп и не только•
(Crs En)
How to Make a Clean Architecture App with Kotlin and Compose Multiplatform•
(Dev Ru)
Как мобильные разработчики занимаются инфраструктурой•
(Dev Ru)
Плюс, работа с платежами и особенности разработки SDK•
(Dev Ru)
Как умирают продукты без дизайн аналитики•
(Dev En)
How to Get a Developer Job – Even in This Economy [Full Course]•
(Dsg En)
Figma Crash Course 2024Что вы посмотрели/послушали интересного про разработку? Киньте ссылку в комментарии.
🌐 AppFiles
AppTractor
Мок-собеседование iOS-разработчика
Mock Interview - это практическое тренировочное собеседование, которое отлично подготовит вас к реальному собеседованию.
❤1
YTDLnis - это бесплатный и открытый загрузчик видео/аудио с использованием yt-dlp для Android 6.0 и выше. Умеет работать более с 1000 сайтов, работать с плейлистами, по расписанию, скачивать сразу несколько записей сразу, обрезать видео по времени или по главам, внедрять субтитры и многое другое. Внутри Material You, MVVM, WorkManager.
YTDLnis на GitHub: https://github.com/deniscerri/ytdlnis
Платформа: Android
⭐️: 2K
YTDLnis на GitHub: https://github.com/deniscerri/ytdlnis
Платформа: Android
⭐️: 2K
👍1
LLMFarm - это приложение для iOS (16+) и macOS для работы с большими языковыми моделями (LLM). Оно позволяет загружать различные LLM с определенными параметрами. С помощью LLMFarm вы можете протестировать производительность различных LLM на iOS и macOS и найти наиболее подходящую модель для вашего проекта.
LLMFarm на GitHub: https://github.com/guinmoon/LLMFarm
Платформа: iOS
⭐️: 578
LLMFarm на GitHub: https://github.com/guinmoon/LLMFarm
Платформа: iOS
⭐️: 578
This media is not supported in your browser
VIEW IN TELEGRAM
Пишем интерактивный виджет
Виджеты в новом обличии появились в 2020 году вместе с выходом iOS 14 (HomeScreen widgets). За это время Apple выпустила больше семейств виджетов, а также добавила их на LockScreen в iPhone и iPad. Но интерактивность появилась впервые в iOS 17.
В этой статье разберёмся, из чего состоит интерактивный виджет: формирование Timeline, как работает интерактивность через библиотеку AppIntents, а затем напишем свой первый интерактивный виджет.
Статья: https://habr.com/ru/companies/ivi/articles/787880/
Платформа: iOS
Виджеты в новом обличии появились в 2020 году вместе с выходом iOS 14 (HomeScreen widgets). За это время Apple выпустила больше семейств виджетов, а также добавила их на LockScreen в iPhone и iPad. Но интерактивность появилась впервые в iOS 17.
В этой статье разберёмся, из чего состоит интерактивный виджет: формирование Timeline, как работает интерактивность через библиотеку AppIntents, а затем напишем свой первый интерактивный виджет.
Статья: https://habr.com/ru/companies/ivi/articles/787880/
Платформа: iOS
👍3
Программируем лучше: 4 неизвестных инструмента в Android Studio
Вам никогда не казалось, что вашей работе над кодом не помешали бы улучшения? IDE предлагают целый ряд инструментов, которые облегчают разработку программного обеспечения: от компиляции до отладки и не только. Однако можно легко упустить некоторые важные функции. В этой статье я познакомлю вас с четырьмя ценными инструментами Android Studio/IntelliJ IDEA, которые, возможно, не так широко известны среди разработчиков. Давайте вместе изучим эти инструменты и посмотрим, как они могут улучшить ваш опыт разработки.
1. Живые шаблоны (Live Templates)
2. Анализ потока данных (Analyze Data Flow)
3. Инструменты рефакторинга
4. Постфикс дополнение (Postfix Completion)
Статья: https://apptractor.ru/info/articles/programmiruem-luchshe-4-neizvestnyh-instrumenta-v-android-studio.html
Платформа: Android
Вам никогда не казалось, что вашей работе над кодом не помешали бы улучшения? IDE предлагают целый ряд инструментов, которые облегчают разработку программного обеспечения: от компиляции до отладки и не только. Однако можно легко упустить некоторые важные функции. В этой статье я познакомлю вас с четырьмя ценными инструментами Android Studio/IntelliJ IDEA, которые, возможно, не так широко известны среди разработчиков. Давайте вместе изучим эти инструменты и посмотрим, как они могут улучшить ваш опыт разработки.
1. Живые шаблоны (Live Templates)
2. Анализ потока данных (Analyze Data Flow)
3. Инструменты рефакторинга
4. Постфикс дополнение (Postfix Completion)
Статья: https://apptractor.ru/info/articles/programmiruem-luchshe-4-neizvestnyh-instrumenta-v-android-studio.html
Платформа: Android
Вопросы с собеседований: В чем разница между LinkedList и ArrayList
LinkedList и ArrayList - это две различные реализации списка в языке программирования Java (и не только). Они предоставляют разные подходы к хранению и управлению коллекциями элементов.
ArrayList:
• ArrayList представляет собой динамический массив, который автоматически расширяется или уменьшается по мере добавления или удаления элементов.
• Элементы ArrayList хранятся в последовательных ячейках памяти, и к ним можно получить доступ по индексу. Это обеспечивает быстрый доступ к элементам по индексу, но может быть медленным при вставке или удалении элементов в середине списка.
• ArrayList требует меньше памяти в сравнении с LinkedList, так как он хранит только значения элементов и минимальную дополнительную информацию.
LinkedList:
• LinkedList реализован как двусвязный список, где каждый элемент содержит ссылки на предыдущий и следующий элементы. Это обеспечивает эффективные операции вставки и удаления в середине списка.
• В отличие от ArrayList, LinkedList не обеспечивает прямой доступ к элементам по индексу, и для доступа к элементам требуется проход по списку с начала или конца.
• LinkedList требует дополнительной памяти для хранения указателей между элементами.
Подробнее: https://apptractor.ru/info/techhype/voprosy-s-sobesedovaniy-v-chem-raznitsa-mezhdu-linkedlist-i-arraylist.html
Платформа: Android
Другие: вопросы
LinkedList и ArrayList - это две различные реализации списка в языке программирования Java (и не только). Они предоставляют разные подходы к хранению и управлению коллекциями элементов.
ArrayList:
• ArrayList представляет собой динамический массив, который автоматически расширяется или уменьшается по мере добавления или удаления элементов.
• Элементы ArrayList хранятся в последовательных ячейках памяти, и к ним можно получить доступ по индексу. Это обеспечивает быстрый доступ к элементам по индексу, но может быть медленным при вставке или удалении элементов в середине списка.
• ArrayList требует меньше памяти в сравнении с LinkedList, так как он хранит только значения элементов и минимальную дополнительную информацию.
LinkedList:
• LinkedList реализован как двусвязный список, где каждый элемент содержит ссылки на предыдущий и следующий элементы. Это обеспечивает эффективные операции вставки и удаления в середине списка.
• В отличие от ArrayList, LinkedList не обеспечивает прямой доступ к элементам по индексу, и для доступа к элементам требуется проход по списку с начала или конца.
• LinkedList требует дополнительной памяти для хранения указателей между элементами.
Подробнее: https://apptractor.ru/info/techhype/voprosy-s-sobesedovaniy-v-chem-raznitsa-mezhdu-linkedlist-i-arraylist.html
Платформа: Android
Другие: вопросы
Открытая книга по машинному обучению
The Machine Learning Engineering Open Book - это открытая коллекция методик, помогающих успешно обучать большие языковые и мультимодальные модели. Материал подходит для инженеров, занимающихся обучением LLM/VLM. Книга содержит множество скриптов и copy-paste команд, позволяющих читателям быстро решать свои задачи. В книге рассматриваются основные аппаратные компоненты, производительность, оперирование, разработка и многое другое.
GitHub: https://github.com/stas00/ml-engineering?tab=readme-ov-file
Платформа: разработка
⭐️: 5.6K
The Machine Learning Engineering Open Book - это открытая коллекция методик, помогающих успешно обучать большие языковые и мультимодальные модели. Материал подходит для инженеров, занимающихся обучением LLM/VLM. Книга содержит множество скриптов и copy-paste команд, позволяющих читателям быстро решать свои задачи. В книге рассматриваются основные аппаратные компоненты, производительность, оперирование, разработка и многое другое.
GitHub: https://github.com/stas00/ml-engineering?tab=readme-ov-file
Платформа: разработка
⭐️: 5.6K
Тема Win9x для Jetpack Compose
Это захватывающий момент для Material Design и Jetpack Compose!
GitHub: https://github.com/nassendelft/compose-win9x-theme
Платформа: Android
⭐️: 83
Это захватывающий момент для Material Design и Jetpack Compose!
GitHub: https://github.com/nassendelft/compose-win9x-theme
Платформа: Android
⭐️: 83
👍2
Winlator - это приложение для Android, позволяющее запускать приложения Windows (x86_64) с помощью Wine и Box86/Box64.
Winlator на GitHub: https://github.com/brunodev85/winlator
Платформа: Android
⭐️: 3K
Winlator на GitHub: https://github.com/brunodev85/winlator
Платформа: Android
⭐️: 3K
👍1🔥1
Проект Sensenmann: удаление кода в масштабе Google
Автоматическое удаление кода может показаться странной идеей: написание кода требует больших затрат и обычно считается активом. Однако неиспользуемый код стоит времени и усилий, будь то его поддержка или очистка.
Статья: https://apptractor.ru/info/articles/proekt-sensenmann-udalenie-koda-v-masshtabe.html
Платформа: разработка
Автоматическое удаление кода может показаться странной идеей: написание кода требует больших затрат и обычно считается активом. Однако неиспользуемый код стоит времени и усилий, будь то его поддержка или очистка.
Статья: https://apptractor.ru/info/articles/proekt-sensenmann-udalenie-koda-v-masshtabe.html
Платформа: разработка
AppTractor
Проект Sensenmann: удаление кода в масштабе
Автоматическое удаление кода может показаться странной идеей: написание кода требует больших затрат и обычно считается активом. Однако неиспользуемый код стоит времени и усилий, будь то его поддержка или очистка.
OutRun - это приложение для iOS, позволяющее записывать и просматривать ваши тренировки. Несмотря на название, оно поддерживает не только бег, но и ходьбу, походы, езду на велосипеде и катание на коньках. Проект полностью с открытым исходным кодом и не содержит рекламы.
OutRun на GitHub: https://github.com/timfraedrich/OutRun
Платформа: iOS
⭐️: 622
OutRun на GitHub: https://github.com/timfraedrich/OutRun
Платформа: iOS
⭐️: 622
Заводим Яндекс Карты в Compose Multiplatform
В одном проекте, который мы решили делать полностью с использованием Compose Multiplatform, была поставлена задача реализовать работу Яндекс Карт. Приложение для сети сервисных центров, поэтому на карте должны отображаться метки СТО, а также собственная метка пользователя для вызова мастера на место.
Статья: https://habr.com/ru/articles/788554/
Платформа: кроссплатформа
В одном проекте, который мы решили делать полностью с использованием Compose Multiplatform, была поставлена задача реализовать работу Яндекс Карт. Приложение для сети сервисных центров, поэтому на карте должны отображаться метки СТО, а также собственная метка пользователя для вызова мастера на место.
Статья: https://habr.com/ru/articles/788554/
Платформа: кроссплатформа
👍1
Моя малышка все еще любит самолеты — и я улучшил для нее радар
Продолжение статьи про создание приложения-радара для собственного ребенка.
Статья: https://apptractor.ru/info/articles/moya-malyshka-vse-esche-lyubit-samolety-i-ya-uluchshil-dlya-nee-radar.html
Платформа: инди-разработка/iOS
Продолжение статьи про создание приложения-радара для собственного ребенка.
"Моя малышка любит самолеты — и я сделал для нее радар” — это, безусловно, лучшая вещь, которую я написал. Мне удалось попасть в ту самую «золотую середину» между полезным и техническим, и мое искреннее удовольствие от проекта просвечивало в рассказе. Казалось бы, как предприимчивый инди-разработчик, я должен был сразу же вскочить на волну хайпа, выпустить очередной релиз и начать мечтать о монетизации...
Статья: https://apptractor.ru/info/articles/moya-malyshka-vse-esche-lyubit-samolety-i-ya-uluchshil-dlya-nee-radar.html
Платформа: инди-разработка/iOS
Упрощаем локализацию iOS-приложения со String Catalogs
Выход продукта на новые рынки сбыта — это деньги. Чем лучше ты знаешь своего клиента, тем вероятнее ты их сможешь заработать. Это правило справедливо и в обратную сторону: клиент будет более охотно пользоваться твоим продуктом, если он может разговаривать с ним на одном языке.
Сегодня я расскажу о том, как можно в значительной мере облегчить и усовершенствовать процесс перевода iOS-приложения на другие языки. Языки, разумеется, человеческие: от Swift мы отказываться не будем.
Статья: https://habr.com/ru/articles/788614/
Платформа: iOS
Выход продукта на новые рынки сбыта — это деньги. Чем лучше ты знаешь своего клиента, тем вероятнее ты их сможешь заработать. Это правило справедливо и в обратную сторону: клиент будет более охотно пользоваться твоим продуктом, если он может разговаривать с ним на одном языке.
Сегодня я расскажу о том, как можно в значительной мере облегчить и усовершенствовать процесс перевода iOS-приложения на другие языки. Языки, разумеется, человеческие: от Swift мы отказываться не будем.
Статья: https://habr.com/ru/articles/788614/
Платформа: iOS
🔥1
Bottom Dialog Android Picker - панель для выбора файлов, как в Telegram, для всех версий Android. В нем есть поиск, разворачиваемый и прокручиваемый диалог, полная настройка (цвет, текст, минимальный и максимальный размер выбранного файла), не требует runtime разрешения.
Bottom Dialog Android Picker на GitHub: https://github.com/mahdiasd/ComposeBottomDialogFilePicker
Платформа: Android
⭐️: 4
Bottom Dialog Android Picker на GitHub: https://github.com/mahdiasd/ComposeBottomDialogFilePicker
Платформа: Android
⭐️: 4
Новая пятничная подборка - видео и подкасты за неделю:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Что вы посмотрели/послушали интересного про разработку? Киньте ссылку в комментарии.
🌐 AppFiles
•
(iOS En)
Bring 3D to your App: Developing Native iOS Apps with Spline•
(iOS En)
SwiftUI Dock Progress Bar for macOS•
(iOS En)
SwiftData Background Tasks: Massively Improve Your Apps Performance•
(iOS En)
Source Control with Xcode: Branching and Merging•
(iOS En)
Unit Testing a SwiftUI Application using Xcode•
(iOS En)
From Challenge to Joy: My Journey Developing Tuist for Scalable Xcode Projects•
(And En)
Now in Android: 98 - Gemini Pro, Google AI SDK, Google AI Studio, Cast, Rust, and more!•
(And En)
How to Implement Firebase Push Notifications on Android (FCM + Backend)•
(And En)
How to Create an App Shortcut on Android•
(And En)
How to automatically test a Google Play Subscription•
(Crs Ru)
Позиция — KMP разработчик: Кирилла Розова собеседует Алексей Гладков•
(Crs Ru)
Flutter Dev Podcast #42: как стать Flutter-разработчиком? Часть 1•
(Dev Ru)
Разработка под Аврору•
(Dev Ru)
Безопасность приложений•
(Dev Ru)
Cracking the Mobile Interview•
(Dev Ru)
Как тимлиду оценить успешность в своей роли•
(Dev Ru)
Почему так мало женщин в IT?•
(Dev Ru)
Podlodka: Про дипфейки, этику и цену прогресса•
(Dev En)
LangChain GEN AI Tutorial – 6 End-to-End Projects using OpenAI, Google Gemini Pro, LLAMA2•
(Dev En)
Python Data Analysis and Visualization CourseЧто вы посмотрели/послушали интересного про разработку? Киньте ссылку в комментарии.
🌐 AppFiles
YouTube
Bring 3D to your App: Developing Native iOS Apps with Spline
@splinetool - a multi-platform and multi-dimensional design tool - has recently introduced native 3D for the Apple Ecosystem. This means that you can easily build an interactive 3D app, combine 3D scenes with native Swift projects, generate a pre-built Xcode…
👍1
Просто об архитектуре в Android
Меня зовут Артем, я Android developer BSL. В данной статье я рассмотрю один из возможных путей - простота и гармоничность на основе Clean Architecture. Важно понимать, что это всего лишь один из вариантов, который основан на моем личном видении. В мире разнообразных подходов не существует идеала, и, возможно, именно в этом заключается привлекательность процесса разработки - в бесконечных спорах и поиске оптимального решения.
Статья: https://habr.com/ru/companies/bsl/articles/788940/
Платформа: Android
Меня зовут Артем, я Android developer BSL. В данной статье я рассмотрю один из возможных путей - простота и гармоничность на основе Clean Architecture. Важно понимать, что это всего лишь один из вариантов, который основан на моем личном видении. В мире разнообразных подходов не существует идеала, и, возможно, именно в этом заключается привлекательность процесса разработки - в бесконечных спорах и поиске оптимального решения.
Статья: https://habr.com/ru/companies/bsl/articles/788940/
Платформа: Android
Как через Push-уведомления на iPhone утекают данные пользователей
Исследователь безопасности Томми Мыск продемонстрировал, как push-уведомления на iPhone могут использоваться популярными приложениями для скрытой отправки данных о пользователе.
Новость и видео: https://apptractor.ru/info/news/kak-cherez-push-uvedomleniya-na-iphone-utekayut-dannye-polzovateley.html
Платформа: iOS
Исследователь безопасности Томми Мыск продемонстрировал, как push-уведомления на iPhone могут использоваться популярными приложениями для скрытой отправки данных о пользователе.
Новость и видео: https://apptractor.ru/info/news/kak-cherez-push-uvedomleniya-na-iphone-utekayut-dannye-polzovateley.html
Платформа: iOS