AppFiles - Mobile Development
2K subscribers
2.55K photos
33 videos
8 files
3.43K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
В корутинах Flow - это тип, который может последовательно выдавать несколько значений, в отличие от функций, которые возвращают только одно значение. Например, поток можно использовать для получения обновлений из базы данных в реальном времени. Learn Kotlin Flow - открытый проект, который учит использованию Flow на примерах.

Learn Kotlin Flow на GitHub: https://github.com/amitshekhariitbhu/Learn-Kotlin-Flow
Платформа: Android
⭐️: 221
NearDrop - это частичная реализация протокола Nearby Share от Google для macOS. Приложение располагается в строке меню и сохраняет файлы в папке загрузок. ПОка у реализации много важных ограничений - приложение работает только на прием, только через Wi-Fi и все время “светится” в сети.

NearDrop на GitHub: https://github.com/grishka/NearDrop
Платформа: macOS
⭐️: 1.6K
Share extension как общий компонент

За последние 3 года количество выпускаемых нами мобильных приложений значительно выросло, а в процессе их разработки увеличивались и требования к функционалу шаринга. Под каждую бизнес задачу требуются разные опции, будь то отправка фотографий в диалог или загрузка документа на диск. Не каждое наше приложение поддерживает тот или иной функционал, но и писать отдельную реализацию под новый продукт не рационально. Поэтому share extension превратился в отдельный модуль, конфигурируемый за счёт подключенных внешних зависимостей.

Статья: https://habr.com/ru/companies/tensor/articles/748888/
Платформа: iOS
Собираем Android для Raspberry Pi из исходного кода

В этой статье я хочу поделиться пошаговой инструкцией по компиляции Android Open Source Project для Raspberry Pi. Эта статья поможет разобраться в первых шагах разработки ОС на базе Android.

Статья: https://habr.com/ru/articles/749724/
Платформа: Android
5 советов Kotlin-разработчикам для повышения чистоты кодовой базы

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

Статья: https://apptractor.ru/info/articles/5-sovetov-kotlin-razrabotchikam-dlya-povysheniya-chistoty-kodovoy-bazy.html
Платформа: Android/Kotlin
X5 Kotlin Multiplatform Meetup
26 июля
г. Москва // онлайн

X5 Tech приглашает на митап по котлин, на котором встретятся разработчики из МТС, X5 Tech и VK, чтобы обсудить преимущества и недостатки технологии, использование KMM в b2b, какие могут быть результаты.

📍После выступлений - круглый стол на тему "КММ в индустрии, найм на KMM-проект и интерес iOS специалистов к технологии".

Подробнее о докладах и участии - здесь
Molecule - библиотека для построения потоков StateFlow или Flow для Jetpack Compose. Ее презентер может возвращать StateFlow<ProfileModel> или Flow<ProfileModel>, начальные состояние которых могут быть синхронно прочитаны на уровне представления с помощью Compose UI. Кроме того, используя Compose, можно строить объекты модели с помощью императивного кода, построенного на возможностях языка Kotlin, а не реактивного кода, состоящего из API библиотеки RxJava.

Molecule на GitHub: https://github.com/cashapp/molecule/
Платформа: Android
⭐️: 1.5K
Фризы и ANR? Проверьте утечки памяти!

В этой статье я покажу, что утечки памяти в Android приводят к замедлениям, зависаниям и ANR чаще, чем к OutOfMemoryError сбоям.

Перевод: https://apptractor.ru/info/articles/frizy-i-anr-proverte-utechki-pamyati.html
Платформа: Android
👍2
Как в Swift Package Manager сэкономить гигабайты трафика и места на диске

Одним из преимуществ CocoaPods по сравнению с SPM является то, что проверки зависимостей хранятся вместе с проектом непосредственно в репозитории. Это позволяет безболезненно запускать проект из любого коммита и не тратить время на CI для загрузки зависимостей и их разрешения.

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

Статья: https://apptractor.ru/info/articles/kak-v-swift-package-manager-sekonomit-gigabayty-trafika-i-mesta-na-diske.html
Платформа: iOS
Design Patterns In Swift - масса паттернов проектирования, реализованных на Swift 5.0. Сделаны 11 поведенческих паттернов проектирования (Цепочка обязанностей, Обозреватель и т.п.), 6 креативных (Фабричный метод, Синглтон и т.п.) и 8 структурных (Адаптер, Декоратор и т.д.).

Design Patterns In Swift на GitHub: https://github.com/ochococo/Design-Patterns-In-Swift
Платформа: iOS/программирование
⭐️: 14.4K
👍5
SQLDelight генерирует типобезопасные Kotlin API из SQL-операторов. Он проверяет схему, операторы и миграции во время компиляции и предоставляет такие возможности IDE, как автодополнение и рефакторинг, которые упрощают написание и поддержку SQL. Только что вышла версия 2.0.

SQLDelight на GitHub: https://github.com/cashapp/sqldelight
Сайт: https://cashapp.github.io/sqldelight/
Платформа: Android
⭐️: 5.4K
Занимательные флаги на Swift

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

Статья: https://apptractor.ru/flag-swift
Платформа: iOS
This media is not supported in your browser
VIEW IN TELEGRAM
Кастомизация Android-приложения с помощью тем

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

Статья: https://medium.com/revolut/customising-android-app-ui-with-themes-a251e42b1451
Платформа: Android
👍2
Iosevka - семейство шрифтов с открытым исходным кодом, sans-serif + slab-serif, monospace + quasi-proportional, предназначенное для написания кода, использования в терминалах и подготовки технической документации. Все версии включают одинаковый набор символов: латинские буквы, греческие (включая политонику), некоторые кириллические буквы, символы IPA, а также распространенные символы пунктуации и прочие символы.

Iosevka на GitHub: https://github.com/be5invis/Iosevka
Платформа: программирование
⭐️: 16.6K
Видео и подкасты за неделю

• (iOS Ru) Distributed actors и где они обитают
• (iOS En) TipKit - iOS 17 - SwiftUI
• (iOS En) OSLog and Logger
• (iOS En) Radial Layout With Gestures - SwiftUI
• (iOS En) Inout Parameters and Mutating Functions
• (iOS En) How to master Combine like a Pro – The Basics
• (iOS En) SwiftUI NavigationStack Hero Animation Effect - Custom Matched Geometry Effect
• (And Ru) Секретная фича в Android Studio: логируем, пока дебажим, не меняя сам код
• (And En) Now in Android: 87 - Android 14 Beta 4, Google Play policy update, and Compose Performance
• (And En) What's new in Android Studio - Giraffe
• (And En) Text Fields - UX With Material3
• (And En) Buttons - UX With Material3
• (Crs Ru) Кодогенерация для Flutter: что, как и зачем
• (Crs En) Build an iOS & Android app in 100% Kotlin with Compose Multiplatform
• (Dev Ru) Ozon Tech Intro Meetup: как работают системы поиска, рекомендаций и рекламы
• (Dev Ru) На шаг ближе к метавселенной, или Как мы оживили аватары пользователей в VK Звонках
• (Dev Ru) Как сделать аналог Firebase App Distribution
• (Dev Ru) Алгоритмическое собеседование в Яндекс в прямом эфире
• (Dev Ru) Постоянные отказы на собеседованиях: что мне делать
• (Dev En) The ultimate guide to A/B testing


Посмотрели какое-то другое интересное видео? Отправьте боту🧑🏻‍💻
Цель Compose Adaptive Scaffold - облегчить написание приложений Jetpack Compose, поддерживающих большие экраны и складные устройства.

В основе библиотеки лежит идея двух панелей, называемых body и secondary body. Для небольших экранов предусмотрены альтернативные варианты (или вариации), называемые small body и small secondary body (последняя опциональна). В зависимости от компоновки экрана пары body и small body, а также secondary body и small secondary body могут даже совпадать. Под капотом Compose Adaptive Scaffold использует Jetpack WindowManager для обеспечения полной поддержки больших экранов. Просто предоставьте композабл body и secondary body - все остальное будет обработано автоматически.

Compose Adaptive Scaffold на GitHub: https://github.com/tkuenneth/compose_adaptive_scaffold
Платформа: Android
⭐️: 74
Что порой кроется за «успехом»

Хочу рассказать вам свой путь в поиске новой работы в 2023 году и поддержать тех, кто сейчас проходит через это. За 6 месяцев я собеседовался в 25 компаний, прошел 54 этапа (а какие-то не прошел), получил 2 оффера и в итоге один из них принял. Если вы сейчас в поиске работы, эта статья будет для вас глотком свежего воздуха. Если же вы матерый специалист, устраивающий процессы онбординга в своей компании, вам это может быть интересно с другой стороны.

Статья: https://habr.com/ru/articles/751284/
Платформа: Android/работа
❤‍🔥1
Разбираю Swift Runtime на детали

Наверное, вы уже использовали словосочетание «Библиотека Runtime». Можно предположить, что это и есть какая-то библиотека, а значит — у неё есть исходный код. Очевидно, что он находится в репозитории Swift.

Идём туда и видим кучу-кучу-кучу каталогов файлов. Когда я туда попал, почувствовал себя как маленький малыш Йода — стало немножко страшно и неуютно.

Статья: https://habr.com/ru/companies/alfa/articles/750348/
Платформа: iOS