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

Эта небольшая статья про то, как мы ускорили работу с БД в Android-приложении, исправив очевидные и не слишком ошибки.

Проблемы:

• Обращение к БД в циклах
• Хранение JSON-объектов в БД

Статья: https://habr.com/ru/companies/scanny/articles/883398/
Платформа: Android
Как очистить Xcode от мусора и освободить ценное дисковое пространство на вашем Mac

Окончательное и бесповоротное руководство по очистке Mac от мусора Xcode.

Статья: https://apptractor.ru/info/articles/kak-ochistit-xcode.html
Платформа: iOS
👍5
Начинаем работу с Imagen 3 в Android-приложении через Vertex AI в Firebase

Imagen 3 — самая передовая модель генерации изображений, теперь доступна через Vertex AI в Firebase, что еще больше упрощает ее интеграцию в ваши приложения для Android.

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

Статья: https://apptractor.ru/info/articles/imagen-3-v-android.html
Платформа: Android
VisualDebugger - элегантный и простой способ визуализации данных в исходных файлах. Особенности: поддерживает нескольких систем координат (yUp, yDown), визуальная отладка Mesh структур, визуальная отладка коллекций точек с настраиваемыми стилями, визуальная отладка кривых Безье, поддержка платформ iOS и macOS, гибкая система настройки стилей, детальное отображение и маркировка координатных осей.

VisualDebugger на GitHub: https://github.com/chenyunguiMilook/VisualDebugger
Платформа: iOS
⭐️: 23
🔥1
Руководство по использованию unsafe в Swift

Использование unsafe в Swift открывает дополнительные возможности для оптимизации и взаимодействия с C API, однако требует повышенной внимательности и тщательного контроля за управлением памятью. При грамотном подходе и использовании встроенных механизмов, таких как withUnsafe* и Unmanaged, можно безопасно интегрировать низкоуровневые операции в высокоуровневые приложения. Главное — не злоупотреблять прямыми указателями и ограничивать область их применения, документируя и тестируя каждое изменение.

Статья: https://habr.com/ru/articles/887914/
Платформа: iOS
Как iOS-приложение Tinder сократило размер локализаций на 95%

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

Статья: https://apptractor.ru/info/articles/kak-ios-prilozhenie-tinder-sokratilo-razmer-lokalizatsiy-na-95.html
Платформа: iOS
Обработка истечения срока действия токена в Ktor: автоматическое обновление токенов для вызовов API

В статье обсуждается проблема истечения срока действия токенов в Ktor-приложениях и способы её автоматического решения. Автор объясняет, как правильно организовать механизм обновления токена, чтобы избежать ошибок при выполнении API-запросов. Рассматривается использование Ktor HttpClient и механизмов плагинов для перехвата ответов сервера с ошибкой аутентификации. Приводится реализация кастомного плагина, который автоматически обновляет токен и повторяет запрос без вмешательства пользователя. В завершение статьи описаны потенциальные проблемы, такие как гонки обновления токена, и предлагаются способы их предотвращения.

Статья: https://proandroiddev.com/handling-token-expiration-in-ktor-automatic-token-refresh-for-api-calls-e79badd379dc
Платформа: Android
👍1
Почему в Android нет функции main?

В языках программирования, таких как C и Java, функция main служит точкой входа, с которой начинается выполнение программы. Однако в Android-приложениях отсутствует явная функция main. Это связано с архитектурой Android, где управление жизненным циклом приложения берет на себя операционная система. Вместо функции main, Android использует манифестный файл (AndroidManifest.xml), в котором указывается основная активность (Activity) приложения. Эта активность помечается фильтром намерений (intent-filter) с действиями MAIN и категорией LAUNCHER, что позволяет системе определить, с какой активности начинать выполнение приложения. Таким образом, точка входа в Android-приложении определяется не явной функцией main, а конфигурацией в манифесте, что обеспечивает гибкость и модульность в управлении компонентами приложения.

Статья: https://medium.com/@sevbanbuyer/why-is-there-no-main-function-in-android-1198032a5a15
Платформа: Android
This media is not supported in your browser
VIEW IN TELEGRAM
Симметричные и асимметричные переходы в SwiftUI с помощью модификатора Scroll Transition

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

Статья: https://www.createwithswift.com/symmetrical-and-asymmetrical-transitions-in-swiftui-with-the-scroll-transition-modifier/
Платформа: iOS
Lynx - новый кроссплатформенный фреймворк

Как любитель кроссплатформенных решений не могу пройти мимо!

Сегодня представили и выложили в open source Lynx - семейство технологий, позволяющих разработчикам использовать имеющиеся у них навыки работы в Интернете для создания по-настоящему нативных пользовательских интерфейсов для мобильных и веб-приложений на основе единой кодовой базы. Разработанный для различных сценариев использования и богатой интерактивности, Lynx обеспечивает яркие и привлекательные пользовательские интерфейсы для таких масштабных приложений, как TikTok (глава проекта - нынешний архитектор ByteDance, бывший React-инженер в компании на M), благодаря быстрому и универсальному движку рендеринга, двухпоточному программированию пользовательского интерфейса, современному инструментарию на основе Rust и многому другому.

Lynx уже готов к продакшену и уже используется огромным количеством компаний. Сегодня выложили в открытый доступ именно ту версию, которую используем в проде, поэтому она начинается с версии 3.x. Она включает в себя даже устаревший код и API, которые намерены изжить, но разработчики верят в открытость исходного кода и помощь сообщества.
Этот релиз - только начало. То, что мы открываем сегодня, - далеко не все. Множество периферии, которой мы гордимся, в том числе дополнительные компоненты пользовательского интерфейса, расширенные встроенные графические возможности, пользовательский рендерер и другие фреймворки, еще впереди.

Платформа: кроссплатформа
🤔2
Firebase SignIn With Email And Password - приложение на Kotlin, которое показывает, как аутентифицировать пользователей с помощью Firebase, используя компоненты архитектуры Android и архитектурный паттерн MVVM. Для создания пользовательского интерфейса используется Jetpack Compose.

Firebase SignIn With Email And Password на GitHub: https://github.com/alexmamo/FirebaseSignInWithEmailAndPassword
Платформа: Android
⭐️: 39
📺 Видео и подкасты за неделю на @AppFiles

(iOS En) Swift DevRoom at FOSDEM 2025
(iOS En) Minor Annoyances in Dealing with State
(iOS En) Building a 3D Watch Face with Metal
(iOS En) Best practices for safe and easy Core Data integration in a modern Swift app
(iOS En) Dynamic Floating Sheets Like Family App - Animations - SwiftUI
(iOS En) SwiftUI App Shortcuts - App Intents - Action Shortcuts
(And Ru) Как устроена мобильная архитектура. Интервью с тех. лидером юнита «Mobile Architecture» из AvitoTech
(And En) Compose runtime and performance - Android Developers Backstage
(And En) Wonderful Widgets - Spotlight Week
(And En) Is It Worth to Learn Native Android as a Beginner In 2025?
(And En) 3 Navigation issues that you MUST Avoid!
(And En) Making Gradients Easy! Chris Sinco shows us how Mesh simplifies gradient design in Compose
(And En) Port your Android App to the Web
(Crs Ru) Заезжаем в KMP. Но какой ценой?
(Crs En) How to Use Native iOS Views (Swift UI) In Compose Multiplatform
(Crs En) Google Maps vs OpenStreetMap in Flutter
(Dev Ru) Внедряем Server Driven UI
(Dev Ru) Нужна ли программисту вышка — в какой ВУЗ пойти учиться
(Dev Ru) Путь новичка: где набраться опыта и как найти первую работу
(Dev En) Learn PyTorch in 5 Projects – Tutorial
(Dsg En) Designing a Storytelling App for Kids

Что было год назад:

(iOS Ru) Minimal Widget Product: путь к эффективной и гибкой реализации виджетов
(iOS Ru) Уроки Swift: UITextField с анимированным плейсхолдером
(And Ru) Разработка новостного приложения. Часть 3
(And Ru) Hilt в многомодульный проект — пособие по внедрению зависимостей для новичков
(Crs Ru) Адаптивная вёрстка во Flutter
(Crs Ru) Я.Субботник по мобильной разработке
Please open Telegram to view this post
VIEW IN TELEGRAM
Xcore - это коллекция сотен расширений и компонентов Swift, разработанных для минимизации шаблонного кода и простого выполнения общих задач. Это фреймворк для эффективного создания и масштабирования приложений без ущерба для качества, удобства сопровождения и производительности разработчиков.

Xcore на GitHub: https://github.com/zmian/xcore
Платформа: iOS
⭐️: 128
Вход в мобильном приложении с Telegram

Аутентификация в мобильных приложениях с помощью Telegram Login Widget обделена информацией как официальной документации, так и в интернете. В этой статье автор делится примером реализации входа в iOS приложение c помощью Telegram с блекджеком и граблями. В статье приведены сниппеты кода на Typenoscript + React, Go и Swift.

Статья: https://habr.com/ru/articles/888308/
Платформа: iOS/разработка
👍1
Kelp — IDE-плагин для кастомных дизайн-систем на Jetpack Compose

Я долго работал на Android View, но жизнь безапелляционно мотивировала меня перейти к дизайн-системам на Jetpack Compose. Мне стало не хватать некоторых фич Android Studio, которые были доступны только в Android View.

Статья: https://habr.com/ru/companies/ozontech/articles/847376/
Платформа: Android
7 мощных возможностей Kotlin, используемых продвинутыми разработчиками

Kotlin содержит множество мощных, но недостаточно используемых возможностей, таких как runCatching, герметичные интерфейсы, классы значений, buildList/buildMap, Modifier.composed, takeIf/takeUnless и кастомные итераторы. Овладев ими, вы сможете сделать свой код более безопасным, лаконичным и высокопроизводительным.

Статья: https://apptractor.ru/info/articles/7-moschnyh-vozmozhnostey-kotlin-ispolzuemyh-prodvinutymi-razrabotchikami.html
Платформа: Android
# Учишь Android месяцами, но найти работу так и не получается?

Часто вижу людей самостоятельно изучающих IT и Android в частности, но теряющихся в большом количестве материалов, не зная как начать и правильно продолжать.

Основная проблема людей, изучающих Android самостоятельно - это непонимание как правильно начать и что на самом деле нужно изучать для трудоустройства.

Для успешного освоения новой it-профессии необходимо иметь четкий план и фокус в обучении. Так чтобы не упускать важные нюансы и детали, о которых спрашивают на собеседованиях

Если хотите ускорить свой путь до первой работы и научиться создавать реальные проекты - подписывайтесь на канал Мерсиянов в IT. Автор уже 8 лет в IT и прошел путь с нуля до ведущего android разработчика.

В закрепе бесплатный план изучения android-разработки с нуля до оффера. Без воды, только то, что реально нужно для трудоустройства.

Подписывайтесь на канал, чтобы узнать как на самом деле устроена android-разработка, а не то, что рассказывают на стандартных курсах.
👍3👎2🤣21
CZAN - это дизайн система, названная в честь Поля Сезанна, знаменитого художника из Франциb, родного города разработчика. Она создана для приложений, использующих Compose Multiplatform, и построена на Material 3, системе дизайна Google с открытым исходным кодом.

CZAN следует методологии Atomic Design, где атомы, молекулы, организмы и шаблоны - это различные уровни дизайна, которые вы можете использовать для создания своего приложения.

CZAN на GitHub: https://github.com/Tweener/czan
Платформа: Android/кроссплатформа
⭐️: 58
😁1
Тактики ускорения билда: матиз, кобальт, камри 3.5

Разработчики часто игнорируют билд-тайм, пока он не превращается в проблему. Возможно, поставить утром сборку на 30 минут и пойти пить кофе — это круто, но я считаю, это неэффективно. Если представить человека, который постоянно пытается ускорить билд-тайм, то вот он: руки у него в копоти, потому что он по 50 раз запускал билд-тайм, и руки его горят.

Статья: https://habr.com/ru/articles/889548/
Платформа: iOS
ServerSocket для IPS в Android и примеры межпроцессного взаимодействия

Идея для статьи возникла из желания разобраться, как организовать общение между браузером и Android‑приложением для передачи данных. В поисках удобного решения я обратил внимание на ServerSocket — простой и гибкий способ локального взаимодействия без лишних сложностей.

Статья: https://habr.com/ru/companies/tbank/articles/889656/
Платформа: Android
😁2
Объединяем Compose и View: бесшовное взаимодействие с помощью CompositionLocal

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

После некоторых исследований мы нашли эффективное решение с использованием CompositionLocal. Вот как мы его реализовали.

Статья: https://apptractor.ru/info/articles/obedinyaem-compose-i-view.html
Платформа: Android