Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck
9.82K subscribers
1.46K photos
71 videos
52 files
4.22K links
Все самое полезное для мобильного разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/b60af5a4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a4adec1b17b35b6c0d8389
Download Telegram
#вопросы_с_собеседований

Kotlin

Вопрос: В чем преимущество Kotlin для разработки под Android?

Ответ:

1. Более краткий и выразительный синтаксис: Kotlin позволяет писать код более кратко и чисто по сравнению с Java, сокращая количество шаблонного кода. Это делает код легче для чтения и поддержки.

2. Null безопасность: В Kotlin встроена поддержка обработки значений `null`, что помогает избежать `NullPointerException` — одной из наиболее распространенных ошибок в Java-приложениях.

3. Расширенные функции (Extension functions): Kotlin позволяет добавлять новые функции к существующим классам без их модификации. Это упрощает работу с API Android, делая код более читабельным и лаконичным.

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

5. Полная совместимость с Java: Kotlin полностью совместим с Java, что позволяет легко использовать все существующие Java-библиотеки и фреймворки в Kotlin-проектах, а также постепенно переводить существующий Java-код на Kotlin.

6. Инструментальная поддержка: Kotlin полностью поддерживается в Android Studio, что обеспечивает удобные инструменты для разработки, такие как автодополнение, рефакторинг кода, проверка ошибок в реальном времени.

7. Корутины для асинхронного программирования: Kotlin предоставляет встроенную поддержку корутин, что упрощает работу с асинхронными операциями, такими как выполнение сетевых запросов или чтение из базы данных, делая код более понятным и менее подверженным ошибкам.

8. Улучшенная безопасность: Благодаря более строгой системе типов и обработке исключений, Kotlin помогает предотвратить распространенные ошибки во время компиляции, что повышает общую безопасность приложения.

9. Официальная поддержка Google: С 2017 года Kotlin является официальным языком для разработки Android-приложений, что гарантирует его постоянное обновление и поддержку со стороны Google.
🤔5
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍1👾1
Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования

🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion

#️⃣C#

Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel

☁️DevOps

Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования

🐘PHP

Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты

🐍Python

Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты

Java

Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков

👾Data Science

Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🦫Go

Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go

🧠C++

Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻Другие каналы

Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности

📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈

Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT

Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *

* Организация Meta запрещена на территории РФ
1
Топ 5 плагинов для Android Studio

1. Kotlin Fill Class — фантастический плагин, который делает разработку намного более приятной и быстрой. С его помощью вы можете заполнять классы и функции на лету.

2. ADB Idea — это дополнение к ADB, которое вы можете запустить с помощью всплывающего окна.

3. Android Drawable Preview — В каталоге drawable легко заблудиться, особенно в больших проектах. С помощью этого плагина вы больше не заблудитесь, так как в нем отображаются небольшие предварительные изображения всех значков внутри каталога.

4. Key Promotex X — поможет вам освоить основные сочетания клавиш во время работы. Когда вы нажимаете мышью на кнопку в среде IDE, Key Promoter X показывает сочетание клавиш, которое вы должны были использовать вместо этого.

5. IdeaVim — это Vim в Android Studio. Вы можете настроить его по своему вкусу с помощью файла .ideavimrc в вашем домашнем каталоге, как если бы вы использовали .vimrc.
👍2
📊 Новые структуры данных для iOS разработчика

Мобильные разработчики редко сталкиваются в работе со сложными структурами данных. Как правило, в рутинных задачах вполне достаточно уметь использовать Array, Dictionary и Set.

Наверное, вы слышали и о деревьях, графах, связанных списках Tree, Graph, Linked List, но в повседневной работе мобильного разработчика вряд ли вы с ними сталкиваетесь. Автор рассказывает о редких и недооцененных структурах данных. И самое главное, как впустить их в свою рутинную работу программиста.

Ознакомиться можно по ссылке 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
Новый способ оптимизации стабильности в Jetpack Compose

Новый strong skipping mode для управления стабильностью классов в Jetpack Compose меняет рекомпозиции в вашем приложении.

В этой статье речь идёт о том, какие случаи он решает за вас, а какие необходимо контролировать вручную. Также ответы на часто возникающие вопросы, например, нужно ли по-прежнему помнить о лямбда-функциях, нужны ли неизменяемые коллекции Kotlinx или даже как стабилизировать все классы вашей доменной модели.
🥰2
👩‍💻 Вышли первые публичные беты новых ОС от Apple

Большинство багов уже пофиксили, так что можно обновляться. Кто уже протестировал?
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔3🔥1
🤖 Google выпустила финальную бета-версию Android 15. Что нового и когда релиз?

→ Новый раздел «Диагностика системы» в меню «Настройки» → «Система». Здесь можно провести тесты дисплея и сенсорного слоя, а также узнать статистику использования аккумулятора и накопителя. Также можно провести диагностику другого устройства.

→ Функция «Оптимизация зарядки» в меню «Настройки» → «Батарея». При её включении аккумулятор смартфона будет заряжаться до 80%, что позволит продлить срок его службы.

→ Из системы исчез PNG-файл шрифта, отвечающий за эмодзи. Впервые векторные изображения эмодзи появились в Android 13, но до сих пор в системе оставался старый формат эмодзи для совместимости.

→ Исправлена проблема, из-за которой устройства Pixel могли «окирпичиться» (перестать загружаться) при сбросе к заводскому состоянию вскоре после установки обновления системы.

→ Устранены другие ошибки в разных элементах операционной системы.

Операционная система находится в фазе Platform Stability: сейчас вносятся лишь минорные изменения, тогда как основные программные интерфейсы и компоненты приближены к релизному состоянию. Это позволяет разработчикам проводить оптимизацию своих приложений.

#новости
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉9
Кто хотел, но решился: как стать Android разработчиком

Крутая статья с описанием всех скиллов, которые должны быть у каждого разработчика на Android. Для каждого пункта есть подробный разбор, курсы, книги, материалы для изучения.

Также большим бонусом, внутри лежит roadmap — статья
This media is not supported in your browser
VIEW IN TELEGRAM
Оставляете такие комменты? И возвращаетесь ли к ним потом?)
11😁9👏1😢1
👶 Разбор Grid View в SwiftUI

Для создания нужного лэйаута в SwiftUI можно использовать LazyVGrid, если нужно вертикальное отображение, и LazyHGrid (если горизонтальное). Тем самым мы сможем добиться нужного эффекта, при этом адаптируемого к различным ориентациям и размерам экрана.

📖 В этой статье разбираются не только виды лэйаутов, но и опции кастомизации, включая интервалы, выравнивание и многое другое.

Бонусом интерактивное руководство, чтобы помочь вам получить представление о том, как работает система верстки SwiftUI.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Серверная реализация UI для Android

В Android можно создать динамически адаптируемый UI с помощью концепции Server Driven UI. Это позволяет определять UI на сервере, а затем передавать его на клиентское устройство, что обеспечивает гибкость и обновляемость UI без необходимости обновления приложения.

📖 В этой статье разбираются не только основы Server Driven UI, но и варианты реализации, включая использование JSON для описания компонентов интерфейса, обработку данных на клиенте и сервере, а также стратегию кэширования и оптимизации производительности.

Кстати, у «Яндекса» есть классная библиотека, которая отлично подходит под эту статью — сам DivKit и репозиторий GitHub.
👍2
👶 Как задержать запросы сервера на поисковый запрос пользователя в SwiftUI & Combine

Практический пример:

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

Реализация поиска в SwiftUI


struct SearchView: View {

@State private var userSearchInput: String = «»

var body: some View {
VStack {
// Show loading indicator, error, or results
}
.searchable(text: $userSearchInput)
.onChange(of: userSearchInput) { _, newValue in
viewModel.updateSearch(userSearchInput: newValue)
}
}
}


1. Мы используем модификатор поиска SwiftUI для настройки отображения поля поиска.
2. Мы используем переменную @State для передачи в качестве привязки к модификатору, доступному для поиска. Она будет обновляться автоматически по мере изменения пользователем поискового запроса.
3. Мы подписываемся на изменения в поиске, чтобы уведомить нашу модель просмотра о том, что ей может потребоваться обновить результаты.

Реализация в ViewModel

Далее посмотрим, как может быть реализована ViewModel:


class SearchViewModel {
private var userSearchInputSubject = PassthroughSubject()
private var cancellables = Set()

init() {
userSearchInputSubject
.debounce(for: 0.5, scheduler: RunLoop.main)
.sink { [weak self] searchInput in
self?.reload(with: searchInput)
}
.store(in: &cancellables)
}

func updateSearch(userSearchInput: String?) {
userSearchInputSubject.send(userSearchInput)
}
}


Используя оператор debounce, мы гарантируем, что запросы на сервер будут отправляться только тогда, когда пользователь перестанет печатать на полсекунды, что сокращает количество ненужных запросов и повышает общую производительность нашего приложения.

#гайд #SwiftUI
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
✍️ «Библиотека программиста» находится в поиске автора на написание книжных рецензий

Кто нужен?
● Энтузиасты (джуны и выше), которые которые разбираются в IT
● Любители книг, которые хотели бы получать деньги за чтение и написание рецензий
● Работаем с самозанятыми (компенсируем налог), ИП

Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴

✉️ Станьте частью нашей команды — присылайте резюме и примеры работ [email protected]
👏3
👶 7 открытых iOS-проектов, которые помогут изучить SwiftUI

Проекты с открытым исходным кодом — самое правильное место, где можно узнать о лучших практиках, стилях программирования и многих других темах.

🔠 Clean Architecture for SwiftUI + Combine — поддержание чистой архитектуры при создании приложения — один из навыков хорошего разработчика. Как вы уже догадались по названию, этот проект демонстрирует приложение SwiftUI с чистой архитектурой.

🔠 The OldOS Project — этот интересный проект воссоздает полнофункциональную версию iOS 4 в SwiftUI. Он демонстрирует, чем была iOS десять лет назад.

🔠 SwiftUICraft — один из лучших способов изучить новую технологию — создать клон большого проекта. Как вы уже догадались, это Minecraft, но сделанный с помощью SwiftUI.

🔠 Velik — это приложение для отслеживания поездок, созданное на SwiftUI с использованием Combine и CoreData.

🔠 Open Sesame — это бесплатный и мощный менеджер паролей, который позволяет вам легко управлять своими паролями. Он синхронизируется с iCloud и шифрует ваши данные, чтобы доступ был только у вас.

🔠 Swiftui 2048 — нетрудно догадаться по названию, что этот проект представляет собой реализацию классической игры 2048 на чистом SwiftUI, без графических ассетов.

🔠 Expense Tracker — это полноценное iOS-приложение для отслеживания расходов, созданное с помощью Core Data и SwiftUI.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
💵⚡️ДАРИМ 40 000₽ ЗА ВИДЕО

Конкурс года в «Библиотеке программиста»: смонтируйте короткий вертикальный ролик формата Shorts/Reels* на тему программирования и разработки — лучший автор получит 40 тысяч рублей 🤑

Подробные условия:
➡️смонтируйте короткий смешной вертикальный ролик (можно и нужно использовать мемы)
➡️отправьте нам в бота @ProglibContest_bot
➡️лучшие ролики (по мнению редакции) мы будем выкладывать в канал и в наш инстаграм*
➡️тот, чей ролик соберет больше всего просмотров в инстаграм*, получит приз — 40 тысяч рублей

Какие ролики мы не принимаем:
😟не вашего авторства (проверим!)
😟длинные, невертикальные, несмешные

Таймлайн:
2 августа — заканчиваем принимать видео
⬇️
3 августа — начинаем загружать лучшие видео в инстаграм
⬇️
9 августа — подводим итоги

*Организация Meta признана экстремистской в РФ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Как подружить iOS и векторную графику 🤝

Рано или поздно каждый разработчик столкнется с тем, что дизайнеры в его команде решат создать дизайн-систему. В этой дизайн-системе будут иконки и, может быть, какие-то иллюстрации. В рамках доклада спикер поговорил о том, как настроить экспорт этих картинок из Figma, разместить их на CDN и начать удобно с ними работать.

Спикер раскрыл некоторые секреты работы xcassets и показал, как, отказавшись от них, можно более эффективно хранить ассеты в пакете приложения.
😁2
Результаты опроса разработчиков Stack Overflow 2024

Обстановка такая: Erlang остается самой «дорогой» для разработчиков технологией. Swift и Objective-C идут почти вровень (причем по сравнению с прошлым годом Swift обогнал своего старого конкурента), а Kotlin заметно отстает по зарплате. Однако оплата у всех значительно снизилась.

Изменилась ваша ЗП за последние 2-3 месяца?
😢3👍1🎉1