Дизайн-система в SwiftUI
Благодаря согласованности мы можем получить эффективность, которая ускоряет процесс проектирования и разработки за счет предоставления многократно используемых компонентов и шаблонов.
Улучшение сотрудничества между дизайнерами и разработчиками получается за счет предоставления общего языка и набора инструментов, уменьшения недопонимания и обеспечения согласованности.
Статья: https://apptractor.ru/info/articles/dizayn-sistema-v-swiftui.html
Платформа: iOS
Благодаря согласованности мы можем получить эффективность, которая ускоряет процесс проектирования и разработки за счет предоставления многократно используемых компонентов и шаблонов.
Улучшение сотрудничества между дизайнерами и разработчиками получается за счет предоставления общего языка и набора инструментов, уменьшения недопонимания и обеспечения согласованности.
Статья: https://apptractor.ru/info/articles/dizayn-sistema-v-swiftui.html
Платформа: iOS
Disk - это мощная и простая библиотека управления файлами, созданная с учетом рекомендаций Apple по хранению данных в iOS. Disk максимально эффективно использует новый протокол Codable, представленный в Swift 4, и дает вам возможность сохранять структуры, не заботясь о кодировании/декодировании. Disk также помогает сохранять изображения и другие типы данных на диск всего одной строкой кода.
Disk на GitHub: https://github.com/saoudrizwan/Disk
Платформа: iOS
⭐️: 3.1K
Disk на GitHub: https://github.com/saoudrizwan/Disk
Платформа: iOS
⭐️: 3.1K
Жутко, но факт: как Uber тестирует платежи в продакшене
Вместо того чтобы напрягаться по поводу идеального релиза, Uber внедрил инструменты для раннего обнаружения производственных сбоев и быстрого и простого отката к заведомо безопасному состоянию.
Статья: https://apptractor.ru/info/articles/zhutko-no-fakt-kak-uber-testiruet-platezhi-v-prodakshene.html
Платформа: тестирование
Вместо того чтобы напрягаться по поводу идеального релиза, Uber внедрил инструменты для раннего обнаружения производственных сбоев и быстрого и простого отката к заведомо безопасному состоянию.
Статья: https://apptractor.ru/info/articles/zhutko-no-fakt-kak-uber-testiruet-platezhi-v-prodakshene.html
Платформа: тестирование
Как автоматически обнаруживать утечки памяти в CI/CD с помощью UI-тестов
Хотя эта функция осталась незамеченной многими разработчиками, при правильном использовании она может стать мощным инструментом для автоматического обнаружения утечек памяти в ваших iOS-приложениях в CI/CD-средах.
Статья: https://apptractor.ru/info/articles/kak-avtomaticheski-obnaruzhivat-utechki-pamyati-v-ci-cd-s-pomoschyu-ui-testov.html
Платформа: iOS/тестирование
Хотя эта функция осталась незамеченной многими разработчиками, при правильном использовании она может стать мощным инструментом для автоматического обнаружения утечек памяти в ваших iOS-приложениях в CI/CD-средах.
Статья: https://apptractor.ru/info/articles/kak-avtomaticheski-obnaruzhivat-utechki-pamyati-v-ci-cd-s-pomoschyu-ui-testov.html
Платформа: iOS/тестирование
This media is not supported in your browser
VIEW IN TELEGRAM
Zoomable - это библиотека Jetpack Compose, позволяющая масштабировать содержимое с помощью жеста щипка, двойного тапа или двойного касания и жеста перетаскивания. Zoomable можно использовать как с любыми composable компонентами, такими как Image, Text и т.д., так и с асинхронными изображениями, такими как AsyncImage от Coil.
Zoomable на GitHub: https://github.com/usuiat/Zoomable
Платформа: Android
⭐️: 354
Zoomable на GitHub: https://github.com/usuiat/Zoomable
Платформа: Android
⭐️: 354
👍1
Пишем своё приложение для установки PIN на другие приложения
Ещё с детства мой отец приучил меня пользоваться антивирусами. Соблюдая традиции, я купил себе подписку на антивирус для Андроида. Оказалось, в приложении есть крайне интересная фича - установка ПИН-кода для других приложений на устройстве. Интересной она была для меня тем, что я, как мобильный разработчик, не имел ни малейшего понятия, как подобное можно сделать. И вот теперь, после непродолжительных раскопок и проделанной работы, я делюсь своим опытом.
Статья: https://habr.com/ru/articles/834768/
Платформа: Android
Ещё с детства мой отец приучил меня пользоваться антивирусами. Соблюдая традиции, я купил себе подписку на антивирус для Андроида. Оказалось, в приложении есть крайне интересная фича - установка ПИН-кода для других приложений на устройстве. Интересной она была для меня тем, что я, как мобильный разработчик, не имел ни малейшего понятия, как подобное можно сделать. И вот теперь, после непродолжительных раскопок и проделанной работы, я делюсь своим опытом.
Статья: https://habr.com/ru/articles/834768/
Платформа: Android
Видео и подкасты за неделю @AppFiles
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Что вы посмотрели за неделю?
#ios #android #mobile #video
•
(iOS Ru) Итоги одного года мобильной разработки с использованием NLP•
(iOS Ru) Combine с нуля — реактивщина это просто•
(iOS En) Building Compositional Grid Layout With iOS 18 APIs•
(iOS En) The Best iOS Dev Portfolio Strategy•
(iOS En) How to Reduce Log Verbosity in the Xcode Debug Console•
(iOS En) Getting the MOST out of Xcode 16•
(iOS En) Building App Intro Animations with Shape Morphing Effect Using SwiftUI•
(And En) Targeting Android 15 - Why Your App Is NOT Ready•
(And En) Channels in Kotlin Coroutines•
(And En) Guide to Improving Compose Performance•
(And En) Background Work in Android: Strategies and Best Practices•
(And En) Applying the Strategy Pattern in Kotlin•
(Crs En) Lifecycle path to Multiplatform•
(Crs En) Kotlin Multiplatform in Google Workspace•
(Crs En) KMP in Action A Production Case Study•
(Dev Ru) Тулкиты кодогенерации Android vs iOS•
(Dev Ru) Ускоряем карьерный рост в FAANG•
(Dev Ru) Алгоритмы — самый провальный этап собеседований (+ все собеседования)•
(Dev En) Operating Systems Course for BeginnersЧто вы посмотрели за неделю?
#ios #android #mobile #video
Swift Semantic Search - демонстрационное приложение показывает, как создавать нативные приложения с ИИ работающие в реальном времени для устройств Apple. Оно использует библиотеку Unum для Swift и квантованные модели. Под капотом приложение использует UForm для понимания и "встраивания" мультимодальных данных, таких как многоязычные тексты и изображения, обрабатывая их на лету в фиде камеры. После того как векторные вложения вычислены, приложение использует USearch для обеспечения поиска в семантическом пространстве в режиме реального времени. Этот же механизм обеспечивает геопространственный поиск по координатам изображений и, как было показано, легко масштабируется даже до 100M+ записей на iPhone.
Swift Semantic Search на GitHub: https://github.com/ashvardanian/SwiftSemanticSearch
Платформа: iOS
⭐️: 66
Swift Semantic Search на GitHub: https://github.com/ashvardanian/SwiftSemanticSearch
Платформа: iOS
⭐️: 66
Как улучшить время сборки в iOS с помощью модуляризации
Большинство команд мобило понимают и ценят преимущества быстрой сборки. Возможность быстро компилировать и тестировать код означает ускорение разработки и итераций, что, в свою очередь, позволяет команде осуществлять доставку новых версий более регулярно и эффективно. Но на самом деле бывает сложно добиться стабильно быстрой сборки и внедрить долгосрочное решение, позволяющее поддерживать высокую скорость сборки по мере роста кодовой базы. Существует множество различных тактик, и если некоторые из них относительно тривиальны — например, уменьшение размера доставляемых ресурсов, — то другие могут быть гораздо более сложными и даже опасными (вспомните сомнительные трюки с компилятором)!
К счастью, самые рискованные методы улучшения времени сборки редко бывают необходимы. Вместо этого большинство команд добьются успеха, внедряя некоторые из наиболее распространенных подходов постепенно, по мере роста кодовой базы и масштабирования ресурсов.
Статья: https://habr.com/ru/companies/piter/articles/834724/
Платформа: iOS
Большинство команд мобило понимают и ценят преимущества быстрой сборки. Возможность быстро компилировать и тестировать код означает ускорение разработки и итераций, что, в свою очередь, позволяет команде осуществлять доставку новых версий более регулярно и эффективно. Но на самом деле бывает сложно добиться стабильно быстрой сборки и внедрить долгосрочное решение, позволяющее поддерживать высокую скорость сборки по мере роста кодовой базы. Существует множество различных тактик, и если некоторые из них относительно тривиальны — например, уменьшение размера доставляемых ресурсов, — то другие могут быть гораздо более сложными и даже опасными (вспомните сомнительные трюки с компилятором)!
К счастью, самые рискованные методы улучшения времени сборки редко бывают необходимы. Вместо этого большинство команд добьются успеха, внедряя некоторые из наиболее распространенных подходов постепенно, по мере роста кодовой базы и масштабирования ресурсов.
Статья: https://habr.com/ru/companies/piter/articles/834724/
Платформа: iOS
FPC/Lazarus и Android
В данной статье ознакомлю вас с возможностями разработки Android-приложений средствами FPC/Lazarus, в том числе и игр. И так же немного добавлю информации по Delphi, чтоб проще было искать нужную вам информацию, если вы используете данную среду разработки, но по самой разработке в Delphi для Android я не смогу вам дать достаточно необходимой информации на данный момент.
Статья: https://habr.com/ru/articles/835244/
Платформа: Android
В данной статье ознакомлю вас с возможностями разработки Android-приложений средствами FPC/Lazarus, в том числе и игр. И так же немного добавлю информации по Delphi, чтоб проще было искать нужную вам информацию, если вы используете данную среду разработки, но по самой разработке в Delphi для Android я не смогу вам дать достаточно необходимой информации на данный момент.
Статья: https://habr.com/ru/articles/835244/
Платформа: Android
Используем библиотеку Android Security Lints для Android
Если вы хотите внедрить проверки в линтере в свою кодовую базу как неотъемлемую часть разработки, или если вам нужны самые последние рекомендации и проверки для дальнейшей защиты вашего приложения, вам стоит воспользоваться открытой библиотекой Google Android Security Lints. Эта библиотека предлагает более продвинутые и актуальные проверки, она гарантирует, что ваше приложение защищено от новейших угроз безопасности. Давайте рассмотрим, как интегрировать этот мощный инструмент в рабочий процесс разработки.
Статья: https://apptractor.ru/info/articles/ispolzuem-biblioteku-android-security-lints-dlya-android.html
Платформа: Android
Если вы хотите внедрить проверки в линтере в свою кодовую базу как неотъемлемую часть разработки, или если вам нужны самые последние рекомендации и проверки для дальнейшей защиты вашего приложения, вам стоит воспользоваться открытой библиотекой Google Android Security Lints. Эта библиотека предлагает более продвинутые и актуальные проверки, она гарантирует, что ваше приложение защищено от новейших угроз безопасности. Давайте рассмотрим, как интегрировать этот мощный инструмент в рабочий процесс разработки.
Статья: https://apptractor.ru/info/articles/ispolzuem-biblioteku-android-security-lints-dlya-android.html
Платформа: Android
Cat Activity - плагин для IDE JetBrains, показывающий вашу активность в профиле Discord. Поддерживает IntelliJ IDEA, Android Studio, PyCharm и прочие среды разработки.
Cat Activity на GitHub: https://github.com/wavy-cat/Cat-Activity
Платформа: Android
⭐️: 6
Cat Activity на GitHub: https://github.com/wavy-cat/Cat-Activity
Платформа: Android
⭐️: 6
❤1
Реверс-инжиниринг iOS-приложения
Этот эксперимент продемонстрировал, как реверс-инжиниринг и внедрение кода могут быть использованы для изменения поведения приложения. Он стал наглядным примером возможностей модификации приложений на iOS-устройствах.
Статья: https://apptractor.ru/info/articles/revers-inzhiniring-ios-prilozheniya.html
Платформа: iOS
Этот эксперимент продемонстрировал, как реверс-инжиниринг и внедрение кода могут быть использованы для изменения поведения приложения. Он стал наглядным примером возможностей модификации приложений на iOS-устройствах.
Статья: https://apptractor.ru/info/articles/revers-inzhiniring-ios-prilozheniya.html
Платформа: iOS
Внедрять Kotlin Multiplatform легко. Масштабировать сложно.
Когда команды разработчиков нативных мобильных устройств изучают KMP, начать работу довольно просто. Сложности возникают при попытке масштабирования. Чтобы получить максимальную отдачу от KMP для вашей команды, а также для успеха KMP как платформы, нам нужно сделать масштабирование простым.
Статья: https://apptractor.ru/info/articles/vnedryat-kotlin-multiplatform-legko-masshtabirovat-slozhno.html
Платформа: кроссплатформенная разработка
Когда команды разработчиков нативных мобильных устройств изучают KMP, начать работу довольно просто. Сложности возникают при попытке масштабирования. Чтобы получить максимальную отдачу от KMP для вашей команды, а также для успеха KMP как платформы, нам нужно сделать масштабирование простым.
Статья: https://apptractor.ru/info/articles/vnedryat-kotlin-multiplatform-legko-masshtabirovat-slozhno.html
Платформа: кроссплатформенная разработка
Swift Fluent Icon - библиотека Swift для упаковки fluent icon от Microsoft в ваше приложение без каких-либо особых затрат. Не нужно удалять неиспользуемые ресурсы, просто используйте как SF Symbol, но безопасно для типов, почти без увеличения времени сборки по сравнению с оригинальным методом.
Swift Fluent Icon на GitHub: https://github.com/vvisionnn/swift-fluent-icon
Платформа: iOS
⭐️: 2
Swift Fluent Icon на GitHub: https://github.com/vvisionnn/swift-fluent-icon
Платформа: iOS
⭐️: 2
Использование Чистой Архитектуры в Android излишество?
Один из разработчиков спрашивает на Reddit:
Лично я предпочитаю использовать MVVM или вообще не использовать архитектуру в Android. Является ли использование чистой архитектуры излишеством для Android или я просто неопытен и неинформирован?
В ответах ему говорят о том, что для любого более или менее крупного проекта чистая архитектура это необходимость:
• Если этого не сделать, то любое изменение, внесенное в одну область, может повлиять на другие взаимосвязанные части, превращая обслуживание приложения в кошмар. Для простых приложений с несколькими экранами использование чистой архитектуры или MVVM может оказаться излишним. Однако для долгосрочного проекта, такого как банковское приложение, которое необходимо поддерживать в будущем, написание чистого кода с правильной архитектурой не просто необходимо — оно обязательно.
• Я бы сказал, что это неопытность в работе с большими кодовыми базами. Для больших приложений каждый раз, когда требования меняются или добавляются, если у вас нет слоя абстракции, вас ждут большие неприятности.
• Чистая архитектура — это не про добавление как можно большего количества слоев, а про то, чтобы основной/доменный код не зависел от фреймворков, IO, UI и т.д.
• Если цель — создать приложение и на этом закончить, то да, чистый код, хорошая архитектура и куча юнит-тестов будут излишеством. Но когда вам нужно иметь возможность быстро добавлять функции и исправлять ошибки в приложении, которое будет продолжать расти и должно жить 10+ лет, уравнение полностью меняется.
Статья: https://apptractor.ru/info/articles/ispolzovanie-chistoy-arhitektury-v-android-izlishestvo-obsuzhdenie-na-reddit.html
Платформа: Android
Один из разработчиков спрашивает на Reddit:
Лично я предпочитаю использовать MVVM или вообще не использовать архитектуру в Android. Является ли использование чистой архитектуры излишеством для Android или я просто неопытен и неинформирован?
В ответах ему говорят о том, что для любого более или менее крупного проекта чистая архитектура это необходимость:
• Если этого не сделать, то любое изменение, внесенное в одну область, может повлиять на другие взаимосвязанные части, превращая обслуживание приложения в кошмар. Для простых приложений с несколькими экранами использование чистой архитектуры или MVVM может оказаться излишним. Однако для долгосрочного проекта, такого как банковское приложение, которое необходимо поддерживать в будущем, написание чистого кода с правильной архитектурой не просто необходимо — оно обязательно.
• Я бы сказал, что это неопытность в работе с большими кодовыми базами. Для больших приложений каждый раз, когда требования меняются или добавляются, если у вас нет слоя абстракции, вас ждут большие неприятности.
• Чистая архитектура — это не про добавление как можно большего количества слоев, а про то, чтобы основной/доменный код не зависел от фреймворков, IO, UI и т.д.
• Если цель — создать приложение и на этом закончить, то да, чистый код, хорошая архитектура и куча юнит-тестов будут излишеством. Но когда вам нужно иметь возможность быстро добавлять функции и исправлять ошибки в приложении, которое будет продолжать расти и должно жить 10+ лет, уравнение полностью меняется.
В конечном счете, наша цель — писать понятный, лаконичный, расширяемый и сопровождаемый (и тестируемый) код, причем не только для себя, но и для своих коллег. Таким образом, следуя «общим» принципам чистой архитектуры, вы достигаете чего-то достойного, знакомого всем.
Статья: https://apptractor.ru/info/articles/ispolzovanie-chistoy-arhitektury-v-android-izlishestvo-obsuzhdenie-na-reddit.html
Платформа: Android
👍3❤1🤡1
This media is not supported in your browser
VIEW IN TELEGRAM
Jetpack Compose Endless Horizontal Pager Animation - приложение демонстрирует работу горизонтального пейджера Jetpack Compose. Оно показывает, как просто мы можем создать горизонтальный пейджер, добавить в него любой контент и применить анимацию. Больше никаких кастомных представлений, адаптеров, фрагментов и сложной обработки жизненного цикла! Представьте, сколько дополнительной работы нужно проделать, чтобы создать это с помощью XML Views?
Horizontal Pager Animation на GitHub: https://github.com/ryanw-mobile/compose-pager-demo
Платформа: Android
⭐️: 52
Horizontal Pager Animation на GitHub: https://github.com/ryanw-mobile/compose-pager-demo
Платформа: Android
⭐️: 52
Знакомимся с Flutter GPU
Короче говоря, просто невозможно предоставить универсальный 3D-рендер, который можно эффективно использовать для различных задач. Но, продумав низкоуровневые API, необходимые для создания собственных решений (Flutter GPU), и реализовав универсальный 3D-рендер поверх него, который Flutter-сообщество может легко проверить и модифицировать (Flutter Scene), мы создаем для Flutter-разработчиков технологию с низким риском устаревания и большим профитом от использования.
Статья: https://habr.com/ru/articles/836010/
Платформа: Flutter/кроссплатформа
Короче говоря, просто невозможно предоставить универсальный 3D-рендер, который можно эффективно использовать для различных задач. Но, продумав низкоуровневые API, необходимые для создания собственных решений (Flutter GPU), и реализовав универсальный 3D-рендер поверх него, который Flutter-сообщество может легко проверить и модифицировать (Flutter Scene), мы создаем для Flutter-разработчиков технологию с низким риском устаревания и большим профитом от использования.
Статья: https://habr.com/ru/articles/836010/
Платформа: Flutter/кроссплатформа
Сортировка кучей — вопросы с собеседований
Сортировка кучей (пирамидальная сортировка, Heap Sort) — это эффективный алгоритм сортировки, который использует структуру данных под названием куча (heap). Куча — это двоичное дерево, удовлетворяющее свойству кучи: каждый узел дерева больше (для max-кучи) или меньше (для min-кучи) своих потомков.
Статья: https://apptractor.ru/info/techhype/sortirovka-kuchey-voprosy-s-sobesedovaniy.html
Платформа: алгоритмы
Сортировка кучей (пирамидальная сортировка, Heap Sort) — это эффективный алгоритм сортировки, который использует структуру данных под названием куча (heap). Куча — это двоичное дерево, удовлетворяющее свойству кучи: каждый узел дерева больше (для max-кучи) или меньше (для min-кучи) своих потомков.
Статья: https://apptractor.ru/info/techhype/sortirovka-kuchey-voprosy-s-sobesedovaniy.html
Платформа: алгоритмы
PhraseKit - это пакет Swift, предназначенный для генерации случайных, но читаемых фраз, состоящих из различных частей речи, таких как прилагательные, существительные, глаголы и наречия. Он предоставляет гибкие возможности для генерации фраз с различными комбинациями типов слов, гарантируя, что каждая фраза будет уникальной и грамматически осмысленной. PhraseKit идеально подходит для различных приложений, где требуется генерировать случайные, но осмысленные фразы. Вот несколько сценариев, в которых PhraseKit может быть особенно полезен - случайные имена файлов, имена пользователей или имена отображения, идентификаторы сеансов или токены, написание текстов, соглашения об именовании и т.п.
PhraseKit на GitHub: https://github.com/markbattistella/PhraseKit
Платформа: iOS
⭐️: 1
PhraseKit на GitHub: https://github.com/markbattistella/PhraseKit
Платформа: iOS
⭐️: 1