Видео и подкасты за неделю
• (iOS Ru)
Что делать iOS-разработчикам в России?
• (iOS En)
SwiftUI Repeatable Button
• (iOS En)
SwiftUI 5: What’s New In ScrollView
• (iOS En)
Build A To Do List App using SwiftData (Swift Data Tutorials)
• (iOS En)
Becoming an “iOS-lite” developer
• (iOS En)
Build a Live Activity Realtime Polls App with Firebase & APNS Push Token
• (iOS En)
SwiftUI Data Flow with the new Observation
• (iOS En)
SwiftUI Search Bar - How to work with searchable in your iOS and macOS apps
• (And Ru)
Как избежать хаоса: навигация как отдельный логический уровень
• (And En)
Now in Android: 86 - Google Play at I/O, Pixel Fold and Tablet, Google Developer Expert
• (And En)
WorkManager - Android Basics 2023
• (Crs Ru)
Как собрать iOS-фреймворк из исходных файлов на Kotlin
• (Crs En)
Kotlin Multiplatform in Production
• (Crs En)
MVI Compose Multiplatform Contacts List App With Photos (iOS & Android)
• (Dev Ru)
Игры, в которые играют люди на собеседованиях
• (Dev Ru)
Podlodka #324: холакратия — самоорганизующиеся команды
• (Dev Ru)
Как мы за полгода построили работу команды data инженеров от хаоса до порядка (Яна Жежер, СберМаркет)
• (Dev En)
Design and Prototype for iOS 17 in Figma
Посмотрели какое-то другое интересное видео? Отправьте боту -> 🧑🏻💻
Android
• How to create a chatbot with Firebase Firestore and ChatGPT on Android
• sonledn/android-app-optimization-strategies-for-performance-and-battery-efficiency-4ae8c0586331">Android App Optimization: Strategies for Performance and Battery Efficiency
• ibrahimethemsen/deep-dive-into-android-os-fundamentals-eafd5d80f355">Deep Dive Into Android OS Fundamentals
• My Takeaways From The Droidcon Berlin 2023
#android
Google Play разрешает NFT
Компания открывает возможность покупать, продавать или зарабатывать цифровые активы в приложениях при условии соблюдения прозрачности и других правил. Это не касается майнинга криптовалют.
1. Компания обновила политику своего магазина мобильных приложений, разрешив разработчикам приложений интегрировать цифровые активы, такие как NFT, в свои игры через магазин приложений Play.
2. Приложения должны быть «прозрачными для пользователей в отношении токенизированных цифровых активов», а разработчики не могут «рекламировать или превозносить любой потенциальный заработок от игры или торговой деятельности».
3. Новое изменение позволит приложениям и играм в Google Play переосмыслить «традиционные игры с пользовательским контентом и повысить лояльность пользователей за счет уникальных NFT вознаграждений», пишет компания.
4. Сейчас избранная группа разработчиков помогает тестировать новую политику перед ее широким распространением на всех в конце этого года.
И что: "лучше поздно, чем никогда". Кажется, что NFT уже из другой эпохи, впрочем наверняка во многих приложениях (а особенно играх) они окажутся очень к месту.
Android
• Вышел Android 14 Beta 4
• Ручной DI на Котлине? Легко! Ну, почти…
• Храним краску с умом: как организовать ресурсы в многомодульном проекте
• Unlocking the Art: A Guide to Generating Code with Kotlin Symbol Processor
• daniel.atitienei/implementing-in-app-subscriptions-and-products-using-jetpack-compose-e867141bec7b">Implementing in-app subscriptions and products using Jetpack Compose
• WhatsApp Home Screen Design in Jetpack Compose
• Cracking the Kotlin Interview
• Android Custom Tab Material Layout With Dynamic Padding
• Mastering Kotlin: The Ultimate Guide to Becoming a Productivity Ninja
• How we improved our Android apps performance by up to 24%
• Android unit testing at Zenjob
#android
🔥 Пройдите тест на знание основ программирования и получите эксклюзивную подборку вебинаров по Flutter!
Востребованность Flutter-разработчиков растет с каждым годом. Освойте и вы эту трендовую технологию кроссплатформенной разработки!
Что вы найдете в подборке, если успешно пройдете тест:
🔵Урок «Аркадные игры на Flutter 3»
Изучите возможности Flutter для создания кроссплатформенных игр и создадите свою аркадную игру.
🔵Урок «Создание невероятных визуальных эффектов на Flutter»
Откроете перед собой мир визуальных возможностей Flutter и научитесь создавать потрясающие интерфейсы с использованием системных сервисов и оборудования.
🔵Урок «Создаем свою систему координат для RenderObject»
Освоите новый движок Impeller и научитесь размещать виджеты в трехмерном пространстве, создавая свою уникальную систему координат для RenderObject.
Записи этих уроков являются частью онлайн-курса «Flutter Mobile Developer» от OTUS.
Не упустите свой шанс стать настоящим экспертом Flutter!
👉 Пройти тест: https://otus.pw/FRLJ/
Нативная интеграция. Информация о продукте www.otus.ru
Рекомендую занятную статью от разработчика из Square, который в общем-то здраво декларирует, что метрики производительности нужны не все, а те, которые делю пользователей счастливее. Например, если у вас будет полностью загружен процессор, но насущная задача пользователя выполнится быстрее, то это вполне ОК. Останавливается он при этом почему-то только на скорости загрузки и отзывчивости (и раскрывает измерение метрик применительно к Android), но надо думать, что будет продолжение. В общем рекомендую и спрашиваю - а как и зачем вы меряете производительность приложений? 🧑💻
Разработка
• Производительность мобильных приложений, ориентированная на пользователей
• Анализ приложений Threads
• Code Interpreter стал доступен всем подписчикам ChatGPT — «теперь каждый может стать аналитиком данных»
• Локализация игр при помощи ChatGPT — недорого и качественно. Гайд
• Modularization of mobile applications at scale
• Invisible Details of Interaction Design
• The 8 Must-Have Productivity Apps for Programmers in 2023
• Confirmed: Code Coverage Is a Useless Management Metric
Маркетинг
• Кейс «Хлебная Усадьба»: разработка собственного мобильного приложения для сетевой пекарни
Кроссплатформа
• vbalaji165/flutter-for-web-development-building-responsive-and-feature-rich-web-apps-4aa5402d4c82">Flutter for Web Development: Building Responsive and Feature-Rich Web Apps
iOS
• Build A To Do List App using SwiftData
• jacobmartinbartlett/dependency-injection-for-async-tests-17d796cbd315">Dependency Injection Demystified
• @backDeployed to extend function availability to older OS releases
• Creating a Circle Loader Animation in SwiftUI
• mrdeerwhale/getting-started-with-node-based-shaders-for-visionos-materials-7f901177567c">How to Use Material Nodes in Reality Composer Pro’s Shader Graph
#ios
Android
• Я.Субботник по Java-разработке
• А это можно запустить в фоне?
• Lobzik: полуавтоматическая модуляризация Android-проекта
• Мой офис. Как открываются документы на смартфоне
• Okio: I/O библиотека для Android, Java и Kotlin Multiplatform
• Modern MVI и MVVM+ со всех сторон в 2023
• Как я перестал волноваться и полюбил ошибки в Kotlin корутинах: Мифы обработки ошибок в корутинах
• User-Centric Mobile Performance
• Blast Off: Managing Hundreds of UI Updates for an Emoji Cannon
• A Guide to Filament for Android
• Eliminating coroutine races
• No Mocks Allowed
#android
Решаем шахматные задачи с Chess Puzzles Set: разбор приложения
Разбираем приложение @oleg_soloviev - набор шахматных задач.
TLDR: все плохо. Вроде как отдельные части есть, а все вместе не работает. Ощущается как до конца недоведенный пет-проект.
Статья: https://apptractor.ru/info/articles/chess-puzzles-set.html
Если хотите принять участие - пишите в комменты.
SOLID архитектура для мостов и багов
Новый еженедельный дайджест - снова 117 материалов! Обязательно прочитайте, поставьте 👍 или 🖤, поделитесь или поддержите. И присоединяйтесь к IT Insights, где новости и статьи про код, технологии и все самое интересное за пределом мобайла. Вот, например, у меня там была интересная статья "Создание основ машинного обучения в реальном времени в Lyft" - о том, как компания обучает модели в реальном времени на потоковых данных.
Mobius в поиске спикеров!
Конференция по мобильной разработке Mobius 2023 Autumn будет идти четыре дня: 1–2 ноября в онлайне и 9–10 ноября в офлайне.
Расскажите о платформах, языках, архитектуре, качестве продукта или инфраструктуре. Полный список тем — на сайте. И не стесняйтесь предлагать свои.
Вы можете выступить онлайн или офлайн и выбрать любой формат выступления — доклад, воркшоп, интервью, обсуждение, BoF-сессию или придумать что-то свое.
На этапе подачи заявки подойдут даже примерные тезисы, необязательно иметь уже готовый доклад. После отправки заявки Программный комитет поможет доформулировать идею и превратить ее в доклад. А персональный куратор пройдет с вами весь путь — от идеи до продакшена: сделает ревью, поможет с доработкой, проведет репетиции и даст рекомендации по выступлению.
Подавайте заявки до 25 июля.
Android
• Разбор тестового задания на позицию Android Developer
• A flexible, modern Android app architecture: complete step-by-step
• Native UI and multiplatform Compose with Redwood
• How to build a Clean SSEClient Flow
• afolayanseyi/implementing-single-source-of-truth-in-android-9b2cc9510704">Implementing Single Source of Truth in Android
• pravishanth/migrating-from-android-api-level-30-to-31-32-or-app-crashing-after-updating-target-sdk-version-to-586e4892dfb9">Migrating from Android API level 30 to 31/32 or App Crashing After Updating Target SDK
#android
И снова хочу поделиться авторским каналом об iOS-разработке.
В нём автор рассказывает про свой опыт, поэтому будет много кода, сложных моментов и забавных историй (иногда не очень):
🔘 Как я выиграл в конкурсе Telegram и как проиграл.
🔘 Многопоточность в Swift.
⭐️ Подготовка к собеседованиям.
Заходите, если хотите узнать ответ на вопрос.
Android
• Amethyst: клиент Nostr для Android
• fadhifatah_/textinputlayout-censoring-with-password-like-method-303b986f5364">TextInputLayout Censoring with Password-like Method
• Experimenting with Android Studio Bot
• smish_/unlocking-the-power-of-jetpack-compose-fragments-stateflow-and-viewmodels-a-comprehensive-guide-f0b76f9a02ee">Unlocking the power of Jetpack Compose, Fragments, Stateflow, and ViewModels: A Comprehensive Guide
#android
Зарплаты мобильных разработчиков
В период с 1 марта по 31 мая 2023 на Хабр Карьере можно было откликнуться на 6 870 вакансий.
1. Чаще всего на Хабр Карьере ищут мидлов — этой весной доля вакансий для них составляла 53,3%.
2. Среди разработчиков самыми популярными оказались бэкендеры — для них разместили 21,6% вакансий, на втором месте фронтендеры — 6,1% вакансий. Третье место досталось разработчикам мобильных приложений — 3,9% вакансий.
3. Самые популярные разработчики мобильных приложений — мидлы и сеньоры, доли вакансий для них одинаковые — по 45,2%. Реже ищут лидов — доля 7,1%. Джунов практически не ищут - всего 2,5%.
4. Самые популярные языки в мобайле: Kotlin, Swift и Java.
5. Мидлы в разработке мобильных приложений больше всего получают в Java — 238 000 ₽. Зарплаты сеньоров в выборке начинаются от 295 000 ₽ в Java и заканчиваются на 347 000 ₽ в Swift. Лиды в мобайле больше всего зарабатывают в Swift — 430 000 ₽.
Если вы давно хотели блокнот с ИИ, но не могли себе его позволить, то Google все сделал за вас. В ограниченное тестирование вышел NotebookLM, который а) блокнот б) большая языковая модель. Тренируется она сперва на ваших собственных данных, а потом уже подключает “все знания мира”. Зачем блокноту ИИ? Ну, чтобы был, вероятно. Google говорит, что это «экспериментальный продукт», и компания по ходу дела не уверена, что знает, для кого или чего предназначен NotebookLM. Возможно, для студентов колледжей. А возможно ни для кого - видимо будут узнавать в процессе.
Разработка
• NotebookLM от Google добавляет ИИ к вашим записям
• Модуляризация мобильных приложений в масштабе
• Как создать популярную игру в Google Play
• Chronon — A Declarative Feature Engineering Framework
• CodeGen2: a new open-source model for coding
• 27 Must-Read Software Development Books for 2023
Маркетинг
• Раскрытие потенциала SKAN 4: оптимизация кампаний и подготовка к развитию в будущем
• Расходы на рекламу приложений достигнут $94.9 млрд в 2025
• Google Play разрешает NFT
Кроссплатформа
• Redwood: мультиплатформенный реактивный UI для Android, iOS и веб
• How To Manage State In Your Flutter App With State Groups
iOS
• Полезные iOS-инструменты для дебаггинга
• Backend Driven Development for iOS Developers
• SwiftUI 5: What’s New In ScrollView
• iOS Architecture Essentials: Choosing Between Closures and Protocols
• mirceaiosif/the-ultimate-guide-to-building-scalable-swiftui-apps-master-the-art-of-modular-architecture-b9b09c2c60ca">The Ultimate Guide to Building Scalable SwiftUI Apps: Master the Art of Modular Architecture
#ios
Хочу в очередной раз пригласить вас в опрос Developer Nation. Расскажите, что вам нравится или не нравится в популярных инструментах и платформах. Опрос охватывает 13 направлений: мобильные, десктопные, облачные и веб-приложения, промышленный Интернет вещей, игры, машинное обучение, искусственный интеллект и т.п. Опрос доступен на 10 языках, в том числе и на русском. Можно начать и сохранить для продолжения. Можно выиграть призы. Главное - внести свой небольшой вклад в развитие сообщества разработчиков.
Разработка
• GPT Prompt Engineer: промпт-инжиниринг в масштабе
• 42% программистов не перерабатывают
• Как остановить бесконечный скроллинг, и нужно ли это делать
• Чем отличается тестирование на эмуляторах, фермах и физических устройствах
• dawinderapps/mastering-design-patterns-a-guide-to-writing-cleaner-code-92a634313ba9">Mastering Design Patterns: A Guide to Writing Cleaner Code
Маркетинг
• Новый опрос Developer Nation
Кроссплатформа
• How the GetIt service locator package works in Dart
• Kotlin Multiplatform in Production
iOS
• Используем атрибут @backDeployed для расширения доступности функций
• Queryable: ML-поиск фотографий на iOS
• A few Xcode debugging tips
• Unidirectional flow in Swift
• Floating Action Button in SwiftUI
• Mastering SSL Pinning in Swift: No Third-Party Libraries Required
• Protocol Oriented Programming: Prioritizing Flexibility and Reusability
• Learn how to unleash the Power of Automatic Grammar Agreement in Swift
• Find unused code in Swift
• Implementing Dark Mode and using CGColor
#ios
НЕ перерабатывает 42% программистов
Это результаты нового опроса SuperJob.
1. 18% программистов ответили, что перерабатывают менее 10% рабочего времени, 25% программистов перерабатывают 11-25% от рабочего времени, 5% сотрудников – 16-25%, 8% − более 50%.
2. При этом 42% программистов сказали, что не перерабатывают.
3. В среднем переработки от нормы рабочего времени в месяц (средний % от числа имеющих переработки) составляют 22%.
4. В прошлом году не перерабатывающих было 43%. В 2021 году – 19%.
И что: как писал Егор, переработки это совсем не “абсолютное зло”. Переработки это замечательно, пока вы от них получаете явную пользу. Не пытайтесь обменивать свое время на деньги. Меняйте его на фан, профессиональный рост и самореализацию. Прямая конвертация труда в деньги обычно происходит по не самому выгодному курсу. Гораздо эффективнее вкладывать эти часы в обучение тому чего вы раньше делать не умели, и в будущем продавать уже эти умения по сильно большему ценнику.
Android
• InnerTune: плеер музыки для YouTube в Material 3
• Делаем эмулятор Android через Terminal: пошаговое руководство
• Как я перестал волноваться и полюбил ошибки в Kotlin корутинах
• Learn rememberCoroutineScope - Mastering Side Effects
• Getting Started With SQLDelight in Android Development
• myofficework000/boost-your-android-developer-workflow-with-chat-gpt-855879b7ed46">Boost your Android Developer Workflow with Chat-GPT!
• Demystifying Kotlin’s Channel Flows
• husayn.fakher/10-questions-and-answers-about-viewmodels-in-android-dd18be43382b">10 Questions and Answers about ViewModels in Android
#android
У генеративного ИИ уже был момент Unstable Diffusion, а теперь подключилась и коммерческая жилка - компания Lovense, наиболее известная своими секс-игрушками с дистанционным управлением, на прошлой неделе представила Advanced Lovense ChatGPT Pleasure Companion. Пользователь задает условия для генерации “романтической” истории, ChatGPT сочиняет ее, а игрушки Lovense… “озвучивают”, мягко говоря. Возможно, это не совсем то, что имели в виду маркетологи 1990-х годов, когда придумали слово «мультимедиа», но в целом неплохой подход 😀
Разработка
• ChatGPT использовали для рассказов эротических историй
• Evernote увольняет всех американских сотрудников и переезжает в Европу
• Podlodka #324: 3D-графика. Почему игры тормозят?
• OpenAI объявляет о всеобщей доступности API GPT-4
• Как дизайнер запустил продукт и не нашел product market fit
• Super app evolution: Building a platform-based ecosystem for holistic user experience
• tsecretdeveloper/this-happens-youre-too-old-to-be-a-programmer-72f5e50a23d3">This Happens? You’re Too Old To Be a Programmer
• Developers Need To Enjoy The Struggle
Маркетинг
• Решаем шахматные задачи с Chess Puzzles Set: разбор приложения
• Верификация пользователей принесла Instagram более $15 млн
• Самые скачиваемые приложения в июне 2023
Кроссплатформа
• Использование Provider, Riverpod, Bloc(Cubit), Redux, MobX на одном простом примере
• A New React Native Development Approach – Part 2: The “How?”
• Jetpack Compose Multiplatform Android & iOS
iOS
• ScrollViewLoader: бесконечный список для SwiftUI
• Использование XCFramework в крупном iOS-проекте, или Как ускорить сборку в 2 раза
• SwiftUI для большого B2C-продукта
• Async / Await в Swift
• SwiftData Suprises
• Advanced Animation in SwiftUI under iOS17
• How to use String Catalogs for pluralization in Swift
• RadialGradient in SwiftUI
• iOS: UI Testing Strategy and Tooling at Reddit
#ios
Верификация пользователей принесла Instagram более $15 млн
В начале этого года, когда все умилялись синей галочкой Twitter за 8 долларов, Instagram (запрещен) решил, что эту функцию стоит скопировать.
1. До запуска программы верификации приложение Instagram в App Store приносило Meta (запрещено) около $1.5 млн чистого дохода в месяц.
2. Верификация пользователей, которая являются почти точной копией Twitter, была запущена в США в апреле и стоила $14.99/мес.
3. Instagram закончил март с $4.4 млн. чистого дохода. Можно предположить, что верификация обеспечила около $2.5 млн из этой суммы.
4. Общая сумма выросла до $6.4 млн в апреле и $7 млн в мае. В июне доход немного снизился, на 4% до $6.8 млн. Без учета бейджей и подписок, по оценкам аналитиков, верификации принесли Instagram $16.8 млн чистого дохода в App Store с момента запуска в апреле. Общий доход приложения за эти 4 месяца составил $24.6 млн.
И что: оказывается, не все, что делаем, Маск, лютая пурга 🙂 И если правильно подойти к его идеям, то можно неплохо заработать. Да, в данном случае речь идет о масштабах Instagram, но переосмыслив наверняка можно применить и к вашим продуктам.
Видео и подкасты за неделю
• (iOS Ru)
Использование XCFramework в крупном iOS-проекте, или Как ускорить сборку в 2 раза
• (iOS Ru)
SwiftUI для большого B2C-продукта
• (iOS En)
iOS 17 VisualEffect & ScrollTransition APIs - Circular Carousel Slider
• (iOS En)
iOS Dev Job Interview - Must Know Topics
• (iOS En)
Swift Variadic Parameters
• (iOS En)
Swift Observation from Scratch
• (And Ru)
А это можно запустить в фоне?
• (And Ru)
Мой офис. Как открываются документы на смартфоне
• (And Ru)
Modern MVI и MVVM+ со всех сторон в 2023
• (And Ru)
Lobzik: полуавтоматическая модуляризация Android-проекта
• (And Ru)
Я.Субботник по Java-разработке
• (And En)
Foreground Services - Android Basics 2023
• (And En)
Broadcasts & Broadcast Receivers - Android Basics 2023
• (And En)
What's new in Kotlin 1.9.0
• (Crs En)
How to build a collision-based game using Flutter and Flame
• (Dev Ru)
Podlodka #324: 3D-графика. Почему игры тормозят?
• (Dev En)
Introducing Kotlin Notebook
Посмотрели какое-то другое интересное видео? Отправьте боту -> 🧑🏻💻
Спасибо за вчерашние проекты, буду разбирать. Сегодня вышла вторая часть, практическая, про архитектуру Android, ну я попутно перевел первую - про основные принципы (космонавтом!). Новое вряд ли для себя откроете, но повторить никогда не мешает. А еще у Instagram* запустился конкурент Twitter - Threads, который сразу поставил рекорд по росту аудитории. Вы уже там? Нужен там канал, или это как Clubhouse?
Разработка
• Как создавать архитектуру Android-приложений: глубокое погружение в принципы
• Какую работу, компанию или продукт выбирают продакты
• Скажи что-нибудь на разрабском, Figma
• A Case: How To Design A Medical App
• 5 Mac accessories for developers
• Accelerating Success: Decoding the Weekly Sprint Velocity of the International Mobile Team
Маркетинг
• Threads запустился в App Store и Google Play
• Spotify окончательно отказался от покупок через App Store
Кроссплатформа
• 4 Flutter Open Source Projects From Which You Can Learn A Lot! (2023)
• Error Handling In My Flutter App
• rorystephenson/how-to-cluster-markers-with-fluttermap-d462459b7143">How to Cluster Markers with FlutterMap
• How to build a collision-based game using Flutter and Flame
• From Hacking to Shipping: Kotlin Multiplatform Mobile at Hootsuite
iOS
• Billboard: красивая и безопасная реклама
• Data-Oriented-Design — A Swift Introduction
• Mastering Swift Foundation Formatter API. Custom Format Styles
• SwiftUI apps at scale
• Swift Observation from Scratch
• Difference Between Implicit and Explicit Animations in SwiftUI
• The Ultimate Guide to Building SwiftData Applications
#ios
На примере очередной статьи про Duolingo думаю пообозревать приложения. Что нравится, что не нравится, что можно улучшить и т.п. Страница в сторе, онбординг, UX и т.д. Будет такое интересно? Накидайте в комменты ваших проектов 😊
Разработка
• Зарплаты мобильных разработчиков по данным Хабр Карьера
• Бесплатный курс по Natural Language Processing (NLP) от The Hugging Face
• Stay Technical While Leading Your Team
• The hardest part of building software is not coding, it’s requirements
Маркетинг
• Как Duolingo подталкивает пользователей к premium — 5 уроков крупнейшего образовательного приложения
Кроссплатформа
• Optimising Page Load Times in Flipkart Mobile App
• The Complete Guide to Deploy Flutter Builds Using App Center
iOS
• .xcstrings в Xcode 15
• App Intents Spotlight integration using Shortcuts
• CollectionOfOne in Swift
• dhairyavora_35186/demystifying-opaque-types-in-swift-2ac25290c331">Demystifying Opaque Types in Swift
• A Deep Dive Into Observation: A New Way to Boost SwiftUI Performance
#ios
Яндекс проводит вечеринку для сообщества мобильных разработчиков — Yandex Summer Mobile Party!
12 июля приглашаем мобильных разработчиков на вечеринку — обсудим последние новости индустрии и хорошо проведём вечер с едой, коктейлями и музыкой. Приходите общаться с ребятами из Яндекса и знакомиться с сообществом.
Что вас ждёт:
— Lightning Talks про разработку и жизнь от мобильных разработчиков;
— Лекция от популяризатора физики Дмитрия Побединского;
— Настольные игры от Яндекса, зоны отдыха и летние коктейли.
Место проведения:
Плюс Дача в Парке Горького
В этот раз формат только оффлайн. Количество мест ограничено – ждём ваши заявки, и 10 июля вышлем приглашения на почту.
До встречи!
Программа и регистрация