⚡️Яндекс, Озон, Авито и сотни других сайтов работают с перебоями из-за проблем в доменной зоне RU. Сайты не открываются как в России, так и в других странах — это крупнейший сбой в Рунете за последние месяцы.
👍 — меня не задело
👎 — всё сломалось
10 нестандартных уроков, полученных за 10 лет работы инженером-программистом
За последние десять лет я многому научился, но именно эти десять уроков оказали наибольшее влияние на мой путь. Надеюсь, они пригодятся вам для построения сильной, устойчивой и полноценной карьеры инженера-программиста.
1. Выбирайте обучение, а не деньги
2. Инвестируйте в принципы и практики
3. Станьте инженером, с которым все хотят работать
4. Разнообразьте свою жизнь
5. Относитесь к отзывам как к золоту
6. Сначала широкий уровень
7. Лидерство без титула
8. Думайте о сферах влияния
9. Наточите инструменты
10. Показывайте свою работу
А как насчет вас? Что бы вы посоветовали начинающим инженерам-программистам, которые только начинают работать в технологической отрасли? Какие самые важные уроки вы усвоили? Пожалуйста, поделитесь ими в комментариях!
Android
• Gemini Android: Gemini с Stream Chat SDK для Compose
• Bottom Dialog Android Picker: диалог выбора файлов
• Creating Dynamic Menus with Jetpack Compose
• Netflix Toolbar Scroll Effect
• Jetpack Compose Puzzlers
• Going Old School
#android
Новое исследование Copilot обнаружило снижающееся качество кода
В исследовании "Coding on Copilot", подготовленном компанией GitClear, изучается качество и сопровождаемость кода, написанного с помощью ИИ.
1. По прогнозам, в 2024 году отток кода (Code churn) - процент строк, которые были исправлены или обновлены менее чем через две недели после написания - удвоится по сравнению с базовым уровнем 2021 года, предшествовавшим появлению искусственного интеллекта.
2. Суть в том, что использование Copilot сильно коррелирует с "ошибочным кодом", выкладываемым в репозитории.
3. Кроме того, в сочетании с ростом кода, помеченного как Copy/Paste, остается мало места для сомнений в том, что текущая реализация ИИ-помощников препятствует повторному использованию кода. Вместо рефакторинга и работы над DRY ("Не повторяй себя") эти помощники лишь предлагают повторить существующий код одним нажатием кнопки.
4. Больше скопированного/вставленного кода означает будущие головные боли. Пожалуй, нет большего бича для долгосрочной сопровождаемости кода, чем скопированный/вставленный код. По сути, когда повторяется строка кода, не содержащая ключевого оператора, автор кода признается: "У меня не было времени оценить предыдущую реализацию". Повторное добавление кода вместо его повторного использования оставляет будущим сопровождающим обязанность выяснить, как консолидировать параллельные пути, реализующие многократно востребованную функциональность.
И что: нет сомнений, что с ростом популярности ИИ мы вступили в эпоху, когда строки кода добавляются быстрее, чем когда-либо прежде. Вопрос, который лучше задать в 2024 году - кто будет убирать этот беспорядок?
Новая пятничная подборка - видео и подкасты за неделю:
• (iOS En)
Bring 3D to your App: Developing Native iOS Apps with Spline
• (iOS En)
SwiftUI Dock Progress Bar for macOS
• (iOS En)
SwiftData Background Tasks: Massively Improve Your Apps Performance
• (iOS En)
Source Control with Xcode: Branching and Merging
• (iOS En)
Unit Testing a SwiftUI Application using Xcode
• (iOS En)
From Challenge to Joy: My Journey Developing Tuist for Scalable Xcode Projects
• (And En)
Now in Android: 98 - Gemini Pro, Google AI SDK, Google AI Studio, Cast, Rust, and more!
• (And En)
How to Implement Firebase Push Notifications on Android (FCM + Backend)
• (And En)
How to Create an App Shortcut on Android
• (And En)
How to automatically test a Google Play Subscription
• (Crs Ru)
Позиция — KMP разработчик: Кирилла Розова собеседует Алексей Гладков
• (Crs Ru)
Flutter Dev Podcast #42: как стать Flutter-разработчиком? Часть 1
• (Dev Ru)
Разработка под Аврору
• (Dev Ru)
Безопасность приложений
• (Dev Ru)
Cracking the Mobile Interview
• (Dev Ru)
Как тимлиду оценить успешность в своей роли
• (Dev Ru)
Почему так мало женщин в IT?
• (Dev Ru)
Podlodka: Про дипфейки, этику и цену прогресса
• (Dev En)
LangChain GEN AI Tutorial – 6 End-to-End Projects using OpenAI, Google Gemini Pro, LLAMA2
• (Dev En)
Python Data Analysis and Visualization Course
Что вы посмотрели/послушали интересного про разработку? Киньте ссылку в комментарии.
🌐 AppFiles
Следующее поколение Wear OS появится, возможно, уже в этом году - Samsung и Google готовят обновление Wear OS 5 на базе Android 14. До недавнего времени крупные обновления Wear OS выходили редко. Wear OS 2.2 на базе Android 9 появилась в 2018 и, за исключением некоторых дополнений, оставалась относительно неизменной в течение нескольких лет. В 2021 году вышла Wear OS 3, основанная на Android 11. Через год Google выпустил свои первые часы Pixel Watch, в которых была представлена Wear OS 3.5. Совсем недавно, в 2023 году, в Galaxy Watch 6 дебютировала Wear OS 4 на Android 13. Сейчас Samsung активно работает над поддержкой сборки Android 14 для следующего поколения чипа Galaxy Watch 7. В нескольких местах эта сборка упоминается как «Wear OS 5». В общем, цикл обновлений у Wear OS видимо так же станет годовым, что, по идее, будет подталкивать людей к покупке более современных смарт-часов, а разработчикам позволит использовать все современные возможности ОС.
Разработка
• Samsung и Google готовят Wear OS 5 на базе Android 14
• Сам написал, сам поиграл: как работали трёхмерные игры на кнопочных телефонах нулевых? Пишем 3D-шутер с нуля
• TensorFlow Lite vs PyTorch Mobile for On-Device Machine Learning
• Writing code that makes mistakes harder
Маркетинг
• Реальные знаменитости и Реальные бренды в BeReal
Кроссплатформа
• Конкурс экологичных игр от Flutter и Global Citizen
• Expo Router v3: API Routes, bundle splitting, speed improvements, and more
• Memory Leak In Dart/Flutter
• lanltn/flutter-interactive-viewer-gallery-with-interactiveviewer-55ae260d2014">Flutter — Interactive with gallery viewer using InteractiveViewer and Matrix4
• .NET MAUI — Creating Profile Settings Page with Form Items
iOS
• OutRun: открытый фитнес-трекер
• Apple планирует ввести тарифы и ограничения на стороннюю загрузку приложений
• Моя малышка все еще любит самолеты — и я улучшил для нее радар
• Приложения для Vision Pro выглядят скучно
• Creating a Collapsible UITableViewCell in Swift: A Step-by-Step Guide
• How to use the rethrows keyword in Swift?
• A deep dive into the 2023 iPhone app of the year, AllTrails
• mobile_44538/lottie-magic-in-swiftui-5d600f068287">Lottie magic in SwiftUI
• Vision Pro Apps look boring
#ios
Моя малышка все еще любит самолеты — и я улучшил для нее радар
Продолжение прекрасной статьи про создание приложения-радара для собственного ребенка.
"Моя малышка любит самолеты — и я сделал для нее радар” — это, безусловно, лучшая вещь, которую я написал. Мне удалось попасть в ту самую «золотую середину» между полезным и техническим, и мое искреннее удовольствие от проекта просвечивало в рассказе. Казалось бы, как предприимчивый инди-разработчик, я должен был сразу же вскочить на волну хайпа, выпустить очередной релиз и начать мечтать о монетизации...
Автоматическое удаление кода может показаться странной идеей: написание кода требует больших затрат и он обычно считается активом. Однако когда в кодовой базе миллионы строк, неиспользуемый код становится обузой. Ведь с ним так или иначе нужно работать - поддерживать, если были созданы и не отменены тесты, то тестировать, выделять инженеров на рефакторинг или удаление. И это значительные издержки. Инженер Google Фил Норман написал о своей системе Sensenmann, которая ведает удалением ненужного кода в компании. Интересно посмотреть на обратную сторону разработки, не правда ли? 😀
Разработка
• Проект Sensenmann: удаление кода в масштабе
• Google Ads использует ИИ для создания кампаний
• Clerk получил $30 млн на аутентификацию и авторизацию для разработчиков
• bap_16778/5-achievable-side-hustles-for-developers-946c7cad1ff2">5 achievable side hustles for developers
• App Deep Dive: Peacock
• The Weirdest Bug I’ve Seen Yet
• 39 Challenges on Building Mobile Apps at Scale
Маркетинг
• Как посчитать ценные органические установки
• How to find creative winners and use AI to maximize their value
Кроссплатформа
• Заводим Яндекс Карты в Compose Multiplatform
• Hello MAUI
• Global Gamers Challenge from Flutter
• Multiplatform Magic: One Codebase, Three Platforms
iOS
• Упрощаем локализацию iOS-приложения со String Catalogs
• Регистрация на Swift Student Challenge откроется 5 февраля
• Introducing SwiftUI on visionOS
• Preparing for Swift 6
• Unit Testing a SwiftUI Application using Xcode
• My Toddler Still Loves Planes, So I Upgraded Her Radar
#ios
Из вчерашнего еще занятное - данные от AppFigures по установкам и доходам Among Us. Если вы не следили, то в пике, в июле 2020, игра получила аж 70 миллионов установок в месяц. Это к октябрю того же года вылилось в $9.7 млн чистой прибыли. Сейчас от этого не осталось и следа - установок стало менее 10 млн, а денег менее $100 тысяч. Почему так? Отсутствие изменений. За это время игра не сильно изменилась, сообщество не стало более активным. Те циклы роста (о которых вторая статья в “Маркетинге”) работали ограниченное количество времени и в конце концов выдохлись. И к вопросам о том, как добиться виральности, добавились следующий, даже более важный - как превратить виральность в устойчивый рост. Очевидно, что ребята из InnerSloth ответа (пока) не нашли. Посмотрите на свой продукт. Есть ли в нем виральность? А что будете делать, если найдете?
Разработка
• The Machine Learning Engineering Open Book: справочник по машинному обучению
• Mobile App Architectural Best Practices in Action
• 3 questions that will make you a phenomenal rubber duck
• Sensenmann: Code Deletion at Scale
• The art of shipping faster
Маркетинг
• Among Us: игра, которая не смогла
• Успех Among Us: исследование циклов роста игры, поразившей мир
• Creating an irresistible loyalty program for your app
Кроссплатформа
• Флаттер 3.18 | бета-релиз | Топ-8 фичей
• Publishing Kotlin Multiplatform Swift Packages Using Google Cloud Storage and Cloud Run
iOS
• Поваренная книга SwiftUI: шаринг состояний между представлениями с помощью объектов окружения
• Для Vision Pro пока разработано только 150 приложений
• Apple оплатила российский антимонопольный штраф
• LLMFarm: языковые модели на iOS и MacOS офлайн
• From Challenge to Joy: My Journey Developing Tuist for Scalable Xcode Projects
• iOS UI Testing with Deep Links
• How to write Unit Tests for Code Performance
• dmitrylupich/the-composable-architecture-swift-guide-to-tca-c3bf9b2e86ef">The Composable Architecture: Swift guide to TCA
• ScrollView Bounce Behavior configuration in SwiftUI
• Interactive Widgets With SwiftUI
#ios
Успех Vision Pro от Apple, как и многих других новых технологических платформ, будет во многом зависеть от поддержки сторонних приложений и сервисов. Марк Гурман из Bloomberg написал интересную колонку, в которой говорит, что все более напряженные отношения с разработчиками (по крайней мере крупными), могут помешать успеху новой гарнитуры. Netflix, YouTube и Spotify уже отказались от выпуска приложений (и даже портирования iPad версий), Google и M*** также, похоже, готовы с самого начала отказаться от новой платформы. Да, остались Walt Disney, TikTok, Amazon и Paramount, и вообще пишут, что главное приложение для Vision Pro это браузер, но если что и может затормозить новое устройство Apple (кроме цены), так это правда отсутствие поддержки разработчиков.
* Кстати, тут в соседнем чатике заклевали "Пример Microsoft Apple ничему не научил", но по моему довольно точное описание ситуации.
Разработка
• Huawei презентовал HarmonyOS NEXT
• Как мобильные разработчики занимаются инфраструктурой
• Плюс, работа с платежами и особенности разработки SDK
• Как умирают продукты без дизайн аналитики
• techworldwithmilan/how-to-deal-with-technical-debt-b0065c1a794d">How To Deal With Technical Debt
• The Open Source Sustainability Crisis
Маркетинг
• Почему игры становятся кроссплатформенными и как решить проблему привлечения пользователей
• Among Us: игра, которая не смогла
• X поставил рекорд по прибыли
Кроссплатформа
• Полное руководство по управлению навигацией во Flutter с помощью пакета go_router: часть 1
• Flutter. На пути к совершенству
• Podlodka: Qt — кроссплатформенная разработка приложений под декстоп и не только
• Spotify-KMP: пример приложения на Kotlin Multiplatform
• Customize Your Flutter Environment with Dart Define
• Benchmarking Dart’s json serialization and dataclass ecosystem
• Running Phi-2 a Large Language model like ChatGPT, locally offline in Flutter App
Android
• YTDLnis: загрузчик видео/аудио для Android
• Разбор кода Android-приложения фоторедактора Image Toolbox
• TDD: реальная история внедрения в проект
• mega-blog/improving-unit-test-performance-in-mega-android-bc9bb650d907">Improving unit test performance in MEGA Android
• Level Up Your Daily Coding: Unveiling Four Lesser-Known Tools in Android Studio
• Exploring Health Connect Pt. 2 - Reading and Writing Data
• Making Shadowfax Android App 40% faster
• A Better Hash Map
#android
Традиционная подборка всех новостей и статей за неделю. Адаптируем, отказываемся, критикуем, разбираемся, внедряем, интегрируем, измеряем, спрашиваем, снимаем, гоним на мороз.
Читать полностью…Небольшим компаниям или инди-разработчикам важно знать, на что уходит каждый рубль из бюджета на продвижение или разработку. Для нас ошибки — непозволительная роскошь. И тем более нужна надежная и удобная аналитика, чтобы в реальном времени следить за расходом средств на каждый канал привлечения пользователей.
Команда Multicast Games смогла в реальном времени отслеживать расходы на привлечение трафика и менять приоритетные направления. Всего с двумя UA-менеджерами они смогли добиться рентабельности рекламных вложений в 200%.
Читайте кейс и используйте самую точную аналитику 🧩
Интересный факт, но рекламный токен Реклама ООО "Яндекс", ИНН 7736207543, erid:2SDnjdGBfp4 до конца читает только 0,01% людей
Project IDX, универсальная веб-среда Google для разработки приложений с помощью ИИ, получила полноценный симулятор iOS и эмулятор Android прямо в браузере. Напомню, что это облачная IDE на основе VSCode, которая, среди прочего, позволяет использовать Flutter. Не уверен, что можно будет собирать и размещать проекты в App Store, но уже просто тестировать приложения без macOS, наверное, будет приятно. Впрочем, пока Project IDX работает ограничено и чтобы попасть в него надо пройти список ожидания.
Разработка
• Project IDX получил симулятор iOS и эмулятор Android
• Новое исследование Copilot обнаружило снижающееся качество кода
• Браузер Arc с помощью ИИ формирует персональные страницы для каждого поиска
• Разработка под Аврору
• Безопасность приложений
• Взламывая мобильное интервью
• Как тимлиду оценить успешность в своей роли
• Почему так мало женщин в IT?
• Podlodka: Про дипфейки, этику и цену прогресса
• Что такое Nix
• Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly. Часть 2
• 10 unconventional lessons from 10 years working as a software engineer
Маркетинг
• Apple объявляет об изменениях в iOS, Safari и App Store в Европейском союзе
• После открытия App Store в Европе, Fortnite возвращается на iOS
• Apple разрешила стриминг игр в App Store
Кроссплатформа
• Позиция — KMP разработчик: Кирилла Розова собеседует Алексей Гладков
• Flutter Dev Podcast #42: как стать Flutter-разработчиком? Часть 1
• Отчёт о конференции CrossConf 2023
• Жизненный цикл приложения на Flutter
• Why I’m betting on FlutterFlow
iOS
• Поваренная книга SwiftUI: использование Combine с SwiftUI для управления состояниями
• Как через Push-уведомления на iPhone утекают данные пользователей
• A new access modifier in Swift: package
• SwiftUI main thread hang detector
• Scroll transition effects in iOS 17
• Mastering the Model Layer: Iron-Clad State Management in Model-Driven App
• Through the Ages: Apple Animation APIs
#ios
Удаление совершенства в масштабе
Традиционная подборка всех новостей и статей за неделю. Интерактивные виджеты, сторонние магазины приложений на iOS в Европе, архитектура в Android, пути к совершенству Flutter, удаление кода в масштабе и многое другое!
Apple объявляет об изменениях в iOS, Safari и App Store в Европейском союзе
Разрешают магазины и стороннюю загрузку, оплату через сайт или альтернативную платёжную систему. Условия:
• Сниженная комиссия - iOS-приложения в App Store будут платить сниженную комиссию в размере либо 10% (для подавляющего большинства разработчиков и подписчиков после первого года работы), либо 17%.
• Комиссия за обработку платежей - iOS-приложения в App Store могут использовать обработку платежей App Store за дополнительную комиссию в размере 3%. Разработчики могут использовать провайдера платежных услуг в своем приложении или направлять пользователей на свой веб-сайт для обработки платежей без дополнительной платы Apple.
• Технологический сбор - приложения для iOS, распространяемые в App Store и/или на альтернативных площадках для приложений, будут платить 0.50 евро за каждую первую годовую установку в год, превышающую порог в 1 миллион.
• Для приложений на iPadOS, macOS, watchOS и tvOS в ЕС разработчики, обрабатывающие платежи с помощью PSP или ссылки на свой сайт, получат скидку в размере 3% от комиссии, которую они должны выплатить Apple.
Если я правильно понял - за покупки в "сторонних" приложениях комиссия будет 10% или 17% + 50 центов за установку выше миллиона (если неправильно - поправьте).
В общем - все как и планировалось. Модерация и конский процент.
UPD: разработчики альтернативных магазинов должны будут предоставить компании аккредитив на сумму в 1 млн евро. Чтобы "гарантировать поддержку разработчикам и пользователям".
Android
• Просто об архитектуре в Android
• What’s new in the Jetpack Compose January ’24 release
• phyoemaungmaunghtun/package-visibility-in-api-30-or-higher-with-the-tts-service-9ef0d861fdb1">Package Visibility in API 30 or Higher with the TTS service
• Effect Handlers in Jetpack Compose
#android
🗺 30 января приходите на бесплатный практический урок «Навигация на SwiftUI». Ведущий - Сергей Балалаев, разработчик из Ozon.
Вебинар является частью полноценного онлайн-курса Отус «iOS Developer. Professional».
На уроке мы:
• научимся писать полнофункциональное приложение с нативной навигацией под чистым SwiftUI и с поддержкой с iOS 14;
• окунемся в мир бекпортов;
• рассмотрим несколько существующих решений в OpenSource и предложим свое собственное.
🌐 Регистрация на вебинар: https://otus.pw/2e8Y/?erid=LjN8KBR7cРеклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
Apple планирует ввести тарифы и ограничения на стороннюю загрузку приложений
В ближайшее время компания Apple объявит об изменениях в политике, которые должны соответствовать Закону о цифровых рынках в Европе, срок введения которого истекает в марте. DMA заставит Apple разрешить стороннюю загрузку приложений на iPhone, чтобы уменьшить монопольный контроль компании над программным обеспечением на iOS.
Однако как именно это будет происходить, остается под вопросом. The Wall Street Journal считает, что понимает план Apple. А состоит он в том, чтобы все равно сохранить контроль над приложениями и платформой.
Apple все равно собирается проверять и одобрять все загружаемые сторонние программы и брать плату за покупки в них. Как это будет реализовано пока никто не знает, но, как пишут, установить можно будет только подписанные ключом Apple приложения. По ключу можно будет установить разработчика и с него потребовать деньги. Требовать, видимо, будут все те же 27%.
И что: если описание достоверно, то Apple очевидно подрывает большую часть антиконкурентных ограничений, изначально предусмотренных DMA. Вполне вероятно, что после истечения мартовского срока Европейская комиссия введет дополнительные требования и принудительные меры. И будет новый раунд.
Android
• Winlator: эмулятор Windows (x86_64) для Android
• Coroutine patterns in Android, and why they work
• michalankiersztajn/room-database-relationships-explained-729d3c705fd9">Room Relationships Explained
• Android ViewModel: Single state or not?
• Jetpack Compose: Passing data implicitly in Composable screens
#android
Регистрация на Swift Student Challenge откроется 5 февраля
Swift Student Challenge 2024 - конкурс для молодых разработчиков от Apple. Регистрация начнется 5 февраля и будет открыта три недели.
В рамках конкурса 2024 года из 350 победителей компания выделит 50 лучших, за их выдающиеся работы, и пригласит их в Купертино для участия в необычном мероприятии. Все победители получат годовое членство в Apple Developer Program, бесплатный ваучер на сдачу сертификационного экзамена App Development with Swift и специальный подарок от Apple.
Подробнее о победителях прошлого года вы можете узнать тут. А о необходимых инструментах и используемых технологиях здесь.
Android
• Вопросы с собеседований: В чем разница между LinkedList и ArrayList
• Программируем лучше: 4 неизвестных инструмента в Android Studio
• ssharyk/8-extension-methods-to-use-in-every-android-project-e1888731c737">8 simple extension methods to use in every Android project
• Gradle: from Newbie to Strong fundamentals
• How to automatically test a Google Play Subscription
• DIY: your own Dependency Injection library!
• Lateinit vs Lazy in Kotlin
#android
Тема Win9x для Jetpack Compose
Это захватывающий момент для Material Design и Jetpack Compose!
GitHub: https://github.com/nassendelft/compose-win9x-theme
iOS
• Пишем интерактивный виджет
• Отношения Apple с разработчиками могут помешать Vision Pro
• Компании критикуют 27% налог Apple
• An Approach to Handling App Launch States in SwiftUI
• One-way bindings in SwiftUI
• Developing with Swift in Visual Studio Code
• Asynchronous SwiftUI buttons
• SwiftUI View Models: A Polymorphic Approach
• How to place a view in the UINavigationBar and increase its height
#ios
Huawei презентовал HarmonyOS NEXT
В прошедшую пятницу китайская компания презентовала свою новую ОС.
1. Huawei HarmonyOS NEXT — это “следующая большая вещь” от китайской компании. о время презентации представители компании отметили, что HarmonyOS Next построена с нуля и полностью на собственных решениях, включая ядро (HarmonyOS), файловую систему (EROFS/HMDFS), компиляторы (Ark Compiler), нейросети (Pangu) и библиотеки.
2. Ядро, по утверждению Huawei, в три раза эффективнее использует память, чем ядра Linux. Компания утверждает, что в ОС используется "гетерогенный нативный механизм", благодаря чему операционная система способна обеспечить плавность работы.
3. Приложения для HarmonyOS Next можно разрабатывать на языке ArkTS или Cangjie вместе с UI-фреймворком ArkUI и ArkUI-X, в качестве дизайн-системы используется HarmonyOS Design, а код можно писать в среде DevEco Studio.
4. Отказавшись от Android, HarmonyOS Next потеряла и все приложения — сейчас в магазине есть всего около 200 программ, но уже к концу года компания планирует увеличить это число до 5 тыс. В будущем Huawei ставит целью получить 500 тыс. приложениями. Компания планирует вложить в экосистему 7 миллиардов юаней — от нативных приложений до инструментов разработки. Эти инвестиции не просто денежные, они направлены на будущее технологий и призваны воспитать новое поколение разработчиков благодаря сотрудничеству с более чем 300 учебными заведениями.
И что: вряд ли ОС получит большое распространение за пределами Китая и рыночные перспективы не очень понятны. Но, как заведено, по первому времени разработчиков будут заливать деньгами, так что можно подсуетиться и заработать на партнерстве с самим Huawei.
Галерея иконок iOS-приложений
Подборка (чуть менее 2000) иконок. Разбито по цветам, дизайнерам, категориям, годам. Есть аналогичные сайты для macOS и wathcOS.
Сайт: https://www.iosicongallery.com/