Reflection в iOS: как посмотреть содержимое любой сущности
В Swift, как и во многих других языках программирования, есть возможность получать информацию о структуре объекта в Runtime. Для этого в языке есть специальный механизм — Reflection. С его помощью можно просматривать содержимое любых сущностей, не зная о них абсолютно ничего.
Меня зовут Светлана Гладышева, я iOS-разработчик в Тинькофф. Расскажу, какие возможности есть у Reflection в Swift, в чем ограничения и подводные камни. Рассмотрим его применение на примерах и узнаем, для чего его можно использовать в повседневной работе. А еще поговорим о том, как можно отключить Reflection в проекте и на что это может повлиять.
https://habr.com/ru/companies/tbank/articles/808139/
#ios
👉 @developer_mobila
В Swift, как и во многих других языках программирования, есть возможность получать информацию о структуре объекта в Runtime. Для этого в языке есть специальный механизм — Reflection. С его помощью можно просматривать содержимое любых сущностей, не зная о них абсолютно ничего.
Меня зовут Светлана Гладышева, я iOS-разработчик в Тинькофф. Расскажу, какие возможности есть у Reflection в Swift, в чем ограничения и подводные камни. Рассмотрим его применение на примерах и узнаем, для чего его можно использовать в повседневной работе. А еще поговорим о том, как можно отключить Reflection в проекте и на что это может повлиять.
https://habr.com/ru/companies/tbank/articles/808139/
#ios
👉 @developer_mobila
👍1
Эти айфоны ещё будут жить: пишем и деплоим свои приложения из XCode на старые iPhone
Согласно политике Apple, компания чётко разграничивает время жизни тех или иных версий iOS. Обычно, уже через 3-4 года определенная версия iOS считается устаревшей и публиковать новые версии приложений с её поддержкой больше нельзя. Однако в ходу всё ещё «старые», но по настоящему трушные и любимые многими «пятёрки», «четвёрки», а среди коллекционеров — и «тройки»! Способ, о котором я расскажу в статье, раскопали ещё «олды», однако он позволяет запускать и отлаживать «хоумбрю» приложения на старых айфонах, потенциально принося им новую жизнь с кастомными приложениями! Интересно?
https://habr.com/ru/companies/timeweb/articles/822659/
#ios
👉 @developer_mobila
Согласно политике Apple, компания чётко разграничивает время жизни тех или иных версий iOS. Обычно, уже через 3-4 года определенная версия iOS считается устаревшей и публиковать новые версии приложений с её поддержкой больше нельзя. Однако в ходу всё ещё «старые», но по настоящему трушные и любимые многими «пятёрки», «четвёрки», а среди коллекционеров — и «тройки»! Способ, о котором я расскажу в статье, раскопали ещё «олды», однако он позволяет запускать и отлаживать «хоумбрю» приложения на старых айфонах, потенциально принося им новую жизнь с кастомными приложениями! Интересно?
https://habr.com/ru/companies/timeweb/articles/822659/
#ios
👉 @developer_mobila
❤2👍1
Clean architecture и MVVM в iOS разработке
При разработке ПО важно использовать не только дизайн-, но и архитектурные паттерны. Их существует довольно много. В мобильной разработке самые распространенные - MVVM, Clean Architecture и Redux.
В этой статье мы покажем на примерах проектов как паттерны MVVM и Clean Architecture могут быть применены в iOS приложении.
https://habr.com/ru/articles/808923/
#ios
👉 @developer_mobila
При разработке ПО важно использовать не только дизайн-, но и архитектурные паттерны. Их существует довольно много. В мобильной разработке самые распространенные - MVVM, Clean Architecture и Redux.
В этой статье мы покажем на примерах проектов как паттерны MVVM и Clean Architecture могут быть применены в iOS приложении.
https://habr.com/ru/articles/808923/
#ios
👉 @developer_mobila
❤2👍1
Устройство Android Music SDK или как мы встроили музыку в суперапп-приложение
https://www.youtube.com/watch?v=mSLjsPP7q9o
#Android
👉 @developer_mobila
https://www.youtube.com/watch?v=mSLjsPP7q9o
#Android
👉 @developer_mobila
YouTube
Устройство Android Music SDK или как мы встроили музыку в суперапп-приложение
Устройство Android Music SDK или как мы встроили музыку в суперапп-приложение
Владислав Унчурис, Android-разработчик в Яндекс Музыке
Владислав Унчурис, Android-разработчик в Яндекс Музыке
Курс «Анализ защищенности приложений Андроид» стартует 8 июля!
Рассматривается устройство приложений под ОС Android, этапы создания мобильного приложения, приемы реверса и изменения кода. Подробно рассмотрен поиск и эксплуатация уязвимостей.
Курс создан для:
- Сотрудников подразделений ИБ для повышения квалификации, новичков в сфере анализа мобильных приложений, реверс-инженеров для повышения квалификации в области мобильных приложений
🏆 Сертификат / удостоверение о повышении квалификации
@Codeby_Academy
Рассматривается устройство приложений под ОС Android, этапы создания мобильного приложения, приемы реверса и изменения кода. Подробно рассмотрен поиск и эксплуатация уязвимостей.
Курс создан для:
- Сотрудников подразделений ИБ для повышения квалификации, новичков в сфере анализа мобильных приложений, реверс-инженеров для повышения квалификации в области мобильных приложений
🏆 Сертификат / удостоверение о повышении квалификации
@Codeby_Academy
👍1
Создание фигур из SVG в приложении SwiftUI
Файлы SVG, сокращенно от Scalable Vector Graphics files, - это цифровой формат, разработанный W3C, который описывает изображения с помощью векторной графики. В то время как файлы JPEG или PNG представляют изображения в виде сетки пикселей, SVG используют текстовые форматы на основе XML, чтобы указать, как изображение должно быть нарисовано с помощью линий, фигур и цветов. Этот текстовый формат делает файлы SVG масштабируемыми и независимыми от разрешения, что означает, что их можно увеличивать или изменять размер без потери качества.
https://www.createwithswift.com/creating-shapes-from-noscript-in-a-swiftui-app/
#ios
👉 @developer_mobila
Файлы SVG, сокращенно от Scalable Vector Graphics files, - это цифровой формат, разработанный W3C, который описывает изображения с помощью векторной графики. В то время как файлы JPEG или PNG представляют изображения в виде сетки пикселей, SVG используют текстовые форматы на основе XML, чтобы указать, как изображение должно быть нарисовано с помощью линий, фигур и цветов. Этот текстовый формат делает файлы SVG масштабируемыми и независимыми от разрешения, что означает, что их можно увеличивать или изменять размер без потери качества.
https://www.createwithswift.com/creating-shapes-from-noscript-in-a-swiftui-app/
#ios
👉 @developer_mobila
👍2❤1
Focus as a state — new effective Android TV focus management system with Jetpack Compose
https://alexzaitsev.substack.com/p/focus-as-a-state-new-effective-tv
#Android
👉 @developer_mobila
https://alexzaitsev.substack.com/p/focus-as-a-state-new-effective-tv
#Android
👉 @developer_mobila
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
SwiftUI Custom Transitions
0:00 Intro
0:23 Project Setup
1:17 Building Custom Transitions
источник
#ios
👉 @developer_mobila
0:00 Intro
0:23 Project Setup
1:17 Building Custom Transitions
источник
#ios
👉 @developer_mobila
👍2
Эволюция разработки под Android
Отправной точкой истории разработки Android считается начало 2000-х. Энди Рубин, Рич Майнер, Ник Сирс, Крис Уайт основывают Android Inc. Уже в 2005 Google выкупает их. Поначалу первый смартфон на базе Android планировался больше быть похожим на Blackberry.
https://habr.com/ru/articles/810881/
#Android
👉 @developer_mobila
Отправной точкой истории разработки Android считается начало 2000-х. Энди Рубин, Рич Майнер, Ник Сирс, Крис Уайт основывают Android Inc. Уже в 2005 Google выкупает их. Поначалу первый смартфон на базе Android планировался больше быть похожим на Blackberry.
https://habr.com/ru/articles/810881/
#Android
👉 @developer_mobila
👍2
Trigger value pattern in SwiftUI
В последней версии фреймворка SwiftUI в API появился шаблон триггерного значения. Триггерное значение позволяет нам прикрепить модификатор представления, который запускает свое действие при каждом изменении триггерного значения. Вы можете встретить этот паттерн при использовании сенсорной обратной связи или запуске анимации по ключевым кадрам в SwiftUI.
https://swiftwithmajid.com/2024/04/02/trigger-value-pattern-in-swiftui/
#ios
👉 @developer_mobila
В последней версии фреймворка SwiftUI в API появился шаблон триггерного значения. Триггерное значение позволяет нам прикрепить модификатор представления, который запускает свое действие при каждом изменении триггерного значения. Вы можете встретить этот паттерн при использовании сенсорной обратной связи или запуске анимации по ключевым кадрам в SwiftUI.
https://swiftwithmajid.com/2024/04/02/trigger-value-pattern-in-swiftui/
#ios
👉 @developer_mobila
Swift with Majid
Trigger value pattern in SwiftUI
The recent version of the SwiftUI framework introduces a trigger value pattern across its APIs. Trigger value allows us to attach a view modifier that runs its action whenever the trigger value changes. You can find this pattern while using sensory feedback…
👍1
Обзор архитектуры Compose с использованием паттерна «координатор»
В этой статье рассмотрим, пример реализации архитектуры UI-слоя на Compose, которая основывается на Uni-directional data flow и state hoisting с использованием паттерна «координатор» для навигации. Вдохновением для меня послужила эта публикация, но я решил подробнее развернуть поднятую в ней тему архитектуры Compose и навигации.
https://habr.com/ru/companies/sberbank/articles/809683/
#Android
👉 @developer_mobila
В этой статье рассмотрим, пример реализации архитектуры UI-слоя на Compose, которая основывается на Uni-directional data flow и state hoisting с использованием паттерна «координатор» для навигации. Вдохновением для меня послужила эта публикация, но я решил подробнее развернуть поднятую в ней тему архитектуры Compose и навигации.
https://habr.com/ru/companies/sberbank/articles/809683/
#Android
👉 @developer_mobila
👍4
Создаем гистограмму с помощью Swift Charts
На WWDC 22 Apple представила Swift Charts, фреймворк, позволяющий визуализировать данные в виде гистограмм. До его появления нам приходилось подключать всевозможные сторонние решения для построения графиков в SwiftUI. Визуализация данных с помощью аналогичного декларативного синтаксиса в SwiftUI — это просто фантастика.
Гистограмма — это всего лишь один из доступных вариантов визуализации данных. В целом, многие из методов, о которых вы сегодня узнаете, применимы и к другим графикам. Фактически, вы можете заменить всего один элемент, чтобы перейти от гистограммы к линейной диаграмме. Давайте погрузимся в работу!
https://www.avanderlee.com/swift-charts/bar-chart-creation-using-swift-charts/
#ios
👉 @developer_mobila
На WWDC 22 Apple представила Swift Charts, фреймворк, позволяющий визуализировать данные в виде гистограмм. До его появления нам приходилось подключать всевозможные сторонние решения для построения графиков в SwiftUI. Визуализация данных с помощью аналогичного декларативного синтаксиса в SwiftUI — это просто фантастика.
Гистограмма — это всего лишь один из доступных вариантов визуализации данных. В целом, многие из методов, о которых вы сегодня узнаете, применимы и к другим графикам. Фактически, вы можете заменить всего один элемент, чтобы перейти от гистограммы к линейной диаграмме. Давайте погрузимся в работу!
https://www.avanderlee.com/swift-charts/bar-chart-creation-using-swift-charts/
#ios
👉 @developer_mobila
👍1
Ready, Aim, Release: Android app rollout tips
https://proandroiddev.com/ready-aim-release-android-app-rollout-tips-1bc6f851e6fb
#Android
👉 @developer_mobila
https://proandroiddev.com/ready-aim-release-android-app-rollout-tips-1bc6f851e6fb
#Android
👉 @developer_mobila
👍1
What are lazy vars in Swift?
Sometimes when you’re programming you have some properties that are pretty expensive to compute so you want to make sure that you don’t perform any work that you don’t absolutely must perform.
https://www.donnywals.com/what-are-lazy-vars-in-swift/
#ios
👉 @developer_mobila
Sometimes when you’re programming you have some properties that are pretty expensive to compute so you want to make sure that you don’t perform any work that you don’t absolutely must perform.
https://www.donnywals.com/what-are-lazy-vars-in-swift/
#ios
👉 @developer_mobila
Swift Server Side Meetup
Calling all Swift developers who are eager to harness the power of Swift on the server-side! Join the Swift Server Working Group for their online meetup, where you'll connect with fellow enthusiasts, dive into the latest advancements and best practices in server-side Swift. Whether you're a seasoned pro or just starting your server-side Swift journey, this meetup is the perfect platform to learn, share, and grow alongside the vibrant community.
https://www.youtube.com/watch?v=FULMRV3wIKg
#ios
👉 @developer_mobila
Calling all Swift developers who are eager to harness the power of Swift on the server-side! Join the Swift Server Working Group for their online meetup, where you'll connect with fellow enthusiasts, dive into the latest advancements and best practices in server-side Swift. Whether you're a seasoned pro or just starting your server-side Swift journey, this meetup is the perfect platform to learn, share, and grow alongside the vibrant community.
https://www.youtube.com/watch?v=FULMRV3wIKg
#ios
👉 @developer_mobila
YouTube
Swift Server Side Meetup #01
Calling all Swift developers who are eager to harness the power of Swift on the server-side! Join the Swift Server Working Group for their online meetup, where you'll connect with fellow enthusiasts, dive into the latest advancements and best practices in…
Рекомпозиция в Compose: что не видно разработчику невооруженным глазом
Всем привет! Меня зовут Данила, я Android-разработчик в команде, которая занимается созданием супераппа WorksPad.
Все новые фичи в проекте пишутся на Compose. Поскольку мне нужно было разобраться в нюансах использования, встал вопрос о повышении собственной квалификации.
Когда я изучил множество тонких моментов реализации, мне захотелось поделиться новыми знаниями с командой — инициатива вылилась во внутренний митап, посвященный работе в Compose. Встреча прошла насыщенно, я получил очень много вопросов от коллег. В итоге мы пришли к тому, что по материалам митапа нужно сделать некий резюмирующий текстовый гайд, с которым разработчик не задумывался бы, как применять Compose.
https://habr.com/ru/companies/astralinux/articles/810549/
#Android
👉 @developer_mobila
Всем привет! Меня зовут Данила, я Android-разработчик в команде, которая занимается созданием супераппа WorksPad.
Все новые фичи в проекте пишутся на Compose. Поскольку мне нужно было разобраться в нюансах использования, встал вопрос о повышении собственной квалификации.
Когда я изучил множество тонких моментов реализации, мне захотелось поделиться новыми знаниями с командой — инициатива вылилась во внутренний митап, посвященный работе в Compose. Встреча прошла насыщенно, я получил очень много вопросов от коллег. В итоге мы пришли к тому, что по материалам митапа нужно сделать некий резюмирующий текстовый гайд, с которым разработчик не задумывался бы, как применять Compose.
https://habr.com/ru/companies/astralinux/articles/810549/
#Android
👉 @developer_mobila
Initializing
https://augmentedcode.io/2024/04/22/initializing-mainactor-type-from-a-non-isolated-context-in-swift/
#ios
👉 @developer_mobila
@MainActor type from a non-isolated context in Swifthttps://augmentedcode.io/2024/04/22/initializing-mainactor-type-from-a-non-isolated-context-in-swift/
#ios
👉 @developer_mobila
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
👉 @developer_mobila
Конструктор результатов можно рассматривать как встроенный предметно-ориентированный язык (DSL) для сбора деталей, которые объединяются в конечный результат. Конструкторы результатов в Swift позволяют создавать результат, используя "блоки сборки", расположенные в ряд друг за другом.
https://habr.com/ru/articles/813393/
#ios
👉 @developer_mobila
👍1
Как защитить свой код от 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
👉 @developer_mobila
Если вы используете 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
👉 @developer_mobila
👍1