OTP Helper - приложение с открытым исходным кодом, которое позволяет автоматически копировать OTP и коды из SMS и уведомлений, читая все ваши уведомления. Приложение работает полностью автономно и без доступа к интернету. Поэтому, по идее, ваши данные не покидают устройство. Как работает: приложение устанавливает прослушиватель уведомлений и читает все уведомления, которые отправляются любыми приложениями. Это позволяет приложению обнаруживать коды также из электронной почты и, возможно, из любого другого приложения, которое отправляет уведомления. Когда уведомление отправляется, OTP Helper создает одну строку из всего текста в уведомлении, а затем проверяет, следует ли ее игнорировать. Если она не игнорируется, то сопоставляется с регулярным выражением для обнаружения кода. Затем приложение берет извлеченный код и действует в соответствии с настройками.
OTP Helper на GitHub: https://github.com/jd1378/otphelper
Платформа: Android
⭐️: 391
OTP Helper на GitHub: https://github.com/jd1378/otphelper
Платформа: Android
⭐️: 391
❤1
Модульное тестирование с помощью JUnit в Android
В этой статье я расскажу о том, что такое модульное тестирование, зачем мы тестируем код, как автоматизировать тесты с помощью JUnit и о многом другом.
Статья: https://nuancesprog.ru/p/21014/
Платформа: Android
В этой статье я расскажу о том, что такое модульное тестирование, зачем мы тестируем код, как автоматизировать тесты с помощью JUnit и о многом другом.
Статья: https://nuancesprog.ru/p/21014/
Платформа: Android
NOP::Nuances of programming
Модульное тестирование с помощью JUnit в Android
Тестирование — неотъемлемая часть полноценной разработки программного обеспечения. Сегодня рассмотрим фреймворк JUnit, а также функции и правила, которые помогут провести тесты Android-продукта на достойном уровне.
Concurrency шаг за шагом — сетевой запрос
Разбираемся шаг за шагом как сделать сетевой запрос для загрузки картинки в Swift Concurrency.
Статья: https://apptractor.ru/info/articles/concurrency-shag-za-shagom-setevoy-zapros.html
Платформа: iOS
Разбираемся шаг за шагом как сделать сетевой запрос для загрузки картинки в Swift Concurrency.
Статья: https://apptractor.ru/info/articles/concurrency-shag-za-shagom-setevoy-zapros.html
Платформа: iOS
❤3
Swift MMIO - это пакет с открытым исходным кодом для определения и работы с отображаемыми на память вводом/выводом непосредственно в Swift.
Swift MMIO позволяет легко определять регистры непосредственно в исходном коде Swift и работать с ними безопасным и эргономичным способом.
Memory-mapped I/O (MMIO, память с отображением на ввод-вывод) — это метод взаимодействия процессора с периферийными устройствами, такими как жесткие диски, видеокарты и сетевые адаптеры, при котором устройства ввода-вывода отображаются в адресное пространство оперативной памяти. Это означает, что для доступа к регистрам периферийного устройства используются обычные команды работы с памятью, а не специальные инструкции ввода-вывода.
Swift MMIO на GitHub: https://github.com/apple/swift-mmio
Платформа: Swift/iOS
⭐️: 197
Swift MMIO позволяет легко определять регистры непосредственно в исходном коде Swift и работать с ними безопасным и эргономичным способом.
Memory-mapped I/O (MMIO, память с отображением на ввод-вывод) — это метод взаимодействия процессора с периферийными устройствами, такими как жесткие диски, видеокарты и сетевые адаптеры, при котором устройства ввода-вывода отображаются в адресное пространство оперативной памяти. Это означает, что для доступа к регистрам периферийного устройства используются обычные команды работы с памятью, а не специальные инструкции ввода-вывода.
Swift MMIO на GitHub: https://github.com/apple/swift-mmio
Платформа: Swift/iOS
⭐️: 197
От Cocoapods к Tuist+SPM быстрыми шагами
Не так давно прогремела новость, что Cocoapods переходит в режим поддержки. В связи с этим встал вопрос, что дальше. В начале мы склонялись к чисто Swift Package Manager, но потом пришло понимание, что неплохо было бы уйти от конфликтов в project файле и сделать задел на модульность. В этой статье мы пройдем от нашего старого приложения к новому и закончим там, где останется перенести исходный код и все заработает.
Статья: https://habr.com/ru/articles/837456/
Платформа: iOS
Не так давно прогремела новость, что Cocoapods переходит в режим поддержки. В связи с этим встал вопрос, что дальше. В начале мы склонялись к чисто Swift Package Manager, но потом пришло понимание, что неплохо было бы уйти от конфликтов в project файле и сделать задел на модульность. В этой статье мы пройдем от нашего старого приложения к новому и закончим там, где останется перенести исходный код и все заработает.
Статья: https://habr.com/ru/articles/837456/
Платформа: iOS
Хабр
От Cocoapods к Tuist+SPM быстрыми шагами
Не так давно прогремела новость , что Cocoapods переходит в режим поддержки. В связи с этим встал вопрос, что дальше. В начале мы склонялись к чисто Swift Package Manager, но потом пришло понимание,...
lazy-grid-demo.webp
3.9 MB
Reorderable - это простая библиотека, которая позволяет перестраивать элементы в LazyColumn, LazyRow, LazyVerticalGrid, LazyHorizontalGrid, LazyVerticalStaggeredGrid и LazyHorizontalStaggeredGrid, а также Column и Row в Jetpack Compose и Compose Multiplatform с помощью перетаскивания. Поддерживает Compose Multiplatform (Android, iOS, Desktop/JVM, Wasm, JS), элементы любого размера, немедленное перетаскивание или длительное нажатие для перетаскивания, скролл при достижении границ экрана, анимацию движения. и т.п.
Reorderable на GitHub: https://github.com/Calvin-LL/Reorderable
Платформа: Android
⭐️: 392
Reorderable на GitHub: https://github.com/Calvin-LL/Reorderable
Платформа: Android
⭐️: 392
👍2
Видео и подкасты за неделю @AppFiles
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
#ios #android #mobile #video
•
(iOS En) SwiftUI App Theme Switcher - iOS 17 & 18•
(iOS En) SwiftUI Task Modifier Lifecycle Handling•
(iOS En) MeshGradients in iOS 18 and Xcode 15•
(iOS En) Floating Tab Bar - iOS 17 & 18•
(And Ru) Фантастические баги: как их ловить и править•
(And En) Fragments in Compose•
(And En) How to Show Snackbars From ANY Place In Your Compose App•
(And En) How to Render PDFs on Android in Jetpack Compose (+ Search Function!)•
(And En) Going fast with Kotlin•
(And En) From Code to Streams•
(And En) Dynamic Exploration of Static Analysis with Compose•
(And En) Applying the Decorator Pattern in Kotlin•
(Crs Ru) Почему вам стоит учить/использовать Kotlin Multiplatform•
(Crs En) The rollercoaster of releasing an Android, iOS, and macOS app with KMP•
(Crs En) Using C & native platforms in Kotlin: Building a multi-platform advanced library•
(Crs En) Mastering Concurrency: End to End Stress Testing with Kotlin Multiplatform•
(Crs En) React Native MacOS App Tutorial – Book Management System•
(Dev Ru) Задача на логику из собеседования в Amazon•
(Dev Ru) Ozon Tech Community TeamLead Meetup•
(Dev Ru) Как успевать больше, оставаясь эффективным, и не выгореть#ios #android #mobile #video
ArtMaker - это гибкая и настраиваемая библиотека, которая позволяет пользователям рисовать на экране все, что они захотят. Полностью построена на Jetpack Compose. Она позволяет рисовать через Canvas, делиться нарисованным Bitmap или программно раскрывать Bitmap для использования в вызывающем приложении.
ArtMaker на GitHub: https://github.com/Fbada006/ArtMaker
Платформа: Android
⭐️: 10
ArtMaker на GitHub: https://github.com/Fbada006/ArtMaker
Платформа: Android
⭐️: 10
👍1
Задачи с собеседований: Leetcode — Является ли число палиндромом
Дано целое число x, верните true, если x является палиндром (читается одинаково слева на право и с право на лево) и false в противном случае.
Я добился 99% по скорости, но как уменьшить потреблением памяти (даже в ущерб быстродействию) вообще непонятно. Вполне допускаю, что это просто особенность реализации алгоритма на Swift. Если кто знает - подскажите.
Статья: https://apptractor.ru/develop/coding/chislo-palindrom.html
Платформа: алгоритмы
Дано целое число x, верните true, если x является палиндром (читается одинаково слева на право и с право на лево) и false в противном случае.
Я добился 99% по скорости, но как уменьшить потреблением памяти (даже в ущерб быстродействию) вообще непонятно. Вполне допускаю, что это просто особенность реализации алгоритма на Swift. Если кто знает - подскажите.
Статья: https://apptractor.ru/develop/coding/chislo-palindrom.html
Платформа: алгоритмы
👍2🤡1
This media is not supported in your browser
VIEW IN TELEGRAM
6 причин не использовать Server Driven UI
Мой главный посыл в этой статье - избегайте использования Server-Driven UI, насколько это возможно (если только команда разработчиков и руководство не разработают хороший конвейер для решения всех проблем). SDUI может сделать распределение кода и ответственности беспорядочным и трудноорганизуемым, даже если все находятся на одной волне. Это решение также может лишить вас гибкости в отношении новых решений в области дизайна и функциональности.
Статья: https://apptractor.ru/info/articles/server-driven-ui-6-prichin-ne-ispolzovat-ego.html
Платформа: архитектура
Мой главный посыл в этой статье - избегайте использования Server-Driven UI, насколько это возможно (если только команда разработчиков и руководство не разработают хороший конвейер для решения всех проблем). SDUI может сделать распределение кода и ответственности беспорядочным и трудноорганизуемым, даже если все находятся на одной волне. Это решение также может лишить вас гибкости в отношении новых решений в области дизайна и функциональности.
Статья: https://apptractor.ru/info/articles/server-driven-ui-6-prichin-ne-ispolzovat-ego.html
Платформа: архитектура
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Settings iOS - учебное приложение на SwiftUI, воспроизводящее стандартные Настройки в iOS.
Settings iOS на GitHub: https://github.com/zhrispineda/Settings-iOS
Платформа: iOS
⭐️: 14
Settings iOS на GitHub: https://github.com/zhrispineda/Settings-iOS
Платформа: iOS
⭐️: 14
Профилирование приложений на SwiftUI с помощью Instruments
Когда приложения начинают расти в размере и усложняться, становится всё труднее решать проблемы производительности с помощью простых методов, таких как использование операторов вывода, чтение кода и тестирование приложения. Проблемы производительности, как и ваше приложение, становятся всё более сложными — а это означает, что появляется потребность воспользоваться более сложными инструментами для профилирования и проверки фиксов.
В этой статье мы рассмотрим, как можно использовать Instruments для получения новых и интересных данных о вашем приложении.
Статья: https://habr.com/ru/companies/otus/articles/838490/
Платформа: iOS
Когда приложения начинают расти в размере и усложняться, становится всё труднее решать проблемы производительности с помощью простых методов, таких как использование операторов вывода, чтение кода и тестирование приложения. Проблемы производительности, как и ваше приложение, становятся всё более сложными — а это означает, что появляется потребность воспользоваться более сложными инструментами для профилирования и проверки фиксов.
В этой статье мы рассмотрим, как можно использовать Instruments для получения новых и интересных данных о вашем приложении.
Статья: https://habr.com/ru/companies/otus/articles/838490/
Платформа: iOS
💅1
10 самых распространенных ошибок с Jetpack Compose
Jetpack Compose произвел революцию в создании пользовательского интерфейса для приложений Android, внедрив декларативный подход. Он упрощает многие аспекты разработки пользовательского интерфейса, но также вводит новые концепции, которые могут поставить в тупик даже опытных разработчиков. Вот 10 основных ошибок, которые многие из нас совершали при работе с Jetpack Compose, а также пояснения и фрагменты кода, которые помогут вам их избежать.
1. Не помнить о правильном использовании remember
2. Чрезмерное использование Modifier.fillMaxSize()
3. Игнорирование оптимизаций производительности
4. Путать State и MutableState
5. Неправильное использование LaunchedEffect
6. Неправильное управление рекомпозицией
7. Переусложнение пользовательского интерфейса с помощью вложенных композабл
8. Неэффективное использование тем и стилей
9. Неадекватное тестирование
10. Пренебрежение доступностью
Статья: https://apptractor.ru/info/articles/10-samyh-rasprostranennyh-oshibok-s-jetpack-compose.html
Платформа: Android
Jetpack Compose произвел революцию в создании пользовательского интерфейса для приложений Android, внедрив декларативный подход. Он упрощает многие аспекты разработки пользовательского интерфейса, но также вводит новые концепции, которые могут поставить в тупик даже опытных разработчиков. Вот 10 основных ошибок, которые многие из нас совершали при работе с Jetpack Compose, а также пояснения и фрагменты кода, которые помогут вам их избежать.
1. Не помнить о правильном использовании remember
2. Чрезмерное использование Modifier.fillMaxSize()
3. Игнорирование оптимизаций производительности
4. Путать State и MutableState
5. Неправильное использование LaunchedEffect
6. Неправильное управление рекомпозицией
7. Переусложнение пользовательского интерфейса с помощью вложенных композабл
8. Неэффективное использование тем и стилей
9. Неадекватное тестирование
10. Пренебрежение доступностью
Статья: https://apptractor.ru/info/articles/10-samyh-rasprostranennyh-oshibok-s-jetpack-compose.html
Платформа: Android
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Compose Stopwatch - еще один учебный проект, таймер с секундомером в стиле iOS. Сделан полностью на Jetpack Compose. Есть соответствующая статья про его создание.
Compose Stopwatch на GitHub: https://amit-bhandari.github.io/posts/jetpack-compose-custom-view/
Платформа: Android
⭐️: 10
Поставьте 👍, если хотите статью на русском.
Compose Stopwatch на GitHub: https://amit-bhandari.github.io/posts/jetpack-compose-custom-view/
Платформа: Android
⭐️: 10
Поставьте 👍, если хотите статью на русском.
👎2👏1
Проверяем пакет iOS-приложения
Если вы знаете секретные языки ipa-нский и bundle-инди, вы можете удивить и порадовать интервьюера неожиданным отзывом — если потратите 10 минут на проверку и анализ его пакета приложений заранее.
Статья: https://apptractor.ru/info/articles/proveryaem-paket-ios-prilozheniya.html
Платформа: iOS
Если вы знаете секретные языки ipa-нский и bundle-инди, вы можете удивить и порадовать интервьюера неожиданным отзывом — если потратите 10 минут на проверку и анализ его пакета приложений заранее.
Статья: https://apptractor.ru/info/articles/proveryaem-paket-ios-prilozheniya.html
Платформа: iOS
Карточка навигации для iOS 18 на SwiftUI
Эта карточка заменяет заголовок в навигационной панели при прокрутке к верху. Когда карточка прокручивается за панель навигации, встроенный заголовок появляется, когда на виду — исчезает. Это небольшая, но важная деталь, поскольку она уменьшает ненужное дублирование информации и одновременно усиливает связь между заглавной карточкой и заголовком страницы.
Давайте посмотрим, как это можно сделать в SwiftUI.
Статья: https://apptractor.ru/info/articles/kartochka-navigatsii-dlya-ios-18-na-swiftui.html
Платформа: iOS
Эта карточка заменяет заголовок в навигационной панели при прокрутке к верху. Когда карточка прокручивается за панель навигации, встроенный заголовок появляется, когда на виду — исчезает. Это небольшая, но важная деталь, поскольку она уменьшает ненужное дублирование информации и одновременно усиливает связь между заглавной карточкой и заголовком страницы.
Давайте посмотрим, как это можно сделать в SwiftUI.
Статья: https://apptractor.ru/info/articles/kartochka-navigatsii-dlya-ios-18-na-swiftui.html
Платформа: iOS
Подходы к многомодульной функциональной архитектуре на Android
Разработка эффективной архитектуры для вашего Android-проекта имеет решающее значение, особенно если вы намерены поддерживать его в долгосрочной перспективе. Выбор стратегии зависит от различных факторов, включая масштаб проекта, ресурсы, цели и технологический стек.
При использовании многомодульной функциональной архитектуры вы можете выиграть от улучшения повторного использования, параллельной разработки и децентрализованного фокуса. Однако необходимо тщательно продумать, как разделить модули — по функциям, доменам или другим критериям, соответствующим конкретным потребностям вашего проекта.
Статья: https://apptractor.ru/info/articles/podhody-k-mnogomodulnoy-funktsionalnoy-arhitekture-na-android.html
Платформа: Android
Разработка эффективной архитектуры для вашего Android-проекта имеет решающее значение, особенно если вы намерены поддерживать его в долгосрочной перспективе. Выбор стратегии зависит от различных факторов, включая масштаб проекта, ресурсы, цели и технологический стек.
При использовании многомодульной функциональной архитектуры вы можете выиграть от улучшения повторного использования, параллельной разработки и децентрализованного фокуса. Однако необходимо тщательно продумать, как разделить модули — по функциям, доменам или другим критериям, соответствующим конкретным потребностям вашего проекта.
Статья: https://apptractor.ru/info/articles/podhody-k-mnogomodulnoy-funktsionalnoy-arhitekture-na-android.html
Платформа: Android
Supercool App - модульное приложение для Android, созданное на Jetpack Compose и Kotlin на чистой архитектуре с использованием удивительного паттерна проектирования Use Case. Технологический стек вобрал все, что только можно - Android KTX, AndroidX, корутины, Lifecycle, Viewmodel, LiveData, Retrofit, Flow, Hilt, Navigation Components, GitHub Actions, Mockito Kotlin, Room, Material Compose и т.п.
Supercool App на GitHub: https://github.com/im-o/jetpack-compose-clean-architecture
Платформа: Android
⭐️: 71
Supercool App на GitHub: https://github.com/im-o/jetpack-compose-clean-architecture
Платформа: Android
⭐️: 71
👎1
Как я ускорил свое мобильное приложение BookDesk на React Native в 3 раза?
В этом материале я поделюсь с вами практическим опытом по оптимизации своего мобильного приложения на React Native. Расскажу как ускорил свое приложение в 3 раза.
В первую очередь, я писал этот материал для себя чтобы упорядочить свои знания в виде гайда по оптимизации RN приложений. Возможно, данный материал будет кому-нибудь полезен.
Статья: https://habr.com/ru/articles/839248/
Платформа: кроссплатформа
В этом материале я поделюсь с вами практическим опытом по оптимизации своего мобильного приложения на React Native. Расскажу как ускорил свое приложение в 3 раза.
В первую очередь, я писал этот материал для себя чтобы упорядочить свои знания в виде гайда по оптимизации RN приложений. Возможно, данный материал будет кому-нибудь полезен.
Статья: https://habr.com/ru/articles/839248/
Платформа: кроссплатформа
Mapping объектов с помощью MapStruct
В огромном приложении Android с Clean Architecture много рутинной работы, связанной с отображением объектов между различными слоями. Хорошим решением будет автоматизация этого процесса.
В этой статье рассматривается опыт использования библиотеки MapStruct, которая помогает mapp-ить объекты.
Статья: https://habr.com/ru/articles/839362/
Платформа: Android
В огромном приложении Android с Clean Architecture много рутинной работы, связанной с отображением объектов между различными слоями. Хорошим решением будет автоматизация этого процесса.
В этой статье рассматривается опыт использования библиотеки MapStruct, которая помогает mapp-ить объекты.
Статья: https://habr.com/ru/articles/839362/
Платформа: Android
👎4