Видео и подкасты за неделю:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Оцените подборку в 👍!
•
(iOS En)
Introducing Inferno: Metal shaders for SwiftUI•
(iOS En)
Adding Snapchat-Like Filters to a Video Calling App using SwiftUI•
(iOS En)
Build DALL·E 3 AI WhatsApp Sticker Generator SwiftUI App•
(iOS En)
Building Complex Scroll Animations With New iOS 17 API’s•
(iOS En)
SwiftData Dynamic Sorts and Filters•
(And Ru)
Android Storage: обзор инструментария•
(And En)
Now in Android: 95 - Google Play requirements, Animations in Compose, Passkeys in Android, and more!•
(And En)
How to Build an Animated Splash Screen on Android - The Full Guide•
(And En)
Top 3 Coroutine Cancellation Traps That Lead to Errors In Your Android App•
(And En)
Practical magic with animations in Jetpack Compose•
(Crs En)
Introducing the Flutter Casual Games Toolkit•
(Dev Ru)
GameDev и ОС Аврора. Портирование игры•
(Dev Ru)
Что нового в интерфейсе ОС Аврора 5: управление и паттерны взаимодействия•
(Dev Ru)
Avito Tech Managers meetup #1•
(Dev Ru)
Я прошел собеседования в Google… Как?•
(Dev En)
Master Technical Interviews – Full Course•
(Dsg En)
UI Design Livestream: Team Components, Dos and Donts, Design TipsОцените подборку в 👍!
YouTube
Introducing Inferno: Metal shaders for SwiftUI
Inferno is an open-source collection of Metal shaders built for SwiftUI, adding a variety of special effects and transitions to your projects with ease.
Get the code: gitHub.com/twostraws/Inferno
Watch the video: https://youtu.be/EgzWwgRpUuw
Get the code: gitHub.com/twostraws/Inferno
Watch the video: https://youtu.be/EgzWwgRpUuw
Защита кода приложения Android. Когда хотели как лучше, а вышло не очень
В статье просто расскажу пару случаев из практики анализа защиты приложений Android. Имена и место событий изменены. Любые совпадения — случайность.
Статья: https://habr.com/ru/articles/774426/
Платформа: Android
В статье просто расскажу пару случаев из практики анализа защиты приложений Android. Имена и место событий изменены. Любые совпадения — случайность.
Статья: https://habr.com/ru/articles/774426/
Платформа: Android
Хабр
Защита кода приложения Android. Когда хотели как лучше, а вышло не очень
Эта статья — оригинальная, а не копипаст и не машинный перевод. При копировании прошу ссылаться. В статье просто расскажу пару случаев из практики анализа защиты приложений Android. Имена и место...
❤1
Capturable - библиотека Jetpack Compose для преобразования Composable контента в растровые изображения. В предыдущей системе с View получение изображений из View было очень простым. Но с Jetpack Compose дело обстоит иначе, поскольку он во многих аспектах отличается от предыдущей системы. Данная библиотека позволяет легко добиться тех же результатов. Она построена на основе ComposeView и использует API View для рисования Bitmap-изображения.
Capturable на GitHub: https://github.com/PatilShreyas/Capturable
Платформа: Android
⭐️: 742
Capturable на GitHub: https://github.com/PatilShreyas/Capturable
Платформа: Android
⭐️: 742
👍1
Программирование на параллельных машинах: GPU, многоядерные вычисления, кластеры и многое другое
Открытый (ака бесплатный) учебник от Норма Матлоффа, профессора компьютерных наук Калифорнийского университета.
Скачать: https://heather.cs.ucdavis.edu/parprocbook
Платформа: разработка
Открытый (ака бесплатный) учебник от Норма Матлоффа, профессора компьютерных наук Калифорнийского университета.
Скачать: https://heather.cs.ucdavis.edu/parprocbook
Платформа: разработка
👍1
Листаем цифровые страницы: UIPageViewController
Сегодня я хочу поделиться кратким и простым руководством о том, как просто и программно реализовать UIPageViewController.
Статья: https://habr.com/ru/articles/774108/
Платформа: iOS
Сегодня я хочу поделиться кратким и простым руководством о том, как просто и программно реализовать UIPageViewController.
Статья: https://habr.com/ru/articles/774108/
Платформа: iOS
👍1
AcknowList - экран "Признательности", на котором отображается список лицензий, например, от зависимостей CocoaPods и Swift Package Manager. Может сам загружать список библиотек, поддерживает сториборды, темный режим, локализован на 13 языков, варианты UIKit и SwiftUI.
AcknowList на GitHub: https://github.com/vtourraine/AcknowList
Платформа: iOS
⭐️: 646
AcknowList на GitHub: https://github.com/vtourraine/AcknowList
Платформа: iOS
⭐️: 646
❤1👍1
Умный код — это, вероятно, худший код, который вы можете написать
Умный код труднее читать и он выглядит эзотерическим.
Понятный код труднее писать и он выглядит просто.
Статья: https://apptractor.ru/info/articles/umnyy-kod-eto-veroyatno-hudshiy-kod-kotoryy-vy-mozhete-napisat.html
Платформа: разработка
Умный код труднее читать и он выглядит эзотерическим.
Понятный код труднее писать и он выглядит просто.
Статья: https://apptractor.ru/info/articles/umnyy-kod-eto-veroyatno-hudshiy-kod-kotoryy-vy-mozhete-napisat.html
Платформа: разработка
👍1
Строки в Swift выглядят одинаково, но не являются таковыми?
Недавно я столкнулся с проблемой, которая вызвала у меня недоумение. Две одинаковые строки отличались друг от друга. Как такое может быть?
Рассмотрим следующий код:
Получаем следующий вывод:
Что??
Статья: https://apptractor.ru/info/articles/stroki-v-swift-vyglyadyat-odinakovo-no-ne-yavlyayutsya-takovymi.html
Платформа: iOS
Недавно я столкнулся с проблемой, которая вызвала у меня недоумение. Две одинаковые строки отличались друг от друга. Как такое может быть?
Рассмотрим следующий код:
print("String1: '\(string1)'")
print("String2: '\(string2)'")
print(string1 == string2)
Получаем следующий вывод:
String1: '123456'
String2: '123456'
false
Что??
Статья: https://apptractor.ru/info/articles/stroki-v-swift-vyglyadyat-odinakovo-no-ne-yavlyayutsya-takovymi.html
Платформа: iOS
Exposed - это легковесная SQL-библиотека JetBrains поверх JDBC-драйвера для языка Kotlin. Exposed имеет два варианта доступа к базам данных: типобезопасный SQL-обертка DSL и облегченный Data Access Objects (DAO). Exposed может быть использован для работы с различными движками баз данных, что позволяет создавать приложения, не зависящие от конкретной БД, и переключаться между ними с минимальными изменениями или вообще без них.
Exposed на GitHub: https://github.com/JetBrains/Exposed
Платформа: Android
⭐️: 7.6K
Exposed на GitHub: https://github.com/JetBrains/Exposed
Платформа: Android
⭐️: 7.6K
👍1
Курс "Генеративный ИИ для начинающих" от Microsoft
В этом курсе авторы с нуля рассматривают концепции, которые позволят создать свой собственный стартап в области генеративного искусственного интеллекта на базе Azure OpenAI Services. Благодаря этому вы получите представление о том, что нужно сделать, чтобы вывести свои идеи на публику и получить прибыль. В каждом уроке рассматривается один из ключевых аспектов принципов генеративного ИИ и разработки приложений.
Сайт: https://microsoft.github.io/generative-ai-for-beginners/
Платформа: обучение
В этом курсе авторы с нуля рассматривают концепции, которые позволят создать свой собственный стартап в области генеративного искусственного интеллекта на базе Azure OpenAI Services. Благодаря этому вы получите представление о том, что нужно сделать, чтобы вывести свои идеи на публику и получить прибыль. В каждом уроке рассматривается один из ключевых аспектов принципов генеративного ИИ и разработки приложений.
Сайт: https://microsoft.github.io/generative-ai-for-beginners/
Платформа: обучение
Пишем Kotlin DSL для графов навигации в домашних условиях
Расскажу, как мы сделали свой DSL для того, чтобы строить логику навигации в наших флоу.
Статья: https://habr.com/ru/companies/tinkoff/articles/775288/
Платформа: Android
Расскажу, как мы сделали свой DSL для того, чтобы строить логику навигации в наших флоу.
Статья: https://habr.com/ru/companies/tinkoff/articles/775288/
Платформа: Android
Новые API для адаптивных макетов в Jetpack Compose
Мы выпустили первую альфа-версию наших новых адаптивных макетов Material. В первую очередь мы остановились на компонентах
Статья: https://apptractor.ru/info/articles/novye-api-dlya-adaptivnyh-maketov-v-jetpack-compose.html
Платформа: Android
Мы выпустили первую альфа-версию наших новых адаптивных макетов Material. В первую очередь мы остановились на компонентах
ListDetailPaneScaffold
и NavigationSuiteScaffold
.Статья: https://apptractor.ru/info/articles/novye-api-dlya-adaptivnyh-maketov-v-jetpack-compose.html
Платформа: Android
Отладка представлений SwiftUI: что вызывает изменения?
Представления SwiftUI с большим количеством триггеров перерисовки могут стать проблемой. Каждый
Статья: https://apptractor.ru/info/articles/otladka-predstavleniy-swiftui-chto-vyzyvaet-izmeneniya.html
Платформа: iOS
Представления SwiftUI с большим количеством триггеров перерисовки могут стать проблемой. Каждый
@State
, @ObservedObject
или другой триггер может вызвать перерисовку представления и повлиять на динамику, например, на анимацию. В таких случаях особенно полезно знать, как отладить представление SwiftUI.Статья: https://apptractor.ru/info/articles/otladka-predstavleniy-swiftui-chto-vyzyvaet-izmeneniya.html
Платформа: iOS
👍1
Kingfisher - одна из самых популярных и мощных Swift-библиотек для загрузки и кэширования изображений из Интернета. Она дает возможность использовать чисто свифтовский способ работы с удаленными изображениями в вашем приложении. В ней есть асинхронная загрузка изображений, процессоры и фильтры, многоуровневое кеширование, плейсхолдеры, анимации переходов и многое другое.
Kingfisher на GitHub: https://github.com/onevcat/Kingfisher
Платформа: iOS
⭐️: 21.8K
Kingfisher на GitHub: https://github.com/onevcat/Kingfisher
Платформа: iOS
⭐️: 21.8K
В дополнение - Вы не так готовите Kingfisher, или как самураи работают с загрузкой изображений
У самурая нет цели, есть только путь. И никакой самурай уж точно не станет изобретать велосипед, чтобы этот путь проехать. Вот и у меня нет цели дать готовый рецепт — только указать верное направление.
В статье разберемся с тем, как использовать готовые решения, не допуская распространенных ошибок, на которые часто подталкивают авторы библиотек для загрузки и отображения картинок.
Статья: https://habr.com/ru/articles/761772/
У самурая нет цели, есть только путь. И никакой самурай уж точно не станет изобретать велосипед, чтобы этот путь проехать. Вот и у меня нет цели дать готовый рецепт — только указать верное направление.
В статье разберемся с тем, как использовать готовые решения, не допуская распространенных ошибок, на которые часто подталкивают авторы библиотек для загрузки и отображения картинок.
Статья: https://habr.com/ru/articles/761772/
Хабр
Вы не так готовите Kingfisher, или как самураи работают с загрузкой изображений
Несмотря на то, что загрузка изображения — распространенная для мобильной разработки задача, для нее нет нативных решений на уровне UI, в отличие от веба. Когда нужно загрузить и отобразить картинку,...
Kotlin под капотом: нюансы использования аннотаций
Kotlin очень лаконичный язык, но когда его код компилируется в Java bytecode, то изящные конструкции Kotlin распадаются на развесистые и монструозные конструкции Java. При этом применение аннотаций может сыграть с вами злую шутку.
Статья: https://habr.com/ru/articles/774872/
Платформа: Android
Kotlin очень лаконичный язык, но когда его код компилируется в Java bytecode, то изящные конструкции Kotlin распадаются на развесистые и монструозные конструкции Java. При этом применение аннотаций может сыграть с вами злую шутку.
Статья: https://habr.com/ru/articles/774872/
Платформа: Android
❤1
Как Spotify отслеживает размеры приложений
Наши ежедневные задачи как инженеров часто связаны с внедрением новых функциональных возможностей. Существующие пользователи получают возможность пользоваться преимуществами этих функций, для новых пользователей это причина подписаться на приложение, а мы получаем возможность писать больше кода. На первый взгляд, это идеальные симбиотические отношения - беспроигрышный сценарий, когда все довольны и ничего не может пойти не так, правильно?
Неправильно, иногда новая отличная функция приносит больше вреда, чем пользы. Причина проста - размер приложения. Любое дополнение к приложению - будь то код для новой функции, ресурс изображения для новой кнопки или даже поддержка новой локализации - приводит к увеличению размера приложения. Вы можете спросить: "Неужели это действительно проблема в нашем современном мире?". Мы утверждаем, что да.
Статья: https://apptractor.ru/info/articles/kak-spotify-otslezhivaet-razmery-prilozheniy.html
Платформа: разработка
Наши ежедневные задачи как инженеров часто связаны с внедрением новых функциональных возможностей. Существующие пользователи получают возможность пользоваться преимуществами этих функций, для новых пользователей это причина подписаться на приложение, а мы получаем возможность писать больше кода. На первый взгляд, это идеальные симбиотические отношения - беспроигрышный сценарий, когда все довольны и ничего не может пойти не так, правильно?
Неправильно, иногда новая отличная функция приносит больше вреда, чем пользы. Причина проста - размер приложения. Любое дополнение к приложению - будь то код для новой функции, ресурс изображения для новой кнопки или даже поддержка новой локализации - приводит к увеличению размера приложения. Вы можете спросить: "Неужели это действительно проблема в нашем современном мире?". Мы утверждаем, что да.
Статья: https://apptractor.ru/info/articles/kak-spotify-otslezhivaet-razmery-prilozheniy.html
Платформа: разработка
This media is not supported in your browser
VIEW IN TELEGRAM
Видео и подкасты за неделю:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
(iOS Ru)
Swift-уроки: Actor•
(iOS Ru)
Как получить международный оффер iOS-разработчику•
(iOS En)
Simple Drop Down Picker – SwiftUI•
(iOS En)
SwiftUI: New Observation Framework•
(iOS En)
SwiftUI Tooltips with TipKit (Popover & Inline Tips)•
(iOS En)
8 Tips to Design a Great Paywall•
(iOS En)
SwiftData Lightweight Migrations•
(iOS En)
Swipe Actions For ScrollView - No Gestures! - iOS 17 Scroll APIs•
(iOS En)
How to Make a Color Picker with ScrollView, Scroll Position and Visual Effects•
(And Ru)
Как устроен Android в умных колонках Яндекса•
(And Ru)
Топ-10 вопросов для Senior Android: собеседование с разбором ответов и материалами•
(And En)
Firebase Demo Day Recap, Flutter 3.16, and more dev news!•
(And En)
A Team of 20 to Publish an App?! - THIS New Google Play Policy Change is CRAZY•
(And En)
How to Migrate an Android Project to Kotlin Multiplatform (KMP)•
(And En)
Custom Savers•
(And En)
Circuit – Android App Architecture Masterclass with Zac and Josh from Slack•
(Crs En)
The State of Kotlin Multiplatform•
(Crs En)
Getting Started With KMP: Build Apps for iOS and Android With Shared Logic and Native UIs•
(Crs En)
Build Apps for iOS, Android, and Desktop With Compose Multiplatform•
(Dev Ru)
Мыслим как Platform Engineer•
(Dev Ru)
Podlodka #347: развитие продукта от 0 до 1•
(Dev Ru)
Tracer — альтернатива Crashlytics: другой взгляд на аналитику ошибок в приложениях•
(Dev Ru)
Как качать миллионы фотографий в сутки, выдержать кратный рост и не умереть?•
(Aur Ru)
Насколько реален российский айфон: разговор с Максимом Горшениным.•
(AI En)
Machine Learning with Python and Scikit-Learn – Full CourseПоставьте 👍 и поделитесь подборкой!
AppTractor
Swift-уроки: Actor
Акторы представляют собой изолированные блоки кода, которые гарантируют безопасность потоков при выполнении асинхронных операций.
❤1❤🔥1
С помощью Variablur можно создавать различные эффекты размытия, которыми вы управляете с помощью маски. Поскольку маска рисуется с помощью GraphicsContext, она может содержать градиенты, фигуры, текст, предварительно отрендеренные изображения или все остальное, что можно нарисовать. Можно создавать градиентное или прогрессивное размытие, виньетки, "размытые тени" и многие другие эффекты. Variablur использует 100% публичный API - это всего лишь шейдер Metal и пара расширений для типов SwiftUI.
Variablur на GitHub: https://github.com/daprice/Variablur
Платформа: iOS
⭐️: 74
Variablur на GitHub: https://github.com/daprice/Variablur
Платформа: iOS
⭐️: 74
App Clip и тысяча проблем
Если вы решите сделать App Clip, то планируйте, что вам придется:
• Реализовать App Clip, обязательно интегрировав функционал из основного приложения, дополнительные фичи не подойдут
• Добавить Advanced Experiences в App Store Connect
• Создать AASA файла на сайте, чтобы связать ваше приложение со ссылкой
• Протестировать через Local Advanced Experiences на телефоне до релиза
• Пройти ревью
• Подождать индексацию со стороны Apple — в нашем случае это заняло целых 2 недели, не отчаиваться!
Статья: https://habr.com/ru/companies/dododev/articles/775128/
Платформа: iOS
Если вы решите сделать App Clip, то планируйте, что вам придется:
• Реализовать App Clip, обязательно интегрировав функционал из основного приложения, дополнительные фичи не подойдут
• Добавить Advanced Experiences в App Store Connect
• Создать AASA файла на сайте, чтобы связать ваше приложение со ссылкой
• Протестировать через Local Advanced Experiences на телефоне до релиза
• Пройти ревью
• Подождать индексацию со стороны Apple — в нашем случае это заняло целых 2 недели, не отчаиваться!
Статья: https://habr.com/ru/companies/dododev/articles/775128/
Платформа: iOS