Android
В статье рассказывают, как программисты из Турции обнаружили странную ошибку: сборка Kotlin-проекта выдавала сообщение «Unknown compiler message tag: INFO», и выяснилось, что дело в локали системы. Оказалось, что методы вроде
• Cahier — пример современного блокнота для Android от Google
• Gradle для QA-инженера
• The Country That Broke Kotlin
• Under the Hood of Suspension: Tracing the State Machine Behind Kotlin Coroutines
В статье рассказывают, как программисты из Турции обнаружили странную ошибку: сборка Kotlin-проекта выдавала сообщение «Unknown compiler message tag: INFO», и выяснилось, что дело в локали системы. Оказалось, что методы вроде
toLowerCase() и capitalize() в компиляторе работали с учётом языка системы, и на турецкой раскладке буква «I» приводилась к «ı» (без точки) — из-за этого часть алгоритма не находила нужные ключи. Ошибка проявлялась не сразу, но с ростом сложностей (например, при корутинах и примитивных массивах) стала серьёзной. Команда Kotlin изменила библиотеку, чтобы использовать инвариантную локаль (например, Locale.US), и в версии 1.5 баг наконец окончательно закрылся. Вывод: даже самая банальная строковая операция может оказаться уязвимой из-за языковых нюансов и настроек локали. Стоит помнить, что код работает в мире, где культура, алфавит и система имеют значение — и тестировать не только в «английской» среде.• Cahier — пример современного блокнота для Android от Google
• Gradle для QA-инженера
• The Country That Broke Kotlin
• Under the Hood of Suspension: Tracing the State Machine Behind Kotlin Coroutines
Medium
The Country That Broke Kotlin
Logic vs language: how a Turkish alphabet bug played a years-long game of hide-and-seek inside the Kotlin compiler
👍2❤1
App Store тоже улучшается! Во-первых, теперь вы можете отправлять дополнительные материалы на рассмотрение независимо от существующей заявки. Это касается событий, функций Game Center, критических обновлений. Вто-вторых, Custom Product Pages теперь стало 70. Теперь вы можете назначать ключевые слова каждой кастомной странице, чтобы ее было легче найти в App Store. Страницы с назначенными им ключевыми словами могут отображаться в результатах поиска по выбранным ключевым словам вместо страницы продукта по умолчанию. В третьих, промо-коды уходят. Теперь вместо них оффер-коды. И они поддерживают все типы покупок внутри приложения, включая расходуемые, нерасходуемые и непродлеваемые подписки, а также расширенную поддержку для автоматически продлеваемых подписок.
Разработка
• Octoverse 2025: ежегодный отчет от GitHub
• Маленькая RAM vs новые фичи: как мы повышаем детализацию Карт и сохраняем стабильность
• 10 UI/UX Cheat Codes for INSTANTLY Better Designs
• Google Launches Mangle: A New Language That Could Change How We Work With Databases
Маркетинг
• Google открывает внешние оплаты в Play Store в США
• Улучшения в App Store — больше проверок и оффер коды для всего
• Скопировал неудачную идею, исправил ее и превратил в SaaS-проект на $30K
Кроссплатформа
• Подстраиваемся под новые требования Google: переходим на 16 KB memory page (гайд для разработчиков React Native)
• Когда .arb не тянет: как я подключаю TMS к Flutter-проекту
• Advanced Flutter Tools Used by Senior Developers
• Building a Premium Glassmorphism Flutter Login
Разработка
• Octoverse 2025: ежегодный отчет от GitHub
• Маленькая RAM vs новые фичи: как мы повышаем детализацию Карт и сохраняем стабильность
• 10 UI/UX Cheat Codes for INSTANTLY Better Designs
• Google Launches Mangle: A New Language That Could Change How We Work With Databases
Маркетинг
• Google открывает внешние оплаты в Play Store в США
• Улучшения в App Store — больше проверок и оффер коды для всего
• Скопировал неудачную идею, исправил ее и превратил в SaaS-проект на $30K
Кроссплатформа
• Подстраиваемся под новые требования Google: переходим на 16 KB memory page (гайд для разработчиков React Native)
• Когда .arb не тянет: как я подключаю TMS к Flutter-проекту
• Advanced Flutter Tools Used by Senior Developers
• Building a Premium Glassmorphism Flutter Login
AppTractor
Улучшения в App Store — больше проверок и оффер коды для всего
Apple представляет новые возможности для отправки контента и обновлений, пока ваше приложение находится на рассмотрении, удваивает количество кастомных продуктовых страниц и предлагает оффер коды для всех типов покупок внутри приложения.
🐳3👍2
Forwarded from AppFiles - Mobile Development
•
(iOS En) Optimize your app's speed and efficiency•
(iOS En) Modern SwiftUI Callbacks using AsyncStream•
(iOS En) How hard can it be to send a postcard?•
(iOS En) Beyond Xcode•
(iOS En) Building Complex Scroll Animations - Custom Bottom Sheet Interaction•
(iOS En) Keychain Unlocked: Mastering Advanced Security for Smarter, Safer Apps•
(iOS En) SwiftUI Alert With Progress View•
(iOS En) iMessage Style Photo Picker Using SwiftUI•
(And Ru) ART Memory Management•
(And Ru) Kotlin и контекстно-ориентированное мышление•
(And Ru) VK Звонки в лесу: звоним в плохих сетях•
(And En) TheAndroidShow: live from Droidcon, with Agents in Android Studio, Android XR and more!•
(And En) Google Play Console: Streamlining workflows, from testing to growth•
(And En) Building for Samsung Galaxy XR, featuring Calm's blueprint to Android XR development•
(And En) Android XR #AskAndroid•
(And En) Explaining Google's Guide to App Architecture In Simple Terms•
(And En) FAB Menu In Material3 Expressive•
(And En) From Java to Kotlin: Mercedes-Benz.io’s Journey•
(And En) Merge Queue at Uber Scale•
(And En) From 25 Minutes to 2.5: Okta's Journey to Faster Builds•
(Crs Ru) Что не так с Dart и Flutter в 2025 году? •
(Crs Ru) KMP для ОС Аврора•
(Crs Ru) Backend-Driven UI как ответ на рост числа платформ•
(Dev Ru) Как устроена мобильная разработка сегодня•
(Dev Ru) Как вас взламывают через Open Source — DevSecOps и безопасная разработкаПрошлогодние видео:
•
(iOS Ru) Как устроена библиотека AppMetrica•
(iOS Ru) Здесь куют Metal•
(iOS Ru) Как iOS-разработчику выжить на проекте с KMP?•
(And Ru) Android cookbook: готовим WebView правильно•
(And Ru) Kotlin Coroutines. Устройство и возможности использования•
(And Ru) Фреш на полке, фреш в стеке•
(Dev Ru) От натива до SDUI через гибридPlease open Telegram to view this post
VIEW IN TELEGRAM
👍2
Octoverse 2025
У GitHub вышел ежегодный отчет Octoverse. Из более или менее интересного:
•
• Рост популярности типизированных языков свидетельствует о том, что ИИ не только меняет скорость написания кода, но и влияет на то, каким языкам разработчики доверяют внедрение кода, сгенерированного ИИ, в эксплуатацию.
•
• На первый квартал 2025 года
У GitHub вышел ежегодный отчет Octoverse. Из более или менее интересного:
•
TypeScript впервые стал самым используемым языком на GitHub, обогнав Python. Это завершает десятилетнюю тенденцию перехода разработчиков на типизированный JavaScript и сигнализирует о новом стандарте для современной разработки.• Рост популярности типизированных языков свидетельствует о том, что ИИ не только меняет скорость написания кода, но и влияет на то, каким языкам разработчики доверяют внедрение кода, сгенерированного ИИ, в эксплуатацию.
•
Luau стал самым быстрорастущим в процентном отношении языком. Luau — это язык программирования постепенной типизации, используемый в Roblox, что тоже отражает более широкую тенденцию отрасли к типизированной гибкости. • На первый квартал 2025 года
Kotlin находился на 15 месте по популярности на GitHub, Swift на 17, Objective-C на 18, Dart на 22.👍4❤1
Forwarded from AppGrowth - инди, пет, рост и монетизация
Приложения, вышедшие в сентябре, и заработавшие больше $50,000
По данным AppMagic, в августе было выпущено всего 4 приложения, которые заработали более $50,000 (в августе было 6).
1. Tea App for Women: TeaOnHim ($150,147) - видимо перезапуск приложения, которое Apple на прошлой неделе удалила из App Store. Новая версия вышла 24 октября и уже заработала больше 150К.
2. TruthSeek: AI People Search ($75,915) - декларируется как поиск людей в социальных сетях. Что делает ИИ в нем не очень понятно, но видимо без него сейчас никуда.
3. Vidoo: AI Video Generator ($68,105) - Android-обертка для Sora, Veo 3, Kling, Hailuo и Genova, генерящая видео.
4. True Heritage & Ancestry: EDNA ($58,024) - определение происхождения человека по селфи (wat?), плюс генерация старинных фото и прочих генеалогических историй. Судя по 90% однозвездочных отзывов (при средней оценке 4.7) что-то не очень работающее.
Что можно повторить в одно лицо? Скорее всего, все, кроме первого (хотя и первое при должном бюджете на продвижение). Во втором случае возникнет вопрос доступа к социальным сетям и интерпретации социального графа, в четвертом этичности работы. А третье реализуется вполне просто, вопрос, опять же, упирается в бюджет и/или виральность. Можно сделать "заготовку" и быстро обновить при появлении следующей ИИ-модели.
Приложения за август и июль.
AppGrowth про инди, пет и монетизацию
По данным AppMagic, в августе было выпущено всего 4 приложения, которые заработали более $50,000 (в августе было 6).
1. Tea App for Women: TeaOnHim ($150,147) - видимо перезапуск приложения, которое Apple на прошлой неделе удалила из App Store. Новая версия вышла 24 октября и уже заработала больше 150К.
2. TruthSeek: AI People Search ($75,915) - декларируется как поиск людей в социальных сетях. Что делает ИИ в нем не очень понятно, но видимо без него сейчас никуда.
3. Vidoo: AI Video Generator ($68,105) - Android-обертка для Sora, Veo 3, Kling, Hailuo и Genova, генерящая видео.
4. True Heritage & Ancestry: EDNA ($58,024) - определение происхождения человека по селфи (wat?), плюс генерация старинных фото и прочих генеалогических историй. Судя по 90% однозвездочных отзывов (при средней оценке 4.7) что-то не очень работающее.
Что можно повторить в одно лицо? Скорее всего, все, кроме первого (хотя и первое при должном бюджете на продвижение). Во втором случае возникнет вопрос доступа к социальным сетям и интерпретации социального графа, в четвертом этичности работы. А третье реализуется вполне просто, вопрос, опять же, упирается в бюджет и/или виральность. Можно сделать "заготовку" и быстро обновить при появлении следующей ИИ-модели.
Приложения за август и июль.
AppGrowth про инди, пет и монетизацию
👍5🔥3❤1🤩1
Apple обновила веб-версию App Store
Apple запустила новый веб-интерфейс App Store. Теперь вы можете пользоваться всеми функциями App Store прямо в браузере.
Раньше домен Apple «apps.apple.com» просто перенаправлял вас на общую страницу App Store на сайте Apple. Теперь он перенаправляет вас на полноценную версию App Store, которую вы можете просматривать на своем компьютере.
Веб-версия App Store теперь предлагает полную копию вкладки «Сегодня», которую вы знаете по iPhone. Доступен удобный доступ к текущим специальным мероприятиям, топам, редакционным обзорам и многому другому.
Редизайн также распространяется на страницы приложений. Страницы приложений теперь имеют насыщенный медиа-интерфейс с новой иконографией для таких элементов, как категории, награды, мероприятия и многое другое.
Также появился новый интерфейс поиска, который позволяет быстро найти нужное приложение. Раньше единственным способом сделать это было ввести название приложения в Google, а затем открыть страницу продукта из результатов поиска Google.
Apple запустила новый веб-интерфейс App Store. Теперь вы можете пользоваться всеми функциями App Store прямо в браузере.
Раньше домен Apple «apps.apple.com» просто перенаправлял вас на общую страницу App Store на сайте Apple. Теперь он перенаправляет вас на полноценную версию App Store, которую вы можете просматривать на своем компьютере.
Веб-версия App Store теперь предлагает полную копию вкладки «Сегодня», которую вы знаете по iPhone. Доступен удобный доступ к текущим специальным мероприятиям, топам, редакционным обзорам и многому другому.
Редизайн также распространяется на страницы приложений. Страницы приложений теперь имеют насыщенный медиа-интерфейс с новой иконографией для таких элементов, как категории, награды, мероприятия и многое другое.
Также появился новый интерфейс поиска, который позволяет быстро найти нужное приложение. Раньше единственным способом сделать это было ввести название приложения в Google, а затем открыть страницу продукта из результатов поиска Google.
👍3
Купим прилы. Дорого. Звучит как скам?
ZM app market — новая программа для вас, уважаемые разработчики iOS-приложений, где ваш труд не просто высоко ценится, но и монетизируется на всей дистанции жизни аппки.
Никакого байта и скама, предлагаем win-win:
Есть готовая прила? Или вы готовы разработать аппку специально под наши требования? Ни слова больше.
Система проста как мир:
1️⃣ Вы отправляете приложение на оценку ➡️ @mikezmapps
2️⃣ Мы оцениваем его по ZM app index — нашей системе метрик качества
3️⃣ При одобрении — мы выплачиваем фиксу за выкуп и начинаем отслеживать инсталлы.
4️⃣ Вы получаете ревшару за все установки до конца жизни прилы — сверки и выплаты по расписанию.
Вопрос: работает ли это? Да, уже есть кейсы.
Остались вопросы? Сомнения? Или даже возражения? Пишите нашему менеджеру➡️ @mikezmapps. Он готов ко всему.
Заинтересованы? Значит, нужно делать. С ZM app market в выигрыше останутся все.
ZM app market — новая программа для вас, уважаемые разработчики iOS-приложений, где ваш труд не просто высоко ценится, но и монетизируется на всей дистанции жизни аппки.
Никакого байта и скама, предлагаем win-win:
Фикс оплата за выкуп (вверх по рынку) + Revshare за установки.
Есть готовая прила? Или вы готовы разработать аппку специально под наши требования? Ни слова больше.
Система проста как мир:
Вопрос: работает ли это? Да, уже есть кейсы.
Остались вопросы? Сомнения? Или даже возражения? Пишите нашему менеджеру
Заинтересованы? Значит, нужно делать. С ZM app market в выигрыше останутся все.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡16🌭5👍1
Новые инструменты в Google Play
Google представил новый набор инструментов и программ, разработанных для повышения производительности разработчиков и ускорения роста приложений. От упрощения технической интеграции и локализации до предоставления более глубокого анализа и создания новых эффективных способов взаимодействия с аудиторией, эти функции помогут оптимизировать ваш жизненный цикл разработки.
Что нового:
• Проверка диплинков с помощью встроенного эмулятора: вы можете использовать встроенный эмулятор для тестирования глубокой ссылки и сразу же увидеть ожидаемый пользовательский опыт, как если бы кто-то щелкнул URL-адрес на реальном устройстве.
• Локализация на базе Gemini в Google Play: этот сервис автоматически переводит новые бандлы приложений на выбранные языки, ускоряя выход приложения на новые рынки.
• Быстрая аналитика с помощью автоматизированных сводок по графикам: новая функция Gemini на странице «Статистика» автоматически генерирует описания ваших диаграмм.
• Доступ к метрикам, связанным с целями, и практическим советам для расширения аудитории: новая обзорная страница «Рост пользователей» уже доступна, предоставляя вам комплексное, персонализированное представление, которое поможет вам привлекать новых пользователей и расширять охват.
• Повторное взаимодействие с помощью вкладки «Вы»: разработчики приложений могут воспользоваться этим персонализированным разделом, интегрировав его с Engage SDK
• Оптимизируйте свою стратегию монетизации и отслеживайте эффективность: теперь вы можете предлагать товары в приложении в качестве аренды на ограниченный срок и зарегистрироваться в программе раннего доступа, чтобы начать оформлять предварительные заказы.
Упростите управление каталогом для разовых товаров
• Анализ влияния и эффективности промоакций Play Points: новая страница позволяет увидеть общий доход, количество покупателей и конверсий, полученных в результате всех промоакций Play Points.
Google представил новый набор инструментов и программ, разработанных для повышения производительности разработчиков и ускорения роста приложений. От упрощения технической интеграции и локализации до предоставления более глубокого анализа и создания новых эффективных способов взаимодействия с аудиторией, эти функции помогут оптимизировать ваш жизненный цикл разработки.
Что нового:
• Проверка диплинков с помощью встроенного эмулятора: вы можете использовать встроенный эмулятор для тестирования глубокой ссылки и сразу же увидеть ожидаемый пользовательский опыт, как если бы кто-то щелкнул URL-адрес на реальном устройстве.
• Локализация на базе Gemini в Google Play: этот сервис автоматически переводит новые бандлы приложений на выбранные языки, ускоряя выход приложения на новые рынки.
• Быстрая аналитика с помощью автоматизированных сводок по графикам: новая функция Gemini на странице «Статистика» автоматически генерирует описания ваших диаграмм.
• Доступ к метрикам, связанным с целями, и практическим советам для расширения аудитории: новая обзорная страница «Рост пользователей» уже доступна, предоставляя вам комплексное, персонализированное представление, которое поможет вам привлекать новых пользователей и расширять охват.
• Повторное взаимодействие с помощью вкладки «Вы»: разработчики приложений могут воспользоваться этим персонализированным разделом, интегрировав его с Engage SDK
• Оптимизируйте свою стратегию монетизации и отслеживайте эффективность: теперь вы можете предлагать товары в приложении в качестве аренды на ограниченный срок и зарегистрироваться в программе раннего доступа, чтобы начать оформлять предварительные заказы.
Упростите управление каталогом для разовых товаров
• Анализ влияния и эффективности промоакций Play Points: новая страница позволяет увидеть общий доход, количество покупателей и конверсий, полученных в результате всех промоакций Play Points.
👍5
iOS
Apple представила в iOS 26 новую технологию Language Discovery, которая помогает приложениям понимать реальные языковые предпочтения пользователя, а не просто выбранный язык интерфейса. Система с помощью машинного обучения анализирует, на каких языках человек пишет, читает и общается — всё локально и с сохранением приватности. Новый API
• Apple обновила веб-версию App Store
• StoreKit Helper — обертка StoreKit2 для SwiftUI
• Snapshot-тесты для дизайн-системы hh.ru
• Understanding Apple’s Retention Messaging API
• SwiftUI Custom URL Schemes
• Turning a Menu into a Mini Settings Panel in SwiftUI
• A deep dive into Collections, Sequences, and Iterators in Swift
• Making Apps More Personal with Language Discovery
• Building a License Plate Recognition App on iOS with CreateML and Vision Framework
Apple представила в iOS 26 новую технологию Language Discovery, которая помогает приложениям понимать реальные языковые предпочтения пользователя, а не просто выбранный язык интерфейса. Система с помощью машинного обучения анализирует, на каких языках человек пишет, читает и общается — всё локально и с сохранением приватности. Новый API
Locale.preferredLocales возвращает богатую информацию о локалях: язык, регион, систему чисел, направление письма, календарь и т.д. Для разработчиков это шанс сделать приложения более персональными и инклюзивными. Вместо статичного списка языков можно показывать сначала те, что реально важны пользователю, адаптировать формат дат и чисел под его культуру и сделать интерфейс комфортнее для мультиязычной аудитории. Подробности — в статье.• Apple обновила веб-версию App Store
• StoreKit Helper — обертка StoreKit2 для SwiftUI
• Snapshot-тесты для дизайн-системы hh.ru
• Understanding Apple’s Retention Messaging API
• SwiftUI Custom URL Schemes
• Turning a Menu into a Mini Settings Panel in SwiftUI
• A deep dive into Collections, Sequences, and Iterators in Swift
• Making Apps More Personal with Language Discovery
• Building a License Plate Recognition App on iOS with CreateML and Vision Framework
Create with Swift
Making Apps More Personal with Language Discovery
Learn how to utilize Language Discovery to create experiences that reflect the languages and cultural elements of your users.
👍1
Android
Антон Николаев из Okko рассказывает о JSON Schema и как они используют эту спецификацию на проекте, а также о библиотеке kotlinx.serialization и том, как упростила нам работу со схемами. Статья будет полезна разработчикам, которые интересуются библиотекой kotlinx.serialization и хотят глубже узнать её устройство.
• Новые инструменты в Google Play
• Nice Toast — красивы и настраиваемые тосты для Android
• ART Memory Management
• Kotlin и контекстно-ориентированное мышление
• VK Звонки в лесу: звоним в плохих сетях
• Кастомная сериализация с помощью kotlinx.serialization
• Finding Order in the Mayhem: A Novel Concurrency Testing Tool that Improved the Kotlin Compiler
• ML Kit’s Prompt API: Unlock Custom On-Device Gemini Nano Experiences
• 8 steps to success with Gemini in Android Studio
• We Put Kotlin Coroutines Against Java Virtual Threads — And One Got Wrecked at 1M Requests
Антон Николаев из Okko рассказывает о JSON Schema и как они используют эту спецификацию на проекте, а также о библиотеке kotlinx.serialization и том, как упростила нам работу со схемами. Статья будет полезна разработчикам, которые интересуются библиотекой kotlinx.serialization и хотят глубже узнать её устройство.
• Новые инструменты в Google Play
• Nice Toast — красивы и настраиваемые тосты для Android
• ART Memory Management
• Kotlin и контекстно-ориентированное мышление
• VK Звонки в лесу: звоним в плохих сетях
• Кастомная сериализация с помощью kotlinx.serialization
• Finding Order in the Mayhem: A Novel Concurrency Testing Tool that Improved the Kotlin Compiler
• ML Kit’s Prompt API: Unlock Custom On-Device Gemini Nano Experiences
• 8 steps to success with Gemini in Android Studio
• We Put Kotlin Coroutines Against Java Virtual Threads — And One Got Wrecked at 1M Requests
Хабр
Кастомная сериализация с помощью kotlinx.serialization
Привет, Хабр! Меня зовут Антон Николаев, я senior android-разработчик в Okko, работаю в команде «Молодость» — занимаюсь мультипрофилем и всем, что связано с детским контентом. Сегодня расскажу о JSON...
🔥5
А в этой статье автор рассказывает, как превратить инструменты на основе ИИ для программирования (автодополнение, ассистенты, генерация кода) в действительно полезных партнёров по разработке — если грамотно составлять запросы (промпты). Он подчёркивает: качество ответа ИИ сильно зависит от того, какой запрос мы ему задаём — контекст, цель, детали имеют решающее значение. Применение этих принципов может серьёзно повысить вашу эффективность. Впрочем, в статье упоминается, что промпт-инженерия это скорее ремесло, чем строгий набор правил.
Разработка
• Как создать первую дизайн-систему для твоего стартапа
• Backend-Driven UI как ответ на рост числа платформ
• Как устроена мобильная разработка сегодня
• Как вас взламывают через Open Source — DevSecOps и безопасная разработка
• Руководство по промпт-инжинирингу для программистов
• Пишем свою мобильную ОС с нуля на Rust
• Создать мобильное приложение с zero опыта! Рассказываю, как сделал свой первый проект на Java
• Microdosing AI for Mobile Dev
• Architectural debt is not just technical debt
Маркетинг
• Письмо от «Будущего Я»
• Google и Epic заключат мировое соглашение, которое положит конец многолетней борьбе за Play Store
• Рост Suno — магия ИИ-музыки
• Финтех-приложения в 2025: рынок перестал гнаться за объёмом — побеждают измеримость и точность
• Приложения, вышедшие в сентябре, и заработавшие больше $50,000
Кроссплатформа
• Что не так с Dart и Flutter в 2025 году?
• KMP для ОС Аврора
• KMP Starter — шаблон кроссплатформенного приложения на KMP
• Публикация PWA в App Store и Play Store на github actions
• Liquid Glass Components in Compose Multiplatform
• Swift Android Gradle Plugin
• The most desired missing features of Flutter
Разработка
• Как создать первую дизайн-систему для твоего стартапа
• Backend-Driven UI как ответ на рост числа платформ
• Как устроена мобильная разработка сегодня
• Как вас взламывают через Open Source — DevSecOps и безопасная разработка
• Руководство по промпт-инжинирингу для программистов
• Пишем свою мобильную ОС с нуля на Rust
• Создать мобильное приложение с zero опыта! Рассказываю, как сделал свой первый проект на Java
• Microdosing AI for Mobile Dev
• Architectural debt is not just technical debt
Маркетинг
• Письмо от «Будущего Я»
• Google и Epic заключат мировое соглашение, которое положит конец многолетней борьбе за Play Store
• Рост Suno — магия ИИ-музыки
• Финтех-приложения в 2025: рынок перестал гнаться за объёмом — побеждают измеримость и точность
• Приложения, вышедшие в сентябре, и заработавшие больше $50,000
Кроссплатформа
• Что не так с Dart и Flutter в 2025 году?
• KMP для ОС Аврора
• KMP Starter — шаблон кроссплатформенного приложения на KMP
• Публикация PWA в App Store и Play Store на github actions
• Liquid Glass Components in Compose Multiplatform
• Swift Android Gradle Plugin
• The most desired missing features of Flutter
Substack
The Prompt Engineering Playbook for Programmers
Turn AI coding assistants into more reliable development partners
😁3🐳1
Основатель Foursquare выпустил новое приложение (для AirPods) BeeBot
Основатель Foursquare Деннис Кроули представил своё новое приложение. И да, это ещё одно социальное приложение, основанное на геолокации. Но вместо чекинов, которые Кроули впервые популяризировал более 15 лет назад, BeeBot представляет собой концепцию, актуальную для 2025 года.
Приложение представляет собой «диджея» на базе искусственного интеллекта, который может воспроизводить контекстные аудиосообщения в зависимости от ваших действий в течение дня. «Диджей» BeeBot, который, конечно же, обладает сгенеренным ИИ голосом, может общаться с вами в течение всего дня и сообщать об интересных событиях, достопримечательностях (приложение будет использовать местные Substacks и новостные рассылки для получения актуальной информации о заданном районе) или обновлениях от друзей, которые находятся поблизости..
В каком-то смысле похоже, что Кроули пытается воссоздать некоторые из тех удачных социальных взаимодействий в реальной жизни, которые были доступны в оригинальной версии Foursquare. В BeeBot нет «мэрства», бейджей или каких-либо других функций геймификации, которые способствовали популяризации Foursquare, но, по словам Кроули, он должен обладать «тем же игривым духом» оригинального Foursquare.
И, поскольку на дворе 2025 год, в приложении также присутствует целый набор функций искусственного интеллекта, включая «микс различных LLM» и «синтетические голоса». По словам Кроули, приложение «работает на алгоритме в стиле TikTok», но с учётом того, что происходит поблизости и в реальной жизни.
BeeBot, первый проект новой компании Кроули Hopscotch Labs, уже доступен в App Store, хотя, по словам Кроули, он всё ещё «в значительной степени находится в стадии разработки». «Мне кажется, что версия продукта, которой мы делимся с людьми сегодня, чем-то напоминает Foursquare, которым он был запущен на SXSW в 2009 году — интересная концепция, достаточно хорошее исполнение, но полный потенциал его раскроют сами люди в процессе использования».
Основатель Foursquare Деннис Кроули представил своё новое приложение. И да, это ещё одно социальное приложение, основанное на геолокации. Но вместо чекинов, которые Кроули впервые популяризировал более 15 лет назад, BeeBot представляет собой концепцию, актуальную для 2025 года.
Приложение представляет собой «диджея» на базе искусственного интеллекта, который может воспроизводить контекстные аудиосообщения в зависимости от ваших действий в течение дня. «Диджей» BeeBot, который, конечно же, обладает сгенеренным ИИ голосом, может общаться с вами в течение всего дня и сообщать об интересных событиях, достопримечательностях (приложение будет использовать местные Substacks и новостные рассылки для получения актуальной информации о заданном районе) или обновлениях от друзей, которые находятся поблизости..
В каком-то смысле похоже, что Кроули пытается воссоздать некоторые из тех удачных социальных взаимодействий в реальной жизни, которые были доступны в оригинальной версии Foursquare. В BeeBot нет «мэрства», бейджей или каких-либо других функций геймификации, которые способствовали популяризации Foursquare, но, по словам Кроули, он должен обладать «тем же игривым духом» оригинального Foursquare.
И, поскольку на дворе 2025 год, в приложении также присутствует целый набор функций искусственного интеллекта, включая «микс различных LLM» и «синтетические голоса». По словам Кроули, приложение «работает на алгоритме в стиле TikTok», но с учётом того, что происходит поблизости и в реальной жизни.
BeeBot, первый проект новой компании Кроули Hopscotch Labs, уже доступен в App Store, хотя, по словам Кроули, он всё ещё «в значительной степени находится в стадии разработки». «Мне кажется, что версия продукта, которой мы делимся с людьми сегодня, чем-то напоминает Foursquare, которым он был запущен на SXSW в 2009 году — интересная концепция, достаточно хорошее исполнение, но полный потенциал его раскроют сами люди в процессе использования».
❤2🔥1
iOS
Очередной "простой" вопрос с собеседования - "Можете ли вы объяснить, что происходит при вызове
• Превращение меню SwiftUI в мини-панель настроек
• Сделайте приложение более персонализированным с Language Discovery
• Tachikoma — современный Swift SDK для работы с ИИ-провайдерами
• 7 Swift Keywords You’re Not Using (But Should)
• Why 90% of iOS Developers Fail This One UIKit QuestionSwiftUI: Live Text Interactions with Images. Built-In Vs CustomWhy if let isn’t Always the Best Choice in Swift
Очередной "простой" вопрос с собеседования - "Можете ли вы объяснить, что происходит при вызове
setNeedsLayout()?". На этот раз на понимание ментальной модели UIKit. Если не знаете - изучайте.• Превращение меню SwiftUI в мини-панель настроек
• Сделайте приложение более персонализированным с Language Discovery
• Tachikoma — современный Swift SDK для работы с ИИ-провайдерами
• 7 Swift Keywords You’re Not Using (But Should)
• Why 90% of iOS Developers Fail This One UIKit QuestionSwiftUI: Live Text Interactions with Images. Built-In Vs CustomWhy if let isn’t Always the Best Choice in Swift
Medium
Why 90% of iOS Developers Fail This One UIKit Question
It’s not about code. It’s about understanding how UIKit really thinks.
❤1👍1
Android
MVVM, как и Java, пережил своё время. Современная разработка под Android эволюционировала. Благодаря Jetpack Compose, GraphQL и однонаправленному потоку данных нам больше не нужны хрупкие цепочки LiveData и несогласованные состояния ViewModel. Встречайте MVI (Model–View–Intent) — шаблон, который делает состояние предсказуемым, тестируемым и масштабируемым. Если вы всё ещё жонглируете булевыми значениями и несколькими объектами MutableStateFlow в MVVM, пора выходить на новый уровень. В этой статье автор показывает, как он модернизировал своё приложение Hockey Hub с помощью MVI, Kotlin Flows и Hilt.
• This One Build Setting Shrunk My APK by 40% — And I Almost Missed It
• Inside Kotlin Coroutines: State Machines, Continuations, and Structured Concurrency
• Compose UI Tests for Larger Font Sizes: Scrolling and Text Truncation
• MVVM Is Outdated: The Modern Android Stack Is MVI + GraphQL + Compose
MVVM, как и Java, пережил своё время. Современная разработка под Android эволюционировала. Благодаря Jetpack Compose, GraphQL и однонаправленному потоку данных нам больше не нужны хрупкие цепочки LiveData и несогласованные состояния ViewModel. Встречайте MVI (Model–View–Intent) — шаблон, который делает состояние предсказуемым, тестируемым и масштабируемым. Если вы всё ещё жонглируете булевыми значениями и несколькими объектами MutableStateFlow в MVVM, пора выходить на новый уровень. В этой статье автор показывает, как он модернизировал своё приложение Hockey Hub с помощью MVI, Kotlin Flows и Hilt.
• This One Build Setting Shrunk My APK by 40% — And I Almost Missed It
• Inside Kotlin Coroutines: State Machines, Continuations, and Structured Concurrency
• Compose UI Tests for Larger Font Sizes: Scrolling and Text Truncation
• MVVM Is Outdated: The Modern Android Stack Is MVI + GraphQL + Compose
Medium
MVVM Is Outdated: The Modern Android Stack Is MVI + GraphQL + Compose
MVVM had its time — just like Java did. But modern Android development has evolved. With Jetpack Compose, GraphQL, and unidirectional data…
👍1
Skip начинался как транспилятор Swift/SwiftUI в Kotlin/Compose. Он был бесплатным для инди-разработчиков более года, но с запуском режима Fuse (на основе Swift SDK для Android) за него стали просить деньги. Сегодня Skip Fuse тоже стал бесплатен для инди-разработчиков. Этот режим не транслирует код, а компилирует его нативно для Android, что дает множество преимуществ. Пишут, что теперь, когда Android стал официально поддерживаемой платформой для языка Swift, сейчас самое время начать создавать двухплатформенные приложения с помощью Skip.
Разработка
• Tik Tok saved $300000 per year in computing costs by having an intern partially rewrite a microservice in Rust
Маркетинг
• Основатель Foursquare выпустил новое гиперлокальное приложение BeeBot
• AI has broken subscription app pricing models: the end of one-size-fits-all subscriptions
• Make your paywall do more than sell: 7 unexpected uses for your paywall
Кроссплатформа
• Skip Fuse стал бесплатным для инди-разработчиков
• 5 Open Source Boilerplate Templates for React Native (2025 Edition)
• Swift on Android in 2025: The Experiment That Surprised Every iOS Developer
• SKIE: The missing bridge for KMP on iOS
Разработка
• Tik Tok saved $300000 per year in computing costs by having an intern partially rewrite a microservice in Rust
Маркетинг
• Основатель Foursquare выпустил новое гиперлокальное приложение BeeBot
• AI has broken subscription app pricing models: the end of one-size-fits-all subscriptions
• Make your paywall do more than sell: 7 unexpected uses for your paywall
Кроссплатформа
• Skip Fuse стал бесплатным для инди-разработчиков
• 5 Open Source Boilerplate Templates for React Native (2025 Edition)
• Swift on Android in 2025: The Experiment That Surprised Every iOS Developer
• SKIE: The missing bridge for KMP on iOS
AppTractor
Skip: транспилятор Swift/SwiftUI в Kotlin/Compose
Skip — это технология для создания двухплатформенных мобильных приложений на языке Swift. Сердцем Skip является интеллектуальный транспилятор языка Swift в Kotlin. Для анализа исходного текста Swift в Skip используется собственная библиотека Apple SwiftSyntax…
👍2
Forwarded from AppFiles - Mobile Development
•
(iOS En) Perplexity App's Animated Bottom Bar Using SwiftUI•
(iOS En) Press Start: Game development on Apple platforms•
(iOS En) SwiftLeeds Evening Talkshow 2025•
(iOS En) PencilKit: From simple drawings to custom creative tools•
(iOS En) Practical Guide to Shipping Fast•
(iOS En) Side Effects as Behavior•
(iOS En) Tuning your app using Xcode's Instruments•
(iOS En) Guided Generation with Foundation Models in Swift•
(iOS En) Hero Confirmation Dialogs Using SwiftUI•
(And Ru) Swift на Android — ход отчаяния Apple или стратегический манёвр?•
(And En) All Material3 Expressive Loading Indicators Explained (+ When to Use Which)•
(Crs Ru) Как адаптировать свой KMP код под Аврору•
(Crs Ru) Flutter Aurora UI Kit •
(Crs Ru) Наша навигация и её эволюция•
(Crs Ru) Выбираем DI для Kotlin Multiplatform•
(Dev Ru) ИИ в кармане: как встроить ИИ в мобильное приложение•
(Dev Ru) ИИ в серьёзной разработке: революция в IT или переоценённый хайп?•
(Dev Ru) Как с нуля создать ферму мобильных устройств•
(Dev Ru) Всё про новый найм в Яндексе — честный разбор•
(Tcn Ru) Криптофинансы — блокчейн, криптовалюты, DeFi, web3•
(Dsg Ru) Когнитивная нагрузка в интерфейсах и как с ней боротьсяПрошлогодние видео:
•
(iOS Ru) SDK и BDUI в Яндекс Пэй и Яндекс Банке•
(And Ru) 5 СЕКРЕТНЫХ преимуществ Android эмулятора которые вы не знали!Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Быстрее, чище, стабильнее
Дайджест за прошлую неделю - самый задаваемый вопрос с собеседования и приватный Android без слежки, новые инструменты в Google Play и App Store, своя мобильная ОС с нуля на Rust, магия ИИ-музыки, концентрированный маркетинг и многое другое. Заходите!
Дайджест за прошлую неделю - самый задаваемый вопрос с собеседования и приватный Android без слежки, новые инструменты в Google Play и App Store, своя мобильная ОС с нуля на Rust, магия ИИ-музыки, концентрированный маркетинг и многое другое. Заходите!
1👍4❤1
Valdi - кроссплатформенный UI фреймворк от Snap
На прошлой неделе Snapchat выпустил свой кроссплатформенный UI фреймворк Valdi, который используется в собственных приложениях Snap уже 8 лет.
Как пишут, он обеспечивающий нативную производительность без ущерба для скорости разработки. Один раз напишите свой пользовательский интерфейс на декларативном TypeScript, и он сразу же скомпилируется в нативные (Kotlin, Objective-C и Swift ) представления на iOS, Android и macOS — без веб-представлений и JavaScript-бриджей.
В отличие от фреймворков, использующих веб-представления или JavaScript-мосты, Valdi компилирует декларативно отрисованные компоненты TypeScript в платформенно-зависимые представления. Valdi также обладает рядом других преимуществ в плане производительности:
• Автоматическое переиспользование представлений — глобальная система пула представлений повторно использует нативные представления на всех экранах, значительно сокращая задержки.
• Оптимизированный рендеринг компонентов — компоненты перерисовываются независимо, не запуская повторную визуализацию родительских элементов, что обеспечивает быстрые инкрементальные обновления.
• Оптимизированный движок компоновки — движок компоновки C++ работает в основном потоке с минимальными затратами на преобразование данных из одного представления в другое.
• Рендеринг с учётом области просмотра — он выполняется только видимых представлений, что делает бесконечную прокрутку производительной по умолчанию.
Valdi устраняет традиционный цикл компиляция-тестирование-отладка, замедляющий разработку нативных приложений:
• Мгновенная горячая перезагрузка — отслеживайте изменения за миллисекунды на iOS, Android или настольных компьютерах без перекомпиляции.
• Полноценная отладка VSCode — устанавливайте точки останова, проверяйте переменные, профилируйте производительность и создавайте дампы кучи прямо в VSCode.
• Привычный синтаксис — компоненты TSX с TypeScript для обеспечения типобезопасности.
Valdi генерирует типобезопасные биндинги между TypeScript и нативными платформами:
• Автоматическая генерация кода — интерфейсы TypeScript компилируются в биндинги Kotlin, Objective-C и Swift.
• Доступ к нативному API — прямой доступ к API платформы и сторонним нативным библиотекам через многоязычные модули.
• Двунаправленная связь — безопасная передача сложных структур данных и колбеков между TypeScript и нативным кодом.
• Встроенная поддержка Protobuf — бесшовная интеграция с Protobuf для эффективной сериализации данных.
• Поддерживает продвинутую анимацию, рендеринг в реальном времени и сложные системы жестов.
На прошлой неделе Snapchat выпустил свой кроссплатформенный UI фреймворк Valdi, который используется в собственных приложениях Snap уже 8 лет.
Как пишут, он обеспечивающий нативную производительность без ущерба для скорости разработки. Один раз напишите свой пользовательский интерфейс на декларативном TypeScript, и он сразу же скомпилируется в нативные (Kotlin, Objective-C и Swift ) представления на iOS, Android и macOS — без веб-представлений и JavaScript-бриджей.
В отличие от фреймворков, использующих веб-представления или JavaScript-мосты, Valdi компилирует декларативно отрисованные компоненты TypeScript в платформенно-зависимые представления. Valdi также обладает рядом других преимуществ в плане производительности:
• Автоматическое переиспользование представлений — глобальная система пула представлений повторно использует нативные представления на всех экранах, значительно сокращая задержки.
• Оптимизированный рендеринг компонентов — компоненты перерисовываются независимо, не запуская повторную визуализацию родительских элементов, что обеспечивает быстрые инкрементальные обновления.
• Оптимизированный движок компоновки — движок компоновки C++ работает в основном потоке с минимальными затратами на преобразование данных из одного представления в другое.
• Рендеринг с учётом области просмотра — он выполняется только видимых представлений, что делает бесконечную прокрутку производительной по умолчанию.
Valdi устраняет традиционный цикл компиляция-тестирование-отладка, замедляющий разработку нативных приложений:
• Мгновенная горячая перезагрузка — отслеживайте изменения за миллисекунды на iOS, Android или настольных компьютерах без перекомпиляции.
• Полноценная отладка VSCode — устанавливайте точки останова, проверяйте переменные, профилируйте производительность и создавайте дампы кучи прямо в VSCode.
• Привычный синтаксис — компоненты TSX с TypeScript для обеспечения типобезопасности.
Valdi генерирует типобезопасные биндинги между TypeScript и нативными платформами:
• Автоматическая генерация кода — интерфейсы TypeScript компилируются в биндинги Kotlin, Objective-C и Swift.
• Доступ к нативному API — прямой доступ к API платформы и сторонним нативным библиотекам через многоязычные модули.
• Двунаправленная связь — безопасная передача сложных структур данных и колбеков между TypeScript и нативным кодом.
• Встроенная поддержка Protobuf — бесшовная интеграция с Protobuf для эффективной сериализации данных.
• Поддерживает продвинутую анимацию, рендеринг в реальном времени и сложные системы жестов.
💅10🤡6
iOS
В статье показано, как использовать новый инструмент из Xcode 26 для профилирования приложений на SwiftUI: вы запускаете приложение через Instruments, выбираете шаблон SwiftUI, записываете сессию, а затем в разделе «All Updates» сортируете виды по числу обновлений, чтобы определить те, которые изменяются чаще всего. Далее автор описывает, как с помощью графа «Cause & Effect» можно отследить, что именно вызывает обновление конкретного View. Это помогает выявить, например, изменение данных как причину обновления.
• Find the SwiftUI Views that Update the Most Using Instruments
• Roadmap for improving the type checker
• Smoothly Switching Between Layouts in SwiftUI with AnyLayout
• MainActorMessage & AsyncMessage: Concurrency-safe notifications
• How I Structure My SwiftUI Projects for Scalability
В статье показано, как использовать новый инструмент из Xcode 26 для профилирования приложений на SwiftUI: вы запускаете приложение через Instruments, выбираете шаблон SwiftUI, записываете сессию, а затем в разделе «All Updates» сортируете виды по числу обновлений, чтобы определить те, которые изменяются чаще всего. Далее автор описывает, как с помощью графа «Cause & Effect» можно отследить, что именно вызывает обновление конкретного View. Это помогает выявить, например, изменение данных как причину обновления.
• Find the SwiftUI Views that Update the Most Using Instruments
• Roadmap for improving the type checker
• Smoothly Switching Between Layouts in SwiftUI with AnyLayout
• MainActorMessage & AsyncMessage: Concurrency-safe notifications
• How I Structure My SwiftUI Projects for Scalability
👍3