Сенсорная обратная связь в SwiftUI
https://swiftwithmajid.com/2023/10/10/sensory-feedback-in-swiftui/
#ios
👉 @developer_mobila
https://swiftwithmajid.com/2023/10/10/sensory-feedback-in-swiftui/
#ios
👉 @developer_mobila
Swift with Majid
Sensory feedback in SwiftUI
SwiftUI introduced the new sensoryFeedback view modifier, allowing us to play haptic feedback on all Apple platforms. This week, we will learn how to use the sensoryFeedback modifier to give haptic feedback on different actions in our apps.
Как мониторить здоровье вашей Gradle-сборки
Привет! Я Сергей Боиштян, Software engineer в команде Speed. Мы делаем инструменты для тестирования, андроид-разработки, CI и CD. Чтобы больше узнать о том, чем мы занимаемся, посмотрите наш github или канал для обсуждения CI и сборки под андроид.
В Авито постоянно что-нибудь обновляется, улучшается и дорабатывается, поэтому мы хотим, чтобы код быстро писался и проверялся, чтобы его быстро мёржили и проверяли после интеграции. В итоге мы получаем новую версию раз в неделю. В этой статье я расскажу, что мы делаем, чтобы весь CI работал четко.
https://habr.com/ru/companies/avito/articles/766764/
#Android
👉 @developer_mobila
Привет! Я Сергей Боиштян, Software engineer в команде Speed. Мы делаем инструменты для тестирования, андроид-разработки, CI и CD. Чтобы больше узнать о том, чем мы занимаемся, посмотрите наш github или канал для обсуждения CI и сборки под андроид.
В Авито постоянно что-нибудь обновляется, улучшается и дорабатывается, поэтому мы хотим, чтобы код быстро писался и проверялся, чтобы его быстро мёржили и проверяли после интеграции. В итоге мы получаем новую версию раз в неделю. В этой статье я расскажу, что мы делаем, чтобы весь CI работал четко.
https://habr.com/ru/companies/avito/articles/766764/
#Android
👉 @developer_mobila
👍2
Using Core Data and Swift Data side by side
Недавно я изучал, как настроить Core Data и Swift Data в NowPlaying так, чтобы они указывали на одно и то же постоянное хранилище данных, и тогда я смогу использовать оба фреймворка бок о бок.
Это полезно, если вы собираетесь перейти с Core Data на Swift Data, но хотите делать это постепенно, или если вы хотите использовать Swift Data для конкретных случаев использования в вашем приложении, таких как виджеты.
Учитывая, что Swift Data выполняет операции исключительно в главном потоке, я бы не рекомендовал полностью переходить на него, так как это негативно скажется на производительности вашего приложения, но он действительно может быть очень полезен для небольших и не затратных операций.
https://www.polpiella.dev/core-data-and-swift-data/
#ios
👉 @developer_mobila
Недавно я изучал, как настроить Core Data и Swift Data в NowPlaying так, чтобы они указывали на одно и то же постоянное хранилище данных, и тогда я смогу использовать оба фреймворка бок о бок.
Это полезно, если вы собираетесь перейти с Core Data на Swift Data, но хотите делать это постепенно, или если вы хотите использовать Swift Data для конкретных случаев использования в вашем приложении, таких как виджеты.
Учитывая, что Swift Data выполняет операции исключительно в главном потоке, я бы не рекомендовал полностью переходить на него, так как это негативно скажется на производительности вашего приложения, но он действительно может быть очень полезен для небольших и не затратных операций.
https://www.polpiella.dev/core-data-and-swift-data/
#ios
👉 @developer_mobila
www.polpiella.dev
Using Core Data and Swift Data side by side
How to set up Core Data and Swift Data to use the same data store in your app.
Использование on-demand ресурсов для безопасного хранения ключей API в iOS-приложениях
Следует помнить, что извлечь строки из файлов IPA довольно просто, и поэтому, если мы храним API-ключи в коде, кто-то другой может получить к ним доступ. Это, конечно, большая проблема для безопасности.
https://augmentedcode.io/2023/11/27/using-on-demand-resources-for-securely-storing-api-keys-in-ios-apps/
#ios
👉 @developer_mobila
Следует помнить, что извлечь строки из файлов IPA довольно просто, и поэтому, если мы храним API-ключи в коде, кто-то другой может получить к ним доступ. Это, конечно, большая проблема для безопасности.
https://augmentedcode.io/2023/11/27/using-on-demand-resources-for-securely-storing-api-keys-in-ios-apps/
#ios
👉 @developer_mobila
👍2
Swift Data Many to Many relationships
Table of Contents:
0:00 Introduction
1:10 Many to Many Relationships
1:42 The Genre Model
9:41 The GenreView
17:43 The NewGenreView
25:48 The GenreStackView
29:54 Deleting Genres
https://www.youtube.com/watch?v=lHdBkXp3j74
#ios
👉 @developer_mobila
Table of Contents:
0:00 Introduction
1:10 Many to Many Relationships
1:42 The Genre Model
9:41 The GenreView
17:43 The NewGenreView
25:48 The GenreStackView
29:54 Deleting Genres
https://www.youtube.com/watch?v=lHdBkXp3j74
#ios
👉 @developer_mobila
YouTube
6. Swift Data Many to Many relationships
This is the 6th video in the SwiftData series where I am building an app to track books you want to read, are currently reading or have read.
In this video, I will be introducing a many to many relationship so that we an create a list of genres and associate…
In this video, I will be introducing a many to many relationship so that we an create a list of genres and associate…
👍1
Готовим конфигурацию Android-приложения с помощью Dynamic Proxy и рефлексии
Android-разработчик RuStore Анатолий Гусев расскажет, как приготовить систему «холодных» конфигов для большого Android-приложения, построенного на многомодульной архитектуре. Под «холодными» конфигами здесь подразумеваются настройки приложения, которые нужно делать локально на девайсе без необходимости загружать их из сети.
https://habr.com/ru/companies/vk/articles/777874/
#Android
👉 @developer_mobila
Android-разработчик RuStore Анатолий Гусев расскажет, как приготовить систему «холодных» конфигов для большого Android-приложения, построенного на многомодульной архитектуре. Под «холодными» конфигами здесь подразумеваются настройки приложения, которые нужно делать локально на девайсе без необходимости загружать их из сети.
https://habr.com/ru/companies/vk/articles/777874/
#Android
👉 @developer_mobila
👍1
Как устроен протокол iMessage
В этом посте я вкратце расскажу о внутреннем устройстве iMessage, изученном мной в процессе работы над pypush — опенсорсным проектом воссоздания реализации iMessage.
Ради краткости и понятности я не буду вдаваться в технические подробности. Если вы хотите узнать, как конкретно всё реализовано, то изучите репозиторий pypush.
https://habr.com/ru/articles/779064/
#ios
👉 @developer_mobila
В этом посте я вкратце расскажу о внутреннем устройстве iMessage, изученном мной в процессе работы над pypush — опенсорсным проектом воссоздания реализации iMessage.
Ради краткости и понятности я не буду вдаваться в технические подробности. Если вы хотите узнать, как конкретно всё реализовано, то изучите репозиторий pypush.
https://habr.com/ru/articles/779064/
#ios
👉 @developer_mobila
👍1
👍2
Создание простого калькулятора в Android Studio
Эта статья - лабораторная работа, предназначенная для введения в android разработку. Главной целью является создание работающего мобильного приложения с базовыми функциями калькулятора.
https://habr.com/ru/articles/779464/
#Android
👉 @developer_mobila
Эта статья - лабораторная работа, предназначенная для введения в android разработку. Главной целью является создание работающего мобильного приложения с базовыми функциями калькулятора.
https://habr.com/ru/articles/779464/
#Android
👉 @developer_mobila
Хабр
Создание простого калькулятора в android studio
Эта статья - лабораторная работа, предназначенная для введения в android разработку. Главной целью является создание работающего мобильного приложения с базовыми функциями калькулятора. Теоретическая...
👍4
Перед вами — книга-метод, книга-наставник, способная перевернуть мышление и помочь выработать осознанный подход к работе и жизни в целом путём высокоуровневого планирования.
В своей второй книге IT-архитектор, методолог, педагог Александр Бындю раскрывает наиболее эффективный на сегодняшний день метод стратегического планирования, получивший название «Карта гипотез». Карта учит, как достигать намеченной цели через гипотезы, и служит навигатором на этом пути. В основу книги легли годы практики, и с уверенностью можно сказать, что Карта гипотез позволяет создать стратегию достижения для самых амбициозных целей.
У Карты гипотез нет ограничений по области применения или роли пользователя — она будет полезна в самых разных ситуациях, от личного планирования до планирования работы огромной компании. Автор надеется, что его метод, которому посвящена эта книга, послужит вашему благополучию во всех сферах жизни.
Ознакомиться с книгой
В своей второй книге IT-архитектор, методолог, педагог Александр Бындю раскрывает наиболее эффективный на сегодняшний день метод стратегического планирования, получивший название «Карта гипотез». Карта учит, как достигать намеченной цели через гипотезы, и служит навигатором на этом пути. В основу книги легли годы практики, и с уверенностью можно сказать, что Карта гипотез позволяет создать стратегию достижения для самых амбициозных целей.
У Карты гипотез нет ограничений по области применения или роли пользователя — она будет полезна в самых разных ситуациях, от личного планирования до планирования работы огромной компании. Автор надеется, что его метод, которому посвящена эта книга, послужит вашему благополучию во всех сферах жизни.
Ознакомиться с книгой
👍1
Swift Utilities — Работа со SwiftData в Background
За годы работы разработчиком iOS, я собрал множество инструментов и полезных штук, которые облегчают процесс разработки. В этой статье, я хочу поделиться одним из таких инструментов. Это будет не большая статья. Я покажу, как пользоваться этой утилитой, продемонстрирую её в действии. Надеюсь, что статья окажется полезной для вас.
SwiftData отлично функционирует внутри View: достаточно добавить декоратор @ Query к свойству, и все будет работать 'из коробки'. Однако, когда возникает желание вынести работу со SwiftData в отдельный модуль, начинают появляться сложности, особенно касаемо выполнения операций в фоновом режиме.
https://habr.com/ru/articles/779450/
#ios
👉 @developer_mobila
За годы работы разработчиком iOS, я собрал множество инструментов и полезных штук, которые облегчают процесс разработки. В этой статье, я хочу поделиться одним из таких инструментов. Это будет не большая статья. Я покажу, как пользоваться этой утилитой, продемонстрирую её в действии. Надеюсь, что статья окажется полезной для вас.
SwiftData отлично функционирует внутри View: достаточно добавить декоратор @ Query к свойству, и все будет работать 'из коробки'. Однако, когда возникает желание вынести работу со SwiftData в отдельный модуль, начинают появляться сложности, особенно касаемо выполнения операций в фоновом режиме.
https://habr.com/ru/articles/779450/
#ios
👉 @developer_mobila
Хабр
Swift Utilities — Работа со SwiftData в Background
За годы работы разработчиком iOS, я собрал множество инструментов и полезных штук, которые облегчают процесс разработки. В этой статье, я хочу поделиться одним из таких инструментов. Это будет не...
👍1
Как интегрировать Dynamic Features в Android-приложение
Разбор о влиянии Play Feature Delivery на архитектуру приложения, миграции существующих фич и выборе динамических фич. Будет интересно для всех, кто хочет узнать больше об оптимизации и развитии Android-приложений.
0:00 Вступление
1:20 Содержание
2:27 Архитектура приложений до Play Feature Delivery
4:54 Влияние Play Feature Delivery на архитектуру приложения
7:34 Интеграция AvitoTech
8:12 Миграция существующих фичей
13:18 Какая фича должна быть динамической
15:42 Заключение
16:21 Благодарность патронам
https://www.youtube.com/watch?v=GjnK6xZ-0GM
#Android
👉 @developer_mobila
Разбор о влиянии Play Feature Delivery на архитектуру приложения, миграции существующих фич и выборе динамических фич. Будет интересно для всех, кто хочет узнать больше об оптимизации и развитии Android-приложений.
0:00 Вступление
1:20 Содержание
2:27 Архитектура приложений до Play Feature Delivery
4:54 Влияние Play Feature Delivery на архитектуру приложения
7:34 Интеграция AvitoTech
8:12 Миграция существующих фичей
13:18 Какая фича должна быть динамической
15:42 Заключение
16:21 Благодарность патронам
https://www.youtube.com/watch?v=GjnK6xZ-0GM
#Android
👉 @developer_mobila
👍1
Улучшение производительности Android-приложения NordVPN с помощью плагина Compose Compiler
Эта практика помогает нам использовать плагин Compose Compiler в качестве проверки Composable кода, что поддерживает стандарты кодирования и способствует повышению производительности приложения.
https://nordsecurity.com/blog/improving-nordvpn-android-compose-compiler
#Android
👉 @developer_mobila
Эта практика помогает нам использовать плагин Compose Compiler в качестве проверки Composable кода, что поддерживает стандарты кодирования и способствует повышению производительности приложения.
https://nordsecurity.com/blog/improving-nordvpn-android-compose-compiler
#Android
👉 @developer_mobila
Создаем свое первое приложение с помощью SwiftUI и SwiftData
https://www.youtube.com/watch?v=n4SCMC25BxY
#ios
👉 @developer_mobila
https://www.youtube.com/watch?v=n4SCMC25BxY
#ios
👉 @developer_mobila
YouTube
Create your first app with SwiftUI and SwiftData
You can find my fundraiser here: https://www.justgiving.com/page/swiftui-birthday-2023 – all donations welcome!
Get the code here: https://github.com/twostraws/FaceFacts
December 22nd is my birthday, and as usual I'll be live-streaming building a complete…
Get the code here: https://github.com/twostraws/FaceFacts
December 22nd is my birthday, and as usual I'll be live-streaming building a complete…
🔥2
Koin, Ktor & Paging in KMM | Compose Multiplatform
Kotlin Multiplatform Mobile (KMM) превратился из амбициозной идеи в стабильный и мощный фреймворк, предоставляющий разработчикам возможность беспрепятственно обмениваться кодом на разных платформах. Благодаря недавнему достижению стабильности KMM стал переломным моментом в мире кроссплатформенной разработки.
https://proandroiddev.com/koin-ktor-paging-in-kmm-1800b9fad7f3
#Android
👉 @developer_mobila
Kotlin Multiplatform Mobile (KMM) превратился из амбициозной идеи в стабильный и мощный фреймворк, предоставляющий разработчикам возможность беспрепятственно обмениваться кодом на разных платформах. Благодаря недавнему достижению стабильности KMM стал переломным моментом в мире кроссплатформенной разработки.
https://proandroiddev.com/koin-ktor-paging-in-kmm-1800b9fad7f3
#Android
👉 @developer_mobila
Enhancing Jetpack Compose app performance
Chapters:
00:00 – Introduction
00:10 – R8 and baseline profiles effects
01:17 – Measure → Debug → Improve
01:51 – Measure with Jetpack Macrobenchmark
03:53 – StartupMode explanation
05:02 – CompilationMode explanation
06:00 – Measure app startup and report fully drawn state
08:47 – Measure frame timing
09:55 – Debug with system tracing
12:46 – Add more information to system tracing
16:38 – Measure recompositions
18:02 – Layout Inspector and Composition Debugger
20:10 – Update Jetpack Compose!
20:30 – Generate a baseline profile
20:32 – Defer phases when frequently changing state
24:04 – Use BoxWithConstraints only when needed
24:48 – remember{} only heavy operations
25:26 – Load heavy images asynchronously
26:13 – Split heavy frames
27:13 – Outro
https://www.youtube.com/watch?v=Z96wfbID_Yc
#Android
👉 @developer_mobila
Chapters:
00:00 – Introduction
00:10 – R8 and baseline profiles effects
01:17 – Measure → Debug → Improve
01:51 – Measure with Jetpack Macrobenchmark
03:53 – StartupMode explanation
05:02 – CompilationMode explanation
06:00 – Measure app startup and report fully drawn state
08:47 – Measure frame timing
09:55 – Debug with system tracing
12:46 – Add more information to system tracing
16:38 – Measure recompositions
18:02 – Layout Inspector and Composition Debugger
20:10 – Update Jetpack Compose!
20:30 – Generate a baseline profile
20:32 – Defer phases when frequently changing state
24:04 – Use BoxWithConstraints only when needed
24:48 – remember{} only heavy operations
25:26 – Load heavy images asynchronously
26:13 – Split heavy frames
27:13 – Outro
https://www.youtube.com/watch?v=Z96wfbID_Yc
#Android
👉 @developer_mobila
YouTube
Enhancing Jetpack Compose app performance
In this video, Tomáš will demonstrate techniques for improving Jetpack Compose app performance through measurement, debugging, and strategic optimization.
You will gain insights into the effective use of Macrobenchmarks in Compose to understand startup and…
You will gain insights into the effective use of Macrobenchmarks in Compose to understand startup and…
👍1
AsyncStream in the real world: wrapping an Apple Photos callback
https://damian.fyi/swift/2023/12/03/asyncstream-in-the-real-world-wrapping-an-apple-photos-callback.html
#ios
👉 @developer_mobila
https://damian.fyi/swift/2023/12/03/asyncstream-in-the-real-world-wrapping-an-apple-photos-callback.html
#ios
👉 @developer_mobila
Damian Mehers’ blog
AsyncStream in the real world: wrapping an Apple Photos callback
I’ve read plenty of blog posts about Swift’s AsyncStream but never had a reason to use it to implement something myself until now. It was surprising easy.
👍1