Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck
9.88K subscribers
1.43K 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
👨‍💻 Как работать с Koin scopes в Jetpack Compose Navigation

При разработке современных Android-приложений важную роль играет удобная навигация между экранами и управление зависимостями. Jetpack Compose Navigation — это библиотека, предоставляющая декларативный способ организации навигации в приложениях, построенных на Jetpack Compose.

Koin — это лёгкий и удобный фреймворк для внедрения зависимостей (DI) в приложениях. Он предлагает декларативный синтаксис для определения модулей, а также поддержку scoping’а, который помогает управлять жизненным циклом зависимостей.

В статье автор рассматривает, как использовать Koin scopes в связке с Jetpack Compose Navigation, чтобы эффективно управлять зависимостями на разных уровнях навигационного графа.

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

#новость #ios
🥰3
⚒️ Как устроен пользовательский интерфейс SwiftUI

iOS‑разработчикам приходится много работать с пользовательскими интерфейсами. Понимание различных аспектов пользовательского интерфейса, таких как жизненный цикл или компоновка, имеет решающее значение для работы с UIKit и SwiftUI.

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

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

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

#новость #ios #swift
🤩4🤔1
🍏 Чем будет свойство pounds в следующем примере?

class Weight {
var kilograms: Float = 0.0
var pounds: Float {
get { return (kilograms * 2.205)}set(newWeight) {
kilograms = newWeight /2.205
}}}
let weight = Weight()
weight.kilograms = 100print(weight.pounds) // prints '220.5'weight.pounds = 315print(weight.kilograms) // prints '142.85715'


Свойство pounds также известно как вычисляемое свойство.

В Swift вычисляемые свойства не хранятся в объекте. Вычисляемое свойство означает, что его значение вычисляется «по требованию» только при попытке доступа к нему. Вы можете создавать вычисляемые свойства с помощью методов get и (необязательно) set.

• Метод get выполняет вычисление «по требованию», когда вызывается weight.pounds.

• Метод set обновляет килограммы, когда обновляются фунты. (Обратите внимание, что метод set является необязательным, и вам не нужен такой метод для создания вычисляемого свойства).

#swift
2
🌐 Такие разные Slivers: гибкое управление элементами

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

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

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

#новость #flutter
👍3
💻 Xmtp-ios — клиентский SDK для работы с XMTP

XMTP — крупнейшая и самая безопасная децентрализованная сеть обмена сообщениями. Xmtp-ios представляет собой Swift-реализацию клиента XMTP message API для использования в iOS-приложениях.

Используйте xmtp-ios для для отправки сообщений между блокчейн-аккаунтами, включая DM, уведомлений, анонсов и многого другого.

⚙️ Xmtp-ios на GitHub

#новость #ios
1
🚙 Kotlin Coroutines под капотом

Structured Concurrency — это одна из главных фишек Kotlin Coroutines, позволяющая оперировать иерархиями корутин через единый интерфейс. Благодаря такой организации можно легко отменить сразу все корутины, имея ссылку только на самый высокоуровневый объект.

В этой статье автор разбирает две базовые концепции, на основе которых строится Structured Concurrency — CoroutineContext и CoroutineScope.

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

#новость #android #kotlin
2
👉 Интенсив «Архитектуры и шаблоны проектирования» для middle и senior-разработчиков

Проверьте свои знания, ответив на 8 вопросов – https://proglib.io/w/1e25b7f3

🧐 Кому подойдет?
Разработчикам, которые знают любой объектно-ориентированный язык программирования и хотят углубиться в архитектурные паттерны.

🎮 Как проходит обучение?
В течение всего интенсива вы будете создавать игру «Звездные войны» и применять ключевые архитектурные паттерны. В процессе изучите:
– Как строить гибкую архитектуру, которая не замедляет разработку
– Как применять IoC-контейнеры и писать модульные тесты
– Как использовать SOLID за пределами ООП
– Как внедрять CI/CD и снижать технический долг

👉 Подробная программа обучения

А по промокоду MIDDLE до 28 февраля вы получите дополнительную скидку на обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩3
📱🧮 Как Android обошел iOS в создании идеального калькулятора

Когда в Google решили написать по-настоящему точный калькулятор для Android, они и не подозревали, что эта задача потребует участия выдающегося эксперта по C/C++ и создания гибридной математической системы.

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

#новость #android #ios
👾7👍4
Вакансии «Библиотеки программиста» — ждем вас в команде!

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

Подробности тут

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

Ждем ваших откликов 👾
🌐 Flutter 3.29 — Что нового во Flutter

Этот релиз улучшает разработку и повышает производительность, с обновлениями Impeller, Cupertino, DevTools и других. Flutter 3.29, в котором приняли участие 104 уникальных автора, демонстрирует преданность сообщества.

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

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

#новость #flutter
4
👨‍💻 Embedded Swift Example Projects — примеры встраиваемого Swift

Embedded Swift Example Projects — этот репозиторий представляет собой набор демонстрационных проектов для встраиваемого Swift. Embedded Swift — это режим компиляции и языка, который позволяет разрабатывать на Swift baremetal, встраиваемые и автономные программы или игры.

⚙️ Embedded Swift Example Projects на GitHub

#новость #ios
3👍1
👾 С праздником защитников мобильных приложений

🛡 Андроидный батальон Kotlin:

▪️ null safety — бдительный часовой, не пускающий NullPointerException на порог.

▪️ data class — спаситель от тонны boilerplate-кода (и нервных срывов).

▪️ when expression — безжалостно отлавливает все забытые cases.

⚔️ Элитный отряд Swift:


▪️ Optional — специалист по предотвращению внезапных крашей.

▪️ guard let — беспощадный борец с unwrapped nil.

▪️ ARC — чтобы память точно не утекла.

Кого забыли в этом списке? Делитесь в комментариях 👇
🎉911
👾 Почему reified возможно использовать только с inline-функциями

Ключевое слово reified используется только с inline-функциями, т.к. оно позволяет получить доступ к информации о типе-параметре на этапе выполнения программы, что невозможно для обычных (non-inline) функций.

inline-функции в Kotlin позволяют копировать тело функции непосредственно в вызывающий код. Это позволяет избежать накладных расходов на создание объектов и вызовы функций при каждом вызове.

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

Также стоит отметить, что ключевое слово reified можно применять только с обобщенными типами (дженериками).

#kotlin
5
📱 Осваиваем скроллинг в SwiftUI

Начиная с iOS 17 в SwiftUI появилась функция scrollTargetBehavior, позволяющая разработчикам управлять поведением прокрутки с большей точностью. Будь то выравнивание представлений или реализация пользовательских эффектов пагинации, ScrollTargetBehavior обеспечивает надежную поддержку. Что еще более важно, разработчики могут создавать собственные реализации функции для удовлетворения конкретных потребностей.

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

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

#новость #ios #swift
🥰41
💬 Monal — открытый XMPP-клиент

Monal — кроссплатформенный современный открытый XMPP-клиент для iOS и macOS. Среди фич — отсутствие рекламы и отслеживания личной информации, зашифрованные чаты, работа с корпоративными XMPP-серверами, требующими VPN, поддержка групповых чатов, аудио/видео звонков.

⚙️ Monal на GitHub

#новость #ios
🤩3
🌐 Pазгоняем MVVM до максимума

Задумываетесь ли вы при покупке новой вещи о том, какой путь она прошла, прежде чем попасть к вам в руки? А ведь телефон, книга или тарелка могли посетить аж четыре дополнительных точки, если продавец далеко от склада.

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

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

#новость #flutter
👍6🤩2🔥1