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

Спойлеры стали неотъемлемой частью общения в мессенджерах и социальных сетях. Они позволяют скрывать часть информации до тех пор, пока пользователь не захочет ее увидеть. В Telegram спойлер-эффект сопровождается красивой анимацией рассыпающихся точек. В этой статье мы рассмотрим, как реализовать подобный спойлер-эффект в iOS-приложении на Swift, используя CAEmitterLayer и UITextView.

Статья: https://habr.com/ru/articles/847236/
Платформа: iOS
Новый подход к безопасному управлению состояниями в Kotlin-приложениях

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

Статья: https://habr.com/ru/companies/otus/articles/847888/
Платформа: Android
1
KLogX - это библиотека логирования Kotlin, разработанная для обеспечения гибкого и эффективного способа протоколирования сообщений в вашем приложении. Она поддерживает различные уровни регистрации (INFO, WARN, ERROR и т.п.) и цели (INTERNAL, EXTERNAL, REMOTE), а также позволяет регистрировать пользовательские функции для обработки сообщений лога на основе фильтра.

KLogX на GitHub: https://github.com/mohsenoid/KLogX
Платформа: Android
⭐️: 8
Создание уведомлений на языке Kotlin

Недавно мне нужно было добавить в мое мобильное приложение уведомление, которое писало бы определенный текст в 9 утра. Я потратила некоторое время на чтение документации и разговор с чатом, чтоб понять как и что делать, и я думаю таким же начинающим программистам будет интересно или полезно почитать мои заметки и разбор кода.

Статья: https://habr.com/ru/articles/847020/
Платформа: Android
Как Discord сократил Websocket трафик на 40%

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

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

Статья: https://apptractor.ru/info/articles/kak-discord-sokratil-websocket-trafik-na-40.html
Платформа: разработка
This media is not supported in your browser
VIEW IN TELEGRAM
Swipe Cell SwiftUI - это простое swipe-to-reveal представление. Оно поддерживает iOS/iPadOS 14 или более поздние версии. Цель - заменить стандартный модификатор SwiftUI List .onDelete(perform: ...), поскольку его функциональность ограничена только удалением и работает только со строками списка. Кроме того, строки в iOS 14 LazyVStack по умолчанию не поддерживают пролистывание для раскрытия кнопок. Swipe Cell SwiftUI позволяет добавлять несколько кнопок меню с левой и правой стороны, а также поддерживает функцию смахивания (например, для удаления).

Swipe Cell SwiftUI на GitHub: https://github.com/DominikButz/SwipeCellSUI
Платформа: iOS
⭐️: 61
Восстановление базы для миллионов пользователей

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

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

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

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

Статья: https://apptractor.ru/info/articles/vosstanovlenie-bazy-dlya-millionov-polzovateley.html
Платформа: разработка
Как перехватывают зашифрованный HTTS-трафик на мобильном устройстве

Реверс-инжиниринг VPN-сервиса Onavo Protect под Android позволил определить методы, которые можно использовать для перехвата зашифрованного HTTPS-трафика на мобильном устройстве. Если вкратце, злоумышленник должен поставить на телефон собственное приложение и сертификат УЦ (удостоверяющего центра).

Например, в РФ вступил в действие закон, который требует с 2025 года обязательной предустановки на все смартфоны конкретных приложений. Теоретически, при наличии уязвимостей это может угрожать безопасности многих пользователей.

Статья: https://habr.com/ru/companies/globalsign/articles/848632/
Платформа: Android
Реализация Shared With You в SwiftUI

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

Статья: https://apptractor.ru/info/articles/shared-with-you.html
Платформа: iOS
Виртуализация iOS на Apple Silicon

В этой статье я рассказываю о том, как мне удалось добиться виртуализации iOS на компьютерах Apple Mac, попутно исследуя многие внутренние компоненты.

Статья: https://nickb.website/blog/virtualizing-ios-on-apple-silicon
Платформа: iOS
🤔1
Transcribro - это приватная клавиатура и сервис распознавания речи для Android-устройств. Он использует whisper.cpp для запуска семейства моделей OpenAI Whisper и Silero VAD для распознавания голосовой активности.
В приложении есть клавиатура голосового ввода, позволяющая набирать текст с помощью речи. Оно также может использоваться другими приложениями либо явно, либо при установке в качестве выбранного пользователем приложения для преобразования речи в текст.

Transcribro на GitHub: https://github.com/soupslurpr/Transcribro
Платформа: Android
⭐️: 370
This media is not supported in your browser
VIEW IN TELEGRAM
Паря в космосе: анимации с помощью Compose и Canvas

В своей предыдущей статье «Рисуя звезды: рисование с помощью Compose и Canvas» я рассказала о том, как я хотела улучшить свои навыки работы с  Canvas и Compose и создала иллюстрацию с планетами и звездами. В этой статье я расскажу, как анимировать эти элементы.

Статья: https://apptractor.ru/info/articles/parya-v-kosmose-animatsii-s-pomoschyu-compose-i-canvas.html
Платформа: Android
Перевод в текст живого звука с помощью фреймворка Speech

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

Статья: https://www.createwithswift.com/transcribing-audio-from-live-audio-using-the-speech-framework/
Платформа: iOS

Поставьте 10 👍 если хотите эту статью на русском.
👍3
10 причин НЕ использовать Jetpack Compose (с комментариями)

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

Статья: https://apptractor.ru/info/articles/10-prichin-ne-ispolzovat-jetpack-compose.html
Платформа: Android
🤡2
Реверс инжиниринг кормушки для кошек для повышения производительности разработки

После ночных покупок в Amazon я получил PetKit FreshElement Solo. У меня было две проблемы, которые он мог решить: низкая мотивация к побочному проекту и слишком большая любовь к миндалю с морской солью в темном шоколаде от Target. Я помешан на коде — так почему бы не подкормить мой обезьяний мозг, когда я пушу код? Так и возник мой проект — при каждом коммите кормушка для кошек выдает мне порцию конфет.

Статья: https://apptractor.ru/info/devices/revers-inzhiniring-kormushki-dlya-koshek-dlya-povysheniya-proizvoditelnosti-razrabotki.html
Платформа: разработка
😁31💊1
DevTutor for SwiftUI - это приложение, предназначенное для помощи разработчикам в создании исключительных приложений с использованием SwiftUI. Оно предлагает воспроизводимые примеры кода и соответствующие предварительные просмотры пользовательского интерфейса, чтобы упростить процесс программирования. Кроме того, приложение включает локальный офлайн-доступ к официальной документации по языку программирования Swift на китайском и английском языках.

DevTutor for SwiftUI на GitHub: https://github.com/jaywcjlove/devtutor
Платформа: iOS
⭐️: 145
Пишите на Swift как Apple

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

• Булево значение должно определять условие
• Не заботьтесь о длине имени типа, уточните намерение
• Прошедшее время для метода, настоящее время или глагол для замыкания
• Избегайте прямого указания объекта, используйте Enum или Static для объявления типа
• Словарь с перечислением в качестве ключа
• Вложенный тип — это нормально
• Протокол — это поведение: найдите нужное существительное, используйте суффикс -able, если оно не найдено

Статья: https://apptractor.ru/info/articles/pishite-na-swift-kak-apple.html
Платформа: iOS
😁2
Остерегайтесь UserDefaults: история о трудно понимаемых ошибках и потерянных данных

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

Это может привести к еще более серьезной проблеме - к безвозвратной потере данных.

Статья: https://apptractor.ru/info/articles/osteregaytes-userdefaults.html
Платформа: iOS
MusicSearch - приложение для Android, позволяющее просматривать песни, исполнителей и все, что с ними связано, используя MusicBrainz API.

Мультиплатформенные дистрибутивы находятся в разработке. Только приложение для Android считается стабильным.

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

(iOS Ru) Собеседование iOS-разработчика: проектирование и лайфкодинг (+ все собеседования)
(iOS En) Improve Scroll Transitions | SwiftUI
(iOS En) Grid Multi-Selection using Pan Gesture | SwiftUI
(iOS En) How to Fix UIKit and SwiftUI Menu Buttons (make them easier to tap)
(iOS En) TDD Basics with SwiftUI
(iOS En) Adopt iPhone 16 Camera Control into your SwiftUI App
(iOS En) WWDC22: Design protocol interfaces in Swift
(And En) Now in Android: 110 - Android 15, Credential Manager, Android Studio Koala, Compose for TV
(And En) FULL Guide to Kotlin's Inline Keyword (inline, crossinline & noinline)
(And En) Micro Open Source: From Passion to Pet Project Publication
(Crs Ru) Flutter Web глазами мобильного разработчика
(Crs En) Build a Book Library App for Android & iOS using ROOM KMP (MVVM)
(Dev Ru) Мобильная разработка в Алисе и YaOS: как это работает
(Dev Ru) Путь тестировщика: ошибки, опыт, деньги
(Dev Ru) Перформанс мобильных приложений
(Dev Ru) Дизайн-система 2.0: менеджеры нужны
(Dev Ru) Двое за ноутом, не считая copilot’а, или Как внедрить парное программирование
(Dev Ru) Так много тимлидов хороших и разных. А я какой?
(Dev Ru) Стартап мечты превратился в кошмар
(Dev En) Databases In-Depth – Complete Course
(Dev En) Electron Course - Code Desktop Applications (inc. React and Typenoscript)
(Dev En) AWS Certified AI Practitioner (AIF-C01) – Full Course to PASS the Certification Exam

#ios #android #mobile #video