AppFiles - Mobile Development – Telegram
AppFiles - Mobile Development
2.12K subscribers
2.76K photos
38 videos
11 files
3.69K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
Поиск нашего Золотого пути к устойчивой 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
Используйте транзакции вместо сохранения в SwiftData и Core Data

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

Статья: https://apptractor.ru/info/articles/ispolzuyte-tranzaktsiy-vmesto-sohraneniya-v-swiftdata-i-core-data.html
Платформа: iOS
This media is not supported in your browser
VIEW IN TELEGRAM
LazyPager for SwiftUI - плавный, с ленивой загрузкой, панорамированием, масштабированием и возможностью отказа от жестов просмотрщик для SwiftUI.

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

Фичи: ленивая загрузка, показ любого контента, не только изображений, горизонтальная и вертикальная прокрутка, увеличение и уменьшение, двойной тап для зума, работа с .ignoresSafeArea() для действительно полноэкранного просмотра, собятия нажатий обрабатываются внутри, настройки.

LazyPager for SwiftUI на GitHub: https://github.com/gh123man/SwiftUI-LazyPager
Платформа: iOS
⭐️: 169
🔥2
Tracer спустя год: новые фичи и возможности инструмента для аналитики ошибок в мобильных приложениях

Tracer — модульный инструмент для аналитики ошибок в мобильных приложениях от OK.Tech, который мы представили год назад. За это время в Tracer зарегистрировалось более 1500 организаций и 5000 пользователей. Сейчас решение обрабатывает более 1 млрд событий в день и обслуживает приложения, которые имеют суммарный DAU в 20 млн пользователей. Опыт наших клиентов показывает, что Tracer успешно справляется с поставленными задачами, но мы всё равно не останавливаемся на достигнутом.

Меня зовут Кирилл Попов. Я руководитель направления Android-разработки в ОК. В этой статье я расскажу, какие возможности получил инструмент за последний год, и что мы планируем реализовывать в перспективе.

Статья: https://habr.com/ru/companies/odnoklassniki/articles/861044/
Платформа: разработка
3
Легаси шмегаси

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

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

Статья: https://apptractor.ru/info/articles/legasi-shmegasi.html
Платформа: разработка
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Constraints Explorer - легковесный инструмент, помогающий понять и отладить, как ограничения компоновки (layout constraints) в Compose влияют на ваши композабл. Он предназначен для использования в предварительных просмотрах и позволяет настраивать ограничения в интерактивном режиме.

Constraints Explorer на GitHub: https://github.com/zach-klippenstein/constraints-explorer
Платформа: Android
⭐️: 49
1
Кросс-платформенное тестирование мобильных приложений: особенности, инструменты и решения

В современном мире без мобильных приложений никуда. Их стабильная и правильная работа требует особого подхода к тестированию, особенно когда речь идёт о кросс‑платформенных приложениях, работающих в iOS и Android. В этой статье я поделюсь своим опытом и трудностями, которые могут встретиться в процессе тестирования приложений в упомянутых ОС.

Статья: https://habr.com/ru/companies/domclick/articles/859546/
Платформа: тестирование
1
Асинхронность в iOS: как ускорить корпоративные приложения и не сломать мозг разработчика

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

В этой статье мы поговорим о том, как организовать асинхронную работу в iOS-приложениях. Разберём подходы от старой доброй GCD до современной магии Swift Concurrency и покажем, как они помогают ускорить приложение без лишнего хаоса в коде.

Статья: https://habr.com/ru/articles/861342/
Платформа: iOS
Полное руководство по написанию чистого кода Jetpack Compose

Это руководство призвано помочь разработчикам освоить лучшие практики Jetpack Compose, обеспечив правильное наименование, структуру и управление композитными функциями.

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

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

Статья: https://apptractor.ru/info/articles/polnoe-rukovodstvo-po-napisaniyu-chistogo-koda-jetpack-compose.html
Платформа: Android
1
Делаем поисковые подсказки в SwiftU

Модификатор searchSuggestions(_:) в SwiftUI — это мощная функция, которая улучшает работу поиска в приложениях для iOS. В сочетании с отслеживанием недавних поисковых запросов он создает интуитивно понятный интерфейс, который помогает пользователям быстро найти то, что они ищут, и легко вернуться к ранее просмотренным элементам.

Давайте создадим приложение для каталога Apple Products, которое продемонстрирует возможности поиска в SwiftUI. Мы реализуем интеллектуальную систему поиска, которая не только фильтрует товары в режиме реального времени, но и предоставляет предложения по поиску, а также отслеживает недавно просмотренные товары.

Статья: https://apptractor.ru/info/articles/delaem-poiskovye-podskazki-v-swiftui.html
Платформа: iOS
SwiftfulFirestore - удобные функции для использования Firebase Firestore с Swift Concurrency.

SwiftfulFirestore на GitHub: https://github.com/SwiftfulThinking/SwiftfulFirestore
Платформа: iOS
⭐️: 20
BDUI — это спасение от релизов: «Какие ваши доказательства?»

Если вы видели no-code-проекты, где можно просто блоками перетаскивать интерфейс, то отчасти вы уже знакомы с BDUI-подходом, ведь они по сути и построены на BDUI. Суть в том, что мы делегируем наполнение интерфейса серверу. Фронтенд не отвечает за то, что будет нарисовано, а только определяет список допустимых компонент, которые сервер может показать пользователю. Но в вебе BDUI не очень популярен.

А зря. Ведь в первую очередь он нужен как спасение от релизов.

Но, если быть точнее, он нужен как средство для снижения количества релизов, затрат на разработку и выкатку фичей. Давайте это и обсудим, а также как работает BDUI, разберём примеры, реализованную фичу, которую мы недавно релизили, посмотрим на другие варианты реализации и подведём итоги.

Статья: https://habr.com/ru/companies/alfa/articles/861384/
Платформа: разработка
👍1