iOS
• Поваренная книга SwiftUI: использование предварительного просмотра в Xcode со SwiftUI
• Перф-тесты VS аномалии. Вечная битва за производительность приложений на iOS
• Руководство по Использованию Многопоточности в Swift
• sagar.ajudiya/cool-new-features-of-swift-5-9-71c4cc3b079c">3 Cool new features of Swift 5.9
• How to Handle Content Unavailable Gracefully with iOS 17?
• Bottom Sheet View Controller with Dynamic Content Height in iOS
• dimillian/the-sad-state-of-appstorage-and-the-observable-framework-9c924296a434">The sad state of @AppStorage and the Observable framework
• Store Codable types in AppStorage
#ios
Уже не стал писать отдельно, но Unity в своем X объявила, что пересмотрит правила ценообразования для разработчиков. Сила сообщества на этот раз победила и выстрел в ногу немного откладывается. А еще вот интересный подсчет - если бы вы покупали акции Apple, вместо каждого нового iPhone, у вас сейчас было бы $147,000. Но новый iPhone ведь важнее, правда? 🧑💻
Разработка
• Если бы вы покупали акции, вместо iPhone, у вас сейчас было бы $147,000
• OpenRA: игровой движок для 2D стратегий
• Тирания маржинального пользователя
• Как избежать обмана на работе: 5 эффективных стратегий
• Unity стреляет себе в ногу
• Unlocking the Potential of Mobile DevOps: Transforming App Development and Delivery
Маркетинг
• Favs — социальная сеть только для друзей
• Коллажи с покупками переходят из Shuffles в главное приложение Pinterest
• Amazon возвращает встроенные покупки на Android
Кроссплатформа
• Flutter Dev Podcast #42: DCM. Что нового?
• Compose for iOS под капотом
• Compose Multiplatform для iOS и Android
• Why Kotlin Multiplatform could change everything in the mobile dev world
• The Power of the late keyword in Dart
iOS
• Swift-уроки: дефолтный аватар как в Telegram
• EmojiPalette: пикер эмодзи для SwiftUI
• Animating with keyframe animator in SwiftUI
• SFSymbol Animations in iOS 17
• A new tool for testing macros in Swift
• Crack Your iOS Interview: Top Questions You Must Know in 2023 Before You Go!
• Understanding Access Levels in Swift with Examples
• Benefits of using #pragma mark in Swift
• Discovering All SwiftUI TextField Keyboard Types
#ios
Тирания маргинального пользователя
Как же так получается, что программное обеспечение со временем становится хуже, а не лучше, несмотря на миллиарды долларов, вложенные в исследования и разработки, и стремительный прогресс в области инструментария и искусственного интеллекта? Какая злая сила, более могущественная, чем инновации и прогресс, здесь действует?
Статья: https://apptractor.ru/info/articles/tiraniya-marginalnogo-polzovatelya.html
Яндекс открыл ускоренный отбор на стажировку для мобильных разработчиков (iOS, Android)
Intern Week Offer — неделя ускоренного найма стажёров в Яндекс. Всего за 7 дней вы успеете пройти алгоритмические секции, интервью с командами и, если будет мэтч, — получить долгожданный офер на стажировку.
Стажировка в Яндексе оплачивается и длится от 3 до 6 месяцев. График гибкий, 20, 30 или 40 часов в неделю. Стажёрам из других городов России компания оплатит дорогу до Москвы и проживание на время всей стажировки.
Требования к стажёрам минимальные
— Базовое знание алгоритмов и классических структур данных;
— Навык написания кода на Swift, Kotlin или Java;
— Опыт работы над учебными или реальными проектами будет преимуществом.
Как пройти отбор
— Заполните анкету на сайте
— Выполните тестовое задание с 18 по 24 сентября.
— Пройдите отборочные, которые начнутся 2 октября.
✅ Получите офер в команду мечты.
Хочу на стажировку
Тут в одном профильном канале снова занимательно хоронят мобильные приложения. Говорят трафика нет, органики нет, трекинга нет, денег нет. А мобильные разработчики это теперь энтузиасты, работающие за идею. Откуда появляются сотни и тысячи новых растущих продуктов не поясняют, видимо это все те же энтузиасты. Согласны, нет?
Разработка
• Выходим на глобальный рынок: адаптация интерфейса под RTL
• The Tyranny of the Marginal User
• How to use Strings Method to improve any UI design
• How mobile apps illegally share your personal data
Маркетинг
• Попадание в сеть: как игры становятся социальными сетями для зумеров и миллениалов
• Топ быстрорастущих приложений в России в сентябре
• Что же беспокоит разработчиков в связи с Unity Runtime Fee?
• Slingshot — быстрая отправка фото с помощью «рогатки»
Кроссплатформа
• Есть ли смысл начинать писать мобильное приложение не на Kotlin Multiplatform и Compose Multiplatform?
• Puro — эффективный способ управления Flutter-версиями
• Introducing the Flutter Consulting Directory
• Exploring the Expandable Menu Package in Flutter
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 млн программных веток.
💻 Прислать материал для дайджеста можно сюда. А поддержать канал здесь.
Kotlin снова вошел в Топ-20 TIOBE Index
Kotlin вернулся в первую двадцатку индекса TIOBE.
1. Kotlin впервые проявился в индексе TIOBE практически в самом начале, в 2017 году, через год после того, как его представили миру. Тогда Google приняла его в качестве основного языка для разработки под Android.
2. Правда, его пребывание в Топ-20 оказалось недолгим. С 1% доли в рейтинге в начале 2018 года он откатился примерно до 0.2%. С тех пор он то набирал, то терял популярность, как это характерно для индекса TIOBE, вплоть до последнего месяца.
3. В сентябре он занял 20 место с индексом популярности 0.90%. Впереди него Ruby, R и Rust, а также Swift на 16 месте с 1.00%.
4. На первых местах безраздельно сидят Python, С и С++.
И что: Kotlin совсем уже взрослый 🙂 Автор Индекса говорит: "Нынешний подъем более серьезен, у Kotlin сейчас гораздо больше поклонников. Причина роста Kotlin заключается в том, что он является яростным конкурентом Java. Он выигрывает у Java практически по всем параметрам. Основным аргументом против Kotlin является то, что Java — более устоявшийся язык, поэтому у него больше программистов, книг, учебных курсов, библиотек и т.д." Но и это, видимо, не на долго.
Android
• ComposeScrollbars: продвинутые скроллбары для Compose
• Мок-интервью Middle Android Developer
• Cобеседование Android-разработчика: Максим Качинкин (Dodo Engineering)
• Что нового в Android 14 для разработчиков
• Написание символьного процессора с помощью Kotlin Symbol Processing (Часть 1)
• «Подарил удочки и попрощался с друзьями на год»: как я стал Android-разработчиком, отказавшись даже от прогулок
• Protobuf или Reflection в JNI
• UI Eventing on Android
• ANR internals: touch dispatching through the view hierarchy
• ArchUnit vs. Konsist. Why Did We Need Another Kotlin “Linter”?
• A bird’s eye view of the ioki Android app architecture
• andkemal/kotlin-performance-tuning-20-best-practices-you-should-know-354011076664">Kotlin Performance Tuning: 20 Best Practices You Should Know
• Kotlin Flow: Simple yet Powerful Implementation
• Why has my background Worker stopped? Exploring Android WorkManger’s StopReason
#android
Тирания виртуальных микросмартфонов
Новый еженедельный дайджест - лучшие 119 новостей и статей. Прочитайте, поставьте 👍, сохраните в избранное и поделитесь с коллегами. Еще у меня есть канал IT Insights, где новости и статьи про код, технологии и все самое интересное за пределом мобайла. Там, например, была ссылка "Как я стал $800K инженером" - опыт разработчика, который увеличил свое вознаграждение с 390 тыс. долл. в 2017 до 823 тыс. долл. в 2021 году.
💻 Прислать материал для дайджеста можно сюда. А поддержать канал здесь.
Видео и подкасты за неделю:
• (iOS Ru)
Swift-уроки: дефолтный аватар как в Telegram
• (iOS En)
Level up your SwiftUI – Easy improvements you can apply to any SwiftUI app
• (iOS En)
SwiftUI Tag TextField
• (iOS En)
How To Use SwiftData with Preview
• (iOS En)
Scrolling Charts in iOS 17
• (iOS En)
SwiftUI: Hide Navigation Bar On Swipe
• (And Ru)
Cобеседование Android-разработчика: Максим Качинкин (Dodo Engineering)
• (And Ru)
Что нового в Android 14 для разработчиков
• (And Ru)
Мок-интервью Middle Android Developer
• (And En)
Don't Make These 2 Mistakes With Lists in Kotlin
• (And En)
Swipeable Tab Rows - UX With Material3
• (And En)
Android Jetpack Compose: The Perfect Splash Screen
• (Crs Ru)
Compose for iOS под капотом
• (Crs Ru)
Compose Multiplatform для iOS и Android
• (Crs Ru)
Flutter Dev Podcast #42: DCM. Что нового?
• (Dev Ru)
Как избежать обмана на работе: 5 эффективных стратегий
Посмотрите, поделитесь, поставьте 👍 этому посту и он будет больше продвигаться в ленте Телеграма. А если вы увидели/выпустили какое-то другое интересное видео - отправьте боту🧑🏻💻
Android
• ComposeShadowsPlus: тени для Compose
• В Android 15 откроют доступ к данным о заряде батареи
• Jetpack Compose for Wearables — Developing UIs for Smartwatches
• mukovozoff/how-to-automate-sdk-testing-and-sleep-through-the-night-a-sensor-simulation-story-f118a2882e53">How to automate SDK testing and sleep through the night — a sensor simulation story
• lucasb.aquino/security-tips-for-android-developers-8c9bee249fce">Security Tips for Android Developers
• How Qualcomm Added Audio Offload Support for ExoPlayer
• Automate screenshot testing for Compose previews via reflection
#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
Посмотрите, поделитесь, поставьте 👍 этому посту и он будет больше продвигаться в ленте Телеграма. А если вы увидели/выпустили какое-то другое интересное видео - отправьте боту🧑🏻💻