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

Хотя в приложении есть отличный экран отслеживания заказов, ему не хватает целостности и легкости доступа, которые предлагает iOS-вариант приложения Zomato благодаря использованию в iOS Live Activity. Вдохновившись этим, я решил взять дело в свои руки и провести реверс-инжиниринг приложения Zomato для Android, чтобы создать собственное решение для отслеживания заказов. В этой публикации я расскажу о том, как нашел необходимые конечные точки API, разработал системную архитектуру приложения и реализовал уведомление, которое предоставляет информацию о заказе практически в режиме реального времени. И все это без необходимости постоянно открывать приложение Zomato.

Статья: https://apptractor.ru/info/articles/zomato-reverse.html
Платформа: Android
TPPDF - это быстрый конструктор PDF для iOS и macOS, использующий простые команды для создания продвинутых документов.

Пример:

let document = PDFDocument(format: .a4)
document.add(.contentCenter, text: "Create PDF documents easily.")
let generator = PDFGenerator(document: document)
let url = try generator.generateURL(filename: "Example.pdf")


TPPDF на GitHub: https://github.com/techprimate/TPPDF
Платформа: iOS
⭐️: 699
Видео и подкасты за неделю @AppFiles

(iOS Ru) iOS-приложения под защитой Apple! Или нет?
(iOS En) Explore Swift performance
(iOS En) Xcode 16 Navigation Shortcuts in 12 Minutes
(iOS En) SwiftUI Scroll To Hide Header View - iOS 18
(iOS En) Dark mode icons in iOS 18 and Xcode 16
(iOS En) Mesh Gradient & Floating Tab bar (iPadOS)
(iOS En) iOS 18 Control Center Widget - SwiftUI
(iOS En) Image Carousel in SwiftUI
(And Ru) Как избавиться от рекурсии, или Как мой код попал в Google
(And Ru) Микширование аудиопотоков в Android
(And Ru) Опыт внедрения Kotlin и Compose Multiplatform в продакшн-решение
(And Ru) Как мы победили техдолг в проекте Android RuStore
(And En) AI development assistance - Android Developers Backstage
(And En) Simplifying Kotlin Build Configuration with Amper
(And En) Why we can't have nice things in Kotlin
(And En) Kotlin Language Features in 2.0 and Beyond
(And En) Mastering WebRTC for Large Conference Calls on Android
(And En) Записи докладов KotlinConf'24
(Crs En) What Is Kotlin Multiplatform And How Does It Work?
(Crs En) Building Your First Compose Multiplatform Hello World App
(Crs En) 10 Takeaways for React Native Devs from the App.js conference
(Dev Ru) Как решать задачи на Leetcode
(Dev Ru) ИИ в работе: как упростить жизнь мобильного разработчика
(Dev Ru) Дали менторить джуна… Все пропало?
(Dev Ru) Как устроен сетевой код в играх

Посоветуйте в комментариях интересные каналы по мобильной или не очень разработке?
#ios #android #mobile #video
1
iCore - это библиотека, предназначенная для упрощения разработки приложений для Android. Она предоставляет комплексную и стандартизированную структуру для приложений, использующих архитектуру MVVM. iCore предлагает коллекцию базовых классов, функций расширения и полезных классов, которые помогают разработчикам создавать эффективный и удобный код.

• Сокращение дублирования кода: Абстрагируя часто используемые операции, она предотвращает написание повторяющегося кода.
• Быстрый старт: Наличие готовых к использованию базовых компонентов позволяет быстро приступить к реализации проектов.
• Простая интеграция: Легко интегрирует такие распространенные операции, как Retrofit, наблюдение LiveData и выбор темы/языка.
• Реактивное управление данными с помощью Kotlin Flow и LiveData: iCore управляет асинхронными потоками данных с помощью Kotlin Flow и обрабатывает обновления пользовательского интерфейса с помощью LiveData, предлагая более реактивную и современную модель обработки данных.
• Широкие возможности расширения: Расширяемая структура позволяет настраивать систему в соответствии с потребностями приложения.
• Централизованное управление: Обеспечивает централизованное управление, предоставляя легкий доступ к ресурсам приложения с помощью ResourceProvider.

iCore на GitHub: https://github.com/issever22/iCore
Платформа: Android
⭐️: 11
WebView: быстрый релиз, никаких ревью в сторах, а минусы есть?

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

Статья: https://habr.com/ru/companies/alfa/articles/821055/
Платформа: разработка
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Hero анимация в SwiftUI с помощью NavigationTransition

В этой статье вы узнаете, как реализовать Hero анимацию, похожую на анимацию в представлении «Сегодня» в App Store. Для достижения такого внешнего вида и ощущения требуется не три строки кода, поэтому мы также рассмотрим возможность превращения этого компонента в многократно используемый компонент SwiftUI.

Статья: https://apptractor.ru/info/articles/hero-animatsiya-v-swiftui-s-pomoschyu-navigationtransition.html
Платформа: iOS
👨‍💻3
InjectionIII - "горячая перезагрузка" для Swift, позволяет обновлять реализацию функций и любых методов классов, структур или перечислений мгновенно в симуляторе iOS без необходимости полной пересборки или перезапуска приложения. Это экономит разработчику значительное количество времени на доработку кода или итерации над дизайном. По сути, это превращает Xcode из «редактора исходного кода» в «редактор программы», где изменения исходного кода не просто сохраняются на диск, а непосредственно отображаются в вашей работающей программе.

InjectionIII на GitHub: https://github.com/johnno1962/InjectionIII
Платформа: iOS
⭐️: 3.9K
Как мы искали применение App Clip… и нашли?

Меня зовут Кирилл. Моя команда в Додо отвечает за развитие на международных рынках. Мы часто заигрываем с новыми технологиями и делаем прикольные фичи, такие как Live Activities и AI-пицца.

Недавно у нас дошли руки до App Clips. Мы решили разобраться, могут ли они быть нам полезны, сделали своё мини-приложение и запустили его на проде.

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

Статья: https://habr.com/ru/companies/dododev/articles/821009/
Платформа: iOS
Подробное руководство по Logcat в Android Studio с примерами

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

Статья: https://habr.com/ru/articles/818751/
Платформа: Android
👍1
Топ-10 вопросов о корутинах 2024

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

1. Что такое корутины в Kotlin?
2. Как определить корутину в Kotlin?
3. Как запустить корутину в Kotlin?
4. Как обрабатывать асинхронные операции с помощью корутин?
5. В чем разница между launch и async в корутинах Kotlin?
6. Как обрабатывать исключения в корутинах Kotlin?
7. Что такое контекст корутины (context) и диспетчер (dispatcher) в Kotlin?
8. Как отменить корутину в Kotlin?
9. Как обрабатывать структурированный параллелизм в Kotlin?
10. Как использовать корутины в Android?

Статья: https://apptractor.ru/info/articles/top-10-voprosov-o-korutinah-2024.html
Платформа: Android
Scroll Block - это открытое приложение, которое поможет вам прекратить бесконечно прокручивать социальные сети и взять под контроль свои привычки, повысить продуктивность. Оно также предоставляет аналитику, чтобы помочь вам понять, как вы используете смартфон. Сделано на 100.0% Kotlin, MVVM и Jetpack Compose.

Scroll Block на GitHub: https://github.com/vishal2376/scroll-block
Платформа: Android
⭐️: 62
Инструменты Android-разработчика

Меня зовут Симонова Анастасия и я Android‑разработчик в команде мобильного приложения Домклик. Разработка мобильных приложений для Android — это увлекательный, но зачастую трудоёмкий процесс. Успех вашего проекта во многом зависит от эффективности используемых инструментов и рабочих процессов. Как разработчик, я знаю, насколько важно иметь под рукой правильный набор инструментов, которые помогают повышать продуктивность, улучшать качество кода и ускорять процесс разработки.

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

Статья: https://habr.com/ru/companies/domclick/articles/821837/
Платформа: Android
Использование TextRenderer для создания выделенного текста

TextRenderer — это новый протокол, представленный на WWDC 2024, который позволяет нам улучшить отображение текста в SwiftUI. В этой небольшой заметке я хочу показать, как создать представление, позволяющее выделять определенные части заданной строки. Раньше для этого в основном использовалась NSAttributedString, но с TextRenderer появилась возможность делать то же самое в чистом SwiftUI.

Статья: https://apptractor.ru/info/articles/ispolzovanie-textrenderer-dlya-sozdaniya-vydelennogo-teksta.html
Платформа: iOS
PeopleInSpace - проект Kotlin Multiplatform с SwiftUI, Jetpack Compose, Compose для Wear OS, Compose для декстопов, Compose для Web и клиентами Kotlin/JS + React вместе с бэкендом на Ktor. В настоящее время работает на следующих платформах:

• Android (Jetpack Compose)
• Android App Widget (Compose based Glance API)
• Wear OS (Compose для Wear OS)
• iOS (SwiftUI)
• Виджет приложений для iOS (SwiftUI)
• watchOS (SwiftUI)
• macOS (SwiftUI)
• Swift Executable Package
• Десктоп (Compose for Desktop)
• Web (Compose for Web на основе Wasm)
• JVM (небольшой сервис Ktor + Main.kt в общем модуле)

Он использует Open Notify PeopleInSpace API, чтобы показать список людей, находящихся в космосе, а также положение Международной космической станции.

PeopleInSpace на GitHub: https://github.com/joreilly/PeopleInSpace
Платформа: Kotlin Multiplatform/кроссплатформа
⭐️: 2.8K
Как мы победили техдолг в RuStore

За последние два года наш проект достиг впечатляющих результатов: более 50 миллионов установок, около 40 тысяч приложений и более 10 тысяч разработчиков.

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

Статья: https://habr.com/ru/companies/vk/articles/824346/
Платформа: Android
🤡2
Как я участвовал в iOS Widget Challenge и что из этого вышло

Я думаю, что это прикольная идея — дизайнить что-то каждый день, так как это позволяет оставаться в тонусе, а продуктовому дизайнеру, как мне кажется, это нужно.

Статья: https://habr.com/ru/articles/824872/
Платформа: дизайн и прототипирование
Low performer в Android 2024

Впечатления от поиска работы в 2024 году, могут быть выражены словами одной компании с буквой Я в названии: «Вы очень классный кандидат, поэтому мы решили не продолжать общение с вами».

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

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

1. Глобальное состояние и тесная связь
2. Отсутствие четкого управления жизненным циклом
3. Проблемы с параллелизмом
4. Трудности тестирования
5. Скрытые зависимости

Статья: https://apptractor.ru/info/articles/pochemu-pattern-singlton-nebezopasen-v-ios-razrabotke.html
Платформа: iOS
Aptabase - аналитика для приложений. Это альтернатива Firebase/Google Analytics с открытым исходным кодом, специально созданная для мобильных, десктопных и веб-приложений.

Что в ней есть:

📱 Большое количество SDK: Неважно, какой фреймворк или язык вы используете, для вас есть SDK. Swift, React Native, Flutter, Electron, Kotlin и многие другие.

😇 Конфиденциальность на первом месте: Aptabase уделяет первостепенное внимание конфиденциальности пользователей и собирает минимальное количество данных об использовании. Аналитика фокусируется на мониторинге сессий, полностью соблюдая требования GDPR, CCPA и PECR.

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

💯 Открытый исходный код: Исходный код на 100% открыт. В нем нет ничего скрытого. Весь серверный код и SDK доступны вам для ознакомления и внесения своего вклада.

Aptabase на GitHub: https://github.com/aptabase/aptabase
Платформа: аналитика
⭐️: 751
Видео и подкасты за неделю @AppFiles

(iOS Ru) А так ли нужны акторы в Swift Concurrency?
(iOS Ru) Swift 5.9: разбираем интероп и «женим» с С++
(iOS Ru) Реактивный Swift Concurrency
(iOS En) SwiftUI Custom Time Picker Like Apple Timer App
(iOS En) iOS 18 TextField Selection API - SwiftUI
(iOS En) Xcode 16 Navigation Shortcuts in 12 Minutes
(And Ru) Как запускать задачи в фоне на Android. РАЗБОР
(And Ru) Эволюция Android тестов с Marathon Test Runner
(And En) Now in Android: 108 - Android 15 Beta 3, Google AI Studio, Gemini in Android Studio, and more
(And En) Compose UI for... a Light Switch
(And En) Write your own Kotlin lint checks
(And En) Tap it! Shake it! Fling it! Sheep it! - The Compose Gesture Animations Dance
(And En) Animations with Jetpack Compose
(And En) 7 Features in Kotlin's Standard Library that You Might Have Overlooked
(Crs En) How to Share Resources in Compose Multiplatform
(Crs En) Expect/Actual in Kotlin Multiplatform
(Crs En) Kotlin Multiplatform Alchemy: Making Gold out of Your Swift Interop
(Dev Ru) Все софт скиллы — про преодоление страха и силу воли
(Dev Ru) Что дальше после разработчика в Google
(Dsg Ru) Роль дизайнера в проекте

Посоветуйте в комментариях интересные каналы по мобильной или не очень разработке?
#ios #android #mobile #video
1
XCStrings Tool - плагин для генерации констант Swift для каталогов строк и других локализованных строковых ресурсов.

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

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

Инструмент XCStrings Tool призван расширить возможности локализации так, чтобы вам не пришлось ничем жертвовать. Для этого он использует ваш каталог строк в качестве источника для генерации элегантного Swift-кода, на который вы можете ссылаться непосредственно во всем вашем проекте.

XCStrings Tool на GitHub: https://github.com/liamnichols/xcstrings-tool
Платформа: iOS
⭐️: 143