Мобильная разработка #1 – Telegram
Мобильная разработка #1
3.98K subscribers
795 photos
85 videos
32 files
1.26K links
Всё о создании приложений под Android и iOS в одном месте.

🔹 Инструменты, библиотеки и ресурсы для ускорения работы.
🔹 Статьи и гайды для разработчиков любого уровня.
🔹 Тренды мобильной разработки и новости индустрии.

Реклама @evgenycarter
Download Telegram
Как защитить свой код от 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
👍1
Отслеживание утечек памяти в iOS-приложении со SwiftUI в Runtime

Рано или поздно каждый проект сталкивается с проблемой утечек памяти: растёт её использование, в отдельных сценариях приложение ведёт себя странно или вовсе аварийно завершается. Начинается долгий и мучительный поиск причин утечки и отладка кода.

В нашем проекте ставка сделана на использование 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
👍3
Adwaita-swift: теперь можно писать приложения для GNOME на языке Swift

Язык программирования 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
👍1👎1
Проектирование и создание приложений для watchOS 10

Погрузитесь в детали принципов проектирования watchOS и узнайте, как применять их в своем приложении с использованием SwiftUI. Мы покажем, как создать приложение для обновленного пользовательского интерфейса, чтобы отображать актуальную информацию, передавать сфокусированный контент одним взглядом и сделать навигацию последовательной и предсказуемой.

https://www.youtube.com/watch?v=BPJZ6A_brSw

#ios

👉 @developer_mobila
👍31
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
🔥2👍1
Карантин 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
Как мы отслеживаем просадки FPS в Альфа-Мобайл?

Всем привет ? я Максим Кузнецов 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
Опыт публикации Андроид приложения в Google Play независимым разработчиком в 2024 году

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
👍2
Никита Краснов — Удивительный мир внутри .ipa

В формате краткого воркшопа спикер рассказал, что есть внутри .ipa-файла, прошелся по самым часто встречающимся внутри файлам и показал, что интересного можно из них достать и как файлы можно модифицировать без вреда для приложения. Подробнее остановился на самом исполняемом файле: что интересно можно из него достать, не запуская и не используя дизассемблеры.

Мы узнали, как можно сравнить два приложения на схожесть, используя Hopper + BinDiff, и как сделать эти бинари отличающимися. Спикер объяснил, почему Apple знает, как зовут вашего юзера на компьютере, когда вы собираете приложение. Также пофантазировал на тему того, как Apple использует статический и динамический анализ .ipa во время ревью приложений для стора.

Доклад будет интересен разработчикам, которые создают White Label-приложения, а также всем, кто хорошо знает Swift, но при этом не знает, как приложение собирается и во что превращается на выходе.

Идея доклада родилась из необходимости публикации похожих приложений под разными названиями, а также из того, что Apple такие приложения не пропускает, ссылаясь на схожесть.

https://www.youtube.com/watch?v=C1PqxajPrks

#ios

👉 @developer_mobila
Пишем plugin для Jetbrains IDE: отображение файлов вне проекта в Project Tool

Доброго времени суток, дорогой читатель. Меня зовут Михаил, я Android-разработчик в компании Циан. Этой статьёй я открываю для себя цикл статей по внутренней кухне разработки плагинов для Jetbrains IDE: IDEA, Android Studio (AS) и пр. На дворе 2024 год, официальная документация не так богата информацией, как хотелось бы. Но есть исходники, которые смело можно дербанить. В этом цикле статей я буду описывать свой опыт поиска нужной мне информации и её разбор.

В статье мы разберёмся с тем, как отобразить каталог не из проекта в project tool.

https://habr.com/ru/companies/cian/articles/816149/

#Android

👉 @developer_mobila
🔥2👍1
Combine essentials in Swift - a quick guide

Apple's Combine framework provides a native way to write functional reactive code in our iOS applications. In this article, we'll go through basic Combine concepts and terms.

Let's directly jump in.

https://tanaschita.com/combine-essentials/

#ios

👉 @developer_mobila
👍2
Глубокие ссылки для локальных уведомлений в SwiftUI

Уведомления имеют решающее значение для удержания пользователей в приложении. Почти все мои приложения содержат уведомления, которые не только запускают приложение, но и ведут к различным частям приложения. Сегодня я хочу поделиться тем, как я создаю глубокие ссылки для локальных уведомлений в своих приложениях.

https://swiftwithmajid.com/2024/04/09/deep-linking-for-local-notifications-in-swiftui/

#ios

👉 @developer_mobila
Взлом и защита Android-приложений

Рассматриваем способы взлома и защиты. Пытаемся сначала атаковать приложение, а затем тут же защищаемся. А потом атакуем новую защиту, и так по кругу.

Сперва говорим о банальных вещах – таких, как просмотр данных приложения через снифферы трафика или просмотр байт-кода. Далее о более сложном: говорим об изменении поведения приложения через Frida и защите от этого с помощью C++. И в конце пытаемся взломать С++.

https://www.youtube.com/watch?v=jxRvLjAgE-A

#Android

👉 @developer_mobila
👍6