🚀 Не надо тратить миллионы на билеты, туры и путешествия. Хватит и грошей.
Ссылка на канал, подписывайтесь: @cheapglobus
Ссылка на канал, подписывайтесь: @cheapglobus
Initializing
https://augmentedcode.io/2024/04/22/initializing-mainactor-type-from-a-non-isolated-context-in-swift/
#ios
👉
type from a non-isolated context in Swifthttps://augmentedcode.io/2024/04/22/initializing-mainactor-type-from-a-non-isolated-context-in-swift/
#ios
👉
Augmented Code
Initializing @MainActor type from a non-isolated context in Swift
Recently I was in the middle of working on code where I wanted a type to require @MainActor since the type was an ObservaleObject and makes sense if it always publishes changes on the MainActor. Th…
Result builders in Swift
Конструктор результатов можно рассматривать как встроенный предметно-ориентированный язык (DSL) для сбора деталей, которые объединяются в конечный результат. Конструкторы результатов в Swift позволяют создавать результат, используя "блоки сборки", расположенные в ряд друг за другом.
https://habr.com/ru/articles/813393/
#ios
👉
Конструктор результатов можно рассматривать как встроенный предметно-ориентированный язык (DSL) для сбора деталей, которые объединяются в конечный результат. Конструкторы результатов в Swift позволяют создавать результат, используя "блоки сборки", расположенные в ряд друг за другом.
https://habr.com/ru/articles/813393/
#ios
👉
Как защитить свой код от Gemini in Android Studio
Если вы используете Android Studio Jellyfish или более позднюю версию, вы можете использовать Gemini in Android Studio (ранее Studio Bot). Вы можете задать ему множество различных вопросов прямо в IDE. Инструмент очень умный и способен использовать код вашего проекта в IDE, чтобы улучшить ответы, которые он вам выдает, а также предоставляет интеллектуальное автодополнение кода. Хотя это и полезная функция, если вы работаете над проприетарной или (коммерчески или иным образом) важной кодовой базой, возможно, вы не захотите делиться своим кодом с Google. Google четко объясняет, как используются данные, в своей Политике конфиденциальности и документации по данным и конфиденциальности, но даже если лично вас все устраивает, многие организации придерживаются более строгой политики в отношении своей интеллектуальной собственности (например, кода).
https://proandroiddev.com/protect-your-code-from-gemini-in-android-studio-982a58e1ea2a
#Android
👉
Если вы используете Android Studio Jellyfish или более позднюю версию, вы можете использовать Gemini in Android Studio (ранее Studio Bot). Вы можете задать ему множество различных вопросов прямо в IDE. Инструмент очень умный и способен использовать код вашего проекта в IDE, чтобы улучшить ответы, которые он вам выдает, а также предоставляет интеллектуальное автодополнение кода. Хотя это и полезная функция, если вы работаете над проприетарной или (коммерчески или иным образом) важной кодовой базой, возможно, вы не захотите делиться своим кодом с Google. Google четко объясняет, как используются данные, в своей Политике конфиденциальности и документации по данным и конфиденциальности, но даже если лично вас все устраивает, многие организации придерживаются более строгой политики в отношении своей интеллектуальной собственности (например, кода).
https://proandroiddev.com/protect-your-code-from-gemini-in-android-studio-982a58e1ea2a
#Android
👉
Проектирование и создание приложений для watchOS 10
Погрузитесь в детали принципов проектирования watchOS и узнайте, как применять их в своем приложении с использованием SwiftUI. Мы покажем, как создать приложение для обновленного пользовательского интерфейса, чтобы отображать актуальную информацию, передавать сфокусированный контент одним взглядом и сделать навигацию последовательной и предсказуемой.
https://www.youtube.com/watch?v=BPJZ6A_brSw
#ios
👉
Погрузитесь в детали принципов проектирования watchOS и узнайте, как применять их в своем приложении с использованием SwiftUI. Мы покажем, как создать приложение для обновленного пользовательского интерфейса, чтобы отображать актуальную информацию, передавать сфокусированный контент одним взглядом и сделать навигацию последовательной и предсказуемой.
https://www.youtube.com/watch?v=BPJZ6A_brSw
#ios
👉
YouTube
WWDC23: Design and build apps for watchOS 10 | Apple
Dive into the details of watchOS design principles and learn how to apply them in your app using SwiftUI. We’ll show you how to build an app for the redesigned user interface to surface timely information, communicate focused content at a glance, and make…
This media is not supported in your browser
VIEW IN TELEGRAM
Разработка встроенных приложений на Swift
В последние годы Swift постепенно демонстрирует свой потенциал для кроссплатформенной разработки. В этой статье я поделюсь своим опытом и попытками использовать язык Swift для разработки встроенных систем на плате SwiftIO.
https://fatbobman.com/en/posts/developing-embedded-applications-with-swift/
#ios
👉
В последние годы Swift постепенно демонстрирует свой потенциал для кроссплатформенной разработки. В этой статье я поделюсь своим опытом и попытками использовать язык Swift для разработки встроенных систем на плате SwiftIO.
https://fatbobman.com/en/posts/developing-embedded-applications-with-swift/
#ios
👉
Toggle Labels With Icons — Personalizing Accessibility
https://eevis.codes/blog/2024-04-21/toggle-labels-with-icons-personalizing-accessibility/
#Android
👉
https://eevis.codes/blog/2024-04-21/toggle-labels-with-icons-personalizing-accessibility/
#Android
👉
Toggle Labels With Icons - Personalizing Accessibility | Eevis Panula, Mobile Accessibility Engineer
Let's continue the theme of personalizing your app for users for accessibility by adding a setting to toggle labels with icons.
Путешествие к центру Композиции
В продолжение разборов внутреннего устройства Compose Runtime Дмитрий рассказывает о Композиции — ключевом механизме фреймворка, без которого Compose и вовсе был бы не Compose.
В докладе рассмотрено, когда и где создается композиция, какие структуры данных используются для этого, а также как именно внесенные изменения обновляют дерево Composable-компонентов.
https://www.youtube.com/watch?v=L8mc7ZnO5zY
#Android
👉
В продолжение разборов внутреннего устройства Compose Runtime Дмитрий рассказывает о Композиции — ключевом механизме фреймворка, без которого Compose и вовсе был бы не Compose.
В докладе рассмотрено, когда и где создается композиция, какие структуры данных используются для этого, а также как именно внесенные изменения обновляют дерево Composable-компонентов.
https://www.youtube.com/watch?v=L8mc7ZnO5zY
#Android
👉
YouTube
Дмитрий Григорьев — Путешествие к центру Композиции
Ближайшая конференция — Mobius 2024 Autumn, 11 октября (Online), 19–20 октября, Санкт-Петербург. Подробности и билеты: https://jrg.su/Yu6KNJ
— —
Дмитрий Григорьев – Android-разработчик, интересуется декларативной и кроссплатформенной разработкой. Пишет и…
— —
Дмитрий Григорьев – Android-разработчик, интересуется декларативной и кроссплатформенной разработкой. Пишет и…
Опыт публикации Андроид приложения в Google Play независимым разработчиком в 2024 году
https://habr.com/ru/articles/814025/
#Android
👉
https://habr.com/ru/articles/814025/
#Android
👉
Сергей Балалаев — SwiftUI-навигация: просто, нативно и декларативно
Стартуя проект на SwiftUI 2.0 в конце 2021 года, Сергей с командой избрали тактику минимального использования UIKit, в том числе в вопросах навигации. Кроме того, они не стали создавать собственный NavigationView, а использовали тот механизм, который предоставил Apple – немного обернув его в решение, схожее с концепцией отображения модальных окон.
Изначально навигация была простой: TabBarView+NavigationView, поддержка с iOS 14, и все были счастливы. Затем дизайнеры и бизнес начали усложнять пути переходов экранов, создавая целые графы межэкранных прыжков, и команда столкнулась с техническими препятствиями и багами SwiftUI. Но они не свернули на UIKit, как это сделали те, кто вкусил SwiftUI до поддержки с iOS 16. Есть единицы, которые пошли по пути команды, и у них есть неплохие идеи. Однако их реализацию предстоит «доводить до ума».
Спикер поделился наработками команды, чтобы можно было безбоязненно идти в мир SwiftUI 2.0 с backports. Конечно же, есть готовые фреймворки, но они усложняют разработку и сводят на нет красоту декларативного подхода SwiftUI.
https://www.youtube.com/watch?v=suqghgwucrs
#ios
👉
Стартуя проект на SwiftUI 2.0 в конце 2021 года, Сергей с командой избрали тактику минимального использования UIKit, в том числе в вопросах навигации. Кроме того, они не стали создавать собственный NavigationView, а использовали тот механизм, который предоставил Apple – немного обернув его в решение, схожее с концепцией отображения модальных окон.
Изначально навигация была простой: TabBarView+NavigationView, поддержка с iOS 14, и все были счастливы. Затем дизайнеры и бизнес начали усложнять пути переходов экранов, создавая целые графы межэкранных прыжков, и команда столкнулась с техническими препятствиями и багами SwiftUI. Но они не свернули на UIKit, как это сделали те, кто вкусил SwiftUI до поддержки с iOS 16. Есть единицы, которые пошли по пути команды, и у них есть неплохие идеи. Однако их реализацию предстоит «доводить до ума».
Спикер поделился наработками команды, чтобы можно было безбоязненно идти в мир SwiftUI 2.0 с backports. Конечно же, есть готовые фреймворки, но они усложняют разработку и сводят на нет красоту декларативного подхода SwiftUI.
https://www.youtube.com/watch?v=suqghgwucrs
#ios
👉
YouTube
Сергей Балалаев — SwiftUI-навигация: просто, нативно и декларативно
Ближайшая конференция — Mobius 2024 Autumn, 11 октября (Online), 19–20 октября, Санкт-Петербург. Подробности и билеты: https://jrg.su/Yu6KNJ
— —
Стартуя проект на SwiftUI 2.0 в конце 2021 года, Сергей с командой избрали тактику минимального использования…
— —
Стартуя проект на SwiftUI 2.0 в конце 2021 года, Сергей с командой избрали тактику минимального использования…
Никита Краснов — Удивительный мир внутри .ipa
В формате краткого воркшопа спикер рассказал, что есть внутри .ipa-файла, прошелся по самым часто встречающимся внутри файлам и показал, что интересного можно из них достать и как файлы можно модифицировать без вреда для приложения. Подробнее остановился на самом исполняемом файле: что интересно можно из него достать, не запуская и не используя дизассемблеры.
Мы узнали, как можно сравнить два приложения на схожесть, используя Hopper + BinDiff, и как сделать эти бинари отличающимися. Спикер объяснил, почему Apple знает, как зовут вашего юзера на компьютере, когда вы собираете приложение. Также пофантазировал на тему того, как Apple использует статический и динамический анализ .ipa во время ревью приложений для стора.
Доклад будет интересен разработчикам, которые создают White Label-приложения, а также всем, кто хорошо знает Swift, но при этом не знает, как приложение собирается и во что превращается на выходе.
Идея доклада родилась из необходимости публикации похожих приложений под разными названиями, а также из того, что Apple такие приложения не пропускает, ссылаясь на схожесть.
https://www.youtube.com/watch?v=C1PqxajPrks
#ios
👉
В формате краткого воркшопа спикер рассказал, что есть внутри .ipa-файла, прошелся по самым часто встречающимся внутри файлам и показал, что интересного можно из них достать и как файлы можно модифицировать без вреда для приложения. Подробнее остановился на самом исполняемом файле: что интересно можно из него достать, не запуская и не используя дизассемблеры.
Мы узнали, как можно сравнить два приложения на схожесть, используя Hopper + BinDiff, и как сделать эти бинари отличающимися. Спикер объяснил, почему Apple знает, как зовут вашего юзера на компьютере, когда вы собираете приложение. Также пофантазировал на тему того, как Apple использует статический и динамический анализ .ipa во время ревью приложений для стора.
Доклад будет интересен разработчикам, которые создают White Label-приложения, а также всем, кто хорошо знает Swift, но при этом не знает, как приложение собирается и во что превращается на выходе.
Идея доклада родилась из необходимости публикации похожих приложений под разными названиями, а также из того, что Apple такие приложения не пропускает, ссылаясь на схожесть.
https://www.youtube.com/watch?v=C1PqxajPrks
#ios
👉
YouTube
Никита Краснов — Удивительный мир внутри .ipa
Ближайшая конференция — Mobius 2024 Autumn, 11 октября (Online), 19–20 октября, Санкт-Петербург. Подробности и билеты: https://jrg.su/Yu6KNJ
— —
В формате краткого воркшопа спикер рассказал, что есть внутри .ipa-файла, прошелся по самым часто встречающимся…
— —
В формате краткого воркшопа спикер рассказал, что есть внутри .ipa-файла, прошелся по самым часто встречающимся…
Никита Краснов — Удивительный мир внутри .ipa
В формате краткого воркшопа спикер рассказал, что есть внутри .ipa-файла, прошелся по самым часто встречающимся внутри файлам и показал, что интересного можно из них достать и как файлы можно модифицировать без вреда для приложения. Подробнее остановился на самом исполняемом файле: что интересно можно из него достать, не запуская и не используя дизассемблеры.
Мы узнали, как можно сравнить два приложения на схожесть, используя Hopper + BinDiff, и как сделать эти бинари отличающимися. Спикер объяснил, почему Apple знает, как зовут вашего юзера на компьютере, когда вы собираете приложение. Также пофантазировал на тему того, как Apple использует статический и динамический анализ .ipa во время ревью приложений для стора.
Доклад будет интересен разработчикам, которые создают White Label-приложения, а также всем, кто хорошо знает Swift, но при этом не знает, как приложение собирается и во что превращается на выходе.
Идея доклада родилась из необходимости публикации похожих приложений под разными названиями, а также из того, что Apple такие приложения не пропускает, ссылаясь на схожесть.
https://www.youtube.com/watch?v=C1PqxajPrks
#ios
👉
В формате краткого воркшопа спикер рассказал, что есть внутри .ipa-файла, прошелся по самым часто встречающимся внутри файлам и показал, что интересного можно из них достать и как файлы можно модифицировать без вреда для приложения. Подробнее остановился на самом исполняемом файле: что интересно можно из него достать, не запуская и не используя дизассемблеры.
Мы узнали, как можно сравнить два приложения на схожесть, используя Hopper + BinDiff, и как сделать эти бинари отличающимися. Спикер объяснил, почему Apple знает, как зовут вашего юзера на компьютере, когда вы собираете приложение. Также пофантазировал на тему того, как Apple использует статический и динамический анализ .ipa во время ревью приложений для стора.
Доклад будет интересен разработчикам, которые создают White Label-приложения, а также всем, кто хорошо знает Swift, но при этом не знает, как приложение собирается и во что превращается на выходе.
Идея доклада родилась из необходимости публикации похожих приложений под разными названиями, а также из того, что Apple такие приложения не пропускает, ссылаясь на схожесть.
https://www.youtube.com/watch?v=C1PqxajPrks
#ios
👉
YouTube
Никита Краснов — Удивительный мир внутри .ipa
Ближайшая конференция — Mobius 2024 Autumn, 11 октября (Online), 19–20 октября, Санкт-Петербург. Подробности и билеты: https://jrg.su/Yu6KNJ
— —
В формате краткого воркшопа спикер рассказал, что есть внутри .ipa-файла, прошелся по самым часто встречающимся…
— —
В формате краткого воркшопа спикер рассказал, что есть внутри .ipa-файла, прошелся по самым часто встречающимся…
Глубокие ссылки для локальных уведомлений в SwiftUI
Уведомления имеют решающее значение для удержания пользователей в приложении. Почти все мои приложения содержат уведомления, которые не только запускают приложение, но и ведут к различным частям приложения. Сегодня я хочу поделиться тем, как я создаю глубокие ссылки для локальных уведомлений в своих приложениях.
https://swiftwithmajid.com/2024/04/09/deep-linking-for-local-notifications-in-swiftui/
#ios
👉
Уведомления имеют решающее значение для удержания пользователей в приложении. Почти все мои приложения содержат уведомления, которые не только запускают приложение, но и ведут к различным частям приложения. Сегодня я хочу поделиться тем, как я создаю глубокие ссылки для локальных уведомлений в своих приложениях.
https://swiftwithmajid.com/2024/04/09/deep-linking-for-local-notifications-in-swiftui/
#ios
👉
Swift with Majid
Deep linking for local notifications in SwiftUI
Notifications are crucial for keeping users engaged with your app. Almost all of my apps provide notifications that not only launch the app but also navigate to different parts of the app. Today, I want to share how I build deep links for local notifications…
Взлом и защита Android-приложений
Рассматриваем способы взлома и защиты. Пытаемся сначала атаковать приложение, а затем тут же защищаемся. А потом атакуем новую защиту, и так по кругу.
Сперва говорим о банальных вещах – таких, как просмотр данных приложения через снифферы трафика или просмотр байт-кода. Далее о более сложном: говорим об изменении поведения приложения через Frida и защите от этого с помощью C++. И в конце пытаемся взломать С++.
https://www.youtube.com/watch?v=jxRvLjAgE-A
#Android
👉
Рассматриваем способы взлома и защиты. Пытаемся сначала атаковать приложение, а затем тут же защищаемся. А потом атакуем новую защиту, и так по кругу.
Сперва говорим о банальных вещах – таких, как просмотр данных приложения через снифферы трафика или просмотр байт-кода. Далее о более сложном: говорим об изменении поведения приложения через Frida и защите от этого с помощью C++. И в конце пытаемся взломать С++.
https://www.youtube.com/watch?v=jxRvLjAgE-A
#Android
👉
YouTube
Данил Перевалов — Взлом и защита Android-приложений
Ближайшая конференция: Mobius 2025 Spring, 9–10 апреля, Москва + онлайн. Подробности и билеты: https://jrg.su/ojGU3B
— —
Рассматриваем способы взлома и защиты. Пытаемся сначала атаковать приложение, а затем тут же защищаемся. А потом атакуем новую защиту…
— —
Рассматриваем способы взлома и защиты. Пытаемся сначала атаковать приложение, а затем тут же защищаемся. А потом атакуем новую защиту…
Новостное приложение: с нуля до публикации в Google Play
https://www.youtube.com/playlist?list=PL0SwNXKJbuNmIqMPiBnXkmfugSjWePAmx
#Android
👉
https://www.youtube.com/playlist?list=PL0SwNXKJbuNmIqMPiBnXkmfugSjWePAmx
#Android
👉
Обновления в адаптивных макетах Compose с I/O
В этом году на Google I/O было сделано множество интересных анонсов, причем не только в области искусственного интеллекта (хотя и это, безусловно, было важным моментом). Для меня ключевым моментом стало внимание к усовершенствованиям в Jetpack Compose для создания адаптивных макетов. Поскольку Android выходит за рамки смартфонов, переходя на планшеты, раскладушки и большие экраны, создание приложений, адаптирующихся к различным форм-факторам, становится как никогда актуальным.
https://proandroiddev.com/adaptive-compose-layouts-86b7f1e51338
#Android
👉
В этом году на Google I/O было сделано множество интересных анонсов, причем не только в области искусственного интеллекта (хотя и это, безусловно, было важным моментом). Для меня ключевым моментом стало внимание к усовершенствованиям в Jetpack Compose для создания адаптивных макетов. Поскольку Android выходит за рамки смартфонов, переходя на планшеты, раскладушки и большие экраны, создание приложений, адаптирующихся к различным форм-факторам, становится как никогда актуальным.
https://proandroiddev.com/adaptive-compose-layouts-86b7f1e51338
#Android
👉
Как я решал задачу получения доступа к данным банковских приложений на iOS
Вы пользуетесь кешбэком, может даже выбираете категории повышенного кешбэка каждый месяц? Когда у вас несколько карт разных банков с кешбэком, становится непросто запомнить, какую из них лучше использовать для конкретной покупки в этом месяце.
Можно было бы эти категории записывать на листик или куда‑то в заметки, но я решил сделать iOS приложение, в котором можно добавлять выбранные категории кешбэка, а они уже будут выводиться в виде виджета.
Заполнять данные о категориях вручную мне показалось неудобно, поэтому я начал думать, как упростить пользователю получение и ввод этих данных из банковских приложений. О том, как я решил эту задачу, расскажу в этой публикации.
https://habr.com/ru/articles/840138/
#ios
👉
Вы пользуетесь кешбэком, может даже выбираете категории повышенного кешбэка каждый месяц? Когда у вас несколько карт разных банков с кешбэком, становится непросто запомнить, какую из них лучше использовать для конкретной покупки в этом месяце.
Можно было бы эти категории записывать на листик или куда‑то в заметки, но я решил сделать iOS приложение, в котором можно добавлять выбранные категории кешбэка, а они уже будут выводиться в виде виджета.
Заполнять данные о категориях вручную мне показалось неудобно, поэтому я начал думать, как упростить пользователю получение и ввод этих данных из банковских приложений. О том, как я решил эту задачу, расскажу в этой публикации.
https://habr.com/ru/articles/840138/
#ios
👉
Как встроить распознавание звуков в ваше iOS приложение на Swift с использованием SoundAnalysis
В мире, где ваш телефон умеет угадывать настроение по плейлисту, почему бы не научить его распознавать звуки вокруг? С помощью фреймворка SoundAnalysis это проще, чем кажется. Мы расскажем, как легко и с минимальными потерями для душевного здоровья интегрировать распознавание звуков в ваше iOS-приложение.
https://habr.com/ru/articles/840316/
#ios
👉
В мире, где ваш телефон умеет угадывать настроение по плейлисту, почему бы не научить его распознавать звуки вокруг? С помощью фреймворка SoundAnalysis это проще, чем кажется. Мы расскажем, как легко и с минимальными потерями для душевного здоровья интегрировать распознавание звуков в ваше iOS-приложение.
https://habr.com/ru/articles/840316/
#ios
👉
Хабр
Как встроить распознавание звуков в ваше iOS приложение на Swift с использованием SoundAnalysis
Введение В мире, где ваш телефон умеет угадывать настроение по плейлисту, почему бы не научить его распознавать звуки вокруг? С помощью фреймворка SoundAnalysis это проще, чем кажется. Мы расскажем,...
Композим иконки. Улучшаем семантику и скорость отрисовки
Привет! Меня зовут Алексей, я работаю Android-разработчиком в Облаке Mail. Наша команда отвечает за возвращаемость пользователей в сервис. Чтобы сделать использование Облака приятным и удобным, мы проводим редизайн приложения, переписывая старый пользовательский интерфейс на Jetpack Compose по новым макетам. Для упрощения создания новых экранов мы разрабатываем UI Kit с готовыми Composable-компонентами.
https://habr.com/ru/companies/vk/articles/840862/
#Android
👉
Привет! Меня зовут Алексей, я работаю Android-разработчиком в Облаке Mail. Наша команда отвечает за возвращаемость пользователей в сервис. Чтобы сделать использование Облака приятным и удобным, мы проводим редизайн приложения, переписывая старый пользовательский интерфейс на Jetpack Compose по новым макетам. Для упрощения создания новых экранов мы разрабатываем UI Kit с готовыми Composable-компонентами.
https://habr.com/ru/companies/vk/articles/840862/
#Android
👉