AppFiles - Mobile Development
رفتن به کانال در Telegram
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
نمایش بیشتر2 168
مشترکین
+524 ساعت
+27 روز
+530 روز
آرشیو پست ها
DDLoggerSwift - терминал, который работает с логами приложений, и который может генерировать общий лог-файл и отладочную информацию, когда реальный смартфон не подключен к Xcode. Вы можете делиться записями, фильтровать логи и выполнять другие операции. Можно использовать SQLite для хранения информации, есть поддержка совместного использования системы и отображения на экране
DDLoggerSwift на GitHub: https://github.com/DamonHu/DDLoggerSwift
Платформа: iOS
⭐️: 33
Композим иконки. Улучшаем семантику и скорость отрисовки
Во время работы над новыми экранами мне часто приходилось использовать множество различных иконок, разбросанных по всему проекту. Это навело на мысль: было бы здорово собрать все иконки в UI Kit в единственном экземпляре и использовать их только оттуда — по аналогии с тем, как это делают дизайнеры в Figma. И тогда я вспомнил об одной особенности Jetpack Compose. С момента появления в нём существует новый способ отрисовки иконок с помощью кода. На мой взгляд, этот метод отличается удобной семантикой и несколько более высокой производительностью.
Статья:
Платформа: Android
Как я решал задачу получения доступа к данным банковских приложений на iOS
Вы пользуетесь кешбэком, может даже выбираете категории повышенного кешбэка каждый месяц? Когда у вас несколько карт разных банков с кешбэком, становится непросто запомнить, какую из них лучше использовать для конкретной покупки в этом месяце.
Можно было бы эти категории записывать на листик или куда‑то в заметки, но я решил сделать iOS приложение, в котором можно добавлять выбранные категории кешбэка, а они уже будут выводиться в виде виджета.
Заполнять данные о категориях вручную мне показалось неудобно, поэтому я начал думать, как упростить пользователю получение и ввод этих данных из банковских приложений. О том, как я решил эту задачу, расскажу в этой публикации.
Статья: https://habr.com/ru/articles/840138/
Платформа: iOS
Learn Kotlin Coroutines - изучение корутин на реальных примерах для Android. Этот проект предназначен для тех, кто хочет начать изучать асинхронное программирование в применении к мобильным приложениям. Автор постарался добавить примеры, которые он сам часто реализует в своем проекте.
Learn Kotlin Coroutines на GitHub: https://github.com/amitshekhariitbhu/Learn-Kotlin-Coroutines
Платформа: Android
⭐️: 373
Все статьи про Android за неделю
• Интересные приёмы, взятые из исходников Android
• Создаем атомный лоадер на Jetpack Compose
• Композим иконки. Улучшаем семантику и скорость отрисовки
• NFC на Android: создание системы предоплаты с использованием NDEF меток
• Фокус в Android TV
• Многопоточность в Android: тогда и сейчас
• Советы по обработке Insets для обеспечения edge-to-edge на Android 15
• Как я разрушил свои стереотипы об автотестах, или Мой путь от Appium до Kaspresso
• Защита мобильных приложений. Записки охотника: Почему Appdome иногда такой себе Dome
• Организация кода в проекте — в какой пакет положить Kotlin класс
• Android 15 опубликован в AOSP
•
(En) String vs StringBuffer vs StringBuilder
• (En) Coroutine Testing — Never ending tests & backgroundScope
• (En) Avoiding unintentional device exclusion in an Android app
• (En) Android Studio Koala Feature Drop is Stable!
• (En) Transforming Figma UI Designs into Jetpack Compose Code with Google AI Studio: A Step-by-Step Guide
• (En) Composable-scoped ViewModel: An interesting experiment
• (En) Loading Initial Data in LaunchedEffect vs. ViewModel
• (En) How to Provide Photos to the Gallery for Running UI Automated Tests
• (En) Mastering Navigation in Jetpack Compose: A Guide to Using the inclusive Attribute
• (En) How to Create an Atomic Loader in Jetpack Compose
• (En) Insets handling tips for Android 15’s edge-to-edge enforcement
• (En) Kotlin KSP — how to automate everything in the world
• (En) Best way to keep state in a ViewModel
• (En) Unlock Android Jetpack Components: Hidden Tricks to Build Successful App
• (En) Android Compose Videos with ExoPlayer
• (En) Android dev very overengineered and difficult to get into?
• (En) Anti-Pattern: Stop Leaking Kotlin Flow Collectors in Your Android ViewModel
• 📹 Building for the future of Android
• 📹 What’s new in Android Studio Koala
• 📹 Master Kotlin Coroutines & Flows
• 📹 Build your own compiler with KSP
• 📹 Applying the State Pattern in Kotlin
• Voice — минималистичный плеер аудиокниг
• aDp — масштабирование дизайна Compose для разных экрановВсе статьи про iOS за неделю
• Все, что вы хотели знать о флагах в эмодзи (но не знали, что вам это нужно)
• Как я решал задачу получения доступа к данным банковских приложений на iOS
• Дружим iPhone и ESP32. Часть 1. ESP Arduino Core
• Как встроить распознавание звуков в ваше iOS приложение на Swift с использованием SoundAnalysis
• Время сборки и верификация модулей
• Поваренная книга SwiftUI: списки и навигация — Часть 1
• Я получил новый iPhone, но мой аккаунт в социальных сетях заблокирован
• Apple забанила аккаунт компании победителя WWDC
• 🇬🇧 Темная сторона однонаправленных архитектур Swift
• 🇬🇧 JavaScript to Swift and back: Bridging location services in WKWebView
• 🇬🇧 SwiftData’s new Index and Unique macros
• 🇬🇧 Elevate Your Testing Game with Swift Testing
• 🇬🇧 Limit Swift Concurrency’s cooperative pool
• 🇬🇧 Custom hover effects in SwiftUI
• 🇬🇧 Backport SwiftUI modifiers
• 🇬🇧 Hiding A SwiftUI View From Switch Control
• 🇬🇧 Animating SF Symbols on iOS 18
• 🇬🇧 The AirDrop Conundrum: Passing Custom Models From and To Your App
• 🇬🇧 SwiftUI Modifiers Deep Dive: containerRelativeFrame
• 🇬🇧 How-to: Symbolicate MetricKit Crashdiagnostics
• 🇬🇧 Walmart Software Engineer III — IOS (IN3) My Interview Experience
• 📹 SwiftUI Custom Popups — iOS 17 & 18
• 📹 SwiftUI TextRenderer
• 📹 SwiftUI Reorderable Scroll View — Custom Drag & Drop With Scroll Detection — iOS 18
• 📹 Create Modular iOS Apps with Swift Packages: Step-by-Step Guide!
• 📹 SwiftUI — Reorder a List (2 Ways)
• 📹 Fix This Problem with SwiftUI Lists
• Verge — надежный фреймворк управления состоянием
• Swift AST Explorer — визуализация абстрактного синтаксического дерева
Темная сторона однонаправленных архитектур Swift
В этой статье речь пойдет о главной проблеме всех однонаправленных архитектур Swift. Собственно говоря, это не проблема однонаправленных архитектур как таковых. Скорее, это проблема моделирования действий или событий как значений. Я ее называю “пинг-понг-проблемой”. Все дело в “скачках” между разными местами кода, которые приходится преодолевать, чтобы получить целостное представление обо всем потоке.
Статья: https://nuancesprog.ru/p/21632/
Платформа: iOS
Как я разрушил свои стереотипы об автотестах, или Мой путь от Appium до Kaspresso
В этой статье хочу рассказать, как я прошел путь от Appium до open-source-фреймворка Kaspresso, с чего начинал, какие делал для себя открытия, как разрушались мои стереотипы и какие по итогу были сделаны выводы.
Статья: https://habr.com/ru/companies/kaspersky/articles/841136/
Платформа: Android
Видео и подкасты за неделю @AppFiles
•
(iOS En) SwiftUI Custom Popups - iOS 17 & 18
• (iOS En) SwiftUI TextRenderer
• (iOS En) SwiftUI Reorderable Scroll View - Custom Drag & Drop With Scroll Detection - iOS 18
• (iOS En) Create Modular iOS Apps with Swift Packages: Step-by-Step Guide!
• (iOS En) SwiftUI - Reorder a List (2 Ways)
• (iOS En) Fix This Problem with SwiftUI Lists
• (And Ru) Организация кода в проекте — в какой пакет положить Kotlin класс
• (And En) Building for the future of Android
• (And En) What's new in Android Studio Koala
• (And En) Master Kotlin Coroutines & Flows
• (And En) Build your own compiler with KSP
• (And En) Applying the State Pattern in Kotlin
• (Dev Ru) Архитектурное собеседование — по обе стороны баррикад (+ все собеседования)
• (Dev Ru) Backend-Driven UI и конструкторы. Благо или зло?
• (Dev Ru) Открытое собеседование — технический руководитель: разбор кейса
• (Dev Ru) Как работает авторизация и аутентификация — OAuth, JWT, webauthn, RBAC, ABAC
#ios #android #mobile #videoVerge - это высокопроизводительная, масштабируемая библиотека управления состоянием для Swift, разработанная с учетом реальных сценариев использования. Она предлагает легкий и простой в использовании подход к управлению состоянием приложения без необходимости использования сложных действий и редукторов. Совместима с UIKit и SwiftUI.
Verge на GitHub: https://github.com/VergeGroup/swift-verge
Платформа: iOS
⭐️: 632
Все, что вы хотели знать о флагах в эмодзи (но не знали, что вам это нужно)
Допустим, вы создаете аналитическое приложение и вам нужен простой способ обозначить местоположение аналитического события. Если вы, как и я, подумали: «Да, флажки эмодзи — забавный способ показать страны», то наверняка сразу же начали создавать такой словарь
let emojiFlags = [ "AU": "🇦🇺", "BE": "🇧🇪", "BR": "🇧🇷", "BS": "🇧🇸", ... ]Но подождите. Оказывается, есть гораздо более простой способ сделать это (ну как «простой»… с программной точки зрения). Статья: https://apptractor.ru/info/articles/vse-chto-vy-hoteli-znat-o-flagah-v-emodzi-no-ne-znali-chto-vam-eto-nuzhno.html Платформа: iOS
Интересные приёмы, взятые из исходников Android
В процессе чтения исходников Android SDK я замечал интересные механики и приёмы написания кода, какие-то из них до сих пор используются при создании новых библиотек, другие, напротив, заменены более логичными и понятными конструкциями. В этой статье я постараюсь перечислить всё, что смог заметить сам при изучении исходников Android'а. Сразу отмечу: эта статья не претендует на полноту материала и возможно вы нашли даже больше интересных моментов при чтении кода.
Статья: https://habr.com/ru/companies/ruvds/articles/838330/
Платформа: Android
Время сборки и верификация модулей
Постепенно время сборки Secrets становилось все медленнее и медленнее, и я не замечал этого... до бета-версии Xcode 16, когда я почувствовал, что мне действительно нужно понять, что происходит.
Статья: https://apptractor.ru/info/articles/vremya-sborki-i-verifikatsiya-moduley.html
Платформа: iOS
Voice - это удобное приложение для прослушивания аудиокниг на вашем Android-устройстве. Поддерживая широкий спектр аудиоформатов, включая MP3, M4A, OGG и другие, Voice Audiobook Player обеспечивает интуитивно понятный интерфейс, гладкий и комфортный опыт прослушивания вашей любимой аудиокниги.
Voice на GitHub: https://github.com/PaulWoitaschek/Voice
Платформа: Android
⭐️: 2.4K
Создаем атоманый лоадер в Jetpack Compose
В этой статье мы создадим потрясающую 3D-анимацию Atomic Loader в Jetpack Compose.
Интересно? Давайте сделаем! ⚛️🚀
Статья: https://apptractor.ru/info/articles/sozdaem-atomanyy-loader-v-jetpack-compose.html
Платформа: Android
Swift AST Explorer - это инструмент для визуализации абстрактного синтаксического дерева (Abstract Syntax Tree, AST) исходного кода Swift.
Swift AST Explorer на GitHub: https://github.com/SwiftFiddle/swift-ast-explorer
Платформа: iOS
⭐️: 567
NFC на Android: создание системы предоплаты с использованием NDEF меток
В этой статье мы рассмотрим, как реализовать NFC в приложении для Android, читая и записывая данные в метки с помощью формата NDEF. Мы продемонстрируем это на примере реализации простой системы предоплаты, похожей на системы общественного транспорта, где метки, обычно в формате карт, можно заряжать и использовать для проезда. Android-устройство будет выступать в роли платежного терминала, а метки будут хранить баланс и список приобретенных товаров.
Статья: https://apptractor.ru/info/news/nfc-na-android-sozdanie-sistemy-predoplaty-s-ispolzovaniem-ndef-metok.html
Платформа: Android
aDp - эта библиотека используется в Jetpack Compose для преодоления различий в пользовательском интерфейсе на разных Android-устройствах для одного и того же кода. Библиотека принимает на вход задуманную разработчиком ширину экрана и затем масштабирует все размеры в соответствии с настройками устройства, обеспечивая их точное соответствие дизайну. Например, выше сравнение двух TextView: при ширине дизайна 360 вы видите, как изменяется TextView, использующий стандартный dp, а тот, что использует aDp, настраивается так, чтобы выглядеть почти идентично дизайну.
aDp на GitHub: https://github.com/mohitsoni48/aDp
Платформа: Android
⭐️: 12
Я получил новый iPhone, но мой аккаунт в социальных сетях заблокирован
Как разработчик iOS, я знаю, что у Apple нет никаких API, которые разработчики могут использовать для отслеживания пользователей. Разработчики не могут получить доступ к серийному номеру устройства, а identifierForVendor сбрасывается, когда пользователь удаляет все приложения издателя. Так как же Snapchat мог распознать устройство?
Статья: https://apptractor.ru/develop/ya-poluchil-novyy-iphone-no-moy-akkaunt-v-sotsialnyh-setyah-zablokirovan.html
Платформа: iOS
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
