AppFiles - Mobile Development
2.01K subscribers
2.57K photos
33 videos
8 files
3.46K links
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Построение экрана поиска с помощью Jetpack Compose

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

Статья: https://proandroiddev.com/jetpack-compose-search-screen-recommendations-7b5c8c119c0e
Платформа: Android
SwiftyJSON позволяет легко работать с данными JSON в Swift. С помощью библиотеки вы можете просто сделать так:

let json = JSON(data: dataFromNetworking)
if let userName = json[0]["user"]["name"].string {
//Now you got your value
}

И даже не беспокоиться по поводу Optional Wrapping. Это делается автоматически.

SwiftyJSON на GitHub: https://github.com/SwiftyJSON/SwiftyJSON
Платформа: iOS
⭐️: 22.2K
👎3👍1
Публикация в F-Droid с помощью Fastlane

Один из первых вопросов, который я получил, когда объявил о публикации нового приложения с открытым исходным кодом в Google Play Store, был: «Как узнать, что ваш код на GitHub — это тот же самый код, с помощью которого создано приложение в Google Play?».

Сначала этот вопрос показался мне несколько нелепым. Стал бы кто-то публиковать код, который отличается от кода в его репозитории? К сожалению, некоторые недобросовестные разработчики регулярно практикуют такое поведение. Именно здесь особенно полезен F-Droid.

Статья: https://apptractor.ru/info/articles/publikatsiya-v-f-droid-s-pomoschyu-fastlane.html
Платформа: Android
Скорее жив, чем мёртв: тенденция по развитию iOS технологий

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

Статья: https://habr.com/ru/articles/768262/
Платформа: iOS
Какие инструменты позволили существенно улучшить iOS-разработку

Вот некоторые самый популярные сторонние инструменты и сервисы для iOS-разработчиков:

• Swiftlint
• Sim Genie
• Reveal
• xScope
• Core Data Lab
• Xcodes
• Proxyman
• Charles
• Dash
• Swiftgen
• Fastlane
• Appcode
• PaintCode
• KIN
• DevCleaner
• Sherlock
• Gitkraken
• Tuist
• Xcode Loves AI
• DevUtils

Обзор: https://apptractor.ru/info/articles/kakie-instrumenty-pozvolili-suschestvenno-uluchshit-ios-razrabotku.html
Платформа: iOS

🧑‍💻 Какими инструментами вы пользуетесь? Давайте добавим.
👎1👏1
В октябре пройдёт Mobile Team Fest — три недели митапов, встреч и вебинаров про мобильную разработку в Яндексе

20 октября
ребята из Go, Карт, Рекламы, Маркета, Путешествий, Авто.ру и Недвижимости расскажут про технологии под капотом, свои проекты, задачи и карьерные возможности в Яндексе.

Также будут онлайн и офлайн митапы с техническими докладами.

24 октября офлайн участников митапа помимо докладов ждёт экскурсия по офису в Москва-Сити и нетворкинг.

19 и 25 октября опытные инженеры Яндекса проведут в прямом эфире секции с кодом для iOS и Android-разработчиков в прямых эфирах на каналах Кирилла Розова и Mobile Developer.

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

Подробности и регистрация.
Tivi отлеживает сериалы и телевизионные шоу с помощью Kotlin, Jetpack Compose, корутин, различных архитектурных компонентов, вроде Room, Lifecycle, Navigation, и Hilt для инъекции зависимостей.

Tivi на GitHub: https://github.com/chrisbanes/tivi
Платформа: Android
⭐️: 6.2K
🥴2
Использование компанией Apple Swift и SwiftUI в iOS 17

Несмотря на отсутствие доступа к исходному коду iOS, мы можем определить языки программирования, используемые для создания встроенных приложений в iOS, и проследить эволюцию этих языков с iPhone OS 1.0 до iOS 17:

• Objective-C по-прежнему является основой iOS и прямо или косвенно используется в большинстве приложений
• Внедрение Swift и SwiftUI продолжает быстро расти
• Доля Objective-C, C и C++ продолжает снижаться.

Статья: https://apptractor.ru/info/analytics/ispolzovanie-kompaniey-apple-swift-i-swiftui-v-ios-17.html
Платформа: iOS
Видео и подкасты за неделю:

(iOS Ru) Async/Await: лучшие практики, советы и особенности
(iOS Ru) SwiftUI — уже пора?
(iOS Ru) Гармония статики и динамики: погружаемся в mergeable libraries
(iOS Ru) Навигация в iOS приложении — паттерн Координатор
(iOS Ru) Нарисуй свой TabBar
(iOS En) Все видео NSSpain XI
(iOS En) 8 Tips to Optimize your iOS App
(iOS En) ContentUnavailableView in iOS 17
(iOS En) Lock SwiftUI View With Biometric/Custom Number Lock
(iOS En) SwiftUI Progress Based Hero Animation Effect - Custom Matched Geometry Effect
(And Ru) TDD вместо тысячи слов и туториалов или как работать с новичками
(And En) Now in Android: 93 - Android 14, Wear OS 4, Gestures in Jetpack Compose, and more!
(And En) #TheAndroidShow: faster and easier to build excellent apps, across devices!
(And En) Device Streaming in Android Studio, Image Generation in MediaPipe, and more developer news!
(And En) Image Caching with Coil Compose - Everything You Need to Know
(And En) How to Implement Pinch Zoom Gestures in Jetpack Compose
(And En) Maestro: Android modern UI Testing
(And En) droidcon NYC 2023 videos
(Crs Ru) React Native: cостояние, скорость работы, конкуренция, будущее
(Crs Ru) Android-Driven KMM
(Crs Ru) KMM + Composable Architecture в Умной Камере
(Crs Ru) Как мы Kotlin Multiplatform внедряли
(Dev Ru) Почему джунов не берут на работу

Поставьте 👍, если понравилась подборка. А если вы увидели/выпустили какое-то другое интересное видео - отправьте боту🧑🏻‍💻
👍2
ComposeDialogs - библиотека предлагает легко расширяемый фреймворк Compose для модальных диалогов и позволяет показывать формы и диалоги в виде незакрываемых окон или bottom sheet.

ComposeDialogs на GitHub: https://github.com/MFlisar/ComposeDialogs
Платформа: Android
⭐️: 25
Архитектура SwiftUI + VIPER: модульный подход к разработке iOS‑приложений

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

Статья: https://habr.com/ru/articles/768850/
Платформа: iOS
Оптимизируем Android приложение в пару подходов

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

Статья: https://habr.com/ru/articles/768636/
Платформа: Android
Dime - еще один бесплатный открытый трекер расходов для iOS. Из технических фич - простой, но красивый дизайн, синхронизация с iCloud, кастомные напоминания, биометрическая аутентификация, быстрые действия с домашнего экрана, темная тема, виджеты.

Dime на GitHub: https://github.com/rarfell/dimeapp
Платформа: iOS
⭐️: 127
👌5
Как Spotify бесшовно перешел на сборки Bazel

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

Статья: https://apptractor.ru/develop/kak-spotify-besshovno-pereshel-na-sborki-bazel.html
Платформа: iOS
🗿3
Скриншот-тесты - это ручные тесты

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

Статья: https://apptractor.ru/info/articles/skrinshot-testy-eto-ruchnye-testy.html
Платформа: тестирование
Image Toolbox - это приложение для обработки фотографий и графический редактор, созданное на основе современного технологического стека с использованием чистой архитектуры. В нем есть такие функции, как применение фильтров, обрезка, редактирование EXIF, выбор качества и типа выходного изображения, а также множество других возможностей. Внутри Kotlin, корутины, Flow, Accompanist, Hilt, Coil, Compose Navigation Reimagined, Jetpack в разных проявлениях.

Image Toolbox на GitHub: https://github.com/T8RIN/ImageToolbox
Платформа: Android
⭐️: 748
Flutter Yandex Mapkit: как внедрить основные инструменты Яндекс Карт в проект на Flutter

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

Статья: https://habr.com/ru/companies/friflex/articles/769662/
Платформа: Flutter/кроссплатформа
На 65% меньше APK и на 70% меньше потребление памяти: оптимизация приложения для Android

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

Статья: https://apptractor.ru/info/articles/na-65-menshe-apk-i-na-70-menshe-potreblenie-pamyati-optimizatsiya-prilozheniya-dlya-android-pamyat.html
Платформа: Android
Как Tinder разрабатывает продукт (и почему так)

Я слежу за Рози Хогмаскалл (бывшим руководителем отдела роста продуктов в Peanut и Top Testing Influencer 2023 года), и она поделилась своими наблюдениями о том, как Tinder растет в дизайне и монетизации. Меня покорил подобный дизайн - когда он обусловлен небольшими изменениями в дизайне, основан на моделях роста и объясняется в таких практичных деталях.

Статья: https://adplist.substack.com/p/how-tinder-designs-product-and-why
Tagged - обертка типов для более безопасного и выразительного кода.

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

Адрес электронной почты - это не что иное, как String, но он должен быть ограничен в способах его использования. И хотя идентификатор пользователя может быть представлен в виде Int, он должен быть отличим от идентификатора подписки, который также является Int.

Tagged может помочь решить серьезные ошибки на этапе компиляции, легко обернув базовые типы в более конкретные контексты.

Tagged на GitHub: https://github.com/pointfreeco/swift-tagged
Платформа: iOS
⭐️: 1.2K
🤔1
Готов ли Swift OpenAPI Generator для продуктивного кода?

Мы хотим упростить работу с OpenAPI-спецификациями, внедрив кодогенерацию для автоматического создания кода на Swift из YAML- или JSON-файла спецификации. Это позволяет автоматизировать создание DTO, сделать их единообразными и повысить эффективность разработки. Кодогенератор также упрощает сетевой слой, генерируя методы API, наборы параметров, заголовки и т.д.

На WWDC `23 Apple представила свой Open Source-генератор Swift OpenAPI Generator, который как раз и решает эту задачу. Давайте рассмотрим, готов ли в текущем виде Swift OpenAPI Generator для решения нашей проблемы.

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