Android
• Как мы снизили время запуска FullStory на Android на 75%
• TranslationPlugin: перевод текста в IntelliJ/Android Studio
• Обзор библиотек для скриншот-тестирования Android проектов. Часть 1
• Тестирование мобильных игр перед релизом: инструменты и лучшие практики в Google Play
• bapness/tools-and-tips-i-wish-i-knew-when-i-started-android-development-1dce73c491a">Tools and tips I wish I knew when I started Android development
• Records in Android Studio Flamingo
• Avoid Java double brace initialization
• Jetpack compose — How to implement Custom Pager Indicators
#android
Занятная история от разработчика screen.studio. Чувак забыл отключить скачивание обновлений - новая версия на 250 Мб скачивалась и через 5 минут… снова скачивалась, и через 5 минут… У каждого клиента. В результате за полтора месяца отдали с Google Cloud 2 петабайта данных на $8000 и отключили одному клиенту интернет из-за перерасхода трафика, а обнаружили только когда кредитка начала вопить о перерасходе средств. Смысл - ставьте триггеры на облачные расходы и особо тщательно пишите любой код, который потенциально может генерировать затраты 🤷
Разработка
• Одна строчка кода, которая стоила $8,000
• Tesla добавляет поддержку сторонних приложений
• ChatGPT запустили на Windows 3.1
• Как мы делаем тестирование прозрачным. Всё об инфраструктуре QA
• JTBD-метод на практике для решения тестового задания
• To Be A Great Software Developer — You Need a System
Маркетинг
• data.ai announces the Top Publishers in 2023
• Категория «Здоровье и фитнес» в 2022 — отчет AdQuantum и Sensor Tower
Кроссплатформа
• aliammariraq/sealed-classes-in-dart-unlocking-powerful-features-d8dba185925f">Sealed Classes in Dart: Unlocking Powerful Features
ChatGPT запустили на Windows 3.1
"640К памяти должно хватить всем".
1. Разработчик создал приложение ChatGPT для Windows 3.1. WinGPT представляет собой очень базовую версию чат-бота ChatGPT в приложении, которое может работать на 386 процессоре.
2. «Я не хотел, чтобы мой Gateway 4DX2-66 1993 года остался в стороне от ИИ-революции, поэтому я создал AI Assistant для Windows 3.1, основанный на OpenAI API».
3. WinGPT написан на языке C с использованием стандартного Windows API от Microsoft и подключается к API-серверу OpenAI с помощью TLS 1.3.
4. Впрочем, ответы ChatGPT не поддерживают контекст из-за ограничений памяти.
И что: если не задаваться вопросом зачем и у вас все еще есть машина с Windows 3.1, то можете скачать WinGPT и наверстать 30 лет между двумя этими технологическими революциями.
Android
• Crafting a Clock in Jetpack Compose with Canvas
• How we lowered FullStory for Android’s impact on app startup time by 75% thanks to Emerge Tools
• Understanding memory leaks
• Talkback Ordering in Android Jetpack Compose
• Performance With Jetpack Compose
#android
Из вчерашнего еще замечательное - закрылась социальная сеть IRL. Она должна была, по хорошему, стать заменой всяких Фейсбуков для Поколения Z, но не осилила. Всего стартап поднял около 200 миллионов долларов с оценкой в 1.17 млрд и в пике утверждал, что у него MAU 20 миллионов пользователей. Потом гендира с помпой уволили, провели увольнения, а вишенкой на торте оказалось расследование, которое показало, что 95% пользователей сети - боты. Масштаб, да? 200 миллионов на ботов. Что-то обещали вернуть, но бедный SoftBank 🙈
Разработка
• TikTok закрывает свой клон BeReal
• Только четверть программистов однозначно счастливы, работая в IT
• Google отменил свои AR-очки Project Iris и переключился на создание платформы
• Как я написал конвертер 3D-моделей из подручных средств
• Nobody Listens to UX
• I Wish I Knew These 10 Software Architectural Styles Before the Interview
Маркетинг
• В AppMetrica появились кастомные дашборды
Кроссплатформа
• Demystifying Local AAR Usage in Flutter: Step-by-Step Guide for Flutter Plugins and Projects
• Unifying our workflow: the journey to monorepo with Kotlin Multiplatform Mobile
• parthg500/flutter-ios-app-release-on-appstore-using-bitbucket-pipeline-255a0b6c0976">Flutter — iOS App Release on AppStore using Bitbucket Pipeline
iOS
• Apple обновила ресурсы для дизайнеров
• Изнутри: Swift макрос — #Preview
• #Preview SwiftUI Views using Macros
• Creating a Joystick Control in SwiftUI
• Scalable Navigation With Deep Links in SwiftUI
• Revamping Trendyol’s iOS App: A Modularization Success Story
• vladosius/all-about-silent-push-notifications-step-by-step-guide-21e6a4eefd54">All about Silent Push Notifications. Step-by-Step Guide
• Recreating iMessage's Sticker Peel-Off Effect
#ios
Приглашаем на Звук Android Meetup
🔈 Спикеры расскажут:
1. Как построить платформенную команду. Как в компании трансформировали обычную команду разработки в комбинацию из продуктовых команд и платформенной. Детальнее поговорим про задачи, зоны ответственности, работу с техдолгом в платформенных командах.
2. О создании дизайн-системы в Android-приложении Звука. Зачем нам понадобилась дизайн-система, как мы встроили ее в архитектуру проекта и что получилось благодаря этому автоматизировать и изменить в процессе разработки.
3. Как сделать музыкальный плеер в Android. Какие есть актуальные инструменты для разработки полноценного аудиоплеера. После разберем пошагово: как плеер декодирует данные и играет их, как работать с аудио-фокусом, как сделать звук выразительным с помощью кастомного эквалайзера и как рисовать красивые визуальные эффекты под музыку.
Так же в программе afterparty с Dj, вайбом домашней вечеринки и легкими закусками 🍻
Регистрация по ссылке
🗓 29 июня, 18:00 мск • Онлайн / Офлайн (Москва)
Android
• AnkiDroid: карточки для запоминания
• Android TextView freezesText — замораживаем текст в Android-приложении
• Что внутри Android SDK
• Seal the Deal with Kotlin — A Look at Sealed Classes and Sealed Interfaces
• Exploring Jetpack Compose Anchored Draggable Modifier
• Lindy effect in surnames problem
• I re-wrote Grab Android App. Do I regret it?
• Server-Sent Events in Android (with Node.js)
• Modularizing Our Driver App For Android
#android
“Ведомости”, ссылаясь на Data.ai, докладывают, что траты россиян на мобильные игры в Google Play и App Store упали год к году в три раза. В 2021 было $736 слн, в 2022 - $241 млн. При этом загрузки остались практически неизменными - они сократились всего на 4%. А как у вас в приложениях?
Разработка
• Траты россиян на мобильные игры в крупнейших магазинах приложений упали втрое
• Не будьте скромным разработчиком
• 4 ошибки, которых следует избегать, чтобы построить бизнес из одного человека
• Загрузки переходят на летний режим
• Podlodka #323: выбираем язык конфигураций — YAML, TOML или Dhall
• Как катить фичи без релизов. Часть 2: про низкоуровневый Server Driven UI
• Nokia is finally making news with its new UI language
• tsecretdeveloper/where-do-old-programmers-go-e433dc387604">Where Do Old Programmers Go?
• How Spotify’s design optimizes for sign-up conversions
• 12 Mobile App UI/UX Design Trends 2023
Маркетинг
• Как попасть в фичеринг
Кроссплатформа
• Kotlin Multiplatform и Compose Multiplatform — стратегический провал Apple
• Dart для бэкэндеров. Часть 1
• Использование Ionic и Vue 3 для создания мобильных приложений
• Demystifying Local AAR Usage in Flutter: Step-by-Step Guide for Flutter Plugins and Projects
• ximya/modularizing-flutter-ui-with-factory-constructors-f13907b6f5d4">Modularizing Flutter UI with Factory Constructors
Загрузки перешли на летний режим
Летом количество загрузок резко меняется. У детей каникулы, а значит, больше игр, у взрослых отпуска, а значит, больше путешествий, развлечения и... работы.
1. На графике выше — загрузки в американском App Store по сравнению с месяцем назад, топ категория по росту установок.
2. Семейные игры выросли на 82%, игры для детей от 6 до 8 на 43%, Путешествия на 23%.
3. Наличие здесь категории Бизнес может показаться ошибкой, но это не так. Это обычное явление, поскольку взрослые, которые путешествуют, но при этом продолжают работать, отказываются от компьютеров в пользу облегченных версий приложений, которые нужны им для работы прямо с телефона.
И что: если ваше приложение или игра попадает в одну из этих категорий, сейчас самое время приложить больше усилий для продвижения. Будь то органическое продвижение с помощью ASO или платное с помощью поисковой рекламы, сейчас самое время увеличить его.
Видео и подкасты за неделю
• (iOS Ru)
SwiftUI vs UIKit. Что выбрать новичку?
• (iOS En)
visionOS Fundamentals
• (iOS En)
SwiftUI Menu and Context Menu: How to Show Buttons with Dropdown Lists
• (iOS En)
SwiftUI Presentations with Modals, Bottom Sheets, and FullScreen cover in iOS
• (iOS En)
MatchedGeometryEffect in SwiftUI
• (And Ru)
Android TextView freezesText — замораживаем текст в Android-приложении
• (And Ru)
Что внутри Android SDK
• (And En)
Top 3 things to know from Google Play at Google I/O '2
• (And En)
Technical quality on Google Play
• (And En)
What is the Context? - Android Basics 2023
• (And En)
ViewModels & Configuration Changes - Android Basics 2023
• (And En)
The Art of App Modularization
• (Dev Ru)
Podlodka #323: выбираем язык конфигураций — YAML, TOML или Dhall
Посмотрели какое-то другое интересное видео? Отправьте боту -> 🧑🏻💻
iOS
• Apple выпустила visionOS SDK
• Quick: behavior-driven тестирование
• Внедряем MapKit Яндекс Карт в iOS приложение
• ganeshrajugalla/1000-ios-interview-questions-and-answers-your-path-to-success-89d7ccf67b5d">2000+ iOS Interview Questions And Answers: Your Path to Success
• Slow architecture in Swift
• Animate SF Symbols with symbolEffect
#ios
Мечтали о космосе, а работаете в опенспейсе?
Мы тоже… Но мечты же должны сбываться! Поэтому мы создали свои мультивселенные и решили провести там настоящие соревнования по спортивному хакингу IT’s Tinkoff CTF.
Путешественников ждут 30 порталов в новые измерения. Там предстоит пройти миссии, набрать максимальное количество баллов и, конечно, разгадать все пасхалки.
Задания будут интересны разработчикам, SRE- и QA-инженерам, аналитикам и другим ИТ-специалистам. А еще вы сможете потренироваться на тестовых заданиях и выбрать лигу по своим скиллам.
Лучшим командам — вселенский почет и денежные призы до 360 000 рублей!
Покорять мультивселенные отправимся 15 и 16 июля. Участвовать можно онлайн и очно в 14 ИТ-хабах Тинькофф по всей России. Офлайн-участников ждут квизы, настолки, крутой мерч и нетворкинг с экспертами.
🚀Переходите на IT’s Tinkoff CTF, читайте подробности и регистрируйтесь!
Да пребудут с вами силы мультивселенной капибары!
(Упс… кажется, мы спалили первую пасхалку, Хьюстон)
Ерид: LdtCKZmzw
Apple выпустила visionOS SDK
Apple объявила о выпуске visionOS SDK и всех инструментов разработки для Vision Pro.
1. visionOS SDK включен в новый релиз Xcode 15 beta 2.
2. Там же есть Reality Composer Pro для 3D моделирования и симулятор ОС.
3. В следующем месяце откроет лаборатории в Купертино, Лондоне, Мюнхене, Шанхае, Сингапуре и Токио. В этих лабораториях разработчики смогут получить практическое время работы с Vision Pro для тестирования своих приложений. Инженеры Apple также будут готовы оказать поддержку на месте.
4. Также в следующем месяце Apple откроет прием заявок для разработчиков, желающих получить комплект разработчиков Vision Pro.
И что: все по плану, если планировали начинать, то самое время.
iOS
• Многопоточность в iOS-разработке
• Немного о перечислениях в Swift
• Императивный UIKit vs Декларативный SwiftUI
• Agile Architecture in Swift
• A Deep Dive Into Observation: A New Way to Boost SwiftUI Performance
• Run iOS tests with Marathon Cloud
• Building Your Own Swift Code Generator Using Swift Script
• Meet StoreKit SubscriptionStoreView in iOS 17
#ios
iOS
• iOS: Узнать и отслеживать состояние физического переключателя тихого режима
• shiny.shubham/unleashing-xcodes-potential-6-uncommon-xcode-extensions-for-senior-ios-engineers-1f0553f9dc38">Unleashing Xcode’s Potential: 6 Uncommon Xcode Extensions for Senior iOS Engineers
• vladosius/implementing-location-search-by-address-into-the-ios-app-step-by-step-guide-1131b0d17664">Implementing location search by address into the iOS app
• How to set up Gitlab CI/CD with Fastlane for iOS-project on a Mac mini
• Working with C callback functions in Swift
#ios
В AppMetrica появился удобный, простой и эффективный инструмент для быстрой визуализации событий из мобильного приложения.
С его помощью вы сможете следить за успешностью любой конкретной фичи в вашем продукте.
А на главной странице можно быстро сделать дашборд с KPI или любыми показателями, чтобы вся команда могла пользоваться единой панелью и понимать, что происходит с метриками и куда вы движетесь.
Это удобный инструмент для отслеживания эффективности привлечения трафика, LTV, ROI.
iOS-разработчик в Финтех Яндекса
Знаете, где самое место для weak и что такое MVVM и MVC? Тогда есть вакансия для вас 👀
Финтеху Яндекса нужен iOS-разработчик, который и новую фичу добавит, и старый баг отловит. А кроме этого — поможет построить инфраструктуру для приложения и автоматизировать процессы разработки и тестирования.
Ждём, что вы уже кодили для iOS и разбираетесь в сортах Swift. И мы не про творчество Тейлор, а про Swift 5.x, SwiftLint и SwiftFormat. Ещё нужно создавать кастомные UI-компоненты и любить ревью кода.
Финтех — молодой сервис, где можно предлагать идеи и реально влиять на продукт. При этом получать блага большого Яндекса: премии раз в полгода, ДМС со стоматологией, массаж прямо в офисе и не только.
До лички рекрутера всего один шаг — решить задачку на сайте
iOS
• ReSwift: однонаправленный поток данных в Swift
• Макросы в Swift
• Swift 5.9. Что нового?
• Agile Architecture in Swift
• Effective Task cancellation in Swift by leveraging Combine’s AnyCancellable
• Writing a modern iOS Networking Library with Swift Concurrency
• Libraries with resources optimized for build time and application size
• How to use String Catalogs for localization in Swift
#ios
Android
• Flagfit: флаги функций для Android и Kotlin
• Google обновляет дизайн логотипа Android
• MockResponseInterceptor: Simplifying Retrofit API Response Mocking in Android
• Dropbox rebuilt its search experience 40% faster with Jetpack Compose
• How to create a welcoming codebase
• Simplify Testing Kotlin Flows with Turbine
#android
Люди приходя в мобильную разработку совершенно разными путями. Вот герой первого интервью - через 1С и сварку, за 6 лет до Senior Android Developer в Лондоне. Так и хочется сказать “неисповедимы пути”, но нет - видимо упорство, труд и талант. Так что планируем еще несколько статей - про собеседования, алгоритмы, Лондон и прочее. Вопросы собираю в комментариях.
Разработка
• Как самому научиться Android-разработке
• Embedchain: создание LLM чат-ботов на основе собственных данных
• Google запустил обучающий курс по генеративному ИИ
• Как дизайнеру спасти ситуацию с помощью исследования. За пару часов, $4 и без разработки
• How We Scaled to 100 Million Active Users Using Kafka and Golang — Eventual Consistency
Маркетинг
• Фил Шиллер «должен убрать свои руки от App Store»
• Социальная сеть IRL, получившая $200 млн инвестиций, сообщила о закрытии
• Помогли запустить приложение для помощи детям в экстренных ситуациях
Кроссплатформа
• Больше классов богу классов
• hlfdev/flutter-learn-the-importance-of-constraints-in-layout-creation-90602d8c37ab">Flutter — Learn the Importance of Constraints in Layout Creation
• Write unit tests and UI tests in your Kotlin Multiplatform app!
• dudek16/migration-to-go-router-devs-story-199f4ef6ed">Migration to go_router — dev’s story
Главная проблема App Store - Фил Шиллер
Филлип Шумейкер дал интервью и поделился своим взглядом на развитие App Store.
1. С 2009 года Шумейкер работал над проверкой приложений вместе со Стивом Джобсом, Филом Шиллером, Эдди Кью и др.
2. До сих пор App Store полагается на ручную проверку. "Способ решения этой проблемы заключается в следующем: давайте возьмем пример с Google. ИИ, вероятно, автоматизирует 80% той работы, которую выполняет команда рецензентов".
3. К сожалению, Шиллер против этой идеи, говорит Шумейкер. «Любая автоматизация была исключена, руководство отказывалось от этого».
4. «Я думаю, что способ радикально улучшить App Store — это заставить Фила убрать свои руки от App Store».
5. Почему правила App Store были и остаются такими расплывчатыми? "Мы хотели иметь пространство для маневра, чтобы иметь возможность менять свои одобрения или отклонения".
6. Шумейкер также считает, что Apple больше не делает достаточно, чтобы заработать свои 30% от большинства покупок в приложениях. «Apple заслужила эти 30% в 2009 году, но сейчас 2023 год, все сильно изменилось», — говорит он. «Тим Кук не хочет отказываться от этих 30%, это просто дойная корова, тем более что люди не обновляют свои устройства, как раньше».
И что: вряд ли App Store внедрит автоматическую проверку приложений, тем не менее другие изменения неизбежны. ЕС и прочие страны откроют стороннюю загрузку, правила так или иначе будут пересмотрены, а "налог Apple" скорее всего снижен.
iOS
• iOS Starter Kit: примеры для начинающих
• SwiftUI vs UIKit. Что выбрать новичку?
• I screwed up one key accessibility behavior, and now I’m on a mission to do better
• iOS 17: Notable UIKit Additions
• The debut of the ButtonRepeatBehavior view modifier
• A Deep Dive Into Observation: A New Way to Boost SwiftUI Performance
• The Power of Function Builder: Swift VS SwiftUI
#ios
Ну Тинькофф как всегда — предлагает крутые условия для опытных ИТ-специалистов. Будут масштабные финтех-задачи, продукты для 30 млн пользователей и хорошая зарплата.
Еще можно работать из любого города и получить ДМС со стоматологией. Детали тут: https://l.tinkoff.ru/prof-it-tinkoff
Императивная оптимизация воображаемых проблем
Новый еженедельный дайджест - 114 материалов. Обязательно прочитайте, поставьте 👍 или 🖤, поделитесь или поддержите. И присоединяйтесь к IT Insights, где новости и статьи про код, технологии и все самое интересное за пределом мобайла. Вот, например, у меня там был материал "Курс Программирование на GPU: Когда, зачем и как?" - будущее систем высокопроизводительных вычислений, скорее всего, будет обеспечено GPU или другими типами ускорителей, поэтому их программирование имеет решающее значение для разработчиков.
Android
• Сервисы Google и Huawei в единой кодовой базе Android-приложения
• Эволюция уязвимостей в приложениях для Android
• A few shorthands for Jetpack Compose
• Android Data Repository — Simple pattern that we misunderstand
• Jetpack Compose Custom Layout Made Easy
• Negative Padding For Jetpack Compose Made Possible
#android
А вот я вам новое “покушать” принес - Warp, приложение терминала (дада, терминал, это “черный экран с зеленым текстом, который хакеры используют в фильмах, чтобы обезвредить бомбы”) на Rust. C автодополнением, темами, и, конечно, ИИ. Без доходов, но получил $50 млн в Серии Б (сколько в А неизвестно)... Терминал, my ass 🙈. Планируют Warp Drive для совместного использования и вообще идти по предприятия. Деньги, конечно, удивительные, но мораль как всегда в конце - “Warp показывает, как много еще можно сделать даже с очевидными вещами, если взглянуть по-новому на важную часть технологии”.
Разработка
• $50 млн в Серии В: Warp — терминал с ИИ
• Яндекс в 2.5 раза увеличил годовой фонд программы «Охота за ошибками» — до 100 млн рублей
• Про тестирование мобильных приложений. Часть 4. Интеграционное тестирование
• A 20-year-experienced CTO’s Advice “Don’t Be a Humble Developer”
• How to fail basic refactor using Clean Architecture
• 4 mistakes to avoid to build a better 1-person business
Маркетинг
• Bumble тестирует приложение для поиска друзей
Кроссплатформа
• Some useful linter rules for React Native
• Revolutionizing Focus Management in TV Applications with React Native
• How to Add Themes to Your Flutter Apps with Adaptive Chameleon Theme
Хотите освоить разработку 3D-игр на Flutter для iOS, Android и Web с использованием Impeller и WebGL?
🟠Приходите 28 июня в 20:00 мск на открытый урок «Введение в разработку 3D-игр на Flutter для iOS/Android и Web с использованием Impeller и WebGL» онлайн-курса Flutter Mobile Developer от OTUS.
📝На открытом уроке мы разберем:
— новые возможности Flutter 3.10 и Dart 3 и используем их для создания простой интерактивной трехмерной игры с фоновой музыкой и звуковыми эффектами;
— попробуем подключиться к внешним устройствам через механизмы вызова нативного кода.
Урок подходит для всех, кто имеет опыт в программировании и хочет научиться писать мультиплатформенные мобильные приложения, использующие одну и ту же кодовую базу для iOS и Android. Продолжить обучение вы сможете на курсе Flutter Mobile Developer, который можно приобрести в рассрочку.
➡️ Регистрация на открытый урок: https://otus.pw/CiYR/
Нативная интеграция. Информация о продукте www.otus.ru
Android
• Clock of Clocks: часы на Jetpack Compose
• Фантастический Compose и его побочные эффекты
• Какого цвета Ripple?
• sam-cooper/5-pro-kotlin-dev-hacks-for-more-assertive-code-26cd2db4d7d7">5 Pro Kotlin Dev Hacks For More Assertive Code
• theapache64/adb-say-bye-to-multi-device-error-240ba10777a2">ADB - Say bye to “more than one device/emulator” error
• I want to run any number of Android UI tests on each PR. Your actions?
• Android Mastering the Integration: Coexisting Google and Huawei Mobile Services in a Single Codebase
#android
Перевел статью про воображаемые проблемы в разработке. Под конец автор свалился с какой-то манифест против корпоративного кумовства и бюрократии, но в начале, конечно, во многом прав. Решать воображаемые проблемы интереснее, а растянутые линии коммуникаций и неправильного понимания приводят к появлению софтверных монстров. Решения автор не дает, но тут уже во многом понятно - ТЗ, общение напрямую с разработкой, поэтапный контроль. А так рекомендую, автор пишет забавно и со вкусом.
Разработка
• Воображаемые проблемы — корень плохого программного обеспечения
• OpenAI планирует открыть свой магазин приложений
• $4.4 млн: Hyperline — платформа биллинга для SaaS
Маркетинг
• A practical guide to Google app campaigns
• Реклама в App Store на вкладке «Сегодня» станет компактной
Кроссплатформа
• Алгоритм создания бесшовного списка данных
• Kotlin Multiplatform, Compose Multiplatform: Apple’s Strategic Failure
• abhinavkumarsintoo/image-push-notification-advanced-in-flutter-ios-android-f2b8eefaa7f4">Image Push Notification(Advanced) in Flutter using Firebase(iOS & Android)
• bajajfinservhealth_/revolutionise-your-workflow-cut-react-native-build-time-by-67-68a47dbf993b">Revolutionise Your Workflow: Cut React Native Build Time by 67%