iOS
• Using expanded SwiftUI support for MapKit
• myshkinasasha/comparing-swiftui-stateobject-observedobject-and-ios17-observed-macro-4c0c8227ed62">Comparing SwiftUI @StateObject, @ObservedObject and iOS17 @Observed macro
• ashwani.cse4/simplifying-ios-app-invocation-handling-with-swift-a-comprehensive-guide-8ed03f7a2e5a">Simplifying iOS App Invocation Handling with Swift: A Comprehensive Guide
#ios
Перевел занятную статью “7 простых привычек 1% лучших инженеров” м все там, конечно, по делу. Под конец интересное замечание, которое практически вторит еще одной недавней статье “Не будьте скромным разработчиком”. В общем, хорошие инженеры часто и надлежащим образом рекламировали себя. Эти инженеры не прятались на виду у всех. Все члены их команды и все, кто с ними работал, знали об их ценности и компетентности. Мораль - надо рекламировать себя, заниматься собственным маркетингом. Поделитесь в комментариях своими достижениями? Перестали писать if-else? Освоили именование переменных?
Разработка
• 7 простых привычек 1% лучших инженеров
• LÖVE: замечательный фреймворк для создания 2D-игр на Lua
• Яндекс выложил в опенсорс код AppMetrica
• Philosophy of coroutines
Маркетинг
• Unity вводит новую систему оплаты для разработчиков
• In-app purchases — за что и почему? Взгляд аналитика
• ASO.dev - как я снова продукт для Apple делал
• 5 ways to improve your product analytics data
Кроссплатформа
• PWA vs Native: чек-лист, который поможет выбрать
• saikrishnakotagiri16/using-react-native-as-an-sdk-in-your-native-android-app-5c4b6b40ad5f">Integrating React Native as an SDK into a Native Android App
• pietechnolabs/how-to-improve-performance-in-flutter-replace-sizedbox-with-compile-time-constants-519d55f93d14">How to Improve Performance in Flutter: Replace SizedBox with Compile-Time Constants
iOS
• SDWebImageSwiftUI: загрузка изображений в SwiftUI
• Открыт прием размещений в App Store для последних версий ОС
• How To Visualize The Safe Area
• Working With UIViewRepresentable
• StateObject vs ObservedObject
• Different ways to map over Dictionary in Swift
• Understanding Container Background for Widget in iOS 17
#ios
Яндекс выложил в опенсорс код AppMetrica
Яндекс опубликовал исходный код SDK AppMetrica — аналитического сервиса для мобильных приложений. Теперь любой разработчик может провести аудит SDK AppMetrica, предложить улучшения и использовать фрагменты кода в своих проектах. Код распространяется по открытой лицензии MIT.
Новость: https://apptractor.ru/measure/user-analytics/yandeks-vylozhil-v-opensors-kod-appmetrica.html
Apple представила свои новые мобильные устройства - Watch и iPhone 15 в разных модификациях. Главная не новость - теперь все работает на USB-C, а в iPhone 15 Pro можно гонять в нормальные игры - выйдет Resident Evil 4 и Resident Evil: Village, последний Assassins's Creed: Mirage! и т.п. В остальном все лишь немного выше, дальше, быстрее, фичее, но и только (а, еще про Мать Природу отлично). Вряд ли стоило ждать какого-либо прорыва, но помечтать-то можно было?
Разработка
• Golden age of UX is over?
• The Best Filter UI Design for Large-Scale Apps
• Death by a thousand microservices
Маркетинг
• Яндекс представил Yandex Mobile Ads SDK 6
Кроссплатформа
• maleksouissi751/5-advanced-architecture-patterns-you-should-know-as-flutter-developer-4c212e19c256">5 Advanced Architecture Patterns you should know as flutter developer
• AdMob UMP SDK in Flutter - Implement your GDPR dialog
iOS
• Поваренная книга SwiftUI: понимание представлений (View) и иерархий представлений в SwiftUI
• Theming SwiftUI applications
• adha_fajri/clean-architecture-in-swiftui-b184e0e687f8">SwiftUI Clean Architecture 101
• Vending Non-Mutating Data in SwiftUI
• If and switch expressions in Swift
• Beginner’s Guide: SwiftUI and Additional Essentials
• iOS Interview Guide: Swift Initializers
• Unsafe Memory Access in Swift
#ios
В Sensor Tower проводят увольнения. По слухам, уволено 40 из 270 человек, причем все топы - CEO, CFO, CMO и прочие. Интересно было бы прочитать про причины, если компания в 2021 году утверждала, что она была прибыльна. Кроме того в 2020 году компания получила 45 млн, но тогда у нее было 75 сотрудников. Можно предположить, что раздувшийся штат ее и обрушил, но почему тогда увольняют топов - непонятно. Так или иначе, блог Sensor Tower уже полгода как ничего интересного не публикует, так что ценных отчетов больше ждать не нужно.
Разработка
• Ozon Tech Community Mobile Meetup
• Новая Зеландия: как живут разработчики в стране хоббитов
• Podlodka #336: на чем программируют ученые
• Тестирование внутреннего мобильного приложения «На связи»
• GitHub Actions Reducing Duplication / Boilerplate
• 7 simple habits of the top 1% of engineers
• The Debugging Dilemma - Why So Many Beginners Give Up on Programming
Маркетинг
• Почему ваш онбординг может быть слишком коротким
• Новое приложение Moments помогает поддерживать личные и профессиональные отношения
• В Sensor Tower провели увольнения
• Самые скачиваемые приложения в августе 2023
Кроссплатформа
• Flutter — CI/CD Azure + App Center
• Нововведения фреймворка Flutter 3.13.Часть 2
• alvaro.armijoss/flutter-state-management-provider-bloc-getx-riverpod-getit-and-mobx-c9db3168a834">Flutter State Management: Provider, BLoC, GetX, Riverpod, GetIt and MobX
• What is BuildContext in Flutter
iOS
• UI Examples: примеры красивого UI
• Swift-уроки: Simple MVVM
• Как приручить iPhone, или Общаемся с телефоном по проводу
• Dynamic Island SwiftUI Demo: пример работы с Динамическим островом
• Шейдеры в iOS для начинающих
• Shake to undo in a SwiftUI app
• SwiftUI Sensory Feedback
• Develop with Cocoa for Apple Devices without using Objective-C
• SwiftDataKit: Unleashing Advanced Core Data Features in SwiftData
• An Architecture for Behaviour-Driven Development in Swift
#ios
• SwiftUI Guide: Triggering Actions Solely on First View Appearance
Ускоряем атомарный дизайн
Новый еженедельный дайджест - прекрасные 111 новостей и статей. Прочитайте, поставьте 👍, сохраните в избранное и поделитесь с коллегами. Еще у меня есть канал IT Insights, где новости и статьи про код, технологии и все самое интересное за пределом мобайла. Там, например, "11 типов токсичных Pull-запросов" - исследование 4.5 млн программных веток.
💻 Прислать материал для дайджеста можно сюда. А поддержать канал здесь.
Ваш онбординг может быть слишком КОРОТКИМ
В блоге RevenueCat автор обращает внимание на длинные онбординги.
1. Принято считать, что процесс входа в приложение должен быть как можно менее напряженным и коротким.
2. Однако приложения для фитнеса зачастую используют прямо противоположный подход. Me+, приложение для фитнеса и здоровья №1 в Великобритании, имеет онбординг, который длился около 45-50 различных экранов. У людей, серьезно занявшихся приложением, он займет около 10 минут.
3. “Онбординги становятся все длиннее, и они становятся длиннее каким-то необъяснимым образом. Задаются вопросы, которые никак не могут быть использованы в процессе настройки продукта”.
4. Вероятно, дело в «обещании», что эта информация будет использоваться для настройки продукта. Дело в том, чтобы придать достоверность идее, что приложение опирается на "научные данные" и поможет решить задачу, которая даже может не существует. Дело в том, что чем больше вопросов, тем больше кажется ценность продукта.
5. И такие механики действительно работают. По крайней мере в фитнесе и здоровье.
И что: как и во всем, следует отвергать общепринятую мудрость и учитывать уникальный сценарий использования вашего приложения пользователями, тестируя все до достижения максимума.
Android
• Упрощение отладки Android-приложений с помощью Flipper
• Meeting Room Compose: видеоконференции на Compose
• Ускоряем поиск по коду в Android Studio
• tarunyadav83333/how-i-removed-ads-from-the-spotify-app-ac2191adf8ba">How I removed ads from the Spotify app
• Leveraging Kotlin Function Arguments Helper
#android
По совсем непроверенным слухам, Apple планирует выпустить “дешевый” MacBook для студентов и школьников для конкуренции с Chromebook. Удешевление вроде как будет за счет материалов корпуса, другой механики и, вероятно, более простых экранов. Учитывая, что средний Chromebook стоит долларов 500, а хороший 800, то интересно будет посмотреть на цену бюджетного MacBook, ведь тот же Air начинается от $999, а со скидками для студентов $899.
Разработка
• По слухам, Apple может выпустить недорогой MacBook для конкуренции с Chromebook
• Самые высокооплачиваемые вакансии августа в области разработки приложений
• Textbase: простое создание чатботов
• nerissaarvnas30/whatsapp-re-design-ui-ux-case-study-3d44febe25">WhatsApp Re-Design — UI/UX Case Study
Маркетинг
• В Google Play появились редакционные видео The Play Report
• Было: “Умный и Богатый”. Стало: “Отличная оценка!”
• Увеличили количество органических установок мобильного приложения Skyeng на 31% с помощью текстовой оптимизации
Кроссплатформа
• Ultimate Guide to Write Tests in Flutter
• Getting Started with Detox for End-to-End Testing in React Native
• How to Avoid Reverse Engineering in Flutter Applications
• blendvisions/flutter-3-13-a-game-changing-update-for-app-developers-15d52945a2e5">Flutter 3.13: A Game-Changing Update for App Developers
iOS
• Приложения для iPad и iPhone будут автоматически публиковаться в магазине приложений Vision Pro
• Поваренная книга SwiftUI: cоздание и предварительный просмотр представления SwiftUI
• Swift OpenAPI Generator: генерация кода API-вызова
• Migrating iOS GitHub Actions to Self-Hosted M1 Mac Runners
• Combine, async/await, and Unit Testing
• SwiftUI: Why You Need AnyView
• Using Tuples the Swift Right Way
#ios
Google обновляет логотип Android
Как и предполагалось, компания обновила логотип Android.
1. Само название стало писаться с большой буквы.
2. Новая стилизация (шрифт) надписи Android более точно отражает логотип Google и создает баланс между ними.
3. Робот стал трехмерным.
4. И может быть разных цветов.
И что: эпохальное изменение! 🙂
Android
• Лучшие практики обработки ошибок в Kotlin
• Simple Jetpack Compose Tabs With Fragments
• Different Ways to Achieve Function Composition in Kotlin
• kacper.wojciechowski/kotlin-context-receivers-misunderstood-and-underestimated-feature-66c4aa3b9ce0">Kotlin Context Receivers — misunderstood and underestimated feature
• Build a Real-Time Meeting App for Android with Jetpack Compose
• Material 3 Adaptive: Making Responsive Layouts with Jetpack Compose easily
#android
Топ быстрорастущих приложений в России в сентябре
Сезонность - наше все.
1. Начало учебного года подняло в топе приложения для учебы — ClassDojo и Dnevnik.ru как средства управления учащимися, Brain Out Test & Math Games и Busuu как обучающие приложения.
2. Рост Night Sky так же можно объяснить осенью. Итого 5 из 10.
3. На первом месте Goodnotes 6 — лучшее приложение для iPad 2022, цифровой блокнот с большим набором дополнительных функций. По данным AppMagic, приложение на iOS заработало в России $68K. Пример того, как даже простой продукт может отлично монетизироваться.
4. Из других занятных приложений в топе быстрорастущих — Falla-Make new friends, совершенно дикое (по крайней мере по скриншотам в App Store) китайское приложений для голосовых чатов, совместных игр, знакомств.
И что: скоро Новый Год и Рождество - вы уже готовитесь?
Android
• Микросмартфон за 100 рублей: Покупаем смартфон 11-летней давности и… пишем под него приложения
• Building the WhatToEat Experience on Android
• Nek.12/success-story-how-flowmvi-has-changed-the-fate-of-our-project-3c1226890d67">Success Story: How FlowMVI has changed the fate of our project
• Parallax effect in Jetpack Compose
• ruthwikwarrier/animate-borders-in-jetpack-compose-ca359deed7d5">Animate borders in Jetpack Compose
• Building Media-Rich Android Apps with MediaCodec and Vendor Extensions
#android
О том, как правильно разработать приложение, написано множество книг. О том, как правильно монетизировать, мало кто говорит. А ведь это гораздо важнее.
Приходите на бесплатный вебинар «Как увеличить доход от приложения с помощью рекламы» — поговорим о том, как монетизировать приложения правильно.
⏰ Когда: 14 сентября в 12:00 по МСК
🧑💻 Спикер: Кирилл Афанасьев, эксперт Яндекса по монетизации приложений.
На вебинаре обсудят:
• Какие рекламные форматы существуют
• Как самостоятельно настроить монетизацию приложения
• Какие ошибки часто допускают при монетизации
• Как усилить эффективность рекламы
Регистрация здесь.
Unity вводит новую систему оплаты для разработчиков
C 1 января 2024 года будет введена схема ценообразования по принципу «плати за загрузки».
1. Плата за Unity Runtime будет взиматься каждый раз, когда игра, отвечающая требованиям, загружается конечным пользователем.
2. Для Tier-1 рынков это 20 центов за каждую установку.
3. Чтобы попасть под такое налогообложение игра должна достичь пороговых значений - для Unity Personal и Unity Plus это $200,000 дохода и 200,000 установок за все время. После этого за каждые 100,000 загрузок нужно будет платить $20,000.
4. Изменения вступают в силу 1 января 2024 года и все начнет считаться только с этого момента.
5. Изменения ожидаемо вызвали бурления. Под действие новых тарифов могут попасть пиратские игры, демоверсии, загрузки с нескольких устройств. Кроме того, существует опасение, что злоумышленники смогут манипулировать оплатой, постоянно снова скачивая игры в знак протеста или недовольства.
6. Правда, Unity планирует внедрит средства обнаружения мошенничества и позволит разработчикам сообщать о возможных случаях злоупотреблений.
7. Отказаться от новой оплаты для уже вышедших или находящихся в стадии релиза игр уже фактически никто не может, так как менять движок (вероятно) будет дороже, чем платить Unity.
И что: все, что в продукте не ваше - всегда находится под угрозой. Сторонний API, движок в один прекрасный момент могут испариться.
Android
• Как мы сделали SPACE INVADERS: World Defense
• Android Studio for Platform — IDE для AOSP
• AAY-chart: графики для Android и Kotlin Multiplatform
• Сам написал, сам поиграл: как я написал 2D-игру для Android полностью с нуля, весом менее 1мб?
• Gradle and Java Version Compatibility: A Beginner's Guide
• Intro to Polymorphism with Kotlinx.Serialization
• Google MLKit: Quick and easy Face Detection in Android
• Automate screenshot testing for Compose previews via reflection
#android
Yandex Mobile Ads SDK: 6 версия с новыми форматами рекламы и инструментами
Теперь разработчики могут монетизировать экран загрузки приложения, при этом регулируя частоту показа рекламы и настраивая параметры отображения баннера: при открытии приложения или при переключении из другой программы. Сами баннеры адаптируются по размеру под конкретное приложение. Управлять этим параметром можно двумя способами: stickySize и inlineSize. Первый предназначен для небольших баннеров-полосок, которые занимают не больше 15% высоты экрана, а второй — для встроенных в контент адаптивных баннеров.
В рекламе с вознаграждениями добавили формат текстово-графических креативов и сетки из нескольких объявлений, и анонсированная в прошлой версии технология «DivKit» для подбора элементов объявления и их расположения в рекламе стала поддерживаться во всех форматах объявлений.
Тестируйте апдейт и повышайте эффективность рекламы — https://yandex.com/inapp/sdk6.
Android
• Как я удалил рекламу из приложения Spotify
• Compose a Compose Button by composing Composable functions
• Paging 3 on Android
• How We Made SPACE INVADERS: World Defense, an AR game powered by ARCore
• Understanding Density-Independent Pixels
• Complex SemanticMatchers for Compose UI Testing
• arshamjafari85/kotlin-contracts-empowering-your-code-for-better-quality-38c26da7d6e6">Kotlin Contracts: Empowering Your Code for Better Quality
#android
Команда Тинькофф соберет мобильных разработчиков в Челябинске 📲
Ребята проведут Tinkoff Mobile Meetup 21 сентября. Расскажут, как реализовать дизайн-систему на Jetpack Compose и работу с хранилищем данных в Android, а после поговорят про создание платформенной команды.
После докладов спикеры останутся поболтать с участниками о разном и, конечно, познакомиться!
📆 Митап пройдет 21 сентября в пространстве Лекторий КЦ 11.
Регистрируйтесь и зовите с собой коллегРеклама\АО Тинькофф Банк\ИНН 7710140679\ERID 2Vtzqw7yBUk
Видео и подкасты за неделю:
• (iOS Ru)
Swift-уроки: Simple MVVM
• (iOS Ru)
Как приручить iPhone, или Общаемся с телефоном по проводу
• (iOS En)
My Deep Dive into the "Failed to Receive Result from Plugin" Macro Error
• (iOS En)
Demystifying Sobel Operators & Edge Detection
• (iOS En)
SwiftUI Fundamentals - FULL COURSE
• (iOS En)
How To Preload Relationship Into SwiftData ModelContainer
• (iOS En)
Selection and PieCharts in iOS 17
• (And En)
Now in Android: 90 - Android brand, ART updates, Dagger KSP, and more
• (And En)
Google Play Store Listing Certificate Study Guide
• (And En)
THIS New Tool Strongly Speeds Up Your Gradle Builds
• (And En)
Don't Make THIS Mistake With Room & Databases on Android
• (And En)
Step-by-Step Guide to Screenshot Testing in Android
• (Crs En)
Building a Gmail-Like Email App with Flutter and Python Backend
• (Dev Ru)
Ozon Tech Community Mobile Meetup
• (Dev Ru)
Новая Зеландия: как живут разработчики в стране хоббитов
• (Dev Ru)
Podlodka #336: на чем программируют ученые
• (Dsg En)
UI Design a Travel App in Figma from scratch
Посмотрите, поделитесь, поставьте 👍 этому посту и он будет больше продвигаться в ленте Телеграма. А если вы увидели/выпустили какое-то другое интересное видео - отправьте боту🧑🏻💻
Напоминаю, что тут проводим опрос про используемые архитектуры - MVC, MVVM и прочие. Пройдите, поделитесь и так далее - потом агрегирую с данными в вакансиях и будет всем понимание, что учить ☺️.
Разработка
• Slack объявляет о запуске пилотного проекта Slack AI
• Яндекс представил новую версию собственной языковой модели YandexGPT 2
• OpenAI проведет первую конференцию для разработчиков 6 ноября
• asom_igor/how-to-advance-as-software-engineer-how-to-be-a-more-senior-software-engineer-6261d7fb193">How to advance as Software Engineer. How to be a more Senior Software Engineer
Маркетинг
• Приложение Voiijer — социальное сообщество для любителей природы и исследователей
• Duolingo запускает уроки математики и музыки
Кроссплатформа
• Flutter Scratch Card Game Development
• 6 Best Places to learn Flutter for FREE in 2023
iOS
• Faster iOS performance debugging with ETTrace
• Debugging universal links
• Thread safety in Swift with locks
• jokerpt/image-tracking-and-detection-using-ar-kit-d13fc64ebbd9">Image Tracking and Detection using AR-Kit
#ios
Android
• Google обновляет логотип Android
• Как публиковать и воспроизводить видео на Android с помощью опенсорс-библиотеки и стриминговой платформы EdgeЦентр
• 5 Snapshot Testing Tools for Android
• vladiachmenev/simplify-your-android-app-debugging-with-flipper-ee6f7f85a0cd">Simplify Your Android App Debugging with Flipper
• akarenina25/maximizing-efficiency-using-a-single-adapter-for-different-view-holders-in-recyclerview-b4af05afd0ae">Maximizing Efficiency: Using a Single Adapter for Different View Holders in RecyclerView
• Exploring Canvas in Jetpack Compose — Crafting Graphics, Animations, and Game Experiences
#android
Самое большое экспертное сообщество по кроссплатформе будет на CrossConf
15 сентября | Красный Октябрь, Москва
На IT-конференции CrossConf будет самое большое комьюнити по кроссплатформенной мобильной разработке. Это нельзя пропустить: мощная программа, топ-спикеры из ведущих компаний, инфлюенсеры mobile-сообщества и afterparty на прокачку интеллекта.
Купить билет
По промокоду APPTRACTOR действует скидка -20%
В деталях:
🟡2 потока по мобильной и кроссплатформенной разработке (Flutter, Kotlin, React, NativeScript, DivKit) + важные инсайты для тимлидов, проджектов и продактов в других 4 потоках. Всего более 60 докладов.
🟡Эксклюзивные доклады от спикеров ОС Аврора о ближайших планах, а также QA-сессия топ-менеджмента RuStore
🟡Открытая запись подкаста «Гости из IT» по теме Kotlin c Алексеем Гладковым в роли ведущего 🔥
🟡IT-квиз на afterparty от знатока Что? Где? Когда? Бориса Белозерова
Новости и розыгрыши в телеграме CrossConf
Британский стартап Butternut Box, который доставляет собакам здоровую еду (!), получил в новом раунде аж 354 млн долларов 🦮 Компания обещает «человеческое качество» ингредиентов (!!), проверенных и опробованных (!!!) реальными людьми (!!!!), но интересно другое. В Великобритании, по оценкам, 65% собак имеют избыточный вес, так то здоровая еда для собак - это нормально. А еще, в 2022 году объем рынка кормов для домашних животных (в мире) составит 100 млрд долларов, причем на собачьи корма придется более 40% этого сегмента. Так что даже небольшая доля на нем - вполне большая в абсолютных деньгах. И 354 млн уже не кажутся фантастическими. А какой бы вы придумал стартап/приложение для владельцев собак?
Разработка
• $354 млн: Butternut Box — доставка здоровой еды для собак
• Что такое WASM (WebAssembly)
• From Zero to SaaS: The 10 Tools for Building Your SaaS App
• What’s hot in mobile App UI/UX design in 2023?
• How we built the Tinder API Gateway
• How to Thrive at a New Mobile Engineering Position
• How Google Stores 10,000 Petabytes of Data Efficiently
Маркетинг
• Qept — простое приложение с заметками, в котором надо писать самому себе
Кроссплатформа
• AppFlowy: открытая альтернатива Notion
• Тестирование Flutter-приложений c помощью Appium
• Migrating an Android app to iOS with KMP
• React Native Performance Measuring and Monitoring Tools
• How to execute an Android intent in Flutter
iOS
• Осваиваем StoreKit 2: модификаторы представлений в SwiftUI
• marufboy/how-to-be-better-ios-developer-using-this-tips-38b88e6c055a">How to be better iOS Developer using this tips
• Advanced Swift Actors: Re-entrancy and Interleaving
• Advanced iOS Memory Management Techniques
• Building a searchable map with SwiftUI and MapKit
• How to Modularize an iOS App
#ios