Функциональный стиль: объясняю как другу
«Функциональное программирование», «Immutable значения», «Pure функции».
Тоже слышал эти умные слова?
И ты такой: «Что? Можно просто for написать?»
Спокойно. Сейчас все разложим по полочкам. Даже если ты пишешь var a = 1 и гордишься этим - ты свой. Погнали.
Статья: https://habr.com/ru/articles/926900/
Платформа: iOS
«Функциональное программирование», «Immutable значения», «Pure функции».
Тоже слышал эти умные слова?
И ты такой: «Что? Можно просто for написать?»
Спокойно. Сейчас все разложим по полочкам. Даже если ты пишешь var a = 1 и гордишься этим - ты свой. Погнали.
Статья: https://habr.com/ru/articles/926900/
Платформа: iOS
👍2
Развитие программ раннего доступа Android: Canary канал
Чтобы лучше поддерживать разработчиков и предоставлять более ранний и постоянный доступ к функциям, находящимся в разработке, Google объявляет о существенном обновлении программы предварительных версий. В будущем платформа Android будет иметь Canary канал релизов, который заменит предыдущую программу developer preview для разработчиков. Этот Canary канал будет функционировать параллельно с существующей программой бета-тестирования.
Это изменение призвано предоставить более упорядоченную и постоянную возможность опробовать новые возможности платформы и отправлять отзывы в течение всего года, а не только в первые месяцы нового цикла выпуска.
Новость: https://apptractor.ru/info/news/razvitie-programm-rannego-dostupa-android-canary-kanal.html
Платформа: Android
Чтобы лучше поддерживать разработчиков и предоставлять более ранний и постоянный доступ к функциям, находящимся в разработке, Google объявляет о существенном обновлении программы предварительных версий. В будущем платформа Android будет иметь Canary канал релизов, который заменит предыдущую программу developer preview для разработчиков. Этот Canary канал будет функционировать параллельно с существующей программой бета-тестирования.
Это изменение призвано предоставить более упорядоченную и постоянную возможность опробовать новые возможности платформы и отправлять отзывы в течение всего года, а не только в первые месяцы нового цикла выпуска.
Новость: https://apptractor.ru/info/news/razvitie-programm-rannego-dostupa-android-canary-kanal.html
Платформа: Android
👍2
Как [iOS] разработчику сделать хорошее резюме (которое действительно привлечет внимание ведущих компаний)
Возможно, вы отличный iOS-разработчик. Вы создавали приложения, исправляли сбои, работали над фичами и оптимизировали экраны. Но все равно… никто не звонит.
Я прошел через это. Я отправил более 30 откликов и получил, может быть, один ответ — отказ.
А сейчас? Я получаю приглашения на собеседования от FANG команд, ведущих транснациональных корпораций и некоторых довольно классных компаний-разработчиков продуктов.
Я прошел собеседования в Walmart, Amazon и даже попал в базы талантов компаний, которые раньше казались мне недостижимыми.
И нет, я не создал приложение на миллиард долларов.
Но я создал резюме, которое обращается как к людям, так и к машинам.
Статья: https://apptractor.ru/info/articles/prepare-a-strong-resume.html
Платформа: карьера
Возможно, вы отличный iOS-разработчик. Вы создавали приложения, исправляли сбои, работали над фичами и оптимизировали экраны. Но все равно… никто не звонит.
Я прошел через это. Я отправил более 30 откликов и получил, может быть, один ответ — отказ.
А сейчас? Я получаю приглашения на собеседования от FANG команд, ведущих транснациональных корпораций и некоторых довольно классных компаний-разработчиков продуктов.
Я прошел собеседования в Walmart, Amazon и даже попал в базы талантов компаний, которые раньше казались мне недостижимыми.
И нет, я не создал приложение на миллиард долларов.
Но я создал резюме, которое обращается как к людям, так и к машинам.
Статья: https://apptractor.ru/info/articles/prepare-a-strong-resume.html
Платформа: карьера
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
DynamicBottomSheet - гибко настраиваемый
DynamicBottomSheet на GitHub: https://github.com/Savva-Shuliatev/DynamicBottomSheet
Платформа: iOS
⭐️: 16
UIView для iOS-приложений, созданный на Swift. Этот пакет Swift предоставляет легко интегрируемое выдвигающееся снизу представление с поддержкой динамического выбора высоты, анимацией, настройками и позволяет разработчикам легко создавать адаптивные и интерактивные пользовательские интерфейсы.DynamicBottomSheet на GitHub: https://github.com/Savva-Shuliatev/DynamicBottomSheet
Платформа: iOS
⭐️: 16
🔥5
ИИ замедляет работу разработчиков - мы может объяснить почему
Когда мы пишем программное обеспечение, реальным продуктом является наша ментальная модель созданной нами программы. Именно эта модель позволила нам создать программное обеспечение, и в будущем она позволит нам понимать систему, диагностировать проблемы в ней и эффективно работать с ней. Если вы согласны с этой теорией, как и я, то она объясняет такие вещи, как то, почему все ненавидят устаревший код, почему небольшие команды могут превосходить по производительности более крупные, почему аутсорсинг обычно заканчивается плохо и т.д.
Мы знаем, что программисты, участвовавшие в исследовании Metr, — это люди с чрезвычайно хорошо развитыми ментальными моделями проектов, над которыми они работают. И мы также знаем, что LLM, которые они использовали, не имели реального доступа к этим ментальным моделям. Разработчики могли предоставить части этой ментальной модели своим инструментам искусственного интеллекта, но это медленный и неэффективный процесс, который никогда не сможет полностью отразить теорию программы, существующую в их умах. Передав свою работу по разработке программного обеспечения LLM, они ограничили свою уникальную способность эффективно работать с кодовой базой.
Статья: https://apptractor.ru/info/articles/ii-zamedlyaet-rabotu-razrabotchikov-my-mozhet-obyasnit-pochemu.html
Платформа: искусственный интеллект
Когда мы пишем программное обеспечение, реальным продуктом является наша ментальная модель созданной нами программы. Именно эта модель позволила нам создать программное обеспечение, и в будущем она позволит нам понимать систему, диагностировать проблемы в ней и эффективно работать с ней. Если вы согласны с этой теорией, как и я, то она объясняет такие вещи, как то, почему все ненавидят устаревший код, почему небольшие команды могут превосходить по производительности более крупные, почему аутсорсинг обычно заканчивается плохо и т.д.
Мы знаем, что программисты, участвовавшие в исследовании Metr, — это люди с чрезвычайно хорошо развитыми ментальными моделями проектов, над которыми они работают. И мы также знаем, что LLM, которые они использовали, не имели реального доступа к этим ментальным моделям. Разработчики могли предоставить части этой ментальной модели своим инструментам искусственного интеллекта, но это медленный и неэффективный процесс, который никогда не сможет полностью отразить теорию программы, существующую в их умах. Передав свою работу по разработке программного обеспечения LLM, они ограничили свою уникальную способность эффективно работать с кодовой базой.
Статья: https://apptractor.ru/info/articles/ii-zamedlyaet-rabotu-razrabotchikov-my-mozhet-obyasnit-pochemu.html
Платформа: искусственный интеллект
👍2👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Создание красивой кнопки с прогрессом в Jetpack Compose
Мы собираемся создать многоразовый компонент
Статья: https://apptractor.ru/info/articles/sozdanie-krasivoy-knopki-s-progressom-v-jetpack-compose.html
Платформа: Android
Мы собираемся создать многоразовый компонент
ProgressButton. Эта кнопка будет иметь анимацию прогресса, которая заполняет кнопку слева направо. Ключевой особенностью этого компонента является его способность обрезать анимацию прогресса по форме кнопки, обеспечивая гладкий и плавный вид, независимо от того, используете ли вы закругленные углы или круглую форму.Статья: https://apptractor.ru/info/articles/sozdanie-krasivoy-knopki-s-progressom-v-jetpack-compose.html
Платформа: Android
❤3
MBCompass — это простое, но многофункциональное приложение-компас для Android, созданное с помощью Jetpack Compose. Оно использует магнитометр и акселерометр устройства для предоставления обновлений о геомагнитном поле в режиме реального времени. Разработанное с учетом Android Lifecycle, в целом это современный и эффективный компас.
Большинство приложений-компасов либо слишком просты, либо перегружены рекламой. MBCompass был создан, чтобы исправить эту ситуацию: он легковесный, точный и не содержит рекламы.
MBCompass на GitHub: https://github.com/MubarakNative/MBCompass
Платформа: Android
⭐️: 105
Большинство приложений-компасов либо слишком просты, либо перегружены рекламой. MBCompass был создан, чтобы исправить эту ситуацию: он легковесный, точный и не содержит рекламы.
MBCompass на GitHub: https://github.com/MubarakNative/MBCompass
Платформа: Android
⭐️: 105
10 ловушек Swift, которые вы не заметите, пока не станет слишком поздно
Вот 10 ловушек Swift, которые кажутся безобидными — пока не настигнут в
1. Сильные циклы ссылок в замыканиях
2. Принудительное развертывание Optional
3. Неявно разворачиваемые Optional (String!)
4. Не помеченные как final классы
5. Отсутствие weak у делегатов
6. Бездумное использование DispatchQueue.main.async
7. Путаница между типами значений и ссылок
8. Неправильное использование Codable
9. Неправильное использование @Published в SwiftUI/Combine
10. Путаница между Any и AnyObject
Статья: https://apptractor.ru/info/articles/10-lovushek-swift-kotorye-vy-ne-zametite-poka-ne-stanet-slishkom-pozdno.html
Платформа: iOS
Вот 10 ловушек Swift, которые кажутся безобидными — пока не настигнут в
1. Сильные циклы ссылок в замыканиях
2. Принудительное развертывание Optional
3. Неявно разворачиваемые Optional (String!)
4. Не помеченные как final классы
5. Отсутствие weak у делегатов
6. Бездумное использование DispatchQueue.main.async
7. Путаница между типами значений и ссылок
8. Неправильное использование Codable
9. Неправильное использование @Published в SwiftUI/Combine
10. Путаница между Any и AnyObject
Статья: https://apptractor.ru/info/articles/10-lovushek-swift-kotorye-vy-ne-zametite-poka-ne-stanet-slishkom-pozdno.html
Платформа: iOS
🥴1
6 малоизвестных приемов в Jetpack Compose, которые мгновенно улучшат ваш интерфейс
Эти 6 малоизвестных, но мощных шаблонов Jetpack Compose могут мгновенно улучшить внешний вид и пользовательский интерфейс вашего приложения.
Статья: https://medium.com/@maliksaif070/6-lesser-known-jetpack-compose-tricks-that-instantly-improve-your-ui-79d14943a7cb
Платформа: Android
Эти 6 малоизвестных, но мощных шаблонов Jetpack Compose могут мгновенно улучшить внешний вид и пользовательский интерфейс вашего приложения.
Статья: https://medium.com/@maliksaif070/6-lesser-known-jetpack-compose-tricks-that-instantly-improve-your-ui-79d14943a7cb
Платформа: Android
🔥1
Современные блокировки в Swift: мьютекс и фреймворк Synchronization
Swift предлагает несколько решений для блокировки доступа к изменяемому контенту и предотвращения так называемого состояния гонки. Блокировки, такие как NSLock, DispatchSemaphore или последовательная DispatchQueue, являются популярным выбором для многих. В некоторых статьях сравнивается их производительность и указывается, какая из них работает лучше всего, но я хотел бы представить вам современный вариант блокировки Swift, представленный в SE-433 Synchronous Mutual Exclusion Lock.
В этой статье я не буду рассказывать, какой блокировщик работает лучше всего, и не буду сравнивать их с этим новым вариантом. Каждый блокировщик может иметь свой профиль производительности и свои особенности. В этой статье мы рассмотрим стандартизированную версию так называемого мьютекс блокировщика.
Статья: https://apptractor.ru/info/articles/sovremennye-blokirovki-v-swift-myuteks-i-freymvork-synchronization.html
Платформа: iOS
Swift предлагает несколько решений для блокировки доступа к изменяемому контенту и предотвращения так называемого состояния гонки. Блокировки, такие как NSLock, DispatchSemaphore или последовательная DispatchQueue, являются популярным выбором для многих. В некоторых статьях сравнивается их производительность и указывается, какая из них работает лучше всего, но я хотел бы представить вам современный вариант блокировки Swift, представленный в SE-433 Synchronous Mutual Exclusion Lock.
В этой статье я не буду рассказывать, какой блокировщик работает лучше всего, и не буду сравнивать их с этим новым вариантом. Каждый блокировщик может иметь свой профиль производительности и свои особенности. В этой статье мы рассмотрим стандартизированную версию так называемого мьютекс блокировщика.
Статья: https://apptractor.ru/info/articles/sovremennye-blokirovki-v-swift-myuteks-i-freymvork-synchronization.html
Платформа: iOS
Numerix — это пакет Swift с открытым исходным кодом, предоставляющий структуры Complex, Vector, Matrix и ShapedArray для задач линейной алгебры и других численных вычислений на устройствах Apple. Он использует фреймворк Accelerate для высокопроизводительных и энергоэффективных вычислений.
Numerix на GitHub: https://github.com/wigging/numerix
Платформа: iOS
⭐️: 31
Numerix на GitHub: https://github.com/wigging/numerix
Платформа: iOS
⭐️: 31
async let vs Task group
В Swift для структурированной конкуренции используются async let и группы задач (task group). Хотя обе конструкции позволяют запускать параллельные операции, они по-разному управляют жизненным циклом задач. Сегодня мы разберём эти различия на примерах.
Статья: https://habr.com/ru/companies/otus/articles/928172/
Платформа: iOS
В Swift для структурированной конкуренции используются async let и группы задач (task group). Хотя обе конструкции позволяют запускать параллельные операции, они по-разному управляют жизненным циклом задач. Сегодня мы разберём эти различия на примерах.
Статья: https://habr.com/ru/companies/otus/articles/928172/
Платформа: iOS
Как в Duolingo повысили производительность Android-приложения (и количество активных пользователей!)
Наша миссия в Duolingo — развивать лучшее образование в мире и сделать его общедоступным. Однако наши метрики показали, что миллионы учащихся, особенно использующих устройства начального уровня на развивающихся рынках, закрывали приложение из-за раздражающего времени загрузки: в начале 2024 года целых 39% пользователей устройств Android начального уровня ждали запуска приложения более 5 секунд. Это напрямую подрывало нашу миссию по обеспечению всеобщей доступности. Чтобы решить эту проблему, мы сформировали специальную команду для оптимизации производительности нашего приложения для Android.
Статья: https://apptractor.ru/info/articles/duolingo-android-app-performance.html
Платформа: Android
Наша миссия в Duolingo — развивать лучшее образование в мире и сделать его общедоступным. Однако наши метрики показали, что миллионы учащихся, особенно использующих устройства начального уровня на развивающихся рынках, закрывали приложение из-за раздражающего времени загрузки: в начале 2024 года целых 39% пользователей устройств Android начального уровня ждали запуска приложения более 5 секунд. Это напрямую подрывало нашу миссию по обеспечению всеобщей доступности. Чтобы решить эту проблему, мы сформировали специальную команду для оптимизации производительности нашего приложения для Android.
Статья: https://apptractor.ru/info/articles/duolingo-android-app-performance.html
Платформа: Android
Torrent Search - современное приложение для Android с дизайном Material 3 для поиска и загрузки торрентов с нескольких трекеров.
Фичи: дизайн Material 3, разные категории поиска, управление скачиванием (самого торрент-клиента нет, направляет к другим приложениям), включение или выключение NSFW контента.
Torrent Search на GitHub: https://github.com/prajwalch/TorrentSearch
Платформа: Android
⭐️: 105
Фичи: дизайн Material 3, разные категории поиска, управление скачиванием (самого торрент-клиента нет, направляет к другим приложениям), включение или выключение NSFW контента.
Torrent Search на GitHub: https://github.com/prajwalch/TorrentSearch
Платформа: Android
⭐️: 105
👍1
•
(iOS Ru) Sideloading и узник Apple•
(iOS En) Latest Symbol Effects + OnBoarding Animation Using SwiftUI•
(iOS En) ChatGPT in Xcode 26: there’s a hidden prompt•
(iOS En) Build Your First AI Chatbot App with SwiftUI + Foundation Models Framework•
(iOS En) Swift’s Measurement API — From Miles to Meters and Beyond•
(iOS En) Recreating iOS 26 Tab Bar for iOS 16.4+ devices using SwiftUI (Without Liquid Glass)•
(And En) Build a Runtime-Enabled SDK•
(And En) Home APIs tips & tricks•
(And En) THIS Brand New Attribute Makes Compose Texts Fully Responsive (Auto-Scaling!)•
(And En) Designing Kotlin Beyond Type Inference•
(And En) Collect Like a Pro: a deep dive on the Android lifecycle-aware coroutines APIs•
(And En) From 0 to h-AI-ro: high-speed track to AI for Kotlin developers•
(And En) Everything you need to know about the NEW Material's Evolution•
(And En) Publish JVM Library to Maven Central with Gradle (2025 Guide)•
(And En) Data-Driven Build Optimization: Empower Your Teams with Develocity Reporting and Visualization•
(Crs En) Making native SDKs Multiplatform at RevenueCat•
(Crs En) Deploying Kotlin Multiplatform at Google Workspace•
(Dev Ru) Cтартапы, работа в США, путь в IT•
(Dev Ru) Привет, я ваш новый тимлид•
(Dev Ru) Батарейки заряжены! Как отдыхать и восстанавливаться, не уходя в отпуск•
(Dev Ru) Как измерить AI — Бенчмарки, тестирование и обучение LLM•
(Dev En) Project Creation & First Hello World App - Spring Boot 4 Basics With Kotlin•
(Dev En) Behavioral Interview: Full Preparation Guide•
(Mrk En) Заработок на Budget Tracker. iOS. Подписки. Разбор нишиПрошлогодние видео:
•
(iOS Ru) Как побеждать в конкурсах от Telegram•
(And Ru) Переходишь на Compose? Не спеши!•
(And Ru) Как работает ТВ в Android TV?•
(And Ru) Нужны ли Android-разработчики на заводе?•
(And Ru) Gradle DSL изнутри•
(And Ru) Kotlin DSL как единый источник правды для решения многих задач•
(Dev Ru) Чистый код – не значит правильный: clean code, паттерны, лучшие практикиPlease open Telegram to view this post
VIEW IN TELEGRAM
👍2
Стеклянные кастомные представления SwiftUI
В фреймворке SwiftUI появился модификатор представлений
Статья: https://swiftwithmajid.com/2025/07/16/glassifying-custom-swiftui-views/
Платформа: iOS
В фреймворке SwiftUI появился модификатор представлений
glassEffect. Его можно применить к любому View, чтобы включить стеклянный эффект. Следует помнить, что эффект стекла — это не просто фон. Он взаимодействует с представлениями, расположенными за ним, и изменяет их свойства. Более того, он может изменять цветовую схему представления с светлой на темную в зависимости от содержимого, расположенного за ним.Статья: https://swiftwithmajid.com/2025/07/16/glassifying-custom-swiftui-views/
Платформа: iOS
👍2
MobileFeedback iOS SDK - библиотека для организации общения с пользователями в приложении с интерфейсом чата.
Фичи: легковесная, нативная, с простым внедрением, в реальном времени, с категоризацией отзывов с помощью ИИ, на основе Supabase.
MobileFeedback iOS SDK на GitHub: https://github.com/MobileFeedback/mobilefeedback-ios
Платформа: iOS
⭐️: 4
Фичи: легковесная, нативная, с простым внедрением, в реальном времени, с категоризацией отзывов с помощью ИИ, на основе Supabase.
MobileFeedback iOS SDK на GitHub: https://github.com/MobileFeedback/mobilefeedback-ios
Платформа: iOS
⭐️: 4
👍2
Android. Кража данных через клавиатуру: миф или реальность?
В этой статье хотел бы поделиться своим опытом (или даже находкой) и обсудить одну интересную тему, а именно защиту от возможных способов украсть конфиденциальные данные пользователя на Android с помощью другого вредоносного приложения на не-рутированном устройстве через клавиатуру.
Статья: https://habr.com/ru/articles/927726/
Платформа: Android
В этой статье хотел бы поделиться своим опытом (или даже находкой) и обсудить одну интересную тему, а именно защиту от возможных способов украсть конфиденциальные данные пользователя на Android с помощью другого вредоносного приложения на не-рутированном устройстве через клавиатуру.
Статья: https://habr.com/ru/articles/927726/
Платформа: Android
❤1
Как мы переписали мобильное приложение с React Native на Flutter
Перевод приложения с React Native на Flutter оказался большим, но оправданным шагом. Мы не просто переписали приложение - мы улучшили архитектуру, улучшили UX, избавились от накопившихся технических ограничений и получили стабильный и производительный продукт.
Такой переход ускорил Time To Market - теперь команда сфокусирована на разработке новых фичей, а не на исправление багов.
Статья: https://habr.com/ru/articles/929058/
Платформа: кроссплатформа
Перевод приложения с React Native на Flutter оказался большим, но оправданным шагом. Мы не просто переписали приложение - мы улучшили архитектуру, улучшили UX, избавились от накопившихся технических ограничений и получили стабильный и производительный продукт.
Такой переход ускорил Time To Market - теперь команда сфокусирована на разработке новых фичей, а не на исправление багов.
Статья: https://habr.com/ru/articles/929058/
Платформа: кроссплатформа
👍3
Mousedroid - кроссплатформенное приложение, которое превращает ваш Android-смартфон (клиент) в периферийное устройство ввода для компьютера (сервер). Используйте его как мышь (тачпад), клавиатуру или цифровую клавиатуру. Управляйте компьютером с помощью телефона по проводу или без него. Поддерживает Windows, Linux и Android начиная с 8 (Oreo).
Mousedroid на GitHub: https://github.com/darusc/Mousedroid
Платформа: Android
⭐️: 125
Mousedroid на GitHub: https://github.com/darusc/Mousedroid
Платформа: Android
⭐️: 125
❤1
Последний UIKit-разработчик
На дворе 2030 год. Я сижу в кофейне в Сан-Франциско, а напротив меня сидит Тим. Ему 45, у него уже седеют виски, и он только что сказал мне, что он последний UIKit-разработчик в своей компании. Не по своей воле, все остальные много лет назад перешли на вайб-кодинг с SwiftUI. Но кто-то же должен поддерживать старое приложение.
Статья: https://apptractor.ru/info/articles/posledniy-uikit-razrabotchik.html
Платформа: iOS
На дворе 2030 год. Я сижу в кофейне в Сан-Франциско, а напротив меня сидит Тим. Ему 45, у него уже седеют виски, и он только что сказал мне, что он последний UIKit-разработчик в своей компании. Не по своей воле, все остальные много лет назад перешли на вайб-кодинг с SwiftUI. Но кто-то же должен поддерживать старое приложение.
Статья: https://apptractor.ru/info/articles/posledniy-uikit-razrabotchik.html
Платформа: iOS
😁5