AppFiles - Mobile Development
2.12K subscribers
2.71K photos
38 videos
10 files
3.64K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Concurrency шаг за шагом — сетевой запрос

Разбираемся шаг за шагом как сделать сетевой запрос для загрузки картинки в Swift Concurrency.

Статья: https://apptractor.ru/info/articles/concurrency-shag-za-shagom-setevoy-zapros.html
Платформа: iOS
3
Swift MMIO - это пакет с открытым исходным кодом для определения и работы с отображаемыми на память вводом/выводом непосредственно в Swift.

Swift MMIO позволяет легко определять регистры непосредственно в исходном коде Swift и работать с ними безопасным и эргономичным способом.

Memory-mapped I/O (MMIO, память с отображением на ввод-вывод) — это метод взаимодействия процессора с периферийными устройствами, такими как жесткие диски, видеокарты и сетевые адаптеры, при котором устройства ввода-вывода отображаются в адресное пространство оперативной памяти. Это означает, что для доступа к регистрам периферийного устройства используются обычные команды работы с памятью, а не специальные инструкции ввода-вывода.

Swift MMIO на GitHub: https://github.com/apple/swift-mmio
Платформа: Swift/iOS
⭐️: 197
От Cocoapods к Tuist+SPM быстрыми шагами

Не так давно прогремела новость, что Cocoapods переходит в режим поддержки. В связи с этим встал вопрос, что дальше. В начале мы склонялись к чисто Swift Package Manager, но потом пришло понимание, что неплохо было бы уйти от конфликтов в project файле и сделать задел на модульность. В этой статье мы пройдем от нашего старого приложения к новому и закончим там, где останется перенести исходный код и все заработает.

Статья: https://habr.com/ru/articles/837456/
Платформа: iOS
lazy-grid-demo.webp
3.9 MB
Reorderable - это простая библиотека, которая позволяет перестраивать элементы в LazyColumn, LazyRow, LazyVerticalGrid, LazyHorizontalGrid, LazyVerticalStaggeredGrid и LazyHorizontalStaggeredGrid, а также Column и Row в Jetpack Compose и Compose Multiplatform с помощью перетаскивания. Поддерживает Compose Multiplatform (Android, iOS, Desktop/JVM, Wasm, JS), элементы любого размера, немедленное перетаскивание или длительное нажатие для перетаскивания, скролл при достижении границ экрана, анимацию движения. и т.п.

Reorderable на GitHub: https://github.com/Calvin-LL/Reorderable
Платформа: Android
⭐️: 392
👍2
ArtMaker - это гибкая и настраиваемая библиотека, которая позволяет пользователям рисовать на экране все, что они захотят. Полностью построена на Jetpack Compose. Она позволяет рисовать через Canvas, делиться нарисованным Bitmap или программно раскрывать Bitmap для использования в вызывающем приложении.

ArtMaker на GitHub: https://github.com/Fbada006/ArtMaker
Платформа: Android
⭐️: 10
👍1
Задачи с собеседований: Leetcode — Является ли число палиндромом

Дано целое число x, верните true, если x является палиндром (читается одинаково слева на право и с право на лево) и false в противном случае.

Я добился 99% по скорости, но как уменьшить потреблением памяти (даже в ущерб быстродействию) вообще непонятно. Вполне допускаю, что это просто особенность реализации алгоритма на Swift. Если кто знает - подскажите.

Статья: https://apptractor.ru/develop/coding/chislo-palindrom.html
Платформа: алгоритмы
👍2🤡1
This media is not supported in your browser
VIEW IN TELEGRAM
6 причин не использовать Server Driven UI

Мой главный посыл в этой статье - избегайте использования Server-Driven UI, насколько это возможно (если только команда разработчиков и руководство не разработают хороший конвейер для решения всех проблем). SDUI может сделать распределение кода и ответственности беспорядочным и трудноорганизуемым, даже если все находятся на одной волне. Это решение также может лишить вас гибкости в отношении новых решений в области дизайна и функциональности.

Статья: https://apptractor.ru/info/articles/server-driven-ui-6-prichin-ne-ispolzovat-ego.html
Платформа: архитектура
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Settings iOS - учебное приложение на SwiftUI, воспроизводящее стандартные Настройки в iOS.

Settings iOS на GitHub: https://github.com/zhrispineda/Settings-iOS
Платформа: iOS
⭐️: 14
Профилирование приложений на SwiftUI с помощью Instruments

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

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

Статья: https://habr.com/ru/companies/otus/articles/838490/
Платформа: iOS
💅1
10 самых распространенных ошибок с Jetpack Compose

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

1. Не помнить о правильном использовании remember
2. Чрезмерное использование Modifier.fillMaxSize()
3. Игнорирование оптимизаций производительности
4. Путать State и MutableState
5. Неправильное использование LaunchedEffect
6. Неправильное управление рекомпозицией
7. Переусложнение пользовательского интерфейса с помощью вложенных композабл
8. Неэффективное использование тем и стилей
9. Неадекватное тестирование
10. Пренебрежение доступностью

Статья: https://apptractor.ru/info/articles/10-samyh-rasprostranennyh-oshibok-s-jetpack-compose.html
Платформа: Android
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Compose Stopwatch - еще один учебный проект, таймер с секундомером в стиле iOS. Сделан полностью на Jetpack Compose. Есть соответствующая статья про его создание.

Compose Stopwatch на GitHub: https://amit-bhandari.github.io/posts/jetpack-compose-custom-view/
Платформа: Android
⭐️: 10

Поставьте 👍, если хотите статью на русском.
👎2👏1
Проверяем пакет iOS-приложения

Если вы знаете секретные языки ipa-нский и bundle-инди, вы можете удивить и порадовать интервьюера неожиданным отзывом — если потратите 10 минут на проверку и анализ его пакета приложений заранее.

Статья: https://apptractor.ru/info/articles/proveryaem-paket-ios-prilozheniya.html
Платформа: iOS
Карточка навигации для iOS 18 на SwiftUI

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

Давайте посмотрим, как это можно сделать в SwiftUI.

Статья: https://apptractor.ru/info/articles/kartochka-navigatsii-dlya-ios-18-na-swiftui.html
Платформа: iOS
Подходы к многомодульной функциональной архитектуре на Android

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

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

Статья: https://apptractor.ru/info/articles/podhody-k-mnogomodulnoy-funktsionalnoy-arhitekture-na-android.html
Платформа: Android
Supercool App - модульное приложение для Android, созданное на Jetpack Compose и Kotlin на чистой архитектуре с использованием удивительного паттерна проектирования Use Case. Технологический стек вобрал все, что только можно - Android KTX, AndroidX, корутины, Lifecycle, Viewmodel, LiveData, Retrofit, Flow, Hilt, Navigation Components, GitHub Actions, Mockito Kotlin, Room, Material Compose и т.п.

Supercool App на GitHub: https://github.com/im-o/jetpack-compose-clean-architecture
Платформа: Android
⭐️: 71
👎1
Как я ускорил свое мобильное приложение BookDesk на React Native в 3 раза?

В этом материале я поделюсь с вами практическим опытом по оптимизации своего мобильного приложения на React Native. Расскажу как ускорил свое приложение в 3 раза.

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

Статья: https://habr.com/ru/articles/839248/
Платформа: кроссплатформа
Mapping объектов с помощью MapStruct

В огромном приложении Android с Clean Architecture много рутинной работы, связанной с отображением объектов между различными слоями. Хорошим решением будет автоматизация этого процесса.

В этой статье рассматривается опыт использования библиотеки MapStruct, которая помогает mapp-ить объекты.

Статья: https://habr.com/ru/articles/839362/
Платформа: Android
👎4
SwiftDraw - это Swift-библиотека для парсинга и отрисовки SVG-изображений, включающая инструмент командной строки для преобразования SVG в SFSymbol, PNG, PDF и исходный код Swift.

SwiftDraw на GitHub: https://github.com/swhitty/SwiftDraw
Платформа: iOS
⭐️: 360
Видео и подкасты за неделю @AppFiles

(iOS Ru) Стратегия автотестирования для iOS приложений
(iOS Ru) 5 вопросов для iOS разработчика
(iOS Ru) Борьба с утечками памяти: от задачи до победы
(iOS En) Import & Export Swift Data with Password
(iOS En) Interactive Expandable Header - SwiftUI
(And Ru) 5 уроков из опыта реализации pixel-perfect тестирования дизайн-системы в Android
(And Ru) Gradle-сборка. Измеряем самое важное
(And Ru) Шифруем файлы в Android
(And En) Now in Android: 109 - Android 15 Beta 4, Samsung Galaxy Unpacked, Google Play's new feature, & more
(And En) Hot Flows vs. Cold Flows In Kotlin - When to Use What?
(And En) 5 Kotlin Coroutine Secrets I Wish I Knew Earlier
(And En) Kotlin After 2.0
(And En) Revamping and Extending Kotlin's Type System
(And En) The state of code coverage for Kotlin
(Crs En) There's more than a mouse in Compose Multiplatform for Desktop
(Dev Ru) Как писать чистый код — угадываем что ввел юзер и дизайним с нуля Clean Code Approach
(Dev Ru) Егор Бугаенко про ТикТок, Huawei и ленивых разработчиков
(Dev Ru) Зачем учить язык Си в 2024 году — Как выбрать между C или C++ или Rust

#ios #android #mobile #video