tgoop.com »
United States »
Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck » Telegram Web
A/B-тестирование — это не только инструмент для продуктовых команд. Это суперспособность и для Android-разработчиков.
В этой статье автор рассказывает, как опытные инженеры могут проектировать, реализовывать и грамотно завершать эксперименты, которые действительно влияют на продукт, не захламляя кодовую базу. От Firebase Remote Config до паттернов чистой архитектуры — всё, чтобы делать более умные и осознанные Android-приложения.
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
🎉🐙🐱 20 лет Git: все такой же необычный, все такой же великолепный
Легендарному Git стукнуло 20! Вспоминаем, как проект, который Линус Торвальдс называл «тупым менеджером контента», стал незаменимым инструментом для всех, кто хоть раз писал код или даже просто хранил файлы.
👉 Читать статью
🐸 Библиотека мобильного разработчика
Легендарному Git стукнуло 20! Вспоминаем, как проект, который Линус Торвальдс называл «тупым менеджером контента», стал незаменимым инструментом для всех, кто хоть раз писал код или даже просто хранил файлы.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8
Как это работает
Room — это ORM-библиотека для Android, которая упрощает работу с SQLite. Она автоматически генерирует boilerplate-код для операций с БД, проверяет SQL-запросы на этапе компиляции и предоставляет удобные абстракции:
- @Entity
— определяет таблицу в БД.- @Dao
(Data Access Object) — содержит методы для запросов (вставка, обновление, выборка).- @Database
— главный класс, который связывает сущности и DAO.Если названия полей в классе и таблице не совпадают, используйте
@ColumnInfo
:@Entity(tableName = "users")
data class User( @PrimaryKey val id: Int,
@ColumnInfo(name = "user_name") val name: String
)
Как начать
1.Добавьте зависимости в
build.gradle
(Module):implementation "androidx.room:room-runtime:2.6.0"
kapt "androidx.room:room-compiler:2.6.0" // для Kotlin
2.Создайте Entity, Dao и Database:
@Dao
interface UserDao { @Query("SELECT * FROM users")
fun getAll(): List<User>
@Insert
fun insert(user: User)
}
@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
}
3.Инициализируйте БД в приложении:
val db = Room.databaseBuilder(
context, AppDatabase::class.java, "my-database"
).build()
Лучшие практики
version
и добавляйте миграцию:val migration = object : Migration(1, 2) {
override fun migrate(database: SupportSQLiteDatabase) { database.execSQL("ALTER TABLE users ADD COLUMN age INTEGER")
}
}
Flow
:@Query("SELECT * FROM users")
fun getAllFlow(): Flow<List<User>>
Где применять
Используете Room? Делитесь лайфхаками в комментах!
Библиотека мобильного разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🥰2🥱2🔥1
Промпт:
Проанализируй этот код на предмет проблем с производительностью. Предложи способы повышения эффективности, обращая внимание на временную сложность, сложность пространства и использование ресурсов. Дай краткое объяснение каждому предложению: [вставьте код здесь]
Почему это важно:
Оптимизация производительности может позволить ускорить работу приложений и улучшить впечатления пользователей.
Библиотека мобильного разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
Metro — это фреймворк для внедрения зависимостей во время компиляции, во многом вдохновленный Dagger, Anvil и Kotlin-Inject. Он стремится объединить их лучшие функции в одно целостное решение, добавив несколько новых и реализуя их в виде плагина компилятора.
Сообщество Kotlin давно хотело создать библиотеку, объединяющую различные инструменты и функции. Хотя для этих задач есть отдельные решения, пока нет единого, которое связало бы их вместе, устранило ограничения и добавило новые возможности. Metro — это попытка дать такой ответ.
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱5👍4
!
и Tab
Это сочетание клавиш за секунду создаёт базовую структуру кода или вложенные теги.
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
</html>
Windows —
Ctrl + /
macOS —
Command + /
Чтобы добавить комментарий, нужно перейти в начало строки и дописать туда два слеша. Это медленно. Быстрее нажать в любом месте строки Ctrl + /, и строка закомментируется, если она ещё не. А если уже да, то комментарий исчезнет.
Windows —
Ctrl + G
macOS —
Control + G
Иногда отладчики внезапно сообщают, что на строке 953 случилась непоправимая инфернальная ошибка вселенной. Чтобы не выискивать вручную, не листать и не тратить на это время, нажмите Ctrl + G, введите номер строки и спокойно спасайте вселенную.
Windows —
Alt + ↑ / ↓
macOS
Option + ↑ / ↓
Случается такое, что ваш алгоритм — не алгоритм. Всё пошло не так, а вместо числа 42 вывелось сообщение «Данные удалены». Кому-то для этого нужно переписать весь код, но иногда бывает достаточно поменять строки местами и всё заработает.
Windows
Shift + Alt + ↓ / ↑
macOS Shift + Option + ↓ / ↑
Это для тех, кто не хочет копировать и вcтавлять несколько раз одно и то же.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Forwarded from Библиотека программиста | программирование, кодинг, разработка
💼🚫 Собес провален? 8 советов, как извлечь пользу из каждого отказа
Отказы на собеседованиях — явление крайне неприятное и даже демотивирующее. Особенно если вы действительно готовились к интервью, вложили много усилий и личного времени в подготовку.
Однако отказ — это всего лишь один из этапов в поиске работы и не стоит воспринимать его как конец света.
Читать статью
🐸 Библиотека программиста
Отказы на собеседованиях — явление крайне неприятное и даже демотивирующее. Особенно если вы действительно готовились к интервью, вложили много усилий и личного времени в подготовку.
Однако отказ — это всего лишь один из этапов в поиске работы и не стоит воспринимать его как конец света.
Читать статью
🐸 Библиотека программиста
😁8
Задача: Расскажи, что такое
Fragment
и зачем он нужен, так, чтобы понял даже пятилетний ребенок.Пример:
«Фрагмент — это как кусочек пазла в твоём приложении. Один кусочек может показывать список мультиков, другой — сам мультик, а вместе они собираются в одну большую картинку на экране телефона!»
А теперь ваша очередь! Напишите в комментариях своё объяснение — самое простое и понятное победит
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🥱2👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
❤7😁5
Когда сроки горят, а разработчиков не хватает
Нехватка квалифицированных разработчиков, срывы дедлайнов и перегруз команды — эти проблемы знакомы большинству IT-руководителей. В условиях растущей конкуренции найти баланс между качеством реализации, сроками и бюджетом становится всё сложнее, особенно когда проект требует редких компетенций или быстрого масштабирования.
Решение проблемы — задействовать дополнительные ресурсы на аутсорсе или аутстаффе. Например, обратиться в Proglib. Да-да, мы запустили свою студию веб-разработки!
Что мы предлагаем:
• Опытные специалисты для аутстаффа (frontend, backend, DevOps, UI/UX, PM, BA)
• Полноценная разработка проектов под ключ
• Гибкое масштабирование команды под потребности клиента
• Прозрачная коммуникация и регулярная отчетность
Для каждого проекта формируется индивидуальная команда, исходя из конкретных потребностей заказчика.
Заполните форму, чтобы ускорить свою разработку 👉 https://forms.yandex.ru/u/67e548a4eb614622efa0bcb2/
Нехватка квалифицированных разработчиков, срывы дедлайнов и перегруз команды — эти проблемы знакомы большинству IT-руководителей. В условиях растущей конкуренции найти баланс между качеством реализации, сроками и бюджетом становится всё сложнее, особенно когда проект требует редких компетенций или быстрого масштабирования.
Решение проблемы — задействовать дополнительные ресурсы на аутсорсе или аутстаффе. Например, обратиться в Proglib. Да-да, мы запустили свою студию веб-разработки!
Что мы предлагаем:
• Опытные специалисты для аутстаффа (frontend, backend, DevOps, UI/UX, PM, BA)
• Полноценная разработка проектов под ключ
• Гибкое масштабирование команды под потребности клиента
• Прозрачная коммуникация и регулярная отчетность
Для каждого проекта формируется индивидуальная команда, исходя из конкретных потребностей заказчика.
Заполните форму, чтобы ускорить свою разработку 👉 https://forms.yandex.ru/u/67e548a4eb614622efa0bcb2/
👍1
IOS-разработчик — от 250 000 до 450 000 ₽, гибрид (Москва)
Android-разработчик (Погода) — от 250 000 до 450 000 ₽, гибрид (Москва, Санкт-Петербург, Минск)
Разработчик ядра iOS / системный программист / iOS Kernel Developer — от 500 000 ₽, удалёнка
Flutter Developer — от 150 000 до 300 000 ₽, удалёнка
Мобильный разработчик (React Native) — от 200 000 ₽, гибрид
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Проблема:
При быстром скролле списка с картинками или сложной разметкой начинаются тормоза. Как это исправить?
Решение:
RecyclerView.setHasFixedSize(true)
recyclerView.setHasFixedSize(true) // Если все элементы одинакового размера
Это избавит RecyclerView от лишних расчетов при скролле.
onBindViewHolder
// Загружайте изображения асинхронно (Glide/Picasso)
Glide.with(context)
.load(items[position].imageUrl)
.into(holder.imageView)
// Избегайте тяжелых операций здесь!
}
DiffUtil
для умных обновленийval diffResult = DiffUtil.calculateDiff(callback)
diffResult.dispatchUpdatesTo(adapter)
Это предотвратит мерцание и перерисовку всех элементов.
Бонус:
Результат:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🤔1
Рынок IT-специалистов в Европе является одним из самых динамичных и конкурентных в мире. Западная и Восточная Европа представляют собой два уникальных «региона» с разными экономическими, культурными и образовательными особенностями, которые влияют на процессы найма IT-специалистов.
Цель данной статьи — провести сравнительный анализ подходов к найму IT-специалистов в этих европейских зонах, выделить ключевые различия и сходства.
#cвежак
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5
ToastKit — это легкий и полностью настраиваемый Swift-пакет, который поможет вам отображать информационные сообщения (тосты) в вашем приложении.
Он прост в использовании, поддерживает различные встроенные стили, такие как success, warning, info, error, отображение SF Symbols и иконок и т.п., а также позволяет полностью настраивать их под ваши нужды.
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2
Представьте, что можно тестировать android-код без эмулятора, запуская тесты за секунды вместо минут. Именно это обещает Robolectric — библиотека, которую либо любят, либо ненавидят, но точно не игнорируют.
За кажущейся простотой «просто добавь зависимость» скрывается удивительная магия модификации байткода, о которой не рассказывают в статьях. Предлагаю разобраться, как на самом деле работает магия Robolectric и почему эти знания пригодятся любому android-разработчику.
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1😁1