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

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

Реклама @evgenycarter
Download Telegram
Media is too big
VIEW IN TELEGRAM
Навигация в будущее с Jetpack Navigation 3 — основные концепции

Изучите ключевые концепции Jetpack Navigation 3 и узнайте, как эта библиотека упрощает навигацию в приложениях на Compose. Разберитесь, как новая библиотека помогает создавать надёжные и гибкие системы навигации, опираясь на подход с управлением состоянием и предоставляя строительные блоки для различных сценариев использования.

Таймлайн:

* 0:00 — Вступление
* 1:05 — Что такое навигация?
* 2:08 — Согласованная архитектура
* 4:40 — Требования к навигации
* 5:26 — Почему это сложно
* 7:01 — Цели Navigation 3
* 9:02 — Управление backstack'ом
* 10:04 — Будущее

#Android

👉 @developer_mobila
👍31
Хроника изменений API фоновой работы в Android

Привет! Меня зовут Алексей, я работаю Android-разработчиком в Облаке Mail. Наше приложение выполняет важную задачу — хранит воспоминания пользователей. Для этого необходимо уметь правильно работать с файлами в фоне, чтобы не только надёжно хранить те самые воспоминания, но и быстро их загружать, редактировать и делиться. В этой статье я расскажу о том, как мы пришли к нашим современным методам фоновой работы в Android.

https://habr.com/ru/companies/vk/articles/916466/

#Android

👉 @developer_mobila
👍21
Media is too big
VIEW IN TELEGRAM
SwiftUI App Shortcuts

В этом видео я покажу, как можно создать ярлыки для приложений, которые будут отображаться в приложении Shortcuts, используя SwiftUI.

источник

#ios

👉 @developer_mobila
👍2
📲 Как сделать так, чтобы пользователи всегда возвращались туда, где они остановились в приложении?

⏺️ Присоединяйся к открытому вебинару «Flutter Deep Linking & State Restoration» 22 июля в 20:00 МСК. На вебинаре разберем:
— Типы диплинков во Flutter и как они работают с мобильными и веб-приложениями.
— Как выбрать правильную навигацию: Navigator 1.0 или Router API для сложных сценариев.
— State Restoration во Flutter: как сохранять и восстанавливать состояние после перезапуска.
— Использование Restorable Routes для автоматического возвращения на нужный экран.
❗️Этот вебинар — отличная тренировка перед стартом курса «Flutter Mobile Developer» от OTUS.
👉 Записаться на вебинар → https://vk.cc/cNLjn0

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
This media is not supported in your browser
VIEW IN TELEGRAM
Внедрение ИИ в ваше приложение: используем Foundation модели Apple

Первое, что я сделал, посмотрев кейноут WWDC25 и State of the Union — поигрался с новым API Liquid Glass. Мне потребовалось несколько дней, чтобы запустить Ice Cubes, а версия 2.0 будет в полной мере использовать новейшую систему дизайна Liquid Glass в iOS, iPadOS и MacOS.

https://dimillian.medium.com/bringing-on-device-ai-to-your-app-using-apples-foundation-models-8a1df297eeaa

#ios

👉 @developer_mobila
👍2
Функциональное программирование в Android. Знакомство с парадигмой

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

Эта статья открывает цикл материалов о функциональном программировании. В нём мы разберёмся, что из этой парадигмы можно применять в архитектуре Android-приложений, а на что стоит смотреть с осторожностью. Но прежде нужно глубже погрузиться в суть функционального программирования.

Сегодня поговорим о теории функционального программирования, её особенностях и о том, что оно может дать вашему приложению. Всё это — на примере моего собственного знакомства с функциональным программированием. Оно уже переросло в идею написать pet-проект на функциональной архитектуре, кстати, но обо всём по порядку.

https://habr.com/ru/companies/dododev/articles/917222/

#Android

👉 @developer_mobila
👍3
📲Хотите научиться разрабатывать кросс-платформенные приложения с использованием Kotlin и Android?

23 июля в 20:00 МСК проведём открытый вебинар в преддверии курса «Android Developer», на котором соберем простое приложение для отображения списка контактов. Вы узнаете, как подключить сеть и локальную базу данных, и запустите приложение на Android, iOS и Desktop. Используя Kotlin и JetBrains Compose, мы покажем, как создавать кросс-платформенные приложения с минимальными усилиями.

Этот урок — идеальный старт для тех, кто хочет освоить кросс-платформенную разработку. Познакомьтесь с библиотеками для работы с сетью и базами данных, а также получите основы работы с JetBrains Compose — современным фреймворком для создания UI.

🔥Все участники получат скидку на большое обучение. Регистрация открыта: https://vk.cc/cNMTiv

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Я обогнал Google?

Навигация в Compose больше не проблема
Всем привет! Меня зовут Евгений, и я — Android-разработчик. Я не собираюсь соревноваться с Google, но, кажется, кое в чем я их все-таки обогнал.

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

https://habr.com/ru/articles/918562/

#Android

👉 @developer_mobila
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Оборачиваем любой Composable красивой ленточкой

В этой небольшой статье мы узнаем, как создать модификатор ленты, который рисует контур, обтекающий любой элемент интерфейса Compose. Этот эффект можно использовать в качестве эффекта наведения курсора на нужную кнопку или для привлечения внимания к новому действию.

https://www.sinasamaki.com/wrapping-a-fancy-ribbon-around-any-jetpack-composable/

#Android

👉 @developer_mobila
👍5
Работа с телевизионными каналами на Android TV: учимся использовать TIF в 2025. Стартовый гайд для разработчиков

Всем привет! Меня зовут Андрей Юрин, я android-разработчик в онлайн-кинотеатре KION. При создании приложения под Android TV у вас наверняка могут возникнуть вопросы: как получить доступ к списку телевизионных каналов и как организовать у себя трансляцию? В этом материале я отвечу на них и расскажу про взаимодействие с телевизором с помощью Android TV Input Framework (TIF), а также получение через него списка доступных каналов. По сути это первый шаг к созданию полноценного TV-приложения.

https://habr.com/ru/companies/ru_mts/articles/928726/

#Android

👉 @developer_mobila
👍3
PWA и WebView — как сделать ваше веб-приложение доступным в офлайн-режиме

Привет! Меня зовут Алексей Егоров. Сегодня поговорим про офлайн-режим в PWA и WebView, без лишней теории и с прицелом на мобильные приложения. В разработке я уже больше трёх лет, большую часть этого времени посвятил WebView и мобильным решениям. В этом материале мы разберём, как работают PWA и WebView в офлайн-режиме, посмотрим на инструменты, которые помогают реализовать такую функциональность, и в завершении я поделюсь примером: какую технологию мы выбрали для календаря и как внедрили офлайн-режим на практике.

https://habr.com/ru/companies/vk/articles/931048/

#Android

👉 @developer_mobila
👍3
🤖 Тест по Flutter проверь свои знания, готов ли ты к обучению на курсе.

Ответишь — пройдешь на курс "Flutter Mobile Developer" от OTUS по специальной цене + получишь доступ к записям открытых уроков курса

За 6 месяцев вы освоите Dart, Flutter и ключевые инструменты разработки, создадите несколько приложений, получите поддержку преподавателей и выполните проект для портфолио.

➡️ ПРОЙТИ ТЕСТ И ОЗНАКОМИТСЯ С ПРОГРАММОЙ: https://vk.cc/cO7pt0

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👎2
Media is too big
VIEW IN TELEGRAM
Как сделать эффект «жидкого стекла» от Apple в Figma

Пошаговое руководство по созданию эффекта «жидкого стекла» в Figma — с объяснением, почему мы меняем каждое свойство.

СОДЕРЖАНИЕ:
0:00 — Вступление
0:49 — Добавление текстурного эффекта
2:09 — Добавление размытия фона
4:09 — Встраивание в кнопку с авто-лейаутом
7:04 — Создание псевдорамы с помощью внутренних теней
9:16 — Заливка кнопки и улучшение видимости текста
10:03 — Итог и завершение

источник

#Android

👉 @developer_mobila
👍4
Media is too big
VIEW IN TELEGRAM
Молот и наковальня iOS-разработчика
Василий Усов, Кирилл Шумаков

Спикеры рассказали о macOS-приложении RaifMagic — внутреннем инструменте Райффайзен Банка, который их команда создала в рамках работы над мобильным приложением для клиентов.

RaifMagic — мощный инструмент для iOS-разработчиков, созданный для упрощения, ускорения и автоматизации ежедневных рабочих задач, а также для унификации и стандартизации окружения и контроля качества программного кода. С момента создания как обертки над командной строкой приложение прошло путь эволюции и превратилось в «центр управления полетами». Если Xcode — это молот, то мы создали наковальню.

Создание внутренних инструментов для разработчиков — привычная практика для любой крупной компании. Зачастую это заканчивается созданием папки noscripts с кучей bash-скриптов и постоянным запуском терминала с вводом консольных команд. Мы пошли дальше и постарались сделать инструмент с удобным графическим интерфейсом для запуска генерации проекта. Но даже не предполагали, куда это нас приведет.

Сегодня приложение имеет интегрированный с Swift Concurrency механизм запуска консольных команд, самописную систему автообновления и контроля требуемой для генерации проекта версии, систему контроля и развертывания окружения, систему проверки качества кода, систему интеграции с GitLab для назначения ревьюеров на merge requests, специальный интерфейс для работы с фича-тогглами, позволяющий контролировать срок их жизни, и многие другие функции.

Обо всем этом — в докладе. Спикеры уверены, что история окажется полезной для других команд, размышляющих над созданием подобных инструментов. А некоторые решения мы выложим в open source.

источник

#ios

👉 @developer_mobila
1
Пошаговое руководство по написанию эксплойта ядра iOS

Эксплойты ядра iOS всегда вызывали у меня огромный интерес. За последние годы эксплуатация ядра стала значительно сложнее, и традиционные уязвимости (например, связанные с повреждением виртуальной памяти) стали встречаться реже.

Тем не менее, летом 2023 года felix-pb выпустил три эксплойта под названием kfd. Это были первые опубликованные эксплойты ядра, работавшие на iOS 15.6 и выше.

https://habr.com/ru/companies/bastion/articles/920922/

original https://alfiecg.uk/2024/09/24/Kernel-exploit.html

#ios

👉 @developer_mobila
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Лаборатория в смартфоне: изучаем эффект Доплера на палочках в Android

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

https://habr.com/ru/articles/920738/

#Android

👉 @developer_mobila
👍32
Использование enumerated() с SwiftUI List и ForEach для отображения номеров элементов

При отображении элементов в SwiftUI иногда нужно показать их позицию в последовательности — например, для списка инструкций или ранжированных результатов.
Обычный способ сделать это — вызвать enumerated() для коллекции. Этот метод возвращает EnumeratedSequence, который представляет собой последовательность пар (offset, element), где offset — это счётчик, начинающийся с нуля, а element — соответствующее значение из исходной коллекции.

До недавнего времени enumerated() не был напрямую совместим с ForEach или List в SwiftUI, так как его результат не соответствовал протоколу RandomAccessCollection. В качестве обходного решения приходилось оборачивать последовательность в массив.


RecipeStepsView: View {
let steps = [
"Chop lettuce, tomatoes, and cucumber.",
"Drizzle with olive oil and lemon juice.",
"Toss gently and serve."
]

var body: some View {
VStack(alignment: .leading) {
ForEach(
Array(steps.enumerated()), id: \.element
) { offset, step in
Text("\(offset + 1). \(step)")
}
}
}
}


https://nilcoalescing.com/blog/UsingEnumeratedWithListAndForEach/

#ios

👉 @developer_mobila
👍21
NoDPI4Android. Решаем проблему «деградации» YouTube теперь и на Android

Многие мои знакомые и люди в комментариях просили сделать версию под Android и Android TV. Я не очень дружу с Джавой и с Джавой под андроид в особенности, и поэтому такая перспектива меня не очень прельщала, но у меня был опыт написания android-приложений на python и kivy, который я и решил применить. После нескольких дней (и ночей) напряженного труда и танцев с бубном, мне наконец удалось создать NoDPI for Android, который практически не имеет аналогов. Именно о нем я и хочу сегодня рассказать. Надеюсь, статья будет вам полезна и интересна. Поехали!

https://habr.com/ru/articles/923566/

#Android

👉 @developer_mobila
👍21
Media is too big
VIEW IN TELEGRAM
Dependency Injection in iOS Explained (with SwiftUI)

Chapters:
0:00 What Is Dependency Injection?
0:51 Types of Dependency Injection
1:41 Initializer Injection Example
3:08 Why Use Dependency Injection?
4:18 DI in SwiftUI: Using @EnvironmentObject
6:05 Manual Injection in SwiftUI (via init)
6:44 EnvironmentObject vs Manual Injection
7:38 Manual DI vs DI Containers
8:37 When to Use DI — and When It’s Overkill

источник

#ios

👉 @developer_mobila
👍2
📱System Design в мобильной разработке — это про архитектуру, которая выходит за рамки экранов и навигации.

Чтобы приложения масштабировались, выдерживали нагрузку и не ломались при росте — нужен системный подход.

Как выстроить его на практике? Подробно обсудим это на Podlodka Android Crew, 15-19 сентября.

В программе:

🧩 Бинарная совместимость: где с ней сталкиваются мобильные разработчики и какие ошибки чаще всего приводят к проблемам. (Абакар Магомедов, Альфа-Банк)

🏗️ Мобильный архитектор: какие решения он принимает и почему без этой роли сложно развивать сложные приложения. (Эдуард Некрутов, Blink)

⚙️ Dependency Injection в KMP: обзор фреймворков и разбор, как выбрать подходящее решение под проект. (Александр Власюк, РайффайзенБанк)

⚡️BDUI в Android: опыт от DivKit, Beduin и Duit. Как перестать хардкодить экраны и ускорить эксперименты, чтобы быстрее проверять гипотезы.

🔗 Подключайся — будет полезно

По промокоду для подписчиков скидка 500 р: android_crew_14_URPLjQ
Эффекты в Jetpack Compose, лежащие на поверхности

Jetpack Compose, про хитрости которого пойдет речь в этой статье, уже уверенно вошел в индустрию мобильной разработки, но получение некоторых визуальных эффектов до сих пор не так очевидно, как хотелось бы.

Например – как нарисовать полупрозрачный заголовок с эффектом размытия над готовым экраном? Звучит достаточно просто, но на деле Compose не предоставляет для этого готовых инструментов. Приходится что-то изобретать. В данной статье приведен как раз один из способов «наложения» эффекта рендеринга на готовый контент (да-да, заголовок статьи именно про это – эффекты на готовой поверхности).

Дисклеймер: статья рассчитана на читателя продвинутого уровня, уже знакомого с Jetpack Compose и Android-разработкой в целом.

https://habr.com/ru/companies/finam_broker/articles/924802/

#Android

👉 @developer_mobila
👍5