AppFiles - Mobile Development
2.11K subscribers
2.69K photos
38 videos
10 files
3.61K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
DeskPad - виртуальный монитор для шаринга экрана.

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

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

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

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

DeskPad на GitHub: https://github.com/Stengo/DeskPad
Платформа: Swift/macOS
⭐️: 793
Почему я продолжаю ставить на Flutter

Мобильные разработчики часто беспокоятся, что Google может внезапно отказаться от Flutter, как и от многих других продуктов в печально известном списке “Убитых Google«. Это справедливое опасение, но я всегда считал его маловероятным, как в 2017 году, когда я впервые вскочил на поезд Flutter, так и сейчас, в 2024 году.

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

Статья: https://apptractor.ru/info/articles/pochemu-ya-prodolzhayu-stavit-na-flutter.html
Платформа: Flutter
💩9🔥2
Библиотека Blueprint предоставляет возможность визуализировать размеры Composable в пользовательском интерфейсе с помощью простого определения на основе DSL. Работает и с превью в Android Studio.

Blueprint на GitHub: https://github.com/popovanton0/Blueprint
Платформа: Android
⭐️: 127
This media is not supported in your browser
VIEW IN TELEGRAM
Стэнфордский курс CS193P “Разработка iOS приложений в SwiftUI” Весна 2023: русскоязычный конспект с адаптацией к iOS 17

В иллюстрированных русскоязычных конспектах этого курса сделаны пометки, касающиеся изменений в iOS 17, а также восполнены некоторые фрагменты Лекций, где есть звук, но пропадает изображение, когда профессор демонстрирует что-то «в живую». Для большинства Лекций представлена версия с использование макроса @Observable вместо протокола ObservableObject, в ряде случаев это потребовало нетривиальных решений.

Статья: https://habr.com/ru/articles/816995/
Платформа: iOS
Как создать Android-приложение чат-бота с генеративным ИИ Google

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

Поэтому в Gemini имеется множество способов совершенствования того или иного продукта. Создадим приложение чат-бота с ИИ для Android, использовав SDK-пакеты чата Compose от Stream и генеративного ИИ Google для Android.

Статья: https://link.medium.com/RSJi0aFnYJb
Платформа: Android
Работает — не трогай: как Snapchat переписал свое приложение для Android

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

Статья: https://apptractor.ru/info/articles/snapchat-rewrite.html
Платформа: Android
👍1
Sword - это библиотека для инъекции зависимостей во время компиляции для Swift, вдохновленная Dagger.

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

Sword на GitHub: https://github.com/rockname/sword
Платформа: iOS
⭐️: 19
Основы iOS-разработки в Revolut

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

Мы верим, что можно быстро создать высококачественное программное обеспечение. Для этого мы следуем ряду важных принципов и применяем ряд современных Agile-практик, в основном вдохновленных XP (eXtreme Programming).

Перевод: https://apptractor.ru/info/articles/osnovy-ios-razrabotki-v-revolut.html
Платформа: iOS
Раньше было: Основы Android-разработки в Revolut
🤮2
Openpanel — альтернатива Mixpanel с открытым исходным кодом. Это простой инструмент аналитики для регистрации событий на сайте, в приложениях и на бэкенде. Авторы попытались объединить Mixpanel и Plausible в одном продукте. Сейчас есть аналитика в реальном времени, отслеживание произвольного количества событий, любые кастомные свойства для них, графики, отчеты и воронки, хостинг в любом облаке.

SDK для мобильных платформ (кроме React Native) пока нет, но есть API.

Openpanel на GitHub: https://github.com/Openpanel-dev/openpanel
Платформа: аналитика
⭐️: 2.3K
Видео и подкасты за неделю:

(iOS Ru) Как писать игры на Swift для Playdate
(iOS Ru) Мок-собеседование iOS-разработчика. SwiftUI (+ все собеседования)
(iOS Ru) Макросы Swift: проще, чище, быстрее
(iOS Ru) Мы решили все проблемы работы в модульном проекте. Хотите так же?
(iOS En) Flip Clock Text Effect - SwiftUI
(iOS En) Expandable Search Bar using SwiftUI
(iOS En) Hacker Text Effect using SwiftUI
(iOS En) Spotlight your app with App Shortcuts
(iOS En) Update Live Activities with push notifications
(iOS En) Discover Calendar and EventKit
(iOS En) Create a great ShazamKit experience
(iOS En) How to cache the result of API calls (using NSCache)
(And Ru) Разработка новостного приложения. Часть 7. Загрузка в Google Play
(And Ru) Разработка новостного приложения. Часть 6. Что я сделал не так
(And Ru) Оптимизация Compose: проблемы, опыт, тактика, стратегия
(And En) Now in Android: 105 - I/O ‘24, Android 15, KMP, Compose, AndroidX, and more
(And En) List + Detail Screens Just Got SO MUCH Easier - NavigableListDetailPaneScaffold
(And En) Building an Android Video Calling App With the Stream SDK
(And En) Mastering Feature Flags: Best Practices with Firebase Remote Config
(And En) The Essence of Coroutines
(Crs Ru) 5 лет с Flutter: эволюция кроссплатформенности
(Crs Ru) Flutter-диета. Как сбросить вес, выпиливая модули
(Crs En) Can a backend engineer learn Flutter with AI?
(Dev Ru) Прокачиваем Code Review: как выжать максимум?
(Dev Ru) Пишем нативно под Аврора ОС как под iOS: Clean-архитектура, Coordinator и UDF
(Dev Ru) Avito Product meetup: ML-продукты
(Dev Ru) Маргарита Лукина про Frontend, высшее образование, софт-скиллы и женщин в IT
(Dev Ru) Observability, Profiling и Benchmarking как основа High Performance
(Dev En) Linear Algebra Course – Mathematics for Machine Learning and Generative AI
(Mrk En) Why Duolingo’s Engagement Strategy Won’t Work For Every App — Asya Paloni, Welltory

Посоветуйте в комментариях интересные каналы по мобильной или не очень разработке? 🌐 @AppFiles
#ios #android #mobile #video
Jetmagic - фреймворк для создания отзывчивых приложений для Android с использованием Jetpack Compose. Основная задача Jetmagic - предоставить инфраструктуру, необходимую для управления composable элементами, а вы при этом сможете сосредоточиться на создании основной задачи вашего продукта. Фреймворк состоит из следующих компонентов:

• Менеджер навигации: Замена стандартного навигационного API Jetpack Compose для Android.
• Composable Resource Manager (CRM): Обеспечивает поддержку отзывчивых макетов, позволяя приложениям легко переключаться между «макетами», подобно тому, как альтернативные xml-макеты выбираются на основе конфигурации устройства с использованием таких параметров, как язык/регион, ориентация устройства, размер экрана, плотность экрана и т. д.
• Менеджер изображений: Управляет композитными изображениями.
• Deep Linking: Обеспечивает поддержку глубоких ссылок.

Jetmagic на GitHub: https://github.com/JohannRosenberg/Jetmagic
Платформа: Android
⭐️: 158
DPE University - обучение Gradle, Apache Maven и Develocity

Разработчики Gradle запустили новый учебный портал - DPE University. Он содержит курсы для самостоятельного обучения и призван помочь разработчикам программного обеспечения и инженерам по сборке получить максимум от инструментов сборки Gradle и Maven, а также от Develocity, платформы для повышения производительности разработчиков для предприятий.

Сейчас в DPE University уже есть десять основополагающих курсов, которые можно изучать по отдельности или в рамках четырех учебных потоков:

• Кэширование сборок в Gradle
• Кэширование сборок Maven с помощью Develocity
• Кэширование Gradle с Develocity
• Основы Develocity

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

Сайт: https://dpeuniversity.gradle.com/
Платформа
: Android
1
This media is not supported in your browser
VIEW IN TELEGRAM
SweetPad - разработка Swift/iOS-приложений с помощью VSCode. Долгосрочная цель этого проекта - сделать VSCode жизнеспособной альтернативой Xcode для разработки под iOS, интегрировав в VSCode такие инструменты с открытым исходным кодом, как swift-format, swiftlint, xcodebuild, xcrun, xcode-build-server, sourcekit-lsp и так далее.

Сейчас в нем реализовано автодополнение кода, сборка, запуск и отладка приложения, форматирование кода, управление симуляторами, управление инструментами.

SweetPad на GitHub: https://github.com/sweetpad-dev/sweetpad
Платформа: iOS
⭐️: 77
Как я преподавал алгоритмы в 4 местах и проходил iOS-курсы. Что помогло получить работу?

Год назад я стал разработчиком в Альфе — помогли несколько курсов и 5 лет преподавания. Я не кандидат наук и даже не закончил вуз. Так получилось, что я вёл информатику, веб и даже алгоритмы для разработчиков банка.

В статье расскажу, почему я так прикипел к образованию. После курсов iOS меня стали расспрашивать о входе в ИТ. Я считаю себя самым обычным человеком, но решил поделиться — учиться на чужом опыте приятнее, чем набивать свои шишки.

Статья: https://habr.com/ru/companies/alfa/articles/818603/
Платформа: iOS
Как создать аудиоплеер. Часть 2. Использование ExoPlayer

Продолжаю рассказывать вам о том, как можно создать аудиоплеер в приложении. Во второй части гайда мы поговорим об использовании ExoPlayer.

Статья: https://habr.com/ru/companies/zvuk/articles/816671/
Платформа: Android
Как использовать UIContentUnavailableConfiguration для управления пустыми состояниями

Представление UIContentUnavailableConfiguration направлено на упрощение процесса создания пустых состояний для контроллеров представления.

По словам Apple, UIContentUnavailableConfiguration представляет собой composable описание пустого состояния и может быть снабжено содержимым-заполнителем, например, изображением или текстом.

Статья: https://apptractor.ru/info/articles/uicontentunavailableconfiguration.html
Платформа: iOS
ModuleCheck - быстрая проверка графа зависимостей для Gradle. ModuleCheck выявляет неиспользуемые внутренние зависимости в проекте Gradle. Он делает это без выполнения сборки, что делает парсинг чрезвычайно быстрым. Для проверки используются файлы сборки Gradle, исходники Java/Kotlin и res xml-файлы для Kotlin.

ModuleCheck на GitHub: https://github.com/rickbusarow/ModuleCheck
Платформа: Android
⭐️: 113
ChatGPT для Swift: 5 лучших промптов для генерации кода

Использование ChatGPT для генерации кода на Swift может значительно повысить вашу производительность. Хотя я не уверен, что ИИ займет место разработчиков, я уверен, что разработчики, не знающие, как использовать ИИ в своих интересах, станут писать код гораздо медленнее.

1. Создание структур для заданного JSON
2. Написание модульных тестов для заданного фрагмента кода
2.1 Бонус: генерация моков
3. Конкретные вопросы по коду
4. Добавление документации
5. Предложение улучшения кода

Статья: https://apptractor.ru/info/articles/chatgpt-dlya-swift-5-luchshih-promptov-dlya-generatsii-koda.html
Платформа: разработка
Погружение в мир Lint'a в Android-проекте

Статические анализаторы уже давно являются неотъемлемой частью разработки проектов не только на Android. Они позволяют выявлять ошибки, несоответствия стандартам code style, производительности или безопасности, обозначать какие-то узкие места, сокращать code review и т. д. Android Studio (далее просто студия) «из коробки» содержит огромное количество всевозможных проверок, но, как правило, этого недостаточно, всегда есть какие-то неучтённые проблемы, внутренние правила компании или команды разработки. Кратко расскажем про Lint, как начинали делать свои правила, с какими задачами сталкивались на первых этапах и как решали. Это поможет вам впервые погрузиться в тему, так как интернет весьма скуден на статьи по ней.

Статья: https://habr.com/ru/companies/domclick/articles/818067/
Платформа: Android
Jetpack Compose: совместимость с System UI и иммерсивная строка состояния

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

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

Статья: https://apptractor.ru/info/articles/jetpack-compose-sovmestimost-s-system-ui-i-immersivnaya-stroka-sostoyaniya.html
Платформа: Android