AppFiles - Mobile Development
2K subscribers
2.55K photos
33 videos
8 files
3.43K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
.xcstrings в Xcode 15

Всё изменилось с приходом Xcode 15, где локализация и плюрализация строк были значительно улучшены. Теперь там один файл xcstrings. Это каталог, который хранит в себе все ключи и строки как для переводов на другие языки, так и для переводов для множественного числа. Важно отметить, что всё это умеет бэкпортиться на старые версии iOS путём разбиения xcstrings на .strings и .stringsdict. То есть всё равно под капотом используется старый формат, но мы, как разработчики, работаем уже с удобным для нас интерфейсом.

Статья: https://habr.com/ru/companies/cleverpumpkin/articles/746050/
Платформа: iOS
Цензурирование TextInputLayout как это сделано в паролях

Вы когда-нибудь задавались вопросом, как сделать текст внутри TextInputLayout закрытым и/или частично закрытым? Твист заключается в том, что цензурировать текст, не накладывая свойства "пароль" на его inputType, чтобы скрыть текст. Как насчет того, чтобы сначала установить его как цензурированный текст, а затем поместить его в TextInputLayout? Это может сработать, но потребуются дополнительные шаги, чтобы вернуться к оригиналу при выполнении процесса валидации. Тогда как?

Статья: https://medium.com/@fadhifatah_/textinputlayout-censoring-with-password-like-method-303b986f5364
Платформа: Android
Как создавать архитектуру Android-приложений: глубокое погружение в принципы

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

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

Перевод: https://apptractor.ru/arhitektura-android
Платформа: Android
👍1
Okio - это библиотека, которая дополняет java.io и java.nio, облегчая доступ, хранение и обработку данных. Она начиналась как компонент OkHttp, HTTP-клиента, включенного в Android. Библиотека хорошо проработана и готова к решению новых задач. Сделана Джейком Вортоном и Square. С ее помощью вы можете, например, читать текстовый файл строчка за строчкой, писать в файл, работать с разными кодировками, писать бинарные файлы, работать с сокетами, хэшировать данные и т.п.

Okio на GitHub: https://github.com/square/okio
Платформа: Android
⭐️: 8.4K
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
ScrollViewLoader - простая утилита, помогающая загружать содержимое в ScrollView в SwiftUI и организовывать бесконечные списки прокрутки. По умолчанию колбек срабатывает, когда расстояние до нижней части прокручиваемого содержимого составляет менее 50% от видимой высоты представления прокрутки. Впрочем, это можно изменить.

ScrollViewLoader на GitHub: https://github.com/gh123man/ScrollViewLoader
Платформа: iOS
⭐️: 11
SOLID в Swift. Простое объяснение с примерами для начинающих

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

Статья: https://habr.com/ru/articles/746410/
Платформа: iOS
Разбор тестового задания на позицию Android Developer

В данной статье я хотел бы разобрать тестовое задание на позицию Android developer и продемонстрировать свой способ решения.

Статья: https://habr.com/ru/articles/746146/
Платформа: Android
👍1
InnerTune - открытый клиент для проигрывания музыки с YouTube. Сделан в Material 3, умеет проигрывать музыку без рекламы, воспроизводить в фоне, искать, управлять библиотеками, кешировать и играть в офлайне, нормализовать громкость и прочее.

InnerTune на GitHub: https://github.com/z-huang/InnerTune
Платформа: Android
⭐️: 1.5K
👍2
Анализ приложений Threads

1. Android-приложение Threads
2. Сходство с приложением Instagram
3. iOS-приложение Threads
4. Время запуска Threads
5. Итог

Статья: https://apptractor.ru/develop/analiz-prilozheniy-threads.html
Платформа: iOS/Android
🔥1
Queryable - открытое приложения для iOS, которое использует модель CLIP (Contrastive Language-Image Pre-Training) для автономного поиска в альбоме Фотографий.

В отличие от функции поиска с распознаванием объектов, встроенной в галерею iOS, Queryable позволяет использовать для поиска в галерее фразы на естественном языке, например "коричневая собака сидит на скамейке". Приложение работает в автономном режиме, гарантируя, что конфиденциальность вашего альбома не будет передана никому, включая Apple/Google.

Queryable на GitHub: https://github.com/mazzzystar/Queryable
Платформа: iOS
⭐️: 989
Как я перестал волноваться и полюбил ошибки в Kotlin корутинах: Мифы обработки ошибок в корутинах

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

Статья: https://habr.com/ru/articles/747146/
Платформа: Android
👍1
Модуляризация мобильных приложений в масштабе

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

Статья: https://engineering.teknasyon.com/modularization-of-mobile-applications-at-scale-df57815ff19a
Платформа: разработка

Поставьте 👍, если хотите эту статью на русском.
👍61
Используем атрибут @backDeployed для расширения доступности функций

TLDR: для приложений практически бесполезно, может пригодиться тем, кто делает SDK.

В SE 376 Function Back Deployment атрибут был представлен в качестве предложения, после чего он был впервые реализован в Swift 5.8. Многие разработчики ожидали, что эта новая возможность позволит Apple осуществлять обратное развертывание многих функций SwiftUI, однако она оказалась недостаточно гибкой. Давайте погрузимся в эту тему!

Статья: https://apptractor.ru/info/articles/backdeployed.html
Платформа: iOS
AppFiles - Mobile Development
Reader - мультиплатформенный (iOS и Android) RSS-ридер, сделанный на Kotlin Mutliplatform и Compose Multiplatform. Кроме них из большого есть Ktor, SQLDelight, Decompose и Kotlin-inject. Reader на GitHub: https://github.com/msasikanth/reader Платформа: кроссплатформа…
Redwood - это библиотека для создания реактивных пользовательских интерфейсов для Android, iOS и веб на языке Kotlin. Redwood объединяет в себе компилятор Compose, дизайн систему и набор экранов, специфичных для конкретной платформы. Redwood - это библиотека, а не фреймворк. Она предназначена для постепенного внедрения в существующий Android-проект с минимальным риском. Использование Redwood в iOS или веб-приложениях более рискованно. В целом авторы говоря, что в настоящее время Redwood находится в стадии разработки и не готов к использованию. Однако вы уже можете протестировать сам подход.

Redwood на GitHub: https://github.com/cashapp/redwood
Платформа: кроссплатформа
⭐️: 1.1K
1
Храним краску с умом: как организовать ресурсы в многомодульном проекте

Привет, меня зовут Никита Чернобрисов, и я делаю Android-приложения в Doubletapp. Полтора года назад мы начали работать над приложением «Яндекс Путешествий» — само приложение доступно в Play Store, а про кейс подробно можно прочитать тут. При старте у нас возникло много архитектурных холиваров, в частности о том, как хранить ресурсы и пользоваться ими. И, как это и заведено, первые решения оказались неудачными. Я расскажу вам, дорогие читатели, удары каких граблей оставили больше следов и к чему мы пришли.

Статья: https://habr.com/ru/companies/doubletapp/articles/745606/
Платформа: Android
AppFiles - Mobile Development
Модуляризация мобильных приложений в масштабе Преобразование монолитного приложения в модульную архитектуру - это путь к масштабируемости, и очень важно установить набор правил для построения масштабируемого проекта. Эти правила стали нашим фонарем, позволяющим…
Модуляризация мобильных приложений в масштабе

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

• Модули функций
• Модули координаторов
• Модули плагинов
• Модули библиотек
• Модули запуска (лаунчеры)

Перевод: https://apptractor.ru/info/articles/modulyarizatsiya-mobilnyh-prilozheniy-v-masshtabe.html
Платформа: вообще Android, но в целом разработка
Плавающая кнопка действия в SwiftUI

Floating Action Button (FAB) - это элемент пользовательского интерфейса, используемый в Android и Material Design. Он обозначает кнопку, которая запускает основное действие на конкретном экране.

Несмотря на то что этот элемент пришел из Android, его можно увидеть и в некоторых приложениях для iOS.

Статья: https://sarunw.com/posts/floating-action-button-in-swiftui/
Платформа: iOS
1
Swift HTTP Types - это библиотеки работы с HTTP-запросами от Apple, предназначенные как для клиентов, так и для серверов. Они обеспечивают общий набор представлений для HTTP-запросов и ответов, ориентируясь на современные возможности HTTP. В ней реализованы основные форматы - HTTPRequest, HTTPResponse и HTTPFields, а также заложены основы для работы со всеми новыми возможностями.

Swift HTTP Types на GitHub: https://github.com/apple/swift-http-types
Платформа: iOS
⭐️: 452
Видео и подкасты за неделю

• (iOS Ru) Что делать iOS-разработчикам в России?
• (iOS En) SwiftUI Repeatable Button
• (iOS En) SwiftUI 5: What’s New In ScrollView
• (iOS En) Build A To Do List App using SwiftData (Swift Data Tutorials)
• (iOS En) Becoming an “iOS-lite” developer
• (iOS En) Build a Live Activity Realtime Polls App with Firebase & APNS Push Token
• (iOS En) SwiftUI Data Flow with the new Observation
• (iOS En) SwiftUI Search Bar - How to work with searchable in your iOS and macOS apps
• (And Ru) Как избежать хаоса: навигация как отдельный логический уровень
• (And En) Now in Android: 86 - Google Play at I/O, Pixel Fold and Tablet, Google Developer Expert
• (And En) WorkManager - Android Basics 2023
• (Crs Ru) Как собрать iOS-фреймворк из исходных файлов на Kotlin
• (Crs En) Kotlin Multiplatform in Production
• (Crs En) MVI Compose Multiplatform Contacts List App With Photos (iOS & Android)
• (Dev Ru) Игры, в которые играют люди на собеседованиях
• (Dev Ru) Podlodka #324: холакратия — самоорганизующиеся команды
• (Dev Ru) Как мы за полгода построили работу команды data инженеров от хаоса до порядка (Яна Жежер, СберМаркет)
• (Dev En) Design and Prototype for iOS 17 in Figma

Посмотрели какое-то другое интересное видео? Отправьте боту -> 🧑🏻‍💻
👍2🤮2