Маркетинг и монетизация
Мобильная разработка за неделю #475: добавляем подсказки для самых маленьких
В этом дайджесте для мобильных разработчиков листаем страницы и повышаем качество кода, защищаем и исследуем код, исследуем новый релиз Flutter, делаем дизайн-систему, автотесты, определяем “производительность” рекламных сетей.
Подписывайтесь на на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
iOS
- 10 быстрых советов по повышению качества iOS-кода: часть 1 + часть 2
- Добавляем подсказки в приложение с помощью TipKit
- Листаем цифровые страницы: UIPageViewController
- Рефакторинг Swift
- Apple добавит поддержку RCS в следующем году
- Отображение панели выбора фотографий в SwiftUI
- iOS 18 должна стать самой «амбициозной и неотразимой»
- Поваренная книга SwiftUI: обрезка представлений
- Progress toward the Swift 6 language mode
- On-Crash Backtraces in Swift
- SwiftUI: Displaying a Photo Picker
- Localisation in Xcode 15
- SwiftUI at Airbnb: A Case Study
- Beyond the Code: Exploring the Innovations of Swift 6
- The idea of a Fastlane replacement
- Glovo’s Large-Scale App Development: An In-Depth Look
- Mastering App Store Submissions with Fastlane Deliver
- The complete guide to iOS & macOS development in Neovim
- Handle TabView data in a type-safe way with Enums
- Preparing your App for Voice Over: Accessibility Value
- Why mobile apps need a good abstraction?
- Unit Test Expected Failures in Swift
- SwiftUI: How to trigger animations from outside the View scope?
- Inspecting Xcode’s build system graph at ease
- Mastering ViewThatFits
- How to update widgets for StandBy mode
- SwiftData: A Comprehensive Guide to Data Persistence in iOS with CoreData
- Animatable Dual Axis Graph
- Introducing Inferno: Metal shaders for SwiftUI
- Building Complex Scroll Animations With New iOS 17 APIs
- Data Structures in Swift
- How to Refactor Your Code with Late Let and Defer
- Introducing Inferno: Metal shaders for SwiftUI
- Adding Snapchat-Like Filters to a Video Calling App using SwiftUI
- Build DALL·E 3 AI WhatsApp Sticker Generator SwiftUI App
- Building Complex Scroll Animations With New iOS 17 API’s
- SwiftData Dynamic Sorts and Filters
- MaterialTabBar: материальный TabBar на SwiftUI
- Swift Protobuf: Protocol Buffer для Swift
Android
- Защита кода приложения Android. Когда хотели как лучше, а вышло не очень
- Kaspresso для самых маленьких
- Используем Ktlint в вашем Android-проекте
- Настройка Selenoid для запуска UI-тестов на Android
- Сравнение производительности Compose и View
- Разрушители легенд: Как на самом деле магазины проверяют приложения на уязвимости
- Как подружить JUnit 5 и Robolectric?
- Разделение презентационного слоя фичи на модули в Android приложении
- Сквозь дебри разработки, или как я пытался написать приложение
- Приложение для мобильных бригад: «толстый клиент» и полмиллиона строк кода
- Бруклинский мост. Зачем генерируем C++ на Kotlin
- Погружение в Smali. Как выглядят Java и Kotlin со стороны
- Быстрый старт в сборке метрик по билдам в Android-проекте
- Android Storage: обзор инструментария
- Squaring the Circle on Google TV
- Navigation Drawers for Android TV using Jetpack Compose
- Reactive Programming in Kotlin — Flow
- The many faces of Kermit
- Apply Ktlint To Your Android Project
- Adding Konsist and Ktlint to a GitHub Actions Continuous Integration
- Navigating Pitfalls — When to Use derivedStateOf with remember(key) in Jetpack Compose
- Android: Jetpack Glance with Hilt
- Android WorkManager: Popular Interview Questions and Answers
- Compare Compose and View performance
- The secret to Android’s improved memory on 1B+ Devices: The latest Android Runtime update
- Understanding Kotlin’s Special Types: Any, Unit, and Nothing
- AIDL: The Android Developer’s Bridge Between Processes
- BasicTextField2: A TextField of Dreams
- Ace your live coding interview: Android
- 5 quick animations to make your Compose app stand out
- Kotlin Sequence vs Collection: Which to choose?
- Bringing New Input Support to Desktop AVD
- Are you sure you know how Kotlin Flow works?
- Component-based Approach. Fighting Complexity in Android Applications
- The latest updates to power your growth on Google Play
- New APIs for adaptive layouts in Jetpack Compose
- Understanding Eventbus with kotlin Flow
- Now in Android: 95 — Google Play requirements, Animations in Compose, Passkeys in Android, and more!
- How to Build an Animated Splash Screen on Android — The Full Guide
- Top 3 Coroutine Cancellation Traps That Lead to Errors In Your Android App
- Practical magic with animations in Jetpack Compose
- Twitter UI Clone: интерфейс Твиттер на Jetpack Compose
- Orbital: анимации Jetpack Compose
Кроссплатформа
- Простой, но масштабируемый State Management для Flutter
- Как мы перешли на кроссплатформенность в середине проекта и успели в срок
- Новый линт в Dart 3.2
- Flutter 3.16: что нового
- Анимация загрузки картинок во Flutter, или как сделать shimmer своими руками
- Embracing Stable Kotlin Multiplatform (KMP) with Koin
- Flutter: Seamless Header Navigation from AppBar
- 8 Steps to Follow When Building Your Next Flutter App
- Flutter localization: step-by-step
- Building Responsive UIs in Flutter: A Short Guide
- What’s new in Flutter 3.16
- Introducing the Flutter Casual Games Toolkit
- LocalSend: кроссплатформенная альтернатива AirDrop
Разработка
- Дизайн-система Gravity UI: как легко построить свой интерфейс
- Что не так с «Авророй» — российской мобильной OC
- Как сделать автотесты гибкими и лаконичными
- Должен ли QA уметь писать код
- GameDev и ОС Аврора. Портирование игры
- Что нового в интерфейсе ОС Аврора 5: управление и паттерны взаимодействия
- Avito Tech Managers meetup #1
- Я прошел собеседования в Google… Как?
- Octoverse 2023: ежегодный отчет от GitHub
- Windows 1.0 исполнилось 40 лет
- Building In-Video Search
- Smoothing Out The Bumps: My Journey of Setting Up CI/CD for Android and iOS Apps
- Framing: The 1 most important communication concept every software engineer must know
- How one line of code caused a $60 million loss
- How I escape what 99% of programmers can’t
- Writing code for MS-DOS with Borland Pascal 7
- My favorite coding question to give candidates (and why)
Аналитика, маркетинг и монетизация
- Мобильные суперприложения выгодны корпорациям, но это кошмар для простых людей
- RuStore стал первым инклюзивным российским магазином приложений
- SplitMetrics купила App Radar
- Microsoft представила Loop, своего конкурента Notion
- $11.5 млн Серии А: Sunnyside — разумное питье с ИИ
- Опубликован AppsFlyer Performance Index 16
- Почему бенчмарки бесполезны
- Nothing Phone выпустит эксклюзивное приложение для работы с iMessage
- Объявлены финалисты App Store Award: лучшие приложения и игры 2023
- Digital Turbine инвестировала в магазин приложений Aptoide
- Исследуем доходы и установки Callsheet
AI, Устройства, IoT
- Вкатываемся в Machine Learning с нуля за ноль рублей: что, где, в какой последовательности изучить
- Станция Миди и голосовое управление Zigbee-устройствами без интернета. История разработки
- Парк юрского периода глазами нейросети: как развернуть Diffusers для генерации изображений за 10 минут
- Дисплей для Ариты или тайна четырёх перемычек
- Управление сетевыми устройствами: Orange Pi, OpenWRT и Python
- $16 млн в посевном раунде: Codegen — автоматизация задач разработки с помощью ИИ
- An Android Developer’s Introduction to Machine Learning
Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.