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
Отслеживание утечек памяти в iOS-приложении со SwiftUI в Runtime
Рано или поздно каждый проект сталкивается с проблемой утечек памяти: растёт её использование, в отдельных сценариях приложение ведёт себя странно или вовсе аварийно завершается. Начинается долгий и мучительный поиск причин утечки и отладка кода.
В нашем проекте ставка сделана на использование SwiftUI, что затрудняет решение задачи: из-за декларативности подхода и отсутствия явно выраженного жизненного цикла в UI, обнаружить причину утечки памяти сложнее.
В этой статье мы:
1) пройдёмся по основным подходам к поиску утечек;
2) попробуем найти способ сделать его обнаружение утечек менее болезненным;
3) выясним, можно ли каким-то образом застраховаться от утечек в будущем развитии проекта.
https://habr.com/ru/companies/banki/articles/836924/
#ios
👉 @developer_mobila
Рано или поздно каждый проект сталкивается с проблемой утечек памяти: растёт её использование, в отдельных сценариях приложение ведёт себя странно или вовсе аварийно завершается. Начинается долгий и мучительный поиск причин утечки и отладка кода.
В нашем проекте ставка сделана на использование SwiftUI, что затрудняет решение задачи: из-за декларативности подхода и отсутствия явно выраженного жизненного цикла в UI, обнаружить причину утечки памяти сложнее.
В этой статье мы:
1) пройдёмся по основным подходам к поиску утечек;
2) попробуем найти способ сделать его обнаружение утечек менее болезненным;
3) выясним, можно ли каким-то образом застраховаться от утечек в будущем развитии проекта.
https://habr.com/ru/companies/banki/articles/836924/
#ios
👉 @developer_mobila
👍1
Новые коллекции в Android
В 2018 году в androidx появился новый пакет collection, который содержал несколько специфичных структур данных, переписанных на Kotlin, таких как LongSparseArray, SimpleArrayMap и SparseArrayCompat.
На тот период Kotlin только начинал набирать обороты в Android разработке и добавление новых более эффективных коллекций, полностью написанных на нём было одним из шагов по внедрению языка.
https://habr.com/ru/articles/811415/
#Android
👉 @developer_mobila
В 2018 году в androidx появился новый пакет collection, который содержал несколько специфичных структур данных, переписанных на Kotlin, таких как LongSparseArray, SimpleArrayMap и SparseArrayCompat.
На тот период Kotlin только начинал набирать обороты в Android разработке и добавление новых более эффективных коллекций, полностью написанных на нём было одним из шагов по внедрению языка.
https://habr.com/ru/articles/811415/
#Android
👉 @developer_mobila
👍3
Adwaita-swift: теперь можно писать приложения для GNOME на языке Swift
Язык программирования Swift наиболее широко применяется в разработке программного обеспечения для операционных систем от компании Apple. Но не так давно появилась заметка, в которой говорится, что теперь на этом языке можно писать программы, основанные на GTK4+Libadwaita.
В статье рассмотрим несколько небольших примеров, иллюстрирующих применение Swift в разработке приложений для GNOME, а в конце создадим простенький генератор паролей.
https://habr.com/ru/companies/first/articles/837724/
#ios
👉 @developer_mobila
Язык программирования Swift наиболее широко применяется в разработке программного обеспечения для операционных систем от компании Apple. Но не так давно появилась заметка, в которой говорится, что теперь на этом языке можно писать программы, основанные на GTK4+Libadwaita.
В статье рассмотрим несколько небольших примеров, иллюстрирующих применение Swift в разработке приложений для GNOME, а в конце создадим простенький генератор паролей.
https://habr.com/ru/companies/first/articles/837724/
#ios
👉 @developer_mobila
🤩1💅1
Media is too big
VIEW IN TELEGRAM
Всегда ли нужна чистая архитектура?
Все в андройд разработке знакомы с чистой архитектурой, обсуждаем письмо в котором ставится под сомнение целесообразность её использования
источник
#Android
👉 @developer_mobila
Все в андройд разработке знакомы с чистой архитектурой, обсуждаем письмо в котором ставится под сомнение целесообразность её использования
источник
#Android
👉 @developer_mobila
👍1👎1
Проектирование и создание приложений для watchOS 10
Погрузитесь в детали принципов проектирования watchOS и узнайте, как применять их в своем приложении с использованием SwiftUI. Мы покажем, как создать приложение для обновленного пользовательского интерфейса, чтобы отображать актуальную информацию, передавать сфокусированный контент одним взглядом и сделать навигацию последовательной и предсказуемой.
https://www.youtube.com/watch?v=BPJZ6A_brSw
#ios
👉 @developer_mobila
Погрузитесь в детали принципов проектирования watchOS и узнайте, как применять их в своем приложении с использованием SwiftUI. Мы покажем, как создать приложение для обновленного пользовательского интерфейса, чтобы отображать актуальную информацию, передавать сфокусированный контент одним взглядом и сделать навигацию последовательной и предсказуемой.
https://www.youtube.com/watch?v=BPJZ6A_brSw
#ios
👉 @developer_mobila
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…
👍3✍1
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
👉 @developer_mobila
В последние годы Swift постепенно демонстрирует свой потенциал для кроссплатформенной разработки. В этой статье я поделюсь своим опытом и попытками использовать язык Swift для разработки встроенных систем на плате SwiftIO.
https://fatbobman.com/en/posts/developing-embedded-applications-with-swift/
#ios
👉 @developer_mobila
🔥2👍1
Toggle Labels With Icons — Personalizing Accessibility
https://eevis.codes/blog/2024-04-21/toggle-labels-with-icons-personalizing-accessibility/
#Android
👉 @developer_mobila
https://eevis.codes/blog/2024-04-21/toggle-labels-with-icons-personalizing-accessibility/
#Android
👉 @developer_mobila
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.
Карантин UI-тестов в iOS
Сегодня я расскажу о нестабильных UI-тестах в iOS, и как мы с ними справляемся.
Мы уделяем массу внимания UI-тестам, ведь именно они обеспечивают качество и стабильность в наших iOS-приложениях. Сейчас у нас включено около 600 UI-тестов: они гоняются утром, вечером и на каждом PR в develop. О том, как мы обеспечиваем качество мобильной разработки есть отдельная статья.
Рано или поздно большое количество UI-тестов скорее всего начнут тормозить разработку, потому что их стабильность зависит от множества факторов: стенды (API), инфраструктура (обновление Xcode, машин, СI), кодовая база. Даже из‑за проблем в самом XCUITest тесты могут начать выдавать аномалии.
https://habr.com/ru/companies/hh/articles/807351/
#ios
👉 @developer_mobila
Сегодня я расскажу о нестабильных UI-тестах в iOS, и как мы с ними справляемся.
Мы уделяем массу внимания UI-тестам, ведь именно они обеспечивают качество и стабильность в наших iOS-приложениях. Сейчас у нас включено около 600 UI-тестов: они гоняются утром, вечером и на каждом PR в develop. О том, как мы обеспечиваем качество мобильной разработки есть отдельная статья.
Рано или поздно большое количество UI-тестов скорее всего начнут тормозить разработку, потому что их стабильность зависит от множества факторов: стенды (API), инфраструктура (обновление Xcode, машин, СI), кодовая база. Даже из‑за проблем в самом XCUITest тесты могут начать выдавать аномалии.
https://habr.com/ru/companies/hh/articles/807351/
#ios
👉 @developer_mobila
Как мы отслеживаем просадки FPS в Альфа-Мобайл?
Всем привет ? я Максим Кузнецов a.k.a. Android-developer из Альфа-Мобайл. В этой статье хочу поделиться нашим опытом внедрения механизмов мониторинга производительности в продукты компании. Почему это важно? Потому что производительность напрямую влияет на опыт пользователей, рейтинги приложений и конверсии. Мы рассмотрим статистику, проблемы, наш горький опыт и планы на будущее. Давайте начнем! ?
https://habr.com/ru/companies/alfa/articles/812161/
#Android
👉 @developer_mobila
Всем привет ? я Максим Кузнецов a.k.a. Android-developer из Альфа-Мобайл. В этой статье хочу поделиться нашим опытом внедрения механизмов мониторинга производительности в продукты компании. Почему это важно? Потому что производительность напрямую влияет на опыт пользователей, рейтинги приложений и конверсии. Мы рассмотрим статистику, проблемы, наш горький опыт и планы на будущее. Давайте начнем! ?
https://habr.com/ru/companies/alfa/articles/812161/
#Android
👉 @developer_mobila
👍1
Путешествие к центру Композиции
В продолжение разборов внутреннего устройства Compose Runtime Дмитрий рассказывает о Композиции — ключевом механизме фреймворка, без которого Compose и вовсе был бы не Compose.
В докладе рассмотрено, когда и где создается композиция, какие структуры данных используются для этого, а также как именно внесенные изменения обновляют дерево Composable-компонентов.
https://www.youtube.com/watch?v=L8mc7ZnO5zY
#Android
👉 @developer_mobila
В продолжение разборов внутреннего устройства Compose Runtime Дмитрий рассказывает о Композиции — ключевом механизме фреймворка, без которого Compose и вовсе был бы не Compose.
В докладе рассмотрено, когда и где создается композиция, какие структуры данных используются для этого, а также как именно внесенные изменения обновляют дерево Composable-компонентов.
https://www.youtube.com/watch?v=L8mc7ZnO5zY
#Android
👉 @developer_mobila
YouTube
Дмитрий Григорьев — Путешествие к центру Композиции
Подробнее о конференции Mobius: https://jrg.su/ojGU3B
— —
Дмитрий Григорьев – Android-разработчик, интересуется декларативной и кроссплатформенной разработкой. Пишет и рассказывает про Jetpack Compose в своем Telegram — https://news.1rj.ru/str/mobile_compose, и на YouTube…
— —
Дмитрий Григорьев – Android-разработчик, интересуется декларативной и кроссплатформенной разработкой. Пишет и рассказывает про Jetpack Compose в своем Telegram — https://news.1rj.ru/str/mobile_compose, и на YouTube…
Опыт публикации Андроид приложения в Google Play независимым разработчиком в 2024 году
https://habr.com/ru/articles/814025/
#Android
👉 @developer_mobila
https://habr.com/ru/articles/814025/
#Android
👉 @developer_mobila
Сергей Балалаев — 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
👉 @developer_mobila
Стартуя проект на 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
👉 @developer_mobila
YouTube
Сергей Балалаев — SwiftUI-навигация: просто, нативно и декларативно
Подробнее о конференции Mobius: https://jrg.su/ojGU3B
— —
Стартуя проект на SwiftUI 2.0 в конце 2021 года, Сергей с командой избрали тактику минимального использования UIKit, в том числе в вопросах навигации. Кроме того, они не стали создавать собственный…
— —
Стартуя проект на SwiftUI 2.0 в конце 2021 года, Сергей с командой избрали тактику минимального использования UIKit, в том числе в вопросах навигации. Кроме того, они не стали создавать собственный…
👍2
Никита Краснов — Удивительный мир внутри .ipa
В формате краткого воркшопа спикер рассказал, что есть внутри .ipa-файла, прошелся по самым часто встречающимся внутри файлам и показал, что интересного можно из них достать и как файлы можно модифицировать без вреда для приложения. Подробнее остановился на самом исполняемом файле: что интересно можно из него достать, не запуская и не используя дизассемблеры.
Мы узнали, как можно сравнить два приложения на схожесть, используя Hopper + BinDiff, и как сделать эти бинари отличающимися. Спикер объяснил, почему Apple знает, как зовут вашего юзера на компьютере, когда вы собираете приложение. Также пофантазировал на тему того, как Apple использует статический и динамический анализ .ipa во время ревью приложений для стора.
Доклад будет интересен разработчикам, которые создают White Label-приложения, а также всем, кто хорошо знает Swift, но при этом не знает, как приложение собирается и во что превращается на выходе.
Идея доклада родилась из необходимости публикации похожих приложений под разными названиями, а также из того, что Apple такие приложения не пропускает, ссылаясь на схожесть.
https://www.youtube.com/watch?v=C1PqxajPrks
#ios
👉 @developer_mobila
В формате краткого воркшопа спикер рассказал, что есть внутри .ipa-файла, прошелся по самым часто встречающимся внутри файлам и показал, что интересного можно из них достать и как файлы можно модифицировать без вреда для приложения. Подробнее остановился на самом исполняемом файле: что интересно можно из него достать, не запуская и не используя дизассемблеры.
Мы узнали, как можно сравнить два приложения на схожесть, используя Hopper + BinDiff, и как сделать эти бинари отличающимися. Спикер объяснил, почему Apple знает, как зовут вашего юзера на компьютере, когда вы собираете приложение. Также пофантазировал на тему того, как Apple использует статический и динамический анализ .ipa во время ревью приложений для стора.
Доклад будет интересен разработчикам, которые создают White Label-приложения, а также всем, кто хорошо знает Swift, но при этом не знает, как приложение собирается и во что превращается на выходе.
Идея доклада родилась из необходимости публикации похожих приложений под разными названиями, а также из того, что Apple такие приложения не пропускает, ссылаясь на схожесть.
https://www.youtube.com/watch?v=C1PqxajPrks
#ios
👉 @developer_mobila
YouTube
Никита Краснов — Удивительный мир внутри .ipa
Подробнее о конференции Mobius: https://jrg.su/ojGU3B
— —
В формате краткого воркшопа спикер рассказал, что есть внутри .ipa-файла, прошелся по самым часто встречающимся внутри файлам и показал, что интересного можно из них достать и как файлы можно модифицировать…
— —
В формате краткого воркшопа спикер рассказал, что есть внутри .ipa-файла, прошелся по самым часто встречающимся внутри файлам и показал, что интересного можно из них достать и как файлы можно модифицировать…