AppFiles - Mobile Development
1.99K subscribers
2.53K photos
33 videos
8 files
3.41K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Шаблон Цепочка обязанностей и его реализация на Swift

Поведенческие модели проектирования необходимы для оптимизации взаимодействия между объектами в программной системе. Один из таких паттернов, «Цепочка обязанностей», особенно полезен для организации и управления тем, как запрос обрабатывается различными компонентами системы. Отделяя отправителя запроса от его получателей, этот паттерн повышает гибкость и упрощает сопровождение кода. В этой статье мы рассмотрим паттерн «Цепочка обязанностей» и продемонстрируем его реализацию с помощью кода Swift.

Статья: https://apptractor.ru/Chain-of-responsibility
Платформа: Swift
Swift Power Assert - показывает информацию о состоянии всех переменных ассерта в виде удобной диаграммы (Power assertions или Диаграммные утверждения дополняют неудачи утверждений информацией о значениях, полученных при оценке условия, и представляют ее в легко усваиваемой форме).

Swift Power Assert реализована с использованием макросов - экспериментальной возможности Swift. Поэтому для использования этой библиотеки необходимо использовать предварительную версию инструментов Swift.

Swift Power Assert на GitHub: https://github.com/kishikawakatsumi/swift-power-assert
Платформа: iOS
⭐️: 136
В Compose враг номер один - это ненужные рекомпозиции. Часто разработчики используют такие инструменты, как recompositionHighligher, LogComposition и layout inspector для подсчета рекомпозиций, но нет прямого способа понять, почему произошла рекомпозиция. Rebugger - это простая функция компоновки, которая может отслеживать изменения в заданных аргументах. Она выводит причину рекомпозиции в окно Logcat.

Rebugger на GitHub: https://github.com/theapache64/rebugger
Платформа: Android
⭐️: 339
До того, как это стало стримом — рассказываем о настройке потокового вещания

Пользователь запускает приложение, нажимает кнопку — и вжух, уже стримит в сеть, а к его стриму подключаются другие пользователи. В плеере в этот момент происходит огромная работа: скрипты забирают изображение и звук, кодируют, пакуют в контейнеры, и передают данные в местный разгрузочный порт, где контейнер снова разбивают на упакованное в него видео и аудио. Сколько усилий! Как эти усилия выглядят на самом деле и о способах настройки потокового вещания на примере работы с протоколом SRT рассказывает iOS-разработчик CleverPumpkin Никита Тархов.

Статья: https://apptractor.ru/stream-potok
Платформа: iOS
MarkdownUI - это мощная библиотека для отображения и настройки Markdown-текста в SwiftUI. Она совместима с GitHub Flavored Markdown Spec и может отображать изображения, заголовки, списки, кавычки, блоки кода, таблицы, а также стилизованный текст и ссылки.

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

Работает минимум на iOS 15.0.

MarkdownUI на GitHub: https://github.com/gonzalezreal/swift-markdown-ui
Платформа: iOS
⭐️: 1.3K
5 способов подготовить ваше приложение к выходу Android Studio Flamingo

При обновлении до Android Studio Flamingo и Android Gradle Plugin 8.0 необходимо обновить файлы сборки приложений, чтобы учесть пять важных изменений в поведении сборки.

Статья (En): https://apptractor.ru/5-ways-to-prepare-your-app
Платформа: Android
Как использовать If Case Let в Swift и не сойти с ума

Например, если у вас есть коробка конфет и вы хотите проверить, есть ли в ней карамель, вы можете использовать для этого "if case let".

Статья (En): https://apptractor.ru/if-case-let-in-swift
Платформа: iOS
Forwarded from Код Воробья для iOS разработчиков
В 💻 Xcode 14 прокачали автокомплит - инициализаторы, Codable, форматирование и другое. В видео наглядно, как это работает.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
Сам себе экосистема: Как я адаптировал старый смартфон под современные реалии и написал клиенты нужных мне сервисов

Время неумолимо бежит вперед: выходят новые гаджеты, постепенно заменяя старые, превращая их в тыкву или в лучшем случае, в «тапочек» для звонков. Сейчас смартфоны стали практически одинаковы во всем: дисплей на всю площадь передней панели, почти полное отсутствие аппаратных кнопок, беспроводная зарядка… Это всё, конечно, здорово, но ведь иногда так хочется взять в руки старый, но такой необычный в наше время QWERTY-смартфон и попытатьфся его использовать как основной, да и цены на них могут приятно удивить: БУ девайс можно купить за несколько сотен рублей (~5-10$). Одна проблема — клиенты приложений на версии Android 1.6-2.0 безбожно устарели и давно не работают. Но иногда желание воскресить старый девайс превыше потребительского качества и тут я пришёл к мысли… а почему бы не написать с нуля свои клиенты популярных приложений? ВК с музыкой, YouTube, трекинг посылок. Так я и сел писать необходимые в повседневной жизни приложения, с нуля, на голом API Android, без каких либо фреймворков (и даже AppCompat).

Статья: https://habr.com/ru/companies/timeweb/articles/726086/
Платформа: Android
😱21
Pocket Shop - мобильный магазин, выполненный в лучших правилах MAD. Внутри Kotlin, Coroutines + Flow, Jetpack, MVVM, Retrofit2 & OkHttp3, Moshi и все остальные инструменты.

Pocket Shop на GitHub: https://github.com/AYOMITIDE-OAJ/pocketshop
Платформа: Android
⭐️: 1
Вышла стабильная версия Android Studio Flamingo

Этот выпуск включает улучшения, помогающие создавать до пикселя идеальный пользовательский интерфейс с помощью Live Edit, шаблоны проектов с Jetpack Compose и Material 3, новые функции, помогающие инспектировать ваше приложение, обновления IntelliJ, App Quality Insights и многое другое.

Анонс: https://android-developers.googleblog.com/2023/04/android-studio-flamingo-is-stable.html
Платформа: Android
Освоение Canvas в SwiftUI

В SwiftUI можно рисовать 2D-графику с помощью Shape API, но в итоге фреймворк преобразует все фигуры в представления SwiftUI и рендерит их. У этого подхода есть свои плюсы и минусы. К счастью, мы можем рисовать насыщенную 2D-графику, не комбинируя несколько фигур. На этой неделе мы узнаем, как использовать представление Canvas в SwiftUI.

Статья: https://swiftwithmajid.com/2023/04/11/mastering-canvas-in-swiftui/
Платформа: iOS
👍1
Mockingbird - библиотека для мокирования, позволяет легко подражать, создавать заглушки и проверять объекты в модульных тестах Swift. Вы можете тестировать как Swift, так и Objective-C код без написания шаблонов или модификации производственного кода.

Mockingbird на GitHub: https://github.com/birdrides/mockingbird
Платформа: iOS
⭐️: 573
KotlinConf 2023 Keynote

На открытии KotlinConf 2023 представители JetBrains сделали несколько интересных анонсов о языке Kotlin и развитии экосистемы вокруг него.

Так:

• Компилятор K2 будет выпущен с Kotlin 2.0.
• Gradle Kotlin DSL будет использоваться по умолчанию в новых сборках.
• В Google наблюдается стремительный рост внедрения языка Kotlin.
• Kotlin Foundation запускает программу финансирования для авторов библиотек и программу членства для компаний.
• Kotlin Multiplatform станет стабильным в этом году.
• Вышла альфа-версия Compose для iOS.
• Экспериментальный Compose для Web будет работать на базе Kotlin/Wasm.

Видео: https://youtu.be/c4f4SCEYA5Q
Сайт: https://blog.jetbrains.com/kotlin/2023/04/kotlinconf-2023-opening-keynote/
Платформа: Android
👍2
Цикломатическая сложность в Swift

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

Цикломатическая сложность — это модный термин, обозначающий количество точек принятия решений в коде. На самом деле это очень просто. По сути, чем больше у вас точек принятия решений — например, операторов if, switch, циклов и так далее, — тем сложнее становится ваш код. А чем сложнее код, тем труднее его понимать, тестировать и поддерживать.

Статья: https://apptractor.ru/info/articles/tsiklomaticheskaya-slozhnost-v-swift.html
Платформа: Swift/программирование
Что такое Gradle Kotlin DSL?

В этой статье мы поговорим о Gradle, почему именно Kotlin DSL, и о переходе от Groovy к Kotlin DSL.

Статья: https://medium.com/@talhafaki/what-is-gradle-kotlin-dsl-a995aafc5e5c
Платформа: Android
Redukks - простая, типобезопасная и тестируемая реализация архитектуры Redux/Uniflow для Kotlin Multiplatform. Она упрощает создание хранилищ, редукторов и действий, а также предоставляет простой способ их тестирования.

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

Эта библиотека находится в стадии альфа-версии.

Redukks на GitHub: https://github.com/ianrumac/redukks/
Платформа: Android/KMM
⭐️: 22
This media is not supported in your browser
VIEW IN TELEGRAM
Анимация Apple Hello

В настоящее время я работаю над неанонсированным проектом, но могу сообщить, что в нем будет использована анимация "hello" от Apple. Это знаковая анимация, в которой от руки написано слово "привет". Вы можете увидеть ее в действии в весеннем кейноуте Apple 2020 года. К сожалению, в SwiftUI нет встроенной функции для достижения этого эффекта, поэтому мне пришлось создавать все с нуля.

Статья (En): https://thisdevbrain.com/apple-hello-animation/
Платформа: iOS

Поставьте 👍, если хотите эту статью на русском!
💩1
Как Slack отправляет миллионы сообщений в режиме реального времени

В этой статье мы опишем архитектуру, которую мы используем для отправки сообщений в режиме реального времени в таких масштабах. Мы подробно рассмотрим сервисы, которые отправляют сообщения в чаты и рассылают различные события онлайн-пользователям в режиме реального времени. Наши основные службы написаны на Java - это серверы каналов (Channel Servers, CS), серверы шлюзов (Gateway Servers, GS), серверы администраторов (Admin Servers, AS) и серверы присутствия (Presence Servers, PS).

Статья: https://apptractor.ru/slack-online
Платформа: разработка
👍1