Библиотека мобильного разработчика | 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
Серверная реализация 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
🆕 JavaScript эволюционирует: новые методы и функции для эффективной разработки

Нововведения нацелены на повышение читаемости и эффективности кода. Рассмотрим, как Object.groupBy, регулярные выражения с V-флагом, Promise.withResolvers и методы мутации массивов решают актуальные задачи программирования.

🔗 Читать статью
🔗 Зеркало
😁4
⚙️ Микрооптимизация в разработке Android

Несмотря на современные мощные устройства, оптимизация по-прежнему необходима для повышения производительности и экономии заряда батареи.

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

Из основного:
— Маленькие оптимизации, такие как установка начальных размеров коллекций, уменьшают накладные расходы и потребление энергии.
— Kotlin предоставляет эффективные языковые примитивы, но некоторые высокоуровневые конструкции могут снижать производительность.
— Инструмент Kotlin Explorer помогает анализировать байт-код для выявления узких мест.
— Специализированные структуры данных, такие как ScatterMap, улучшают локальность кэша и уменьшают накладные расходы.

Главное — всегда начинать с профилирования, чтобы понять, где именно применить оптимизации.

Ссылка на видео 📺
Please open Telegram to view this post
VIEW IN TELEGRAM
📊 Загрузки падают, а доходы растут

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

Самый простой способ увидеть это на макроуровне (рынке) — использовать Индекс мобильных загрузок и Индекс мобильных доходов из AppFigures (смотрите график выше).

По состоянию на прошлую неделю индекс мобильных доходов для американского App Store составил 473.91. Показатель Google Play был намного ниже — 262.93, но все равно это высокий показатель.

А вот загрузки…

Индекс мобильных загрузок в американском App Store составил 70.96, а в Google Play — 61.24. Это очень низкие показатели.

Что это значит для вас

Если вы разработчик, маркетолог или просто человек, отвечающий за рост приложений, вам нужно следить именно за этой тенденцией. Меньше загрузок и больше приложений, чем когда-либо, означает, что вам придется работать еще усерднее, чтобы получить каждую загрузку. Оптимизация в App Store имеет значение, оптимизация рекламных расходов имеет значение, оптимизация онбординга имеет значение.

#аналитика
1🔥1👾1
Пишем свой Swift макрос без лида, ИТ-курсов и кредитов

Сергей, iOS-разработчик в Альфа-Банке, в повседневной работе использует множество проверенных инструментов, а в свободное время исследует новые возможности и расширять свои горизонты.

В статье рассказал макросах в Swift 5.9, как их можно применять для избавление от бойлерплейта в коде, как их создавать, какие сложности есть с ними и куда всё это движется.
👍2🎉1
За и против: становиться ли айтишником в 2024 году

В 2024 году IT-специалисты остаются на пике популярности. Но стоит ли вам становиться одним из них? Рассмотрим основные аргументы, чтобы понять, стоит ли вам становиться IT-специалистом в нашей статье.👇

🔗 Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
🐍🛠️ 5 Python-инструментов, которые изменят ваш подход к разработке

Эффективность разработки на Python во многом зависит от используемых инструментов. В этой статье мы рассмотрим пять мощных решений, способных существенно повысить продуктивность вашей работы.

👉 Читать статью
👏1