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

Использование Kotlin Multiplatform в разработке оказалось не таким болезненным, как может показаться на первый взгляд. Общая бизнес-логика действительно позволяет сократить затраты на разработку примерно на 30%, а аналогичную экономию можно получить и на тестировании.

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

Статья: https://habr.com/ru/articles/887574/
Платформа: кроссплатформа
🤡3
Что такое структурированный параллелизм (Structured Concurrency)

Когда мы говорим о параллелизме Swift (Swift Concurrency), мы также часто упоминаем структурированный параллелизм (Structured Concurrency). Это фундаментальная часть async/await в Swift и она помогает нам понять, как работают последние усовершенствования Swift в области параллелизма.

До async/await мы писали наши асинхронные методы, используя замыкания и Grand Central Dispatch (GCD). Это работало хорошо, но часто приводило к так называемому аду замыканий - отсутствию понимания из-за перетекающих друг в друга связанных замыканий. Структурированный параллелизм упрощает выполнение асинхронного кода, но у нас все еще есть неструктурированные задачи. Поэтому пришло время углубиться в фундаментальный аспект параллелизма Swift. 

Статья: https://apptractor.ru/info/articles/chto-takoe-strukturirovannyy-parallelizm-structured-concurrency.html
Платформа: iOS
Локализация в Jetpack Compose

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

С введением языковых предпочтений для каждого приложения (Per-app Language Preference) в Android 13 (API уровня 33) управление языками, специфичными для приложений, стало намного проще.

Статья: https://apptractor.ru/info/articles/lokalizatsiya-v-jetpack-compose.html
Платформа: Android
Compose Permission Manager - легковесная библиотека Android, которая упрощает управление разрешениями в приложениях Jetpack Compose. Эта библиотека предоставляет композабл API для простого запроса, проверки и обработки разрешений приложений. Она поддерживает настраиваемые диалоги обоснований и настроек, проверку разрешений в манифесте и потоки разрешений с учетом жизненного цикла.

Compose Permission Manager на GitHub: https://github.com/meticha/permissions-compose
Платформа: Android
⭐️: 40
👍1
Как мы ускорили работу с базой данных в 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