AppFiles - Mobile Development – Telegram
AppFiles - Mobile Development
2.12K subscribers
2.76K photos
38 videos
11 files
3.69K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Разбираем iOS-приложение: код, сборка, статические и динамические библиотеки, компиляция, запуск

Больше всего мне нравится изучать процессы мобильной разработки, включая самые низкоуровневые вещи. Из чего состоит iOS-приложение? Какие этапы оно проходит перед тем, как оказаться на устройстве пользователя? Что такое Executable binary? Что происходит внутри препроцессора?

Статья: https://habr.com/ru/companies/alfa/articles/858252/
Платформа: iOS
Как поднять инфраструктуру для запуска автотестов Android в облаках

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

Статья: https://habr.com/ru/companies/avito/articles/858222/
Платформа: Android
Swift PNG - это кроссплатформенный фреймворк, не требующий Foundation, для декодирования, проверки, редактирования и кодирования PNG-изображений. Фреймворк написан на чистом Swift, компилируется и обеспечивает согласованное поведение на всех Swift-платформах. Библиотека также поставляется со встроенной поддержкой файловой системы в linux, macOS и Windows. В библиотеку так же встроена нативная реализация Swift DEFLATE, которую можно использовать как отдельный модуль.

Swift PNG на GitHub: https://github.com/tayloraswift/swift-png
Платформа: iOS
⭐️: 356
О зацикливании рекомпозиции в Jetpack Compose

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

Статья: https://habr.com/ru/articles/859084/
Платформа: Android
Apple убивает Swift

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

Довольно далеко.

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

Статья: https://apptractor.ru/info/articles/apple-ubivaet-swift.html
Платформа: iOS/Swift
Composable Screens - подборка экранов, воплощенных Android-разработчиками с помощью инструментария Compose. Пока там, судя по всему, всего два приложения, но автор определенно предполагает расширять свою подборку.

Composable Screens на GitHub: https://github.com/erfansn/ComposableScreens
Платформа: Android
⭐️: 138
Менеджер UndoManager в Foundation громоздок в использовании, в нем много шаблонного кода для добавления действий отмены и повтора. Поскольку он основан на замыкании, можно легко допустить ошибку. Revertible - этот фреймворк добавляет простой способ отслеживать изменений состояния и обеспечивает простой обход истории состояния с помощью функций undo() и redo().

Revertible на GitHub: https://github.com/AndyHeardApps/Revertible
Платформа: iOS
⭐️: 3
Вышла Developer Preview версия Android 16

Android 16 Developer Preview 1 уже доступен для тестирования ваших приложений. Это начало более частого выпуска API для Android в рамках усилий по ускорению инноваций в приложениях и устройствах.

Есть четыре заметных изменения - это новый встроенный инструмент выбора фотографий, поддержка медицинских записей FHIR в приложении Health Connect, обновленная версия Privacy Sandbox на Android, а также новая константа, отличающая Android 16 от предстоящего минорного релиза Q4.

Эта предварительная версия для следующего большого релиза Android, запуск которого запланирован на 2 квартал 2025 года. Этот выпуск похож на все API-выпуски в прошлом, где можно понять запланированные изменения поведения, которые часто привязаны к targetSdkVersion. Конец первого квартала 2025 года намечен для достижения стабильности платформы. На этом этапе  предоставят финальные API SDK/NDK, а также финальные внутренние API и системное поведение приложений. Ожидается, что Platform Stability будет достигнута в марте 2025 года, и с этого момента у вас будет несколько месяцев до официального релиза (он будет во втором, а не в третьем квартале), чтобы провести финальное тестирование.
Об анатомии крэшей на iOS «по-взрослому»

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

В этой статье я расскажу, как устроены крэши в iOS, откуда они берутся и как с ними взаимодействовать.

Статья: https://habr.com/ru/companies/odnoklassniki/articles/858302/
Платформа: iOS
2
Кроссплатформенная архитектура ядра приложения. Простая. Линейная. Масштабируемая

Главное, на что я хотел бы обратить ваше внимание — это то, насколько логика становится целостной, если проектировать ее с точки зрения приложения, а не пользовательского интерфейса. А ещё насколько она гибкая, тестируемая и масштабируемая, если каждая функция отделена от своих зависимостей на уровне действий (функций), а не объектов.

Статья: https://habr.com/ru/articles/851808/
Платформа: Android
Поиск нашего Золотого пути к устойчивой Android-разработке

Следуя «Золотому пути», мы не просто пишем код — мы создаем устойчивую и адаптируемую культуру разработки, которая выдержит испытание временем.

Статья: https://apptractor.ru/info/articles/poisk-nashego-zolotogo-puti-k-ustoychivoy-android-razrabotke.html
Платформа: Android
Focus Launcher - минималистичный лаунчер для Android, созданный с помощью Jetpack Compose. Поддерживает светлый и темный режим, есть свой пак иконок, данные о фазе Луны, анимированные часы, избранные приложения. Стек: Kotlin, Jetpack Compose, корутины, архитектура Circuit, коллекция Android Architecture Component, Hilt-Dagger, Ktor.

Focus Launcher на GitHub: https://github.com/mslalith/focus_launcher
Платформа: Android
⭐️: 138
3
Реверс-инжиниринг новой функции iOS Inactivity Reboot

В iOS 18 появилась новая функция безопасности: перезагрузка бездействия (inactivity reboot). От чего она защищает и как работает? В этом посте мы рассмотрим все подробности вплоть до расширения ядра и Secure Enclave Processor.

Статья: https://habr.com/ru/companies/ruvds/articles/859884/
Платформа: iOS
Избавляемся от Android в api-модулях

Небольшой туториал на тему «Как уменьшить количество Android-модулей в проекте при помощи оберток над Android-классами».

Статья: https://habr.com/ru/companies/alfa/articles/859450/
Платформа: Android
RichEditorSwiftUI - библиотека на основе Swift, позволяющая легко сделать редактор текста в SwiftUI. Поддерживает жирный, наклонный, подчеркнутый шрифт и разные заголовки.

RichEditorSwiftUI на GitHub: https://github.com/canopas/rich-editor-swiftui
Платформа: iOS
⭐️: 81
Портал, манулы и мячи: опыт разработки для Apple Vision Pro. Часть 1

В статье описан мой опыт разработки мини-игр для Apple Vision Pro в условиях жёсткого ограничения во времени. Расскажу, с какими сложностями я столкнулся в ходе работы с 3D-моделями, и поделюсь способами их преодоления. Лайфхаки для упрощения работы с RealityViewContent и Reality Composer Pro прилагаются.

Статья: https://habr.com/ru/articles/860194/
Платформа: iOS
Видео и подкасты за неделю на @AppFiles

(iOS Ru) Дейтинг, Swift и Формула-1: от первых шагов в IT до победы в хакатоне
(iOS Ru) iOS разработка с нуля
(iOS En) Disintegration Effect (Thanos Snap Effect) | SwiftUI
(iOS En) Recreating Mail App’s Tab bar | SwiftUI
(iOS En) Fix iOS 18 Gesture Problems With ScrollViews | SwiftUI
(iOS En) How to save data to local storage - iOS File System and Sandboxing
(iOS En) Apple's Official Method to Learn Swift and iOS
(iOS En) SwiftUI Tutorial: Build a Real App! Payment Calculator
(Andr Ru) Code Review: вы не поверите, насколько распространены эти ошибки в коде Android-проектов
(And En) Graphics layers | Jetpack Compose Tips
(And En) Open Health Stack
(And En) How to Deserialize Inconsistent JSON Data With a Custom Kotlinx Serializer
(And En) Anonymous Functions Aren't Lambdas
(And En) Animating Your World with Doris Liu – Dive into Jetpack Compose Animations
(Crs En) The Compose Multiplatform Crash Course for 2025 - Build a Clean Code Book App
(Crs En) Platform Integrations With Russel Wolf
(Crs En) From Sprite Sheets to Stunning Animations in Jetpack Compose! KMP Library
(Crs En) Building a Clean, Multi-Module Application with Compose Multiplatform
(Dev Ru) iOS vs Android: большая битва платформ — что лучше для разработчика, бизнеса и простого пользователя
(Dev Ru) Всё о лицензиях библиотек, что необходимо знать разработчику

#ios #android #mobile #video
Akkurate - библиотека валидации, использующая выразительные возможности Kotlin. Не нужно 30+ аннотаций или сложных ограничений, пишите код проверки на Kotlin с помощью красивого декларативного API.
Разработанный с нуля для обработки сложной бизнес-логики, Akkurate призван помочь вам писать качественный и поддерживаемый код валидации.

Akkurate на GitHub: https://github.com/nesk/akkurate
Платформа: Android
⭐️: 319
Дебаг на максимум: секретные настройки Xcode, которые должен знать каждый разработчик

Я поделюсь, как пофиксить отрисовку. Вам понадобятся знания основ Swift, CPU, GPU (про них поговорим) и немного юмора. Пройдёмся по примерам багов отображения на iPhone 16 Pro.

Примеры будем смотреть на картинках с красным мотоциклом. Красный байк был мечтой айосеров-старожилов в Альфе и даже стал локальным мемом. На собеседованиях мы часто спрашиваем, есть ли у кандидата красный мотоцикл (если да — это идеальный мэтч).

Статья: https://habr.com/ru/companies/alfa/articles/858706/
Платформа: iOS
Работа с CoordinatorLayout: шапочный разбор

В этой статье я поделюсь опытом по реализации двух версий шапки на главном экране приложения Avito.

Реализации фичей очень похожи, поэтому в своем рассказе я остановлюсь на второй версии. Эта статья будет особенно полезна разработчикам, которые хотят познакомиться с CoordinatorLayout и научиться делать похожие задачки с нетривиальным взаимодействием view между собой. Да, тема не нова, но, тем не менее, она не теряет своей актуальности! Итак, обо всем по порядку.

Статья: https://habr.com/ru/companies/avito/articles/859692/
Платформа: Android