Рынок кроличьих нор
Новая подборка всех статей за неделю - исследуем рынок работы для iOS-разработчиков, используем ИИ и проходим кроличьи норы оптимизации, погружаемся в мир Lint-a, строим BDUI, определяем рынок мобильных приложений в 1 квартале 2024 года и многое другое. Подключайтесь!
Видео и подкасты за неделю:
• (iOS Ru)
Как не наломать дров с Live Activity
• (iOS En)
Glitch Text Effect - SwiftUI
• (iOS En)
Vertical Circular Carousel - SwiftUI
• (iOS En)
Modern UIKit: Sneak Peek, Part 1
• (iOS En)
Meet Core Location Monitor
• (iOS En)
Detect animal poses in Vision
• (And Ru)
Кодревью опенсорс проекта или как выглядят 10 лет технического долга
• (And Ru)
Сколько памяти нужно для сборки? Android-разработчикам о JVM
• (And Ru)
Что скрывает State в Compose
• (And En)
Automatically Adjust Navigation Based On Screen Size With NavigationSuiteScaffold
• (And En)
Kotlin 2.0, Google IO, Android 15 and More
• (And En)
KotlinConfersations'24
• (And En)
Compose Migration Side Effects - What Can Go Wrong?
• (Crs Ru)
Best practices локальной аутентификации на Flutter
• (Crs En)
Full Stack Flutter, Firebase and Riverpod – Build a YouTube Clone
• (Dev Ru)
Баланс между скоростью и надежностью: переиспользовать нельзя перепроверять
• (Ind Ru)
Инди-хакинг: как программисту работать на себя — доход на пет-проектах
• (Dev Ru)
Разработчики против тестирования
• (Dev Ru)
Побывав в шкуре тимлида - взгляд разработчика изнутри
Посоветуйте в комментариях интересные каналы по мобильной или не очень разработке? 🌐 @AppFiles
#ios #android #mobile #video
Android
• Сам себе экосистема: итоги. Как работают мои самопальные клиенты ВК, YouTube, Telegram на смартфонах 13-летней давности
• zorbeytorunoglu/why-your-baseactivity-is-anti-pattern-kotlin-delegations-a270e98fc87f">Why your “BaseActivity” is anti-pattern. Kotlin Delegations
• KaushalVasava/geofence-in-android-8add1f6b9be1">Geofence in Android
• thomas.bernard.310/jetpack-compose-keyboard-cheat-sheet-c3107070e005">Android Jetpack Compose Keyboard Cheat Sheet
#android
Рынок работы для iOS-разработчиков - обсуждение в Reddit
Прочитал (@AppTractor) все обсуждение и на самом деле все не так плохо. Да, много тех, кто много месяцев не может найти работу, но много и тех, кто нашел почти сразу. К тому же, скорее всего, человек без работы скорее оставит тут отзыв, чем человек с работой.
Прогноз в целом положительный:
Я надеюсь, что в конце этого года, когда процентные ставки упадут, ситуация улучшится. Компании печально известны отсутствием проницательности. Они переборщили с наймом во время пандемии и переборщили с увольнением сейчас. Надеюсь, они найдут баланс. Оставайтесь в безопасности и повышайте свою квалификацию, мальчики и девочки.
Android
• Jetpack Compose: совместимость с System UI и иммерсивная строка состояния
• ModuleCheck — быстрая проверка графа зависимостей для Gradle
• Android- WorkManager in Clean Architecture
• fatiharslan2634/mastering-android-multi-module-architecture-with-convention-plugins-bfee89f3ec38">Mastering Android Multi-Module Architecture with Convention Plugins
• Build a Cat Chatbot using Gemini on Android
• Concurrency & Networking in Android
• Composition Over Inheritance In Kotlin Explained
#android
Почему я бросил Android-разработку после 10 лет и чем планирую заниматься сейчас
В этой статье я расскажу о том, почему я навсегда ушел из Android-разработки, проработав в этой отрасли почти десять лет.
Перевод: https://apptractor.ru/android10
—
#самоповтор из 2022 года. Удивительно, но автор почти смог - перешел на Flutter 😀
Ни месяца без нового магазина для iOS! В июне запускается Aptoide, игровой магазин с 6 (шестью) играми (это в 3 раза больше, чем 2 приложения у AltStore, но все же чувствуется что-то не то... 🥸), а в будущем планируют подключить еще "сотни разработчиков". Главное отличие в занятной схеме разделения доходов - если пользователь нашел приложение через поиск или рекомендации в магазине, компания берет 20%, если же разработчик привлекает пользователей через платную рекламу или через свои каналы, то “налог” составляет 10%. Чуть менее интересно, что пользователей собираются принимать по списку ожидания, чтобы не превысить лимит в 1 миллион установок и не платить Apple пресловутый CTF. Определенно, Aptoide к успеху идет.
Разработка
• NTP для мобильных разработчиков: Как точное время повысит качество ваших приложений
• How Figma overhauled their Performance Testing Framework
Маркетинг
• Aptoide запускает альтернативный магазин игр для iOS в ЕС
Кроссплатформа
• Встроенные коллекции Dart: как реализовать в коде основные структуры данных
• Streamline Flutter Development with Clean Architecture
• Dependency Injection in Compose Multiplatform
• callmeryan/releasing-my-first-true-kotlin-multiplatform-app-60d81e739eb0">Releasing my First True Kotlin Multiplatform App
iOS
• SweetPad — iOS-разработка в VSCode
• SwiftUI инпут: проблемы и решения
• itsuki.enjoy/swiftui-two-views-same-size-2-ways-603db1093913">SwiftUI: Two Views Same Size 2 Ways
• jpmtech/programmatically-hide-navigation-in-swiftui-87f2dba8e3e1">Programmatically Hide Navigation in SwiftUI
• Using App Intents in a SwiftUI app
• Swift Package Manager framework creation in Xcode
#ios
Помните я относительно недавно писал про ИИ-модель от Apple, которая умеет понимать интерфейс приложений? Так вот, теперь стало понятно для чего это - Bloomberg пишет, что Siri в скором времени научится работать с приложениями (сначала фирменными Apple, портом, по идее, со всеми остальными) и самостоятельно выполнять данные ей задачи. Этаки автономный агент, который будет понимать и последовательно выполнять то, что ему скажут.
Разработка
• Самые высокооплачиваемые вакансии мая в сфере разработки приложений
• Прокачиваем Code Review: как выжать максимум?
• Пишем нативно под Аврора ОС как под iOS: Clean-архитектура, Coordinator и UDF
• Avito Product meetup: ML-продукты
• Маргарита Лукина про Frontend, высшее образование, софт-скиллы и женщин в IT
• Observability, Profiling и Benchmarking как основа High Performance
• Три закона сложности программного обеспечения (или почему инженеры-программисты всегда грустные)
• Openpanel — альтернатива Mixpanel с открытым исходным кодом
• Доступность, она же accessibility: делимся нашим опытом разработки
• Why I retired from the tech crusades
Маркетинг
• Polycam поставил рекорд и достиг выручки в $1 млн в месяц
• Приложение Autobiographer использует ИИ, чтобы помочь вам рассказать историю своей жизни
Кроссплатформа
• 5 лет с Flutter: эволюция кроссплатформенности
• Flutter-диета. Как сбросить вес, выпиливая модули
• Enhancing Your Flutter Project with Typesafe Packages
iOS
• Поваренная книга SwiftUI: изображения и иконки — Часть 3
• Мок-собеседование iOS-разработчика. SwiftUI
• Мы решили все проблемы работы в модульном проекте. Хотите так же?
• Siri получит обширные знания для запуска отдельных функций приложений
• Макросы Swift: проще, чище, быстрее
• Как я преподавал алгоритмы в 4 местах и проходил iOS-курсы. Что помогло получить работу?
• Configuring Previews
• Do NOT init State externally in SwiftUI
• Objective-C basics for Swift developers
#ios
Непроизвольная тирания адаптивных макетов
Новая подборка всех статей за неделю - разбираем основы iOS-разработки в Revolut и оцениваем финалистов Apple Design Award 2024, обновляем адаптивные макеты на примерах с I/O и продолжаем ставить на Flutter, тираним пользовательские интерфейсы, катим MobAIle-разработку, делаем кондиционер умным и многое другое. Подключайтесь!
У PLDB, базы данных языков программирования, вышло занятное исследование - в каком возрасте разработчики создают свои языки программирования. Минимальный возраст для этого — 16 лет, как у Аарона Шварца, создателя atx, а максимальный — 70, как у Кена Айверсона и J. Средний возраст составляет 37.5 лет, а медиана — 36. Чаще всего программисты создают языки в возрасте от 30 до 40 лет. Программисты в возрасте старше 40 лет держат второе место. TypeScript, Go, JSON и Clojure — вот несколько очень популярных языков из Топ-100, которые были созданы людьми в возрасте 40-50 лет.
Создавать собственные языки (чаще всего) весело, независимо от того, приживутся ли они. Но еще интереснее создать язык, который станет популярным, а начинать что-то новое никогда не поздно.
А ты сделал свой язык программирования, %username%? 👨🏻💻
Разработка
• В каком возрасте программисты создают новые языки?
• Fitbit выпустил Ace LTE — умные часы/трекер для детей
• Редизайн сервиса «Обмен валюты» в мобильном приложении ОТП Банка
• AI-Friendly Programming Languages: the Kotlin Story
• Don't DRY Your Code Prematurely
Маркетинг
• Supercell выпустила свою шестую игру — Squad Busters
Кроссплатформа
• Building multiplatform games with Flutter
• Bringing Together: Jetpack Compose and Native iOS Components
iOS
• Основы iOS-разработки в Revolut
• Sword — инъекция зависимостей во время компиляции
• Save Data in Your Swift App with PropertyListEncoder
• Selective Unit Testing on iOS: Achieve %80 Faster Feedback
• Observation Framework for SwiftUI
• A Guide to High-Performance Networking
#ios
Android
• Blueprint — размеры Composable
• Annoying problems with Android projects
• Finally Ternary Operator in Kotlin 2.0
• The on-device Vector Database for Android and Java
• Securing the Future: Navigating the Deprecation of Encrypted Shared Preferences
#android
Как сделать мобильные приложения, которые приносят $3,000 в день
Виктор Сералеев (теперь из Чили) на Reddit написал свою историю инди-разработки - как он создал ряд сервисных приложений и начал зарабатывать $3,000 в день. После чего Apple его забанила. Поначалу забрала его $110,000, потом отдала, но теперь он судится с Apple за восстановление аккаунта, но это уже тема другой статьи.
Правда, как обычно, есть нюанс. Комментаторы на Hacker News подозревают, что его приложения некоторым образом скам, которые манипулируют пользователям, продавая им подписки за $4 в неделю.
Что-то не так… эти приложения не выглядят достойными 33K/MRR. Я подозреваю, что была проведена какая-то манипуляция, чтобы… помочь?
Agile увеличивает риск провала проекта на 268%
Исследование показало, что вероятность провала программных проектов, использующих Agile-методики, на 268% выше, чем у тех, кто их не использует.
Хотя исследование, проведенное по заказу консалтинговой компании Engprax, можно рассматривать как тонко завуалированную рекламу методологии Impact Engineering, оно усиливает подозрения в том, что Agile-манифест может оказаться несколько переоцененным.
• Вероятность успеха проектов с четкими требованиями, задокументированными до начала разработки, была на 97% выше. Для сравнения, один из четырех столпов Манифеста Agile — «Работающее программное обеспечение важнее исчерпывающей документации».
• Согласно исследованию, составление спецификации до начала разработки может привести к 50% увеличению успеха, а обеспечение точности требований по отношению к реальной проблеме — к 57%.
• Вероятность успеха проектов, в которых инженеры чувствовали свободу в обсуждении и решении проблем, была на 87% выше.
И что: зачастую проблемы кроются вовсе не в этой методологии разработки. К тому же легко забыть, что у других методологий есть свои недостатки.
В Stack Overflow провели опрос 1700 разработчиков об использовании ИИ-помощников. Большинство респондентов (76%) сообщили, что используют или планируют использовать ИИ-помощники для программирования. Среди мобильных разработчиков таких 60%. Лидируют ChatGPT и GitHub Copilot, однако по совокупности увеличение продуктивности/удовлетворенность абсолютный лидер Codeium. Так что будете внедрять - попробуйте его.
Разработка
• Какой ИИ и как помогает разработчикам — опрос Stack Overflow
• Смартфоны станут основным форм-фактором для ИИ
• Mobius 2024 offline. День второй
• 5 Best Practices for the Sign-up Flow
Маркетинг
• Клиентская миграция: как бизнес переводит клиентов из старого приложения в новое
Кроссплатформа
• Automate Flutter Deployments to App Store and Play Store using Fastlane and Github Actions for a lazy developer
• sanjaysharmajw/live-tracking-flutter-9e2621a863eb">Live Tracking — Flutter
iOS
• Рынок работы для iOS-разработчиков — обсуждение в Reddit
• SwiftfulRouting — программная навигация для SwiftUI
• GPT vs Copilot: кто лучший помощник в написании UI-тестов для iOS?
• Swift at 10
• Creating custom buttons and hover effects in visionOS
• Creating gradient on polylines in SwiftUI MapKit
• Glitch Text Effect - SwiftUI
#ios
На Reddit большое обсуждение поиска работы для iOS-разработчиков. Даже не знаю, радоваться или огорчаться, вроде как не сильно все отличается от России - толпы некачественных джунов, которых никуда не берут, сотни претендентов на вакансии, 30-40 собеседований, поиск работы на любую позицию занимает около полугода, люди уходят в пресловутый Flutter, RN и другие направления. 👍 если написать обзор
Разработка
• Raspberry Pi 5 получит свой ускоритель ИИ
• Как мы строили BDUI: опыт Яндекс Маркета
• Работа над ошибками: как мы сделали приложение World Class удобнее
• Managing My Motivation, as a Solo Dev
Маркетинг
• Рынок мобильных приложений в 1 квартале 2024 года — отчет Sensor Tower
Кроссплатформа
• jacobras/apps-using-compose-multiplatform-on-ios-now-beta-in-2024-developer-insights-fe24b224d754">Apps using Compose Multiplatform on iOS in 2024 — developer insights
iOS
• ChatGPT для Swift: 5 лучших промптов для генерации кода
• Has anybody here been laid off? How’s the market for devs right now?
• Vertical Circular Carousel - SwiftUI
#ios
Рынок мобильных приложений в 1 квартале 2024 года
У Sensor Tower вышел отчет о мировом рынке мобильных приложений в 1 квартале 2024 года. Вот некоторые интересные цифры из него.
• Расходы пользователей выросли почти на 10% по сравнению с 2023 годом — до $35.8 млрд.
• Приложения выросли на 19.4% ($15.5 млрд), игры на 2.9% ($20.3 млрд).
• Траты на iOS выросли на 11.5%, на Android на 5.3%.
Традиционно iOS более чем вдвое опережает Android по доходам.
Android
• Вглубь еще одной кроличьей норы оптимизации
• Что такое sealed класс — вопросы с собеседований
• Погружение в мир Lint'a в Android-проекте
• The Best Way to Learn as an Android Developer
• Region specific resources and broken localization
• Everything you want to know about Functional interfaces in Kotlin
• How I Finally Memorized Modifier Ordering in Compose
#android
Вглубь еще одной кроличьей норы оптимизации
Если вас увлекают вопросы казалось бы бессмысленной оптимизации простых функций - вот статья от Romain Guy, который взялся за функцию подсчета количества цифр в Long в Kotlin. Сможете перебить его результат?
Android
• Jetmagic — отзывчивые приложения для Android с Compose
• Разработка новостного приложения. Часть 7. Загрузка в Google Play
• Разработка новостного приложения. Часть 6. Что я сделал не так
• Оптимизация Compose: проблемы, опыт, тактика, стратегия
• Как создать аудиоплеер. Часть 2. Использование ExoPlayer
• Shared Element Transition в Jetpack Compose
• DPE University — обучение Gradle, Apache Maven и Develocity
• Down Another Rabbit Hole
• Effective Map Composables: Non-Draggable Markers
• Injecting your Compose applications with Koin — From Android to Multiplatform
• Securing the Future: Navigating the Deprecation of Encrypted Shared Preference
• Kotlin K2 FIR Quickstart Guide
#android
DPE University - обучение Gradle, Apache Maven и Develocity
Разработчики Gradle запустили новый учебный портал - DPE University. Он содержит курсы для самостоятельного обучения и призван помочь разработчикам программного обеспечения и инженерам по сборке получить максимум от инструментов сборки Gradle и Maven, а также от Develocity, платформы для повышения производительности разработчиков для предприятий.
Сейчас в DPE University уже есть десять основополагающих курсов, которые можно изучать по отдельности или в рамках четырех учебных потоков:
• Кэширование сборок в Gradle
• Кэширование сборок Maven с помощью Develocity
• Кэширование Gradle с Develocity
• Основы Develocity
Курсы углубленно изучают особенности конкретных технологий и включают практические занятия для отработки и закрепления полученных знаний. Учитесь вы самостоятельно, поэтому вы можете сами решать, когда и где этим заниматься.
Видео и подкасты за неделю:
• (iOS Ru)
Как писать игры на Swift для Playdate
• (iOS Ru)
Мок-собеседование iOS-разработчика. SwiftUI (+ все собеседования)
• (iOS Ru)
Макросы Swift: проще, чище, быстрее
• (iOS Ru)
Мы решили все проблемы работы в модульном проекте. Хотите так же?
• (iOS En)
Flip Clock Text Effect - SwiftUI
• (iOS En)
Expandable Search Bar using SwiftUI
• (iOS En)
Hacker Text Effect using SwiftUI
• (iOS En)
Spotlight your app with App Shortcuts
• (iOS En)
Update Live Activities with push notifications
• (iOS En)
Discover Calendar and EventKit
• (iOS En)
Create a great ShazamKit experience
• (iOS En)
How to cache the result of API calls (using NSCache)
• (And Ru)
Разработка новостного приложения. Часть 7. Загрузка в Google Play
• (And Ru)
Разработка новостного приложения. Часть 6. Что я сделал не так
• (And Ru)
Оптимизация Compose: проблемы, опыт, тактика, стратегия
• (And En)
Now in Android: 105 - I/O ‘24, Android 15, KMP, Compose, AndroidX, and more
• (And En)
List + Detail Screens Just Got SO MUCH Easier - NavigableListDetailPaneScaffold
• (And En)
Building an Android Video Calling App With the Stream SDK
• (And En)
Mastering Feature Flags: Best Practices with Firebase Remote Config
• (And En)
The Essence of Coroutines
• (Crs Ru)
5 лет с Flutter: эволюция кроссплатформенности
• (Crs Ru)
Flutter-диета. Как сбросить вес, выпиливая модули
• (Crs En)
Can a backend engineer learn Flutter with AI?
• (Dev Ru)
Прокачиваем Code Review: как выжать максимум?
• (Dev Ru)
Пишем нативно под Аврора ОС как под iOS: Clean-архитектура, Coordinator и UDF
• (Dev Ru)
Avito Product meetup: ML-продукты
• (Dev Ru)
Маргарита Лукина про Frontend, высшее образование, софт-скиллы и женщин в IT
• (Dev Ru)
Observability, Profiling и Benchmarking как основа High Performance
• (Dev En)
Linear Algebra Course – Mathematics for Machine Learning and Generative AI
• (Mrk En)
Why Duolingo’s Engagement Strategy Won’t Work For Every App — Asya Paloni, Welltory
Посоветуйте в комментариях интересные каналы по мобильной или не очень разработке? 🌐 @AppFiles
#ios #android #mobile #video
Android
• domen.lanisnik/android-studio-usage-tips-4c6c47b716e8">7 Android Studio Usage Tips
• My Story of Getting Scammed and Losing My Google Play Console Account
• kappdev/crafting-custom-3d-dialog-animation-in-jetpack-compose-b4038f7888d5">Crafting Custom 3D Dialog Animation in Jetpack Compose
#android
Компания Mistral только что представила Codestral - модель, предназначенную для задач генерации кода. Как пишут на сайте, она помогает разработчикам писать и дополнять код, взаимодействуя с ИИ с помощью общих инструкций. Модель свободно владеет 80+ языками программирования, в том числе Python, Java, C, C++, JavaScript и Bash, Swift и Fortran. Благодаря такой широкой языковой базе Codestral может помочь разработчикам в различных средах кодирования и проектах. Codestral можно использовать в исследовательских и тестовых целях и она уже доступна на HuggingFace.
Разработка
• Как сделать мобильные приложения, которые приносят $3,000 в день
• Мини-игры Playables стали доступны всем пользователям YouTube
• Indexing all of Wikipedia, on a laptop
• Codestral: Mistral's Code Model
Маркетинг
• Редактор цен для iOS подписок
Кроссплатформа
• santimattius/from-sqldelight-to-room-in-kotlin-multiplatform-projects-4eaced1620a7">From SQLDelight to Room in Kotlin Multiplatform Projects
iOS
• Финалисты Apple Design Award 2024
• Разбираемся с типографикой в visionOS
• How to create custom @Environment values in SwiftUI
• Slowly migrating from Objective-C to Swift
• @preconcurrency usage in Swift explained
#ios
Финалисты Apple Design Award 2024
Каждый год премия Apple Design Awards отмечает инновации, изобретательность и технические достижения в области дизайна приложений и игр. Но конкурс также стал чем-то большим - это момент, когда можно сделать шаг назад и отметить сообщество разработчиков Apple во всех его проявлениях.
Всего есть 7 категорий:
• Восторг и веселье
• Инклюзивность
• Инновации
• Взаимодействие
• Социальное влияние
• Визуальные и графические эффекты
• Пространственные вычисления
Вот, например, победители в Визуальные и графические эффекты:
Приложения
• Sunlitt: Sun Position and Path
• Meditate - Mindfulness app
• Rooms
Игры
• DEATH STRANDING DIRECTOR'S CUT
• Lies of P
• Honkai: Star Rail
Все наминанты тут.