Что нового в Xcode 16
Xcode 16 приносит много обновлений. Главное - появление ИИ, которое отметили еще в кейноуте. В Xcode появится предиктивное завершение кода, основанное на модели машинного обучения, специально разработанной для Swift и SDK Apple. Для предиктивного завершения кода требуется Mac с Apple Silicon и минимум 16 ГБ объединенной памяти под управлением macOS 15.
Кроме того:
• Поддержка EditorConfig
• Explicitly built modules - более действенные сообщения об ошибках, улучшенная производительность отладчика и лучшие решения по планированию, которые максимизируют параллелизм. Теперь LLDB может напрямую импортировать явно собранные модули Swift и Clang.
• Новый алгоритм дедупликации кода обеспечивает дополнительную экономию объема кода и улучшенную производительность линковки
• Новый механизм выполнения для Preview - общие продуктовые сборки между Build, Run и Preview, переключение между ними происходит мгновенно
• Preview теперь поддерживает предварительный просмотр представлений внутри статических библиотек
• Вы можете вырезать текст из редактора исходных текстов, а затем использовать «Новый файл из буфера обмена» для быстрого извлечения части исходного файла в новый файл
• Ссылки на папки с возможностью сборки - записывайте в файл проекта только путь к папке, не перечисляя содержащиеся в ней файлы. Это минимизирует изменения в проекте при добавлении и удалении файлов и позволяет избежать конфликтов с командой по контролю исходного кода
• Swift-DocC теперь предупреждает о документации для параметров и возвращаемых значений, которая не существует для данного документированного API
• Множество функций в Instruments
• Swift Testing - совершенно новый фреймворк тестирования, созданный для Swift с нуля
Видео с WWDC: https://www.youtube.com/watch?v=BAQ9EhAm2eM
Release Notes: https://developer.apple.com/documentation/xcode-release-notes/xcode-16-release-notes
Android
• Bytemask — плагин Gradle для шифрования секретных строк
• Как мы разобрали монолитное приложение для бизнеса на модули
• Кодревью опенсорс проекта или как выглядят 10 лет технического долга
• Сколько памяти нужно для сборки? Android-разработчикам о JVM
• Как создать аудиоплеер. Часть 3
• Что скрывает State в Compose
• Everything about Customizing coroutine contexts in kotlin
• Accessibility Tests in Compose - Name, Role, Value
#android
Рынок кроличьих нор
Новая подборка всех статей за неделю - исследуем рынок работы для 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
Ну что, как вам WWDC 2024? Перемещение иконок по экрану и калькулятор на iPad, конечно, amazing, но вот интеграция с macOS выглядит действительно круто. Как и автономные агенты, которые понимают задачи и приложения с помощью AI. Ну а Genmoji вообще топ :) А самое главное - еще AI приходит в Xcode. Ждем Platforms State of the Union. Ниже традиционный опрос про конференцию.
Разработка
• Как одна ошибка ChatGPT стоила нам $10,000+
• Управление мотивацией для соло-разработчика
• Обнаружены вредоносные расширения VSCode с миллионами установок
• Разработчики против тестирования
• Баланс между скоростью и надежностью: переиспользовать нельзя перепроверять
• Инди-хакинг: как программисту работать на себя — доход на пет-проектах
• Agile увеличивает риск провала проекта на 268%
• How to Build Anything Extremely Quickly
Маркетинг
• Самые скачиваемые и зарабатывающие приложения в России в мае 2024
• Самые скачиваемые и зарабатывающие приложения в мире в мае 2024
Кроссплатформа
• Best practices локальной аутентификации на Flutter
iOS
• Победители Apple Design Awards 2024
• Как не наломать дров с Live Activity
• Check Update iOS — проверка новой версии в App Store
• iOS-разработчики в 2024 году: какие нужны скилы и как проходит процесс найма
• Concurrency in Swift 6
• SwiftUI Bottom Sheet: How to Hide Unwanted UI Components
#ios
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