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 млн программных веток.
💻 Прислать материал для дайджеста можно сюда. А поддержать канал здесь.
Ваш онбординг может быть слишком КОРОТКИМ
В блоге 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
Тирания виртуальных микросмартфонов
Новый еженедельный дайджест - лучшие 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
Посмотрите, поделитесь, поставьте 👍 этому посту и он будет больше продвигаться в ленте Телеграма. А если вы увидели/выпустили какое-то другое интересное видео - отправьте боту🧑🏻💻
Напоминаю, что тут проводим опрос про используемые архитектуры - 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