Display empty states with ContentUnavailableView in SwiftUI
https://www.createwithswift.com/display-empty-states-with-contentunavailableview-in-swiftui/
#ios
👉 @developer_mobila
https://www.createwithswift.com/display-empty-states-with-contentunavailableview-in-swiftui/
#ios
👉 @developer_mobila
Экзоскелет для ExoPlayer
Давайте представим, что мы хотим написать SDK для проигрывания видео. За основу возьмем ExoPlayer. Вместе проведем небольшую архитектурную сессию: заглянем под капот и посмотрим, кто и как его писал и какие особенности могут играть для нас важную роль.
А может, вообще попробуем обойтись без него? На основании всего этого выведем наш уникальный «Феликс Фелицис» и построим экзоскелет в виде SDK.
https://www.youtube.com/watch?v=OCyR5wfD_4k
#Android
👉 @developer_mobila
Давайте представим, что мы хотим написать SDK для проигрывания видео. За основу возьмем ExoPlayer. Вместе проведем небольшую архитектурную сессию: заглянем под капот и посмотрим, кто и как его писал и какие особенности могут играть для нас важную роль.
А может, вообще попробуем обойтись без него? На основании всего этого выведем наш уникальный «Феликс Фелицис» и построим экзоскелет в виде SDK.
https://www.youtube.com/watch?v=OCyR5wfD_4k
#Android
👉 @developer_mobila
❤1
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…