Telegram Web
Сергей Балалаев — 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
Пишем свой генератор ID для мобильных приложений

Привет, меня зовут Андрей Богомолов, я Android-разработчик в команде Performance приложения Wildberries.

Однажды, работая с кодом, я обратил внимание на использование UUID в UI и задумался о его влиянии на производительность. Тесты показали, что собственное решение может быть значительно быстрее стандартной реализации UUID в Java.

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

https://habr.com/ru/companies/wildberries/articles/844104/


#Android

👉 @developer_mobila
👍2
Как сделать мобильные приложения, которые приносят $3,000 в день

Четыре года назад я решил запустить стартап и начал создавать собственные мобильные приложения. 20 сентября прошлого года они начали приносить более 3,000 долларов в день (90% из них — на iOS). На следующий же день Apple удалила все мои приложения из App Store и заблокировала мой аккаунт.

Я отправлял апелляции, предъявлял доказательства, скриншоты и даже отправил досудебную претензию, но меня в основном игнорировали. Сейчас я подал иск против Apple, и на данный момент рынок iOS для меня закрыт.

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

https://www.reddit.com/r/iOSProgramming/comments/1d2ofpf/how_to_create_mobile_apps_that_make_3000_a_day/

#ios

👉 @developer_mobila
👍6
Обновления в адаптивных макетах Compose с I/O

В этом году на Google I/O было сделано множество интересных анонсов, причем не только в области искусственного интеллекта (хотя и это, безусловно, было важным моментом). Для меня ключевым моментом стало внимание к усовершенствованиям в Jetpack Compose для создания адаптивных макетов. Поскольку Android выходит за рамки смартфонов, переходя на планшеты, раскладушки и большие экраны, создание приложений, адаптирующихся к различным форм-факторам, становится как никогда актуальным.

https://proandroiddev.com/adaptive-compose-layouts-86b7f1e51338

#Android

👉 @developer_mobila
👍2
Sword — инъекция зависимостей во время компиляции

Это библиотека для инъекции зависимостей во время компиляции для Swift, вдохновленная Dagger.

Когда вы объявляете зависимости и указываете, как их удовлетворить, используя Swift Macros, Sword автоматически генерирует код инъекции зависимостей во время компиляции. Sword просматривает ваш код и проверяет графы зависимостей, гарантируя, что все зависимости объекта могут быть удовлетворены, что исключает ошибки в рантайме.

https://github.com/rockname/sword


#ios

👉 @developer_mobila
👍3
Погружение в мир Lint'a в Android-проекте

Статические анализаторы уже давно являются неотъемлемой частью разработки проектов не только на Android. Они позволяют выявлять ошибки, несоответствия стандартам code style, производительности или безопасности, обозначать какие-то узкие места, сокращать code review и т. д. Android Studio (далее просто студия) «из коробки» содержит огромное количество всевозможных проверок, но, как правило, этого недостаточно, всегда есть какие-то неучтённые проблемы, внутренние правила компании или команды разработки. Кратко расскажем про Lint, как начинали делать свои правила, с какими задачами сталкивались на первых этапах и как решали. Это поможет вам впервые погрузиться в тему, так как интернет весьма скуден на статьи по ней.

https://habr.com/ru/companies/domclick/articles/818067/


#Android

👉 @developer_mobila
👍4
Подборка Telegram каналов для программистов

Системное администрирование 📌
https://www.tgoop.com/sysadmin_girl Девочка Сисадмин
https://www.tgoop.com/srv_admin_linux Админские угодья
https://www.tgoop.com/linux_srv Типичный Сисадмин

https://www.tgoop.com/devops_star DevOps Star (Звезда Девопса)
https://www.tgoop.com/i_linux Системный администратор
https://www.tgoop.com/linuxchmod Linux
https://www.tgoop.com/sys_adminos Системный Администратор
https://www.tgoop.com/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://www.tgoop.com/sysadminof Книги для админов, полезные материалы
https://www.tgoop.com/i_odmin Все для системного администратора
https://www.tgoop.com/i_odmin_book Библиотека Системного Администратора
https://www.tgoop.com/i_odmin_chat Чат системных администраторов
https://www.tgoop.com/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://www.tgoop.com/sysadminoff Новости Линукс Linux

1C разработка 📌
https://www.tgoop.com/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌
https://www.tgoop.com/cpp_lib Библиотека C/C++ разработчика
https://www.tgoop.com/cpp_knigi Книги для программистов C/C++
https://www.tgoop.com/cpp_geek Учим C/C++ на примерах

Программирование Python 📌
https://www.tgoop.com/pythonofff Python академия. Учи Python быстро и легко🐍
https://www.tgoop.com/BookPython Библиотека Python разработчика
https://www.tgoop.com/python_real Python подборки на русском и английском
https://www.tgoop.com/python_360 Книги по Python Rus

Java разработка 📌
https://www.tgoop.com/BookJava Библиотека Java разработчика
https://www.tgoop.com/java_360 Книги по Java Rus
https://www.tgoop.com/java_geek Учим Java на примерах

GitHub Сообщество 📌
https://www.tgoop.com/Githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://www.tgoop.com/database_info Все про базы данных

Мобильная разработка: iOS, Android 📌
https://www.tgoop.com/developer_mobila Мобильная разработка
https://www.tgoop.com/kotlin_lib Подборки полезного материала по Kotlin

Фронтенд разработка 📌
https://www.tgoop.com/frontend_1 Подборки для frontend разработчиков
https://www.tgoop.com/frontend_sovet Frontend советы, примеры и практика!
https://www.tgoop.com/React_lib Подборки по React js и все что с ним связано

Разработка игр 📌
https://www.tgoop.com/game_devv Все о разработке игр

Библиотеки 📌
https://www.tgoop.com/book_for_dev Книги для программистов Rus
https://www.tgoop.com/programmist_of Книги по программированию
https://www.tgoop.com/proglb Библиотека программиста
https://www.tgoop.com/bfbook Книги для программистов
https://www.tgoop.com/books_reserv Книги для программистов

БигДата, машинное обучение 📌
https://www.tgoop.com/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning

Программирование 📌
https://www.tgoop.com/bookflow Лекции, видеоуроки, доклады с IT конференций
https://www.tgoop.com/coddy_academy Полезные советы по программированию
https://www.tgoop.com/rust_lib Полезный контент по программированию на Rust
https://www.tgoop.com/golang_lib Библиотека Go (Golang) разработчика
https://www.tgoop.com/itmozg Программисты, дизайнеры, новости из мира IT
https://www.tgoop.com/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
https://www.tgoop.com/nodejs_lib Подборки по Node js и все что с ним связано
https://www.tgoop.com/ruby_lib Библиотека Ruby программиста

QA, тестирование 📌
https://www.tgoop.com/testlab_qa Библиотека тестировщика

Шутки программистов 📌
https://www.tgoop.com/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://www.tgoop.com/thehaking Канал о кибербезопасности
https://www.tgoop.com/xakep_1 Статьи из "Хакера"

Книги, статьи для дизайнеров 📌
https://www.tgoop.com/ux_web Статьи, книги для дизайнеров

Английский 📌
https://www.tgoop.com/UchuEnglish Английский с нуля

Математика 📌
https://www.tgoop.com/Pomatematike Канал по математике
https://www.tgoop.com/phis_mat Обучающие видео, книги по Физике и Математике

Excel лайфхак📌
https://www.tgoop.com/Excel_lifehack

https://www.tgoop.com/tikon_1 Новости высоких технологий, науки и техники💡
https://www.tgoop.com/mir_teh Мир технологий (Technology World)

Вакансии 📌
https://www.tgoop.com/sysadmin_rabota Системный Администратор
https://www.tgoop.com/progjob Вакансии в IT
👍2
Как я решал задачу получения доступа к данным банковских приложений на iOS

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

Можно было бы эти категории записывать на листик или куда‑то в заметки, но я решил сделать iOS приложение, в котором можно добавлять выбранные категории кешбэка, а они уже будут выводиться в виде виджета.

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

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

#ios

👉 @developer_mobila
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Создаем атомный лоадер на Jetpack Compose

В этой статье мы создадим потрясающую 3D-анимацию Atomic Loader в Jetpack Compose

Эта анимация загрузчика вдохновлена оригинальной работой, созданной Мартином ван Дриелем с помощью HTML и CSS, которая распространяется по MIT License.

Я воссоздал этот эффект с помощью Jetpack Compose, чтобы перенести его на Android.

https://medium.com/@kappdev/how-to-create-an-atomic-loader-in-jetpack-compose-cbf0a74aa5fa

#Android

👉 @developer_mobila
👍1
Как встроить распознавание звуков в ваше iOS приложение на Swift с использованием SoundAnalysis

В мире, где ваш телефон умеет угадывать настроение по плейлисту, почему бы не научить его распознавать звуки вокруг? С помощью фреймворка SoundAnalysis это проще, чем кажется. Мы расскажем, как легко и с минимальными потерями для душевного здоровья интегрировать распознавание звуков в ваше iOS-приложение.

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

#ios

👉 @developer_mobila
👍2
Композим иконки. Улучшаем семантику и скорость отрисовки

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

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

#Android

👉 @developer_mobila
👍2
SwiftUI TextRenderer

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

Приятный момент заключается в том, что, хотя вам понадобится Xcode 16, TextRenderer совместим с iOS 17, так что не нужно ждать, пока iOS 18 станет популярной.

Table of Contents:
0:00 Introduction
1:06 The Basics
8:54 The Basics2
10:19 TextAttributes
14:15 LineRenderer
19:35 GlyphRenderer
24:07 AnimatedGlyphRenderer

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


#ios

👉 @developer_mobila
👍1
2025/10/26 05:31:38
Back to Top
HTML Embed Code: