Самые главные вещи на свете - это не вещи. А самые важные проблемы в программировании — не технические. Хотя обсуждать, на каком языке должно быть реализовано приложение, писать красивый и лаконичный код, смотреть, как далеко можно зайти в чисто функциональном программировании, - очень весело, все это вторично по отношению к определению пользовательского опыта, к разработке удобного интерфейса, к тому, чтобы все было просто и понятно, к тому, чтобы убедиться, что вы создаете что-то, чем действительно могут пользоваться люди, для которых вы это разрабатываете. Это более важные решения. Если коротко, дело не в технологии ради технологии. Речь идет о возможности реализовать свои собственные идеи.
Разработка
• Важные вещи в программировании 2024
• ChatGPT хорошо программирует в задачах, существовавших до 2021 года, но испытывает трудности с новыми
• Building and scaling Notion’s data lake
• Reverse Engineering TicketMaster's Rotating Barcodes (SafeTix)
Маркетинг
• Приложение для арт-терапии Scribble Journey позволяет выразить эмоции с помощью зарисовок
• Lamoda Tech Analytics Party: материалы встречи
Кроссплатформа
• Первый взгляд на переход с Xamarin Native на Flutter
• Build Android and iOS apps with SwiftUI
• Code push for Flutter
iOS
• Backpressure in Combine
• Building a custom application UI with SwiftUI & iOS 18 API
• Building the inverted scroll of a messaging app
• Mobile Deployment Pipelines for $0
• 5 Strategies for Managing Image Resources Effectively in iOS
#ios
ChatGPT хорошо программирует в задачах, существовавших до 2021 года, но испытывает трудности с новыми
Недавнее исследование, в ходе которого выяснялось, насколько хорошо ChatGPT программирует, показало, что он вполне неплох. По крайней мере в задачах, с которыми он знаком 🤖
• Исследование, опубликованное в июньском номере IEEE Transactions on Software Engineering, проверило GPT-3.5 на 728 задачах с LeetCode на пяти языках программирования (C, C++, Java, JavaScript и Python).
• На задачах, существовавших в LeetCode до 2021 года, ChatGPT решал легкие задачи в 89% случаев, задачи средней сложности — в 71% случаев, а трудные — в 40% случаев.
• Однако при тестировании на задачах, которые появились в LeetCode после 2021 года, результаты решения легких, средних и трудных задач снизились до 52%, 40% и 0.66% соответственно.
Когда дело доходит до проблем с алгоритмами после 2021 года, способность ChatGPT генерировать функционально корректный код страдает. Иногда он не может понять смысл вопросов даже для задач легкого уровня, — говорит исследователь. - Разумная гипотеза о том, почему ChatGPT лучше справляется с проблемами алгоритмов до 2021 года, заключается в том, что эти проблемы часто встречаются в обучающем наборе данных.
Android
• Как работает ТВ в Android TV?
• Нужны ли Android-разработчики на заводе?
• Gradle DSL изнутри
• Kotlin DSL как единый источник правды для решения многих задач
• Переходишь на Compose? Не спеши!
• Android Crypto Samples — примеры криптографии
• Architecture related decisions in Android - Error handling and Monads
• Kotlin’s @Keep Annotation: Keeping Your Code Safe and Sound
• Let's clarify some misconceptions around android development these days
• Declarative Gradle
• michalankiersztajn/top-5-android-studio-plugins-4c534ef7221d">Top 5 Android Studio Plugins
#android
Железо для типизированных ошибок
Новая подборка всех статей за неделю - макросы и типизированные ошибки, форматирование кода и Unit-тесты, «железо» для Android Studio, переход на docs as code, возвращение Myspace для Поколения Z, AirPods с камерами и многое другое. Подключайтесь!
В App Store в США на первое место вышла новая социальная сеть для Поколения Z - noplace. Профессионалы говорят, что noplace отчаянно напоминает современный Myspace. В новом приложении есть красочные настраиваемые профили, которые позволяют людям делиться всем: от статуса отношений до того, что они слушают или смотрят, что они читают или делают, и многим другим. Правда, пока только в тексте. Так что заодно напоминает и Х на заре своей деятельности. В общем, вот идеальный рецепт для нового приложения - берете какой-нибудь закрывшийся 20 лет назад проект и выпускаете его “для Поколения Z”. Опа, вот и “волшебный и веселый Интернет” возвращается.
Разработка
• Генеративный ИИ появился в сервисе VK для сбора и анализа ошибок в приложениях
• Should you learn C to "learn how the computer works"?
Маркетинг
• Социальная сеть noplace, смесь Twitter и Myspace для Поколения Z, заняла первое место в App Store
Кроссплатформа
• Simplify Network Management with CMPConnectivityMonitor in Compose Multiplatform
• rishad2002/concurrency-is-crucial-in-mobile-app-development-because-it-allows-an-app-to-perform-multiple-tasks-398faeb56f9d">Understanding Concurrency in Flutter
iOS
• ZLPhotoBrowser — фотопикер в стиле Wechat
• Адаптируем VoiceOver для людей
• Принципы SOLID на примере iOS-разработки
• dfs.techblog/evolution-of-sdui-in-ios-app-development-c53adade164d">Evolution of SDUI in iOS App development
• AsyncStream and AsyncSequence for Swift Concurrency
#ios
Разработка
• My programming beliefs as of July 2024
• Solving a math problem with planner programming
Маркетинг
• Figma отключит ИИ-функцию, которая копирует дизайн других приложений
Кроссплатформа
• Widget тесты с помощью ApprovalTests | Flutter / Dart
• Create PDF file in your app
• Exploring Hidden Treasures in Flutter: Lesser-Known Widgets Unveiled
iOS
• Типизированные ошибки (typed throws) в Swift с примерами
• Уязвимости в CocoaPods позволяли манипулировать библиотеками
• Макросы — напишут код за вас, но есть нюанс…
• Mastering the Swift Testing Framework
• Mastering ScrollView in SwiftUI. Scroll Phases
• Advanced Async Sequences in Swift
• Swift 6: Incrementally migrate your Xcode projects and packages
#ios
Figma отключит ИИ-функцию, которая копирует дизайн других приложений
Не, ну а как его еще тренировать? 🤖
• На прошлой неделе Figma представила ИИ-функцию Make Design, которая позволяет генерировать макеты и компоненты пользовательского интерфейса на основе текстовых подсказок. «Просто опишите, что вам нужно, и функция предоставит вам первый набросок», — так компания анонсировала запуск функции.
• Компания объяснила, что она не обучалась на контенте Figma, файлах сообщества или дизайне существующих приложений.
• Однако, при просьбе сделать дизайн погодного приложения, Make Design постоянно воспроизводит приложение Погода от Apple.
• По словам гендира Figma проблема заключается в слишком низкой вариативности, а вовсе не в использовании чужих приложений.
И что: сейчас Figma временно отключила функцию Make Design. До тех пор, пока команда не будет уверена, что может быть «ответственной за результаты». То есть, похоже, навсегда.
Android
• Маппинг данных в Kotlin
• sujathamudadla1213/when-should-you-use-stateflow-over-livedata-in-android-development-11e0030bf6c8">When should you use StateFlow over LiveData in Android development?
• simonmisles/understanding-viewmodel-persistence-during-configuration-and-screen-rotation-88227033b6df">Understanding ViewModel Persistence During Configuration and Screen Rotation
• hasina.anddev/android-adventure-flow-of-views-to-composable-flow-3b77bf2545da">Android Adventure: Flow of Views to Composable Flow
• mpavicic99/integrating-code-formatting-into-your-android-projects-663d0056dbe7">Integrating Code Formatting into Your Android Projects
#android
Пройдите новый опрос Developer Nation - ответьте на ряд вопросов о языках программирования, инструментах разработчика и платформах. Ваши ответы помогут людям и компаниям заметить новые тенденции и создать лучшие инструменты для поддержки разработчиков. Опрос охватывает 13 областей разработки, включая веб и мобайл, десктопы и облака, промышленный IoT, игры, машинное обучение и ИИ. Он доступен на 10 языках, в том числе и на русском. Каждый, кто завершит опрос, получит бесплатный виртуальный пакет с доступом к бесплатным ресурсам. И вот еще - как оказалось, не все сервисы оказались идиотами, так что поддержите Россию в этом мировом опросе. Вперед!
Разработка
• Самые высокооплачиваемые вакансии июня в сфере разработки приложений
• Роль дизайнера в проекте
• Что дальше после разработчика в Google
• Все софт скиллы — про преодоление страха и силу воли
• LLM Compiler оптимизирует код и компиляторы
• Aptabase — открытая аналитика для приложений
• Уязвимость в Rabbit R1 позволяет третьим лицам просматривать ответы ИИ
• How Google migrated billions of lines of code from Perforce to Piper
Маркетинг
• AAA-игры не пользуются спросом на iOS
• Directo упрощает прямое бронирование жилья с помощью расширения Chrome
• Маркетологи в мобайле: Ольга Бигбашева (Rendez-Vous)
Кроссплатформа
• PeopleInSpace — люди в космосе Kotlin Multiplatform
• mobileatexxeta/enhancing-flutter-apps-implementing-unique-charts-540fc1ab2749">Enhancing Flutter apps: Implementing unique charts
iOS
• Apple выпустит AirPods с камерами
• Мне кажется, или SwiftUI еще не готов к проду? — обсуждение на Reddit
• XCStrings Tool — константы для строк локализации
• А так ли нужны акторы в Swift Concurrency?
• Почему паттерн Синглтон небезопасен в iOS-разработке
• Swift 5.9: разбираем интероп и «женим» с С++
• Реактивный Swift Concurrency
• Mixing colors in SwiftUI and Xcode 16
• Displaying tips based on parameters and events with TipKit
• Build a Jenga game in Vision OS
• AdAttributionKit: What subscription apps need to know
#ios
Как мы искали применение техдолгу
Новая подборка всех статей за неделю - поиск применения App Clip и небезопасность Синглтона, инструменты Android-разработчика и победа над техдолгом в RuStore, архитектура кроссплатформенного многомодульного приложения, миллионы за считыватели QR-кодов, как мог бы выглядеть Windows Phone в 2024 и многое другое. Подключайтесь!
Разработка
• Google анонсирует новые Pixel 13 августа
• 8 микрокомпьютеров для работы с искусственным интеллектом
• ozanani/software-architecture-is-hard-71fe3ddafb60">Software Architecture is Hard
• Getting 100% code coverage doesn't eliminate bugs
Маркетинг
• Must-know LTV benchmarks for app marketers
Кроссплатформа
• sepehrtabeian/improve-your-dart-code-with-dependency-injection-understanding-loose-and-tight-coupling-4637968b925a">Improve Your Dart Code with Dependency Injection: Understanding Loose and Tight Coupling
• Advanced Theming Techniques in Flutter: Effortless Color Schemes
Android
• Fig — Google Таблицы в качестве удаленного конфига
• Valkyrie — генерация Compose ImageVector из SVG/XML
• Which Map Transformation Should I Use?
• Exploring Material3 Adaptive Layout
• michalankiersztajn/kotlin-builder-inference-explained-b6cca7b7ff77">Kotlin Builder Inference Explained
• RxJava to Kotlin Coroutines: The Ultimate Migration Guide
#android
Библиотека нашего читателя. Valkyrie - плагин Intellij IDEA/Android Studio для генерации Compose ImageVector из SVG/XML. Удобное форматирование кода для сгенерированной иконки, поддержка перетаскивания внутри IDE.
Valkyrie на GitHub: https://github.com/ComposeGears/Valkyrie
Платформа: Android
⭐️: 16
Если у вас есть библиотеки, открытые или просто интересные пет-проекты, присылайте. Будем публиковать.
Шоу под названием Epic vs Apple никогда не закончится твои повести нет да напишутся. На прошлой неделе Apple отклонила Epic Games Store, потом одобрила, потом сказала, что одобрила “временно”. В следующем релизе надо изменить в нем кнопки установки и покупки, потому что эти слишком похожи на «дизайн и позиционирование» Apple 🌐. Тим Суини встал на дыбы и сказал пошли вы в жопу - это абсурдно, переделывать ничего не будем. Не знаю как вам, а мне это уже поднадоело.
Разработка
• Разработка библиотек с использованием подхода Request for Comments
• Менеджмент — ловушка или лучший карьерный путь для разработчика?
• Чистый код – не значит правильный: clean code, паттерны, лучшие практики
Маркетинг
• Apple «временно» одобрила Epic Games Store, но потребовала изменений
• Самые скачиваемые и зарабатывающие приложения в России в июне 2024
• How to improve funnel conversion
Кроссплатформа
• Multiplatform UI с Compose
• tom.sabel/mastering-date-and-time-management-in-ios-with-kotlinx-datetime-a-step-by-step-guide-ba1fe3bc32fe">Mastering Date and Time Management in iOS with Kotlinx DateTime: A Step-by-Step Guide
iOS
• DSFDropFilesView — NSView для drag-and-drop файлов
• Поваренная книга SwiftUI: кнопки — Часть 1
• Как побеждать в конкурсах от Telegram
• Изучаем новые структуры данных для iOS разработчика
• Mastering Animatable and AnimatablePair in SwiftUI
• SwiftUI can be a bit... eager
• Laying out views with ContainerRelativeFrame in SwiftUI
• Make videos with SwiftUI
• Zoom transitions
#ios
Видео и подкасты за неделю @AppFiles
• (iOS Ru)
Как побеждать в конкурсах от Telegram
• (iOS En)
SwiftUI Draggable Tab Bar
• (iOS En)
SwiftUI Re-Orderable Tab bar
• (iOS En)
SwiftUI Swipe to Hide Header
• (iOS En)
Mastering Swift Testing: Run Serialized Tests with One Line of Code
• (iOS En)
Explicit ViewBuilder
• (iOS En)
My Favorite SwiftUI Updates in iOS 18
• (iOS En)
Exploring Predictive Code Completion in Xcode 16
• (iOS En)
Pomodoro Timer App - SwiftUI
• (And Ru)
Переходишь на Compose? Не спеши!
• (And Ru)
Как работает ТВ в Android TV?
• (And Ru)
Нужны ли Android-разработчики на заводе?
• (And Ru)
Gradle DSL изнутри
• (And Ru)
Kotlin DSL как единый источник правды для решения многих задач
• (And En)
Lifecycles, Coroutines and Scopes
• (And En)
Developer first Gradle builds
• (And En)
DataFrame: Kotlin's Innovative Approach to Data Structures
• (And En)
Texts, dates, numbers, currencies, plurals, etc. App internationalization guide
• (Crs Ru)
Multiplatform UI с Compose
• (Crs En)
Unit & UI Testing With Compose Multiplatform
• (Crs En)
Full Guide to Dependency Injection With Koin for Compose Multiplatform
• (Crs En)
Kotlin Multiplatform Libraries Evolution
• (Crs En)
React Native & Expo Router Course – Build a Meditation App
• (Dev Ru)
Чистый код – не значит правильный: clean code, паттерны, лучшие практики
• (Dev Ru)
Менеджмент — ловушка или лучший карьерный путь для разработчика?
• (Dev Ru)
Разработка библиотек с использованием подхода Request for Comments
• (Dev Ru)
Пишем приложение на Ktor
• (Dev Ru)
Kotlin Script: для кого, зачем и как
• (Dev En)
AI and Kotlin: A Perfect Mix
• (Dev En)
Go for Absolute Beginners – Tutorial
Делитесь тем, что вы смотрели!
#ios #android #mobile #video
Android
• Интеграция форматирования кода в Android-проекты
• Android Studio: debugging is a kind of hell for years and years
• akshaynagamalla23/on-device-machine-learning-with-tensorflow-lite-ec4544acfb50">On-Device Machine Learning with TensorFlow Lite
• nitinjain1236/complete-guide-to-ace-an-android-developer-interview-47fe6fdaf507">Complete Guide to Ace an Android Developer Interview
#android
В Tracer генеративный ИИ анализирует ошибки
В сервисе Tracer появился генеративный ИИ, который помогает анализировать сбои и проблемы в приложениях, а также предлагает решение для них.
• Tracer — инструмент VK для мониторинга стабильности приложений для Android и iOS в реальном времени (было видео про него на Мобиусе). При выявлении проблем сервис создает стектрейс — детальный отчет о сбое, который включает анализ конкретных зависимостей, разделов и модулей приложения, где мог произойти сбой.
• Новая ИИ-модель анализирует стектрейс и определяет возможные причины ошибки, выделяя наиболее вероятную, или же составляет перечень факторов, которые могли привести к сбою.
• После определения корневой причины нейросеть генерирует конкретные советы по устранению ошибки. Например, предлагает изменения в коде, обновление библиотек или другие действия, которые помогут избежать повторного сбоя.
• ИИ учитывает специфику приложения, его архитектуру и используемые технологии, что позволяет сервису давать рекомендации, адаптированные к конкретным условиям и потребностям разработчиков.
И что: в целом отличное применение ИИ, вопрос в том, можно ли будет доверять "советам" ИИ 1️⃣2️⃣3️⃣4️⃣5️⃣
Android
Команда Яндекс Практикума провела исследование и готова рассказать, как обстоят дела в найме начинающих Android-разработчиков: какие навыки требуются джуниорам для трудоустройства, о чём их спрашивают на собеседованиях и какого опыта достаточно, чтобы получить предложение о работе.
• Android-разработчики в 2024 году: какие нужны скилы и как проходит процесс найма
• Entity It — генератор Entity классов
• Stop Using the Wrong Loop! From for to onEach: Ultimate Guide to Kotlin Loops
• stevdza-san/remote-config-with-google-sheets-is-crazy-android-8fe032d6f294">Remote Config with Google Sheets is Crazy!
• Cancellation in Kotlin Coroutines
#android
Уязвимости в CocoaPods позволяли манипулировать библиотеками ☕️
Пишут, что уязвимы были миллионы iOS и macOS приложений. Конечно, это не совсем так, но все же.
• Первая из трех уязвимостей, обнаруженных EVA, связана с небезопасным механизмом проверки электронной почты, используемым для аутентификации разработчиков отдельных библиотек.
• Вторая уязвимость позволяла злоумышленникам получить контроль над Pod-ами, которые были заброшены их разработчиками, но продолжали использоваться приложениями. Эта функция работала 10 лет.
• Третья уязвимость позволяла злоумышленникам выполнить код на магистральном (trunk) сервере.
Открытой эксплуатации уязвимостей вроде не было. Мантейнеры CocoaPods все исправили, Исследователи советуют разработчикам, использующим CocoaPods в своих приложениях, всегда проверять зависимости CocoaPods и запускать сканирование безопасности для обнаружения вредоносного кода во всех внешних библиотеках.
Вчера появились слухи о том, что в новых AirPods планируют сделать ИК-камеры, которые смогут “видеть” пространство вокруг. Камера будет определять, когда окружение пользователя меняется, обычно из-за того, что он двигает головой. В частности, говорят, что если пользователь поворачивает голову и смотрит в определенном направлении, Apple Vision Pro будет знать, что нужно подчеркнуть звук, связанный с тем, на что он смотрит. Но вероятных возможностей, конечно, гораздо больше. Еще при выходе первых наушников я говорил, что потенциал такого носимого компьютера даже больше, чем у смартфона (и появления устройств нового поколения, вроде всяких Rabbit R1, только подтверждают это). Так что даже как то жаль, что Apple развивает AirPods такими неспешными темпами 🎧
Разработка
• Защита персональных данных в мобильных приложениях: как не нарушить закон
• Developer workflow tips no one tells you about
• The gifts of 40
Маркетинг
• Fortnite и Epic Games Store запускаются на iOS в Европе
Кроссплатформа
• Dropdown — выпадающее меню на Compose Multiplatform
• Xamarin alternatives for cross-platform mobile development
• Exploring the Viability of Cross-Platform UI Development with Compose Multiplatform
• How we built it: Creating the I/O Crossword puzzle, powered by AI
iOS
• Typed throws in Swift explained with code examples
• Consolidated ViewState
• SwiftUI and Accessibility: Creating Inclusive iOS Applications (eBook)
• Exploring the Navigation Split View
#ios
Android
• Как запускать задачи в фоне на Android. РАЗБОР
• Эволюция Android тестов с Marathon Test Runner
• Mastering SDUI: A Deep Dive into Server-Driven UI
• Migrating from Play Core Library
• Все видео droidcon Italy 2023
• Android Studio — Show Color and Icon Previews in Autocompletion
• duaaawan/pinterest-inspired-android-ui-development-with-jetpack-compose-1090d7b9ee99">Pinterest-Inspired Android UI Development With Jetpack Compose
• How LiveData Updates 100 Observers in Android
#android
Мне кажется, или SwiftUI еще не готов к проду? — обсуждение на Reddit
Примерно раз в полгода обсуждаем, готов ли SwiftUI к проду или нет. Автор главного поста в этом треде страдает от многих аспектов и его ответ - не особо:
SwiftUI делает простые вещи более простыми, а сложные — еще более сложными. Конечно, на SwiftUI очень приятно писать базовые приложения в стиле самой iOS, но по мере усложнения приложения это становится крайне неприятным.
Видео и подкасты за неделю @AppFiles
• (iOS Ru)
А так ли нужны акторы в Swift Concurrency?
• (iOS Ru)
Swift 5.9: разбираем интероп и «женим» с С++
• (iOS Ru)
Реактивный Swift Concurrency
• (iOS En)
SwiftUI Custom Time Picker Like Apple Timer App
• (iOS En)
iOS 18 TextField Selection API - SwiftUI
• (iOS En)
Xcode 16 Navigation Shortcuts in 12 Minutes
• (And Ru)
Как запускать задачи в фоне на Android. РАЗБОР
• (And Ru)
Эволюция Android тестов с Marathon Test Runner
• (And En)
Now in Android: 108 - Android 15 Beta 3, Google AI Studio, Gemini in Android Studio, and more
• (And En)
Compose UI for... a Light Switch
• (And En)
Write your own Kotlin lint checks
• (And En)
Tap it! Shake it! Fling it! Sheep it! - The Compose Gesture Animations Dance
• (And En)
Animations with Jetpack Compose
• (And En)
7 Features in Kotlin's Standard Library that You Might Have Overlooked
• (Crs En)
How to Share Resources in Compose Multiplatform
• (Crs En)
Expect/Actual in Kotlin Multiplatform
• (Crs En)
Kotlin Multiplatform Alchemy: Making Gold out of Your Swift Interop
• (Dev Ru)
Все софт скиллы — про преодоление страха и силу воли
• (Dev Ru)
Что дальше после разработчика в Google
• (Dsg Ru)
Роль дизайнера в проекте
Посоветуйте в комментариях интересные каналы по мобильной или не очень разработке?
#ios #android #mobile #video
iOS
• Использование TextRenderer для создания выделенного текста
• Как я участвовал в iOS Widget Challenge и что из этого вышло
• kalidoss.shanmugam/why-singleton-is-not-safe-in-swift-for-ios-development-c4e231cb49a7">Why Singleton is Not Safe in Swift for iOS Development
• ryan_willis/navigating-accessibility-a-swiftui-vs-uikit-comparison-40dfc94cfffa">Navigating Accessibility: A SwiftUI vs. UIKit Comparison
• How to quickly run your iOS app in a different language
• iOS 18 TextField Selection API - SwiftUI
#ios