TGViewer
Channel Public Channel
Android Mobile | YeaHub

Android Mobile | YeaHub

@yeahub_android_mobile

Теория, подготовка к интервью и курсы для Android разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Subscribers
431
Photos
332
Videos
21
Links
597

Showing posts older than #88 · Back to latest

Older Posts 19 shown
Post #87 147
#видео
👍 Decompose шаг за шагом

Если вы хотели попробовать Decompose, но не знали, с чего начать, то специально для вас Максим Казанцев выпустил подробный туториал по библиотеке. Шаг за шагом автор покажет, как создать простое приложение и познакомит вас со всеми основными компонентами Decompose.

Это лишь первая часть серии видео, в которых вы подробно узнаете, как использовать Decompose на разных платформах.
📱 Смотреть на YouTube

👉Новости 👉Платформа
Post #86 113
#полезное
😊 Android Quick Guides

Это недавно вышедшая серия официальных кратких руководств от Google, созданных для разработчиков, работающих с платформой Android. Эти руководства нацелены на предоставление основных рекомендаций и шаблонов для быстрого внедрения стандартных компонентов и функциональности Android-приложений
Руководство

👉Новости 👉Платформа
  • 🔥 3
Post #85 141
#полезное
🥰 PuppyGit — это клиент Git для Android, предоставляющий полный функционал для работы с репозиториями, включая fetch, pull, push, merge, управление ветками, тегами, сабмодулями и историю коммитов!

🟠Приложение является бесплатным, без рекламы и с открытым исходным кодом. PuppyGit также поддерживает функции редактирования файлов, разрешения конфликтов, squash-коммитов и работу с персональными токенами для двухфакторной аутентификации.
Гитхаб

👉Новости 👉Платформа
Post #84 126
#Собес
🤔 Для чего используется модификатор lateinit в Kotlin?

Модификатор lateinit в Kotlin используется для отложенной инициализации свойств, которые не могут быть проинициализированы сразу при создании объекта. Это особенно полезно для свойств, которые должны быть инициализированы позже, например, при внедрении зависимостей или получении данных из внешнего источника.

👉Новости 👉Платформа
  • ❤ 1
Post #83 156
«Нет повести печальнее на свете,
чем повесть о клиенте и его бюджете»
Post #81 141
#полезное
😊 Первые шаги в мобильной разработке с Flutter

Flutter — один из самых популярных инструментов для создания кроссплатформенных приложений. Если хочешь научиться разрабатывать сразу под iOS и Android, эта статья для тебя!

Разбираем
🟠 Как установить и настроить окружение
🟠 Запуск первого приложения и работа с виджетами
🟠 Ошибки, которые мешают новичкам осваивать Flutter
Читать статью

👉Новости 👉Платформа
Post #80 133
#Собес
🤔 Объясните концепцию высших функций в Kotlin.

Высшие функции в Kotlin - это функции, которые могут принимать другие функции в качестве параметров или возвращать функции как результат. Это позволяет создавать более гибкий и динамичный код, используя функциональные подходы.
Пример: функция, которая принимает лямбда выражение для выполнения различных операций над данными.

👉Новости 👉Платформа
  • ❤ 2
  • 👍 1
Post #79 145
#ЛитКод
Задача: 653. Two Sum IV - Input is a BST

Вам дан целочисленный массив nums без дубликатов. Из nums можно рекурсивно построить максимальное двоичное дерево, используя следующий алгоритм: создайте корневой узел, значение которого равно максимальному значению в nums. Рекурсивно постройте левое поддерево по префиксу подмассива слева от максимального значения. Рекурсивно постройте правое поддерево по суффиксу подмассива справа от максимального значения. Верните максимальное двоичное дерево, построенное из nums.

Пример:
Input: root = [5,3,6,2,4,null,7], k = 9
Output: true


👨‍💻 Алгоритм:

1⃣Выполните обход BST и сохраните все значения узлов в набор.
2⃣Для каждого узла в процессе обхода проверьте, существует ли в наборе значение, равное k минус значение текущего узла.
3⃣Если найдена такая пара, верните true. Если обход завершен и пары не найдены, верните false.

😎 Решение:
class TreeNode(var `val`: Int) {
var left: TreeNode? = null
var right: TreeNode? = null
}

fun findTarget(root: TreeNode?, k: Int): Boolean {
val seen = mutableSetOf<Int>()
fun find(node: TreeNode?): Boolean {
if (node == null) return false
if (seen.contains(k - node.`val`)) return true
seen.add(node.`val`)
return find(node.left) || find(node.right)
}
return find(root)
}


👉Новости 👉Платформа
  • ❤ 1
Post #76 142
  • ❤ 4
  • 🔥 1
Post #75 132
#Собес
🤔 Объясните концепцию неизменяемых и изменяемых переменных в Kotlin.

В Kotlin переменные могут быть либо неизменяемыми, либо изменяемыми:
🟠 Неизменяемые переменные обьявляются с помощью val и не могут быть изменены после их инициализации.
🟠 Изменяемые переменные объявляются с помощью var и могут быть изменены в процессе выполнения программы.

👉Новости 👉Платформа
  • ❤ 2
Post #74 169
  • ❤ 2
Post #73 188
Ничего необычного, просто юзеры андроидов делают скриншот
  • 🔥 4
Post #71 175
#полезное
😊 Запуск android приложений

Waydroid - решение на основе контейнеров для запуска Android приложения в GNU/Linux системах, используй Wayland

Если любите Linux, то Waydroid даст вам возможность запуска Android приложений и сделать их интеграцию в систему как нативные приложения.

👉Новости 👉Платформа
  • 👍 2
Post #70 131
#Собес
🤔 В чем разница между списком и массивом в Kotlin?

Основные различия между списком и массивом в Kotlin заключаются в их размере и типах данных:
Список (List) - это динамическая коллекция, которая может изменять размер и содержать элементы разных типов.
Массив (Array) - это фиксированная по размеру коллекция, содержащая элементы одного типа.

Списки предоставляют удобные методы для добавления и удаления элементов, а массивы обеспечивают лучшую производительность для работы с элементами в
фиксированном размере.

👉Новости 👉Платформа
  • 👍 1
Post #69 135
#полезное
😊 Тестированию пуш-уведомлений

Тестирование push-уведомлений и пушей в приложениях, где они играют важную роль
Читать статью

👉Новости 👉Платформа
  • 🔥 3
Post #68 125
#ЛитКод
Задача: 646. Maximum Length of Pair Chain

Вам дан массив из n пар, где pairs[i] = [lefti, righti] и lefti < righti. Пара p2 = [c, d] следует за парой p1 = [a, b], если b < c. Таким образом можно построить цепочку пар. Верните самую длинную цепочку, которую можно составить. Вам не нужно использовать все заданные интервалы. Вы можете выбирать пары в любом порядке.

Пример:
Input: nums = [1,2,2,4]
Output: [2,3]


👨‍💻 Алгоритм:

1⃣Отсортируйте пары по второму элементу каждой пары (righti).
2⃣Используйте динамическое программирование или жадный алгоритм, чтобы построить цепочку максимальной длин
3⃣Переберите отсортированные пары и выберите пары, которые могут следовать одна за другой, увеличивая длину цепочки.

😎 Решение:
fun findLongestChain(pairs: Array<IntArray>): Int {
pairs.sortBy { it[1] }
var currentEnd = Int.MIN_VALUE
var count = 0
for (pair in pairs) {
if (currentEnd < pair[0]) {
currentEnd = pair[1]
count++
}
}
return count
}


👉Новости 👉Платформа
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →