This media is not supported in your browser
VIEW IN TELEGRAM
Создаем анимацию печати текста на печатной машинке в SwiftUI
Анимация текста может значительно улучшить впечатления пользователя от приложения, добавив ему динамичности и интерактивности. Одним из особенно интересных эффектов является анимация печатной машинки, когда текст появляется символ за символом, как будто его набирают в режиме реального времени. Например, такая анимация особенно актуальна для платформ чатов с искусственным интеллектом. На самом деле, я использовал именно эту анимацию в процессе регистрации в своем приложении Catzumi, создавая ретро-стиль и запоминающееся первое впечатление для новых пользователей.
Статья: https://apptractor.ru/info/articles/sozdaem-animatsiyu-pechati-teksta-na-pechatnoy-mashinke-v-swiftui.html
Платформа: iOS
Анимация текста может значительно улучшить впечатления пользователя от приложения, добавив ему динамичности и интерактивности. Одним из особенно интересных эффектов является анимация печатной машинки, когда текст появляется символ за символом, как будто его набирают в режиме реального времени. Например, такая анимация особенно актуальна для платформ чатов с искусственным интеллектом. На самом деле, я использовал именно эту анимацию в процессе регистрации в своем приложении Catzumi, создавая ретро-стиль и запоминающееся первое впечатление для новых пользователей.
Статья: https://apptractor.ru/info/articles/sozdaem-animatsiyu-pechati-teksta-na-pechatnoy-mashinke-v-swiftui.html
Платформа: iOS
Kotlin Multiplatform Developer Roadmap предлагает путь обучения для понимания мультиплатформенной разработки на Kotlin, включая соответствующие библиотеки и технологические стеки по различным темам. Каждый узел представляет ключевые аспекты Kotlin Multiplatform, включая концепции платформы, SDK, часто используемые библиотеки и практические решения.
Kotlin Multiplatform Developer Roadmap на GitHub: https://github.com/skydoves/kmp-developer-roadmap
Платформа: Android/кроссплатформа
⭐️: 289
Kotlin Multiplatform Developer Roadmap на GitHub: https://github.com/skydoves/kmp-developer-roadmap
Платформа: Android/кроссплатформа
⭐️: 289
iOS Performance Optimization - этот проект предлагает базовые знания и рекомендуемые ресурсы по оптимизации производительности iOS-приложений. Основные темы: уменьшение размера приложения, сокращение времени сборки, сокращение времени запуска приложения, оптимизация рантайма, зависания приложения, использование памяти, CI.
iOS Performance Optimization на GitHub: https://github.com/hoangatuan/iOS-Performance-Optimization
Платформа: iOS
⭐️: 40
iOS Performance Optimization на GitHub: https://github.com/hoangatuan/iOS-Performance-Optimization
Платформа: iOS
⭐️: 40
🔥2
Тесты для функций Compose в Android
Представьте себе мир, где каждый раз, когда вы вносите изменения в код вашего приложения, вы уверены, что ничего не сломалось. Где ошибки обнаруживаются еще до того, как пользователи успеют их заметить. Где ваш код не только работает, но и документируется автоматически, улучшая архитектуру проекта с каждым тестом. Звучит как мечта? На самом деле это реальность, если вы правильно используете тесты. В этой статье мы погрузимся в мир тестирования Android-приложений с использованием Jetpack Compose, рассмотрим различные виды тестов и научимся настраивать и писать инструментальные тесты для ваших Compose функций.
Статья: https://habr.com/ru/articles/850588/
Платформа: Android
Представьте себе мир, где каждый раз, когда вы вносите изменения в код вашего приложения, вы уверены, что ничего не сломалось. Где ошибки обнаруживаются еще до того, как пользователи успеют их заметить. Где ваш код не только работает, но и документируется автоматически, улучшая архитектуру проекта с каждым тестом. Звучит как мечта? На самом деле это реальность, если вы правильно используете тесты. В этой статье мы погрузимся в мир тестирования Android-приложений с использованием Jetpack Compose, рассмотрим различные виды тестов и научимся настраивать и писать инструментальные тесты для ваших Compose функций.
Статья: https://habr.com/ru/articles/850588/
Платформа: Android
Хабр
Тесты для функций compose в андроид
Представьте себе мир, где каждый раз, когда вы вносите изменения в код вашего приложения, вы уверены, что ничего не сломалось. Где ошибки обнаруживаются еще до того, как пользователи успеют их...
Антипаттерны Code Review
Code Review кажется отличной идеей, верно? Два разработчика, просматривающие один и тот же код, имеют в два раза больше шансов обнаружить проблемы. Это распространяет понимание того, как развивается проект. Рецензент может узнать полезные приемы, подробно читая код автора, или найти возможность научить автора полезному приему, который он еще не знал.
Что может пойти не так?
Статья: https://apptractor.ru/info/articles/antipatterny-code-review.html
Платформа: разработка
Code Review кажется отличной идеей, верно? Два разработчика, просматривающие один и тот же код, имеют в два раза больше шансов обнаружить проблемы. Это распространяет понимание того, как развивается проект. Рецензент может узнать полезные приемы, подробно читая код автора, или найти возможность научить автора полезному приему, который он еще не знал.
Что может пойти не так?
Статья: https://apptractor.ru/info/articles/antipatterny-code-review.html
Платформа: разработка
❤1
Вычисление семантического расстояния между словами с помощью Natural Language Framework
Такие фрагменты текста естественного языка, как слова и предложения, могут иметь семантическое сходство между собой. На этой концепции основано большинство подсказок, и она реализуется с помощью класса
Обработка естественного языка позволяет компьютерам понимать человеческий язык и взаимодействовать с ним. Она помогает обрабатывать и анализировать текстовые данные, извлекать значимую информацию и определять взаимосвязи между словами и фразами. Класс
Статья: https://apptractor.ru/info/articles/vychislenie-semanticheskogo-rasstoyaniya-mezhdu-slovami-s-pomoschyu-natural-language-framework.html
Платформа: iOS
Такие фрагменты текста естественного языка, как слова и предложения, могут иметь семантическое сходство между собой. На этой концепции основано большинство подсказок, и она реализуется с помощью класса
NLEmbedding фреймворка Natural Language.Обработка естественного языка позволяет компьютерам понимать человеческий язык и взаимодействовать с ним. Она помогает обрабатывать и анализировать текстовые данные, извлекать значимую информацию и определять взаимосвязи между словами и фразами. Класс
NLEmbedding обеспечивает возможность структурированного отображения и анализа этих связей.Статья: https://apptractor.ru/info/articles/vychislenie-semanticheskogo-rasstoyaniya-mezhdu-slovami-s-pomoschyu-natural-language-framework.html
Платформа: iOS
❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Loaders - два индикатора прогресса/лоадера для Jetpack Compose. Есть шестеренки и паззл, который открывает картинку.
Loaders на GitHub: https://github.com/EranBoudjnah/Loaders
Платформа: Android
⭐️: 59
Loaders на GitHub: https://github.com/EranBoudjnah/Loaders
Платформа: Android
⭐️: 59
Tuist: добавляем генерацию проекта в текущее приложение
Знаете, что объединяет всех iOS-разработчиков, работающих над крупными проектами? Все мы когда-то сталкивались с этим старым знакомым — файлом .xcodeproj, который хранит в себе десятки, а то и сотни конфликтов после каждого merge. Мы тоже жили с этой проблемой много лет, пока не нашли решение.
Знакомьтесь, Tuist — инструмент, который кардинально изменил наш подход к управлению проектами. Он не только помогает избежать конфликтов, но и автоматизирует генерацию ключевых компонентов, значительно облегчая команде жизнь.
Если у вас всё еще сохранился этот «реликт прошлого», то, возможно, наш опыт поможет вам наконец-то избавиться от него. Давайте разберемся, как это сделать.
Статья: https://habr.com/ru/companies/cian/articles/847688/
Платформа: iOS
Знаете, что объединяет всех iOS-разработчиков, работающих над крупными проектами? Все мы когда-то сталкивались с этим старым знакомым — файлом .xcodeproj, который хранит в себе десятки, а то и сотни конфликтов после каждого merge. Мы тоже жили с этой проблемой много лет, пока не нашли решение.
Знакомьтесь, Tuist — инструмент, который кардинально изменил наш подход к управлению проектами. Он не только помогает избежать конфликтов, но и автоматизирует генерацию ключевых компонентов, значительно облегчая команде жизнь.
Если у вас всё еще сохранился этот «реликт прошлого», то, возможно, наш опыт поможет вам наконец-то избавиться от него. Давайте разберемся, как это сделать.
Статья: https://habr.com/ru/companies/cian/articles/847688/
Платформа: iOS
Компьютерное зрение на C++: пишем приложение для поиска объектов под Android
Расскажу, как реализовать обнаружение объектов в реальном времени с помощью камеры на мобильной платформе Android с использованием библиотек PyTorch и NCNN и моделей компьютерного зрения YOLOv5 и YOLOv4. Шаблон моего приложения пригодится тем, кто хочет проверить прототип функциональности для компьютерного зрения на С++, использующий OpenCV на Android, но не хочет глубоко погружаться в программирование под Android.
Статья: https://habr.com/ru/companies/yadro/articles/850786/
Платформа: Android
Расскажу, как реализовать обнаружение объектов в реальном времени с помощью камеры на мобильной платформе Android с использованием библиотек PyTorch и NCNN и моделей компьютерного зрения YOLOv5 и YOLOv4. Шаблон моего приложения пригодится тем, кто хочет проверить прототип функциональности для компьютерного зрения на С++, использующий OpenCV на Android, но не хочет глубоко погружаться в программирование под Android.
Статья: https://habr.com/ru/companies/yadro/articles/850786/
Платформа: Android
Как мы улучшили производительность навигации на Android на 30%
В 2019 году команда Yelp Core Android начала работу по повышению производительности навигации в приложении Yelp для потребителей. Мы перешли от создания экранов с несколькими отдельными Активити к использованию фрагментов внутри одной Активити. В этой статье мы расскажем о нашем решении, о нашем подходе к миграции, и поделимся выводами, сделанными на этом пути, а также достигнутыми успехами.
Статья: https://apptractor.ru/info/articles/kak-my-uluchshili-proizvoditelnost-navigatsii-na-android-na-30.html
Платформа: Android
В 2019 году команда Yelp Core Android начала работу по повышению производительности навигации в приложении Yelp для потребителей. Мы перешли от создания экранов с несколькими отдельными Активити к использованию фрагментов внутри одной Активити. В этой статье мы расскажем о нашем решении, о нашем подходе к миграции, и поделимся выводами, сделанными на этом пути, а также достигнутыми успехами.
Статья: https://apptractor.ru/info/articles/kak-my-uluchshili-proizvoditelnost-navigatsii-na-android-na-30.html
Платформа: Android
AppFiles - Mobile Development
Как мы улучшили производительность навигации на Android на 30% В 2019 году команда Yelp Core Android начала работу по повышению производительности навигации в приложении Yelp для потребителей. Мы перешли от создания экранов с несколькими отдельными Активити…
Ускоряем работу приложения с помощью сжатия с общим словарем
Несмотря на то, что с каждым релизом iPhone становятся все быстрее и быстрее, сетевые задержки остаются постоянным препятствием на пути пользователя. Скорость доставки информации к месту назначения ограничена скоростью света, и во многих случаях на этом пути возникают дополнительные замедления (3G-соединения, туннели метро, спутниковый интернет и т.д.). Сокращение размера передаваемых данных по-прежнему приносит пользу пользователям, и поэтому мы рассмотрим относительно новую технику — «сжатие с общим словарем» (shared dictionary compression). Хотя эта техника уже давно используется в таких компаниях, как Google и Amazon, в последнее время она получила широкое распространение в сообществе разработчиков. В основном это касается браузеров, но в этой статье я покажу, как можно легко использовать сжатие с общим словарем в приложениях для iOS.
Статья: https://apptractor.ru/info/articles/uskoryaem-rabotu-prilozheniya-s-pomoschyu-szhatiya-s-obschim-slovarem.html
Платформа: автор говорит, что iOS, но вообще ничего специфичного там нет, поэтому разработка
Несмотря на то, что с каждым релизом iPhone становятся все быстрее и быстрее, сетевые задержки остаются постоянным препятствием на пути пользователя. Скорость доставки информации к месту назначения ограничена скоростью света, и во многих случаях на этом пути возникают дополнительные замедления (3G-соединения, туннели метро, спутниковый интернет и т.д.). Сокращение размера передаваемых данных по-прежнему приносит пользу пользователям, и поэтому мы рассмотрим относительно новую технику — «сжатие с общим словарем» (shared dictionary compression). Хотя эта техника уже давно используется в таких компаниях, как Google и Amazon, в последнее время она получила широкое распространение в сообществе разработчиков. В основном это касается браузеров, но в этой статье я покажу, как можно легко использовать сжатие с общим словарем в приложениях для iOS.
Статья: https://apptractor.ru/info/articles/uskoryaem-rabotu-prilozheniya-s-pomoschyu-szhatiya-s-obschim-slovarem.html
Платформа: автор говорит, что iOS, но вообще ничего специфичного там нет, поэтому разработка
iOS Swift for VS Code - разрабатывайте, собирайте, отлаживайте и тестируйте свои проекты в VS Code с помощью ваших любимых расширений. Поддерживает iOS/MacOS/WatchOS/VisionOS/TvOS, есть автодополнение Swift/Objective-C/C++ кода, совместимость с CodeLLDB, поддержка проектов/воркспейсов, парсинг логов и отображение ошибок.
iOS Swift for VS Code на GitHub: https://github.com/fireplusteam/ios-swift-for-vs-code
Платформа: iOS
⭐️: 21
iOS Swift for VS Code на GitHub: https://github.com/fireplusteam/ios-swift-for-vs-code
Платформа: iOS
⭐️: 21
👍2😨1
Видео и подкасты за неделю @AppFiles
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
#ios #android #mobile #video
•
(iOS En) WWDC22: Visualize and optimize Swift concurrency •
(iOS En) Principal Engineer shares tips to Master System Design and Architecture•
(iOS En) SwiftUI Toasts •
(iOS En) How to get started with Swift Testing•
(iOS En) Create a Bold SwiftUI Flight Boarding Widget•
(iOS En) Add Micro Interactions to your Tab Bar | SwiftUI•
(iOS En) iOS/SwiftUI Chat App With Cursor•
(And Ru) Как следить за качеством работы вашего кода. Tracer. Кирилл Попов•
(And Ru) 1000 откликов и 0 собеседований — как не войти в айти в 2024: кодревью•
(And Ru) Замена иконок — что может быть проще?•
(And En) Custom Adaptive layouts in Compose•
(And En) Region specific resources and broken localization•
(And En) Applying the Builder Pattern in Kotlin•
(Crs En) Mobile App Development Course with React Native, Supabase, Next.js•
(Anl Ru) Собеседование продуктового аналитика в Авито: кейс-интервью•
(Dev Ru) Shape Up, scrum out. Как решать проблемы юзеров за дни, а не за сторипоинты•
(Tch Ru) AI в медицине#ios #android #mobile #video
Lets-Plot - это мультиплатформенная библиотека JetBrains для черчения, построенная на принципах Грамматики Графики. «Грамматика графики» - работа Леланда Уилкинсона, описывающая глубинные особенности, которые лежат в основе всей статистической графики: “Эта грамматика [...] состоит из набора независимых компонентов, которые могут быть составлены множеством различных способов. Это делает [ее] очень мощной, потому что вы не ограничены набором заранее заданных графиков, а можете создавать новые графики, точно подходящие для решения вашей задачи”. Lets-Plot работает с Python, Kotlin и Compose Multiplatform.
Lets-Plot на GitHub: https://github.com/JetBrains/lets-plot
Платформа: Android
⭐️: 1.6K
Lets-Plot на GitHub: https://github.com/JetBrains/lets-plot
Платформа: Android
⭐️: 1.6K
Корзина в Додо Пицце на iOS 14: баг длиной в полгода
Меня зовут Лёша Берёзка. Я iOS техлид в Додо Пицце. Сегодня я расскажу вам историю о том, как внимательность и упорство творят чудеса, и помогают решать задачи, на которые другие бы просто забили.
Статья: https://habr.com/ru/companies/dododev/articles/843216/
Платформа: iOS
Меня зовут Лёша Берёзка. Я iOS техлид в Додо Пицце. Сегодня я расскажу вам историю о том, как внимательность и упорство творят чудеса, и помогают решать задачи, на которые другие бы просто забили.
Статья: https://habr.com/ru/companies/dododev/articles/843216/
Платформа: iOS
Динамические модули в приложениях на Android: опыт использования Dynamic Feature Delivery
Для внедрения одной из SDK, основанной на Flutter, мы прибегли к механизму Dynamic Feature Delivery (DFD). Но оказалось, что в русскоязычном сегменте информации о DFD крайне мало, поэтому я решил поделиться нашим опытом работы с этим механизмом на Android с Google Play Feature Delivery Library. Также мы нашли способ интегрировать динамические фичи на устройства без Google Play, но это тема для отдельной статьи, поэтому в рамках данного материала я на этом останавливаться не буду.
Сегодня мы подробно разберём, как интегрировать механизм DFD в современную архитектуру Android‑приложения с использованием корутин, а также протестируем загрузку и установку динамического модуля, использующего Flutter.
Статья: https://habr.com/ru/companies/yandex/articles/845344/
Платформа: Android/Flutter
Для внедрения одной из SDK, основанной на Flutter, мы прибегли к механизму Dynamic Feature Delivery (DFD). Но оказалось, что в русскоязычном сегменте информации о DFD крайне мало, поэтому я решил поделиться нашим опытом работы с этим механизмом на Android с Google Play Feature Delivery Library. Также мы нашли способ интегрировать динамические фичи на устройства без Google Play, но это тема для отдельной статьи, поэтому в рамках данного материала я на этом останавливаться не буду.
Сегодня мы подробно разберём, как интегрировать механизм DFD в современную архитектуру Android‑приложения с использованием корутин, а также протестируем загрузку и установку динамического модуля, использующего Flutter.
Статья: https://habr.com/ru/companies/yandex/articles/845344/
Платформа: Android/Flutter
This media is not supported in your browser
VIEW IN TELEGRAM
PIPKit - библиотека для реализации картинки-в-картинке на iOS (iPhone, iPad).
PIPKit на GitHub: https://github.com/Kofktu/PIPKit
Платформа: iOS
⭐️: 281
PIPKit на GitHub: https://github.com/Kofktu/PIPKit
Платформа: iOS
⭐️: 281
Макросы в Swift: Практическое руководство по использованию
Недавно я столкнулся с задачей, которая требовала написания большого объема шаблонного кода. Вспомнив, что в Swift 5.9 появились макросы, созданные специально для генерации шаблонного кода, я решил попробовать их в действии. Ранее я работал с макросами в Objective-C и C++, поэтому ожидал увидеть нечто похожее. Однако, поискав информацию, я понял, что макросы в Swift — это совсем другое, не похожее на то, что я встречал в других языках.
Статья: https://habr.com/ru/articles/852118/
Платформа: iOS
Недавно я столкнулся с задачей, которая требовала написания большого объема шаблонного кода. Вспомнив, что в Swift 5.9 появились макросы, созданные специально для генерации шаблонного кода, я решил попробовать их в действии. Ранее я работал с макросами в Objective-C и C++, поэтому ожидал увидеть нечто похожее. Однако, поискав информацию, я понял, что макросы в Swift — это совсем другое, не похожее на то, что я встречал в других языках.
Статья: https://habr.com/ru/articles/852118/
Платформа: iOS
Забудьте про терминал! Как я избавлялся от рутинных ADB команды с помощью Shortcuts
До этого года я спокойно пользовался терминалом для установки приложений на тестовые устройства android: каждый раз вручную копировал название файла, выбирал нужную команду из истории терминала, стирал старое название и вставлял новое. Это меня очень раздражало, но я не искал решений. А ведь кроме установки, есть множество других команд ADB, которые приходится использовать время от времени. Например, выгрузка последних логов из logcat на компьютер, для чего тоже нужно было прописывать путь для сохранения файла — очень неудобно и отнимает драгоценное время.
Так продолжалось, пока коллега не принесла автоматизированный сценарий в Automator на Mac. Классная вещь, которая позволяет создавать автоматизированные процессы без глубоких знаний программирования. Однако, с пачкой минусов, из-за которых, я в итоге оставил только идею и переписал всё на Shortcuts.
Так что сегодня будем делать такую штуку с помощью быстрых команд, которую можно будет легко масштабировать под разные часто используемые команды adb.
Статья: https://habr.com/ru/articles/852114/
Платформа: Android
До этого года я спокойно пользовался терминалом для установки приложений на тестовые устройства android: каждый раз вручную копировал название файла, выбирал нужную команду из истории терминала, стирал старое название и вставлял новое. Это меня очень раздражало, но я не искал решений. А ведь кроме установки, есть множество других команд ADB, которые приходится использовать время от времени. Например, выгрузка последних логов из logcat на компьютер, для чего тоже нужно было прописывать путь для сохранения файла — очень неудобно и отнимает драгоценное время.
Так продолжалось, пока коллега не принесла автоматизированный сценарий в Automator на Mac. Классная вещь, которая позволяет создавать автоматизированные процессы без глубоких знаний программирования. Однако, с пачкой минусов, из-за которых, я в итоге оставил только идею и переписал всё на Shortcuts.
Так что сегодня будем делать такую штуку с помощью быстрых команд, которую можно будет легко масштабировать под разные часто используемые команды adb.
Статья: https://habr.com/ru/articles/852114/
Платформа: Android
🤔1
Модульная навигация в SwiftUI: Исчерпывающее руководство
Недавно я начал создавать проект SwiftUI. Цель, которую я хочу достичь, - создать проект, который можно будет использовать в качестве эталона для создания больших production приложений.
С этой целью я решил применить в проекте Модульную и Чистую архитектуры.
В процессе реализации проекта я столкнулся с некоторыми проблемами с навигацией. Также я не нашел онлайн-решений, которые могли бы удовлетворить все мои запросы. В этой статье я расскажу о проблемах с навигацией, с которыми я столкнулся в проекте, и о том, как я их решил.
Статья: https://ericsspace.com/articles/modular-navigation-in-swiftui-a-comprehensive-guide/
Платформа: iOS
Поставьте 10 лайков, если хотите эту статью на русском
Недавно я начал создавать проект SwiftUI. Цель, которую я хочу достичь, - создать проект, который можно будет использовать в качестве эталона для создания больших production приложений.
С этой целью я решил применить в проекте Модульную и Чистую архитектуры.
В процессе реализации проекта я столкнулся с некоторыми проблемами с навигацией. Также я не нашел онлайн-решений, которые могли бы удовлетворить все мои запросы. В этой статье я расскажу о проблемах с навигацией, с которыми я столкнулся в проекте, и о том, как я их решил.
Статья: https://ericsspace.com/articles/modular-navigation-in-swiftui-a-comprehensive-guide/
Платформа: iOS
Поставьте 10 лайков, если хотите эту статью на русском
👍9
Анализ сведений о запуске и завершении приложений в Android 15
В Android 11 появилась
В Android 15 реализована новая
С помощью этих данных можно проследить, как пользователи используют приложение. С помощью данных о выходе можно было проверить, не осталось ли в приложении проблем с выходом, а теперь и то, нет ли проблем с входом.
Статья: https://apptractor.ru/info/articles/analiz-svedeniy-o-zapuske-i-zavershenii-prilozheniy-v-android-15.html
Платформа: Android
В Android 11 появилась
ApplicationExitInfo, из которой можно узнать исторические причины, по которым приложение было выключено/завершено.В Android 15 реализована новая
ApplicationStartInfo, которую можно использовать для анализа причин того, почему и как приложение было запущено.С помощью этих данных можно проследить, как пользователи используют приложение. С помощью данных о выходе можно было проверить, не осталось ли в приложении проблем с выходом, а теперь и то, нет ли проблем с входом.
Статья: https://apptractor.ru/info/articles/analiz-svedeniy-o-zapuske-i-zavershenii-prilozheniy-v-android-15.html
Платформа: Android