Библиотека мобильного разработчика | 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
🍏 Чем будет свойство 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
🎨 Что такое перерисовка и как с ней бороться

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

В статье автор рассказывает, что такое перерисовки (Overdraw), как они влияют на производительность рендеринга и как можно их исправить.

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

#новость #android
3
Совет на 2025-й — будьте осторожнее с выбором работы.

IT-рынок штормит: массовые сокращения, заморозка найма, снижение зарплат. В такое время особенно важно отличать стоящие офферы от проходных.

Знакомо? Открываешь вакансию, а там: «Ищем middle-разработчика с опытом 10 лет, знанием 15 языков и готовностью работать за печеньки. Офис в Челябинске, релокация за ваш счет» 🤦‍♂️

Чтобы не тратить время на сотни сомнительных предложений, подпишитесь на IT Job Hub. Там мы отфильтровываем весь мусор и публикуем только избранные вакансии в стабильных компаниях:

— Зарплаты на уровне рынка, а не на уровне голодного студента
— Никаких «мы молодая и дружная семья» — только адекватные условия
— Проверенные работодатели, а не стартапы из сомнительных сфер

Вакансии удобно разбиты по тегам: #python #java #go #data #devops и по другим направлениям. Без воды и лишнего спама — только проверенные вакансии в знакомых компаниях.

Подписывайтесь, если не хотите упустить работу мечты → @proglib_jobs
😁5
🍏 Назовите 5 утверждений передачи управления (Control Transfer Statements)

Вот они слева-направо (сверху-вниз):

Break

Continue

Fallthrough

Throw

Return

Операторы передачи управления изменяют порядок выполнения вашего кода.

Например, вы можете использовать оператор передачи управления break для завершения выполнения цикла for, когда продолжение цикла считается ненужным:

for choice in choices:if isCorrect(choice):print(«Correct choice found!»)break


#swift
2