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

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

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

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

РКН: https://gosuslugi.ru/snet/67a4adec1b17b35b6c0d8389
Download Telegram
🛠️ Управление Xcode симулятором из симулятора

Знали ли вы, что можно управлять Xcode симулятором прямо из самого симулятора? Это открывает новые горизонты для тестирования и разработки ваших приложений.

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

👉 Читать статью
#xcode #swift #ios
1
👾 Какая польза от typealias?

Typealias — это механизм создания синонимов (псевдонимов) для существующих типов. То есть, можно создать новое имя для уже существующего типа данных.

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

typealias NodeSet = Set
typealias FileTable = MutableMap<K, MutableList<File>>


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

К примеру, если в проекте используется много Map<String, String> и вместо этого вы хотите использовать более описательное название, например Properties, вы можете определить новый тип для Map<String, String> помощью следующего кода:

typealias Properties = Map<String, String>


Теперь вместо использования Map<String, String> можно использовать Properties для обозначения одного и того же типа данных. Таким образом, код становится более читаемым и понятным.

#kotlin
👏7🎉2
Compose и SwiftUI: найди 10 отличий

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

Автор обсудит отличия декларативных UI-фреймворков: Compose и SwiftUI. Рассмотрит принципы работы в обоих случаях. Вы узнаете об отличиях в обновлении UI, жизненном цикле, системе модификаторов.

👀 Смотреть видео
#swift #kotlin
1😢1
📦 SwiftUI: Модификатор containerRelativeFrame

На WWDC 2023 Apple представила модификатор containerRelativeFrame для SwiftUI, который упрощает размещение элементов на экране.

В статье автор рассмотрит его определение, правила компоновки, примеры использования и важные соображения. Также в конце создаст обратно совместимую версию для старых SwiftUI.

#новость #swift #ios
4👍2
🦑👨‍💻 Программист в «Игре в кальмара»: каковы твои шансы выжить?

Готов проверить свои шансы на выживание в игре, где каждый шаг может стать последним? Ответь на вопросы и узнай, насколько хорошо ты справишься с испытаниями!

Пройти тест
4
🔧 Разработка плагина для Android Studio

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

• автоматизация рутинных задач;

• интеграция дополнительных инструментов и библиотек;

• настройка интерфейса под специфические нужды команды.

👉 Читать статью
#новость #android #kotlin
👍31🔥1
5️⃣ open source библиотек для вашего следующего проекта

🔹 Encore — Бэкенд-фреймворк для типобезопасных приложений

🔹 KitOps — Гибкое управление AI‑моделями

🔹 CopilotKit — Лёгкое создание AI‑агентов внутри приложения

🔹 OPAL — Административный уровень для Policy Engine

🔹 Stack Auth — Управляемая аутентификация пользователей

#дайджест
🔥2😁2
🌐 Flutter 3.27 — Что нового во Flutter?

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

Обновления касаются всего фреймворка, движка и экосистемы, включая прогресс с Impeller и улучшения виджетов Cupertino. Также представлены новые функции в DevTools, которые сделают управление проектами Flutter проще, чем когда-либо.

⚙️ Читать полностью
#новость #flutter
🔥4👍1
Эффект скрэтч-карты в Jetpack Compose

Тема создания эффекта скрэтч-карты уже не нова, и существует множество статей, в которых описан процесс реализации этого эффекта на основе двух перекрывающихся слоёв: слоя покрытия и слоя контента.

Однако автор статьи решил отойти от привычных схем и сделать так, чтобы слой контента мог быть любым макетом, а не только изображением.

👉 Читать статью
#новость #kotlin #android
🥱21😢1
👾 Кастомный трансформер для BLoC

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

В этой статье автор разберётся с такими вопросами:

• Что такое Event Transformers? Для чего они нужны?

• Как их применять?

И сделает 2 кастомных трансформера различной сложности.

#новость #flutter
👍32
🌍✈️ 6 идей, как ускорить поиск работы за рубежом

Статья для тех, кто устал от отказов и безрезультатных поисков. Узнайте секреты, которые помогут вам найти работу за рубежом в разы быстрее!

👉 Читать статью
👍2🔥1
🌟 Итоги кода: Flutter, Android и iOS в 2024-м

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

В статье рассматриваются ключевые достижения в Flutter, Android и iOS за 2024 год, а также их влияние на будущее индустрии.

#новость #flutter #android #ios
😁31🎉1
📱 Как iOS-разработчику выжить на проекте с KMP

В докладе автор обсудит, как iOS-разработчику адаптироваться и успешно работать на проекте с использованием Kotlin Multiplatform (KMP). Также рассмотрит основные проблемы, с которыми сталкиваются разработчики, и предложит эффективные пути их решения.

👀 Смотреть доклад
#новость #ios
🥱5🔥3😁2
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍3
💻📈 Итоги года Proglib: 2024 год в цифрах и достижениях

«Библиотека программиста» подводит итоги 2024 года: 415 экспертных статей и миллион просмотров ежемесячно. Разбираем ключевые достижения, лучшие материалы и делимся планами развития.

📰 Читать статью
#новость
👍3😁2
🎄 Как вы встречаете Новый год?

👍 — с друзьями на вечеринке
❤️ — в кругу семьи
👏 — в путешествии
🤩 — дома с фильмами и закусками
34🤩7👍4👏4🎉1
📱 Background Modes в iOS: обзор основных модов

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

С момента релиза iOS 4 Apple позволила приложениям работать в фоновом режиме. На данный момент существует 11 режимов фонового выполнения, которые могут использовать приложения.

👉 Читать статью
#новость #ios
🥰3
🍏 Что такое Deinitializer (деинициализатор) ? Как его создать?

Деинициализатор запускается до того, как экземпляр класса будет деаллоцирован.

Вы можете создать деинициализатор, используя ключевое слово deinit.

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

Вот пример деинициализатора, который устанавливает number обратно в 0 при деаллокации экземпляра Example.

var number = 15
class Example {
init() {
number *= 10
}
deinit {
number = 0
}
}

#swift
3🥱2
📌 Mapping классов с помощью плагина MapCraft в Android Studio

Создание мапперов между дата-классами может быть утомительным, особенно в Clean Architecture, где возникает множество сущностей и дублирование кода.

Библиотека MapStruct полезна для небольших проектов, но в крупных она замедляет сборку из-за kapt.

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

📂 Читать статью
#android #kotlin
👏4