iOS
• Миграция Ice Cubes на фреймворк SwiftUI Observation
• Jailbreak checker — как обезопасить свое iOS-приложение
• Closures vs. Delegates in Swift iOS
• dimillian/how-to-use-the-new-inspector-swiftui-view-modifier-9cefb8353beb">How to use the new inspector SwiftUI view modifier
• How to create an App Clip for your app
• Dependency Injection in Swift
• TarasSavytskyi/crafting-gourmate-the-food-journaling-app-6beefb83a78b">Crafting Gourmate: The Food Journaling App
#ios
Android
• Написание символьного процессора с помощью Kotlin Symbol Processing (Часть 2)
• Data Persistence With Room
• Media on Swiggy’s Mobile Apps
• KaushalVasava/navigation-in-jetpack-compose-full-guide-beginner-to-advanced-950c1133740">Navigation in Jetpack compose. Full guide Beginner to Advanced.
• How to Implement Swipe-to-Action using AnchoredDraggable in Jetpack Compose
#android
Ни дня без новой социальной сети! Еще на прошлой неделе анонсировалась Favs - сеть, которая хочет вернуть социальные сети к их истокам, создав приложение, которое поможет людям поддерживать прочные и значимые связи друг с другом. При этом в ней не будет бесконечных фидов, рекламы, новостей, обновления статусов, обмена фотографий и т.п. На законный вопрос “А что же будет” авторы не отвечают - пока это секрет. «Мы придумали для вас совершенно новый способ взаимодействия, которого нет ни в одной социальной сети мира». Под это получили почти “миллион долларов США” (С) - тренд на общении, дружбе и связях в реальном мире, емае.
Разработка
• Favs — социальная сеть только для друзей
• Kotlin снова вошел в Топ-20 TIOBE Index
• $100 млн в Серии B: Writer — генеративная платформа для предприятий
• Исследователи Microsoft AI выставили терабайты данных на всеобщий доступ
• Особенности SRE и Observability в мобильных приложениях
• Диалоги с кофеваркой, про Яндекс Алису и умный дом Home Assistant
• Best Practices for Collecting and Querying Data from Multiple Sources
• My approach to coding interviews: Optimize for iteration
• What Happens When You Reach The Age of 35 as a Programmer
Маркетинг
• The Mobile Consumer 2023: Give and Get Come Into Focus
Кроссплатформа
• Flutter Weather App: погодное приложение в стиле Apple Weather
• Behind every widget, there are an element and almost always a render object
• Mavericks Style Architecture on Kotlin Compose Multiplatform: A Tutorial
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
У Airship вышло очередное исследование мобильных пользователей ака покупателей. Много интересного про привычки и задачи в разрезе mCommerce, но есть и несколько общих цифр. Например, про Live Activities не знает аж 24% пользователей, а не использует еще 35%. И это при том, что их анонсировали уже больше года назад. Угадайте в какой стране наибольшая доля тех, кто все-таки использует Live Activities? Или вот еще любимое - почему удаляют приложения. В среднем главная причина остается неизменной уже лет 10 - чтобы освободить место на телефоне. Обратно интересно, что у Поколения Z это не она, видимо у них смартфоны новее и места там дофигища. В общем, отчет рекомендую, особенно кто в ритейле работает.
Разработка
• Исследование “Мобильный потребитель 2023”
• Принципы хорошего дизайна интерфейсов. И причем здесь программисты?
• Tracing: structured logging, but better in every way
Маркетинг
• Google провел редизайн приложения Fitbit
• Как увеличить мощность A/B-теста, если мало данных и время поджимает
Кроссплатформа
• dudek16/trainee-program-for-aspiring-flutter-developers-b788a728a3aa">Trainee Program for Aspiring Flutter Developers
• Kotlin for Web Development: Beyond Android Apps
iOS
• iOSSecuritySuite: безопасность и защита от взлома iOS-приложений
• Migrating Ice Cubes to the SwiftUI Observation framework
• mihail_salari/efficient-dependency-management-in-ios-introducing-appcontainer-for-mpv-di-architecture-fa6f691381b7">Efficient Dependency Management in iOS: Introducing AppContainer for MVP+DI architecture
• WeatherKit Tutorial: Getting Started
• Understanding Publishers in SwiftUI and Combine
• Thread safety in Swift with actors
• adityagi02/creating-a-carousel-view-in-swiftui-a-step-by-step-guide-7ac29bcd1783">Creating a Carousel View in SwiftUI: A Step-by-Step Guide
• Multipart Request with URLSession and async/await in Swift
#ios
Android
• Тюнинг производительности Kotlin: 20 советов
• Реализуем современный UI на Jetpack Compose
• balsikandar/mastering-recyclerview-optimizations-in-android-f937919d4dd7">Mastering RecyclerView Optimizations in Android
• Lighten MVI architecture: Delegate responsibilities to new components
• Creating the Creational Design Patterns in Kotlin
• daniel.atitienei/implementing-in-app-reviews-using-google-play-review-api-d28003357ead">Implementing In-App Reviews Using Google Play Review API
#android
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.