Google вводит новые правила проверки приложений в Play
Только что компания представила обновленную информацию и ввела новые правила и программы, направленные на повышение качества приложений на всей платформе.
1. Всем надо будет пройти верификацию, не только новым разработчикам. Можно выбрать дедлайн для этого.
2. Новые разработчики перед выпуском приложений должны будут постоянно тестировать свои приложения не менее чем на 20 пользователях в течение как минимум двух недель. Без этого выпустить приложение будет невозможно. Под словом "постоянно" Google подразумевает, что "не будут учитываться те, кто зарегистрировался, тестировал приложение менее 14 дней, а затем отказался от участия".
3. Google будет задавать разработчикам "некоторые вопросы, чтобы помочь им понять суть приложения, процесс его тестирования и готовность к выпуску".
4. Сроки проверки приложений возможно увеличатся.
И что: великие люди, определенно.
Android
• Amper – Improving the Build Tooling User Experience
• android-world/jetpack-compose-animation-for-beginners-a-step-by-step-guide-58f1215b7c2c">Jetpack Compose Animation for Beginners: A Step-by-Step Guide
• A Little About Dagger
• Best Practises In ViewModel
• mega-blog/android-ci-cd-pipelines-at-mega-8bba30d30fb5">Android CI/CD pipelines at MEGA
• Mastering Event Validation in Android Apps: A QA Engineer’s Guide
#android
Перевел интересную статью про то, почему разработчики не любят тесты. Автор декларирует, что тесты вредны для разработчиков. Прежде чем кидаться помидорами - вот его обоснование. Если ошибка обнаружена в процессе спринта, разработчикам необходимо написать исправление, и это время засчитывается как «время разработки». Их обвиняют в срыве сроков. Их спрашивают, почему все так долго делается. Как ни странно, их обвиняют в том, что они создают качественный код. А при обнаружении ошибок в готовом приложении могут быть добавлены специальные спринты для их исправления. Если ошибка обнаружена в проде, то это происходит в будущем, когда времена могут быть более счастливыми, а не сейчас, когда на разработчика оказывается давление. Его выход из ситуации - сделать тесты элементом культуры. Правда, как именно это сделать автор не особо уточняет.
Разработка
• Тесты вредны для разработчиков
• Как разработать функциональное мобильное приложение за 2 месяца: кейс Kassir.ru
• 10 hard-to-swallow truths they won't tell you about software engineer job
• Don't disable buttons
Маркетинг
• Доходы X за год выросли на 829%
• Summer, which helps customers buy — and rent out — vacation homes, raises $18M
Кроссплатформа
• «Разгоняем» HashSet, HashMap и циклы на примере Dart
• 5 Best Under-The-Radar React Native Libraries in 2023: Dev Tested and Reviewed
• gemechis/10-tips-to-optimization-your-flutter-app-b04beb074d2c">10 Tips for Optimizing Your Flutter App
iOS
• Делаем первый App Shortcut
• Apple отложила работу над новыми ОС для исправления ошибок
• daviddvd19/xcodegen-first-steps-%EF%B8%8F-a2d4655ced86">Xcodegen — First Steps
• 10 tips to increase your iOS code quality
• B4k3R/mastering-swift-level-up-your-swift-enum-by-replacing-it-with-an-optionset-a8c3c46c6aca">Level up your Swift enum by… replacing it with an OptionSet?
• NSSpain XI Videos
• Swift Student Challenge 2024 is announced
• Visual effects in SwiftUI
• GeometryReader: Blessing or Curse?
#ios
Android
• Корутины против потоков: тест потребления памяти
• Вышла альфа-версия Telecom Jetpack
• Управление сложностью состояния
• Собеседование с Михаилом Левченко
• njorogegwanjiru/picture-perfect-code-uploading-images-to-the-server-with-kotlin-and-jetpack-compose-using-a-restful-c1d30e1ff968">Picture-Perfect Code: Uploading Images to the Server with Kotlin and Jetpack Compose using a RESTful API
• The Diffing Dilemma! All about diffing with LazyLists!
• kamal.lakhani56/flowon-kotlin-4f404b0ea682">FlowOn | Kotlin. The Importance of Thread Safety
• The Ultimate Guide to Android Splash Screen Animations – Splash API
• The problem with Coroutines stateIn operator and how to solve it
#android
📅 Date: November 8th
⏰ Time: 4:00 - 5:00 PM GMT+3
📝 Register now: https://www.socialpeta.com/webinars/cultivating-success-exploring-the-opportunities-and-challenges-in-hybrid-casual-games
🎙 Meet Our experts:
Ms. Renata Ravilova - PR and Community at UGC Ninja
Mr. Tunahan Oduncu - Business Development Manager at SocialPeta
Ms. Ganbayar Bayaraa - Senior Account Executive at Tenjin
Mr. Alex Kozachenko - CEO at HyperBeard
Mr. Türker Karahan - CEO at Udo Games
🔑 Key Discussion Points:
✨ Unlock tips to captivate players and skyrocket your user base.
✨ Reveal the secrets to the masterful publishing of hybrid-casual games.
✨ Explore the trends in hybrid-casual gaming, and what's sizzling in the market.
✨ Dive deep into the challenges in the era of AI takeover.
✨ Compare marketing strategies between hyper-casual games and hybrid-casual games.
Linkedin Event: https://www.linkedin.com/events/7126100370258362368/about/
OpenAI запускает создание собственных GPT и магазин для них
OpenAI объявил об открытии GPTs — способа, с помощью которого любой желающий может создать собственную версию популярной системы разговорного ИИ.
1. Компания представила GPTs — «пользовательские версии ChatGPT, которые можно создавать для конкретных целей». GPTs могут быть созданы без опыта программирования и могут быть сколь угодно простыми или сложными.
2. «Фактически вы можете запрограммировать GPT с помощью языка, просто разговаривая с ним», — говорит Альтман. «Легко настроить поведение, чтобы он делал то, что вы хотите — это делает создание новых моделей очень доступными и дает возможность управлять ими всем».
3. Местом публикации GPTs стал магазин GPT Store. Модель App Store оказалась невероятно прибыльной для Apple, поэтому нет ничего удивительного в том, что OpenAI пытается повторить ее с ИИ.
4. OpenAI собирается платить людям, создающим наиболее используемые и полезные GPTs, часть своих доходов. Как будет происходить отбор или выплаты пока непонятно, но на конференции уже продемонстрировали GPTs, созданные Code.org, TripAdvisor и Canva, так что, возможно, поначалу это будут скорее официальные приложения, а не эксперименты частных лиц с GPT.
И что: OpenAI явно хочет стать Apple новой ИИ-революции, создать платформу, независимую от существующих магазинов приложений и методов распространения. Как и в случае с App Store, первые разработчики очевидно получат все преимущества "дивного нового мира". Впрочем, даже если попасть в магазин пока не удастся, простое создание GPT на собственных данных - большой шаг вперед.
Видео и подкасты за неделю:
• (iOS Ru)
Кнопки красить — это вам не деревья вертеть
• (iOS En)
New SwiftUI Photo Picker - Single & Multiple Selection
• (iOS En)
SwiftData CRUD Operations
• (iOS En)
How to solve nested Observable Objects issue
• (iOS En)
Swift Connection 2023 Videos
• (iOS En)
Cleaner, Safer Code with Swift KeyPaths
• (iOS En)
A Tour of Xcode Cloud
• (iOS En)
An Easier Dev Life with Kaleidoscope
• (And Ru)
Собеседование с Михаилом Левченко
• (And Ru)
Управление сложностью состояния
• (And En)
Now in Android: 94 - #TheAndroidShow, Jetpack Glance, Google Play policy updates, and more
• (And En)
AndroidX, Gradle and Metalava - Android Developers Backstage
• (And En)
When Should You Migrate to Jetpack Compose?
• (And En)
3 Clean Code Hacks I Bet You Didn't Know
• (And En)
What's new in Kotlin 1.9.20
• (And En)
Making Threads for Android
• (And En)
Kotlin & Android Development Course: Build a Quiz Application
• (Crs En)
A Complete Guide on “Login with WhatsApp” in Flutter Apps (w/ backend)
• (Dev Ru)
Backend Driven… Аналитика!
• (Dev Ru)
Podlodka #341: рендеринг текста проклят
Поставьте 👍, если понравилась подборка. А если вы увидели/выпустили какое-то другое интересное видео - отправьте боту🧑🏻💻
Android
• ComposeNumericRoller: анимация цифр на Compose
• Как сделать тесты на Espresso более читабельными и стабильными
• Kotlin 1.9.20 Released
• The Android Backstage of Mercado Libre Warehouses
• Hilt Version 1.1.0
• mukuljangir372/best-practises-for-writing-testable-code-in-kotlin-31761481ffd0">Best Practises For Writing Testable Code In Kotlin
#android
Самые скачиваемые и зарабатывающие приложения в России в октябре 2023
Маркетплейс Wildberries обогнал Telegram и стал самым скачиваемым приложением в октябре в России. OZON вырос на 6 позиций и занимает 3 место. Пятерочка так же выросла на 6 позиций, а игра «Crostic-Кроссворд Пазлы Дня» сразу дебютировала на 7 месте.
Четыре первые места в топе самых зарабатывающих остались неизменными — ВКонтакте, Телеграм, Royal Match и PUBG. В «хвосте» меняются местами Roblox, игры Playrix и Литрес.
1. VK: social network, messenger
2. Telegram
3. Royal Match
4. PUBG MOBILE
5. Roblox
6. Tanks Blitz PVP битвы
7. Gardenscapes
8. Homescapes
9. Litres: Books and audiobooks
10. FaceApp: Perfect Face Editor
Match (Tinder, Hinge, OKCupid, Match.com и другие) и Google заключили досудебное соглашение и теперь дейтинг-приложения первой компании смогут иметь альтернативные платежи даже распространяясь в магазине второй. На всех это по-прежнему не распространяется да и выгода очевидна для больших игроков, вроде Match. Google User Choice Billing позволит снизить комиссионные выплаты с 15% и 30% до 11% и 26% соответственно. То есть “налог Google” уменьшится на 4% (в Apple - на 3). В общем, ни шатко ни валко, но сторонние платежи внедряются. Как и прогнозировалось - для небольших разработчиков это абсолютно бессмысленно.
Разработка
• 10 уроков успеха от стартапов, созданных одним человеком
• Вопросы с собеседований: чем MVVM отличается от MVP
• Local AI Stack: создание локальных ИИ-приложений
• Открыта регистрация на олимпиаду по программированию для школьников «Технокубок»
• Poe от Quora запускает партнерскую программу для создателей чат-ботов
• Apple M3 Pro медленнее в работе с памятью, чем M1/M2 Pro
• Tech Interview Handbook
Маркетинг
• Google и Match Group достигли мирового соглашения по антимонопольному делу о магазине приложений
Кроссплатформа
• Как использовать нативный платежный сервис SberPay в кроссплатформенном приложении на Flutter
• 12 Image Tips and Best Practices for the Best UX Performance in Flutter
• Networking in Kotlin Multiplatform Mobile Using Ktor
• How to create a Flutter plugin step by step
• Flutter: State Management with pure MVVM
iOS
• Поваренная книга SwiftUI: тени для представлений
• Moya: сетевые абстракции для Swift
• drewalth/server-side-swift-why-not-b04de4251f32">Server-side Swift? Why not?
• omar.h.sebaa/builder-design-pattern-in-ios-73d23720ab76">Builder Design Pattern in iOS
• omar.h.sebaa/singleton-pattern-in-ios-2bf6969ec6c7">Singleton Design Pattern in iOS
• The Future of Accessing User Location in SwiftUI
• The curious case of ShareLink with plain text strings
• SwiftData CRUD Operations
#ios
Android
• FlorisBoard: открытая клавиатура для Android
• Google опубликовал новые данные по распространению версий Android
• A step-by-step tutorial in codelab format for Android UI testing
• Kotlin 101: Unit Tests Cheat Sheet for Paging Library and Room Database
• Finding the Right Balance in Gradle Dependency Strategy
• Avoid Primitive Obsession in Kotlin with zero-cost abstractions
• Simple and secure sign-in on Android with Credential Manager and passkeys
• Making Threads for Android
#android
Google опубликовал новые данные по распространению версий Android
Вот как изменился % устройств (GMS Android) с 30 мая 2023 г., когда статистика была обновлена в последний раз.
• Android 13: 15% -> 22.4%
• Android 12: 16.3% -> 15.8%
• Android 11: 23.1% -> 21.6%
• Android 10: 17.8% -> 16.1%
• Android 9: 11.9% -> 10.5%
• Android 8.1: 6.1% -> 5.4%
• Android 8: 2.2% -> 1.9%
• Android 7.1: 1.5% -> 1.3%
• Android 7: 1.5% -> 1.3%
• Android 6: 2.3% -> 1.9%
• Android 5.1: 1.5% -> 1.2%
• Android 5: 0.3% -> 0.2%
• Android 4.4: 0.5% -> 0.4%
Доля Android 13 в общем числе устройств выросла с 15% до 22.4%. Второй по количеству установок версией ОС Android стал Android 11 - 21.6%, за ним следует Android 10 - 16.1%. Android 12 установлен на 15.8% всех устройств.
Android
• Вопросы с собеседований: для чего нужен Data class в Kotlin
• Собеседование в Яндекс: платформа Android
• По ту сторону EditText. Программная клавиатура в Android
• Kodein в Android. Что за зверь и как его готовить
• Готовим конфигурацию Android-приложения с помощью Dynamic Proxy и рефлексии
• Twine: мультиплатформенный RSS-ридер на Kotlin и Compose
• Что будет если команда, не видавшая Compose, решила делать новую сложную фичу на нём?
• ActivityResult API и Compose
• CatGPT - or How to Position Elements on Overlays
• Building a Speedometer with Compose Canvas API
• Harmonizing Modifiers in Jetpack Compose: A Tale of Flexibility and Usability
• Material Design Components for Android 1.10.0
• Regional Preferences in Android 14
• cgaisl/beyond-mvvm-hierarchical-state-management-with-molecule-and-compose-660648eeb88e">Beyond MVVM: Hierarchical State Management with Molecule and Compose
• How to create list sections with animated shapes
#android
Реальность у новичков очень сильно искажена. Они видят только хорошую зарплату, удаленную работу, тимбилдинги и вечеринки с пиццей. Все это хорошие преимущества, но никто не говорит с ними о реальных вещах, которые будут происходить в разработке:
1) ВУЗ не подготовит к работе
2) Вы редко будете получать новые красивые проекты
3) Всем наплевать на ваш чистый код
4) Иногда приходится работать с некомпетентными людьми
5) Привыкните к многочасовым совещаниям
6) К вам будут часто обращаться за оценкой сроков
7) Ошибки станут вашим заклятым врагом на всю жизнь
8) Неопределенность станет вашим токсичным другом
9) Отключиться от работы будет практически невозможно
10) Вы получите больше пользы от хороших сотф-скилов, чем от хороших технических навыков
Разработка
• 10 трудных истин, которые вам не расскажут о работе программистов
• Компания Sutro представила ИИ-конструктор приложений
• $25 млн в Серии B: Tabnine — ИИ-помощник для программирования
• AppsFlyer покупает аналитику devtodev
• narcistabarasi/secure-your-openai-api-keys-in-ios-android-apps-using-firebase-96afb72106c6">Secure your API keys in iOS/Android apps using Firebase
• Microservices aren't the problem. Incompetent people are
• Ensure Visual Accessibility: Glyphs, Icons and Shapes
Маркетинг
• Google настаивает на открытии iMessage в ЕС
• AskKat/how-uber-app-is-dominating-the-market-and-how-you-can-do-the-same-with-the-hybrid-app-development-b4e3a1d59973">How Uber app is Dominating the market and how you can do the same with the hybrid app development
Кроссплатформа
• Структура Flutter-приложения: feature-first или layer-first
• Simplifying React Native App Updates with Expo EAS and In-App Updates
• Setuping a well structured React Native project with Ignite
iOS
• Chat: UI-фреймворк для чата
• Generating Random Numbers Elegantly in Swift
• matheusqcardoso98/swift-what-is-reflection-and-how-is-it-used-bc177cd2e1c7">What is Reflection and how is it used?
• GetInRhythm/mastering-ios-navigation-a-deep-dive-into-pragmatic-design-ed2d58c8f6c0">Mastering iOS Navigation: A Deep Dive Into Pragmatic Design
• Adapter Design Pattern in iOS
#ios
Android
• BeepBeep: платформа доставки еды и заказа такси на Kotlin
• How to show a PDF with Jetpack Compose
• Creating an iPhone-Like Glassy Blur Effect with Jetpack Compose on Android
• domen.lanisnik/screenshot-testing-with-compose-9a84bd28b6fb">Screenshot Testing with Compose
• Kotlin Type Aliases: Enhancing Code Clarity
• meetjanani47/mvi-architecture-implementation-with-kotlin-flow-android-ae094fa83bff">MVI architecture implementation with Kotlin Flow, Android
• taimur149/from-stetho-to-flipper-logging-network-calls-with-facebooks-flipper-sdk-in-android-afac86cfe7bc">From Stetho to Flipper: Logging Network Calls with Facebook’s Flipper SDK in Android
#android
Еще OpenAI анонсировала новый Assistants API, который она характеризует как шаг к тому, чтобы помочь разработчикам создавать в своих приложениях «агентоподобный опыт». Варианты использования могут быть самыми разнообразными: от приложения для анализа данных на естественном языке до помощника по программированию или даже планировщика отпусков на базе ИИ. В основе нового Assistants API лежит Code Interpreter — инструмент OpenAI, позволяющий писать и выполнять код на языке Python в изолированной среде исполнения. Assistants API также может подключать компонент поиска, который дополняет созданных разработчиками ассистентов знаниями из внешних источников, например, информацией о продукте или документами, предоставленными сотрудниками компании. Кроме того, поддерживается вызов функций, что позволяет ассистентам вызывать функции программирования, заданные разработчиком, и включать ответы в свои сообщения. Assistants API находится в стадии бета-версии и доступен для всех разработчиков с сегодняшнего дня.
Разработка
• Assistants API от OpenAI помогает создавать собственных агентов
• OpenAI запускает создание собственных GPT и магазин для них
• $5 млн в посевном раунде: Factory — автоматизация жизненного цикла разработки с помощью ИИ
• Backend Driven… Аналитика!
• Podlodka #341: рендеринг текста проклят
• Real-Time Analytics for Mobile App Crashes using Apache Pinot
• The Architecture Behind A One-Person Tech Startup
• How We Reduced our Google Cloud Bills by 50 Percent
Маркетинг
• Flavrs с помощью ИИ хочет стать главной платформой для едоков во всем мире
• How to Boost Any Mobile Screen Usage with this simple analytics trick
Кроссплатформа
• Skip: транспилятор Swift/SwiftUI в Kotlin/Compose
• Управляем навигацией во Flutter с помощью библиотеки auto_route. Часть 1
• Разработка мобильного клиента СДУ «Приоритет» под ОС «Аврора» на фреймворке Qt
• flutterdynasty/advanced-dart-in-flutter-elevating-your-development-skills-1c8ec309266f">Advanced Dart in Flutter: Elevating Your Development Skills
• How to Test Native Features in Flutter Apps with Patrol and Codemagic
• Why Kotlin Multiplatform Won’t Succeed
iOS
• Кнопки красить — это вам не деревья вертеть
• Вопросы с собеседований: что такое reference типы в Swift
• Tabman: мощный Page View Controller
• Creating your first app shortcut
• Understanding Text Case And Capitalization In SwiftUI
• iOS App Modularization: Strategies for Large-Scale Applications and Dependency Management
• Custom Traits and SwiftUI
• Calculating a Smooth Clock Hands Animation
• Distributing Work Between Actors
• Programmatic Navigation with SwiftUI
• Structure Oriented Programming VS Protocol Oriented Programming in Swift
#ios
Приходите на Yet Another Mobile Party!
Yet Another Mobile Party (YAMP) — пятичасовой стрим Яндекса, на котором мобильные разработчики и тимлиды обсуждают новости, актуальные вопросы в индустрии и карьеру. Всё обсуждение пройдёт в формате живого разговора — поэтому будет много импровизации, шуток и откровенных мыслей.
В этот раз на YAMP обсудим, зачем нужна ОС «Аврора», как бороться с уязвимостью приложений, что сложного в разработке под нестандартные устройства, как формировать хорошие команды и выходить в опенсорс. Наши разработчики будут общаться с чатом — так что готовьте интересные вопросы.
📎 Стрим начнётся 18 ноября в 12:00 мск YandexforMobile">на YouTube-канале Yandex for Mobile. Ссылку выложим в телеграм-канале Yandex for Mobile — подписывайтесь, чтобы ничего не потерять.
Почитать про участников марафона (которых, к слову, очень много — и они классные!), посмотреть программу и зарегистрироваться можно тут.
✔️ Бронируйте субботу и готовьте вопросы — встретимся на стриме!
Реклама. ООО "Яндекс". erid: 2VtzquY8awq
Команда, не видавшая задач
Нерабочий понедельник - самое время обозреть, что же там понаписали за прошлую неделю. Вот и новый еженедельный дайджест - 132 статьи и новости. Прочитайте, поставьте 👍, сохраните в избранное и поделитесь с коллегами. Еще у меня есть канал IT Insights, где новости и статьи про код, технологии и все самое интересное за пределом мобайла. Там, например, у меня была ссылка на новый ИИ-поисковик и напарника по программированию Phind - интересный инструмент, который (вполне возможно) вам сильно пригодится.
💻 Прислать материал для дайджеста можно сюда. А поддержать канал здесь.
Не моргу не сослаться на прекрасные страшилки, которые опубликовали на Хабре:
Белые тапочки
Один разработчик решил купить себе на работу тапочки, чтобы не потеть весь день в ботинках. «Сынок, только не покупай белые тапочки!» — попросила его мама.
Но разработчик не послушался и купил белые тапки. Принес их на работу и стал носить.
Вечером убрал он тапочки под стол и ушёл домой. Утром приходит — а тапочки на его стуле стоят! Надел разработчик тапочки на ноги, открыл ноутбук, а в коде куча ошибок. «Странно» — подумал он, сел и стал работать в тапочках дальше. А на следующее утро ситуация повторилась: тапочки стоят на стуле, в коде куча ошибок. Но опять разработчик надел тапки и стал работать.
На третий день опять тапки на стуле были. Не выдержал разработчик и выкинул тапки.
На следующее утро приходит он пораньше и видит, что в офисе уборщица пол моет и всё с пола на стулья ставит.
Выдохнул разработчик с облегчением, сел на свое место, открыл ноутбук. А в коде всё равно куча ошибок 😱
Разработка
• Чёрная рука, красные глаза и другие страшилки
• Sheet, dialog, or snackbar — what should a designer go for?
• Redesigning Swiggy’s new user onboarding — A product design case study
• How Discord Stores Trillions of Messages — Curious Case of System Design
• The Worst Code I Ever Wrote, And Why I’m Still Happy About It
Маркетинг
• Click, Download, Play! Как использовать геймплей в создании перформящих креативов: часть первая
• Самые скачиваемые и зарабатывающие приложения в России в октябре 2023
• 3Q23 Mobile Ad Network Trends
Кроссплатформа
• Kotlin Multiplatform стал стабильным
• KMP перешёл в stable. Что это значит?
• Можно ли обойтись без нативных языков, разрабатывая на Flutter и RN?
• Kotlin Multiplatform by Tutorials
• yasir.ameen/ahead-of-the-curve-rubikkubes-kotlin-multiplatform-journey-bc1099cfa376">Ahead of the Curve: Rubikkube’s Kotlin Multiplatform Journey
• A Complete Guide on "Login with WhatsApp" in Flutter Apps (w/ backend)
iOS
• touchHLE: высокоуровневый эмулятор iPhone OS
• Как создать интерактивные виджеты на iOS 17
• Modular Navigation in SwiftUI: A Comprehensive Guide
• Using Real-World Analogies to Demystify Creational Design Patterns in Swift
• How to Observe Data Changes in SwiftData Using Persistent History Tracking
• Mastering iOS Debugging with User Defaults
#ios
Kotlin Multiplatform стал стабильным
Kotlin Multiplatform получил статус Stable и теперь на 100% готов к использованию в проде, заявляет JetBrains.
1. Благодаря тому, что KMP широко используется в производстве с момента выхода Alpha-версии, компания JetBrains смогла собрать большое количество отзывов и доработать технологию, чтобы обеспечить лучшие возможности мультиплатформенной разработки в Stable-версии.
2. С момента выхода бета-версии количество библиотек KMP увеличилось в несколько раз, предлагая разнообразные инструменты для работы с сетями, хранения данных, арифметики, аналитики и т.д., обеспечивая быструю и уверенную разработку приложений.
3. Команда Android в Google продолжает поддерживать пользователей KMP, предоставляя экспериментальные мультиплатформенные версии библиотек Jetpack, и уже обеспечила совместимость библиотек Collections, DataStore, Annotations и Paging с Kotlin Multiplatform.
4. Compose Multiplatform для Android и настольных систем (JVM) уже стабилен, поддержка iOS находится в стадии Alpha, а поддержка web (Wasm) - в стадии Experimental.
И что: мечта об одном коде для всех платформ все ближе :)
Android
• Байт-код — это просто! Как сделать DI по-настоящему быстрым
• В помощь тем, кто погружается в Smali
• How to Use Render Effects in Jetpack Compose for Stunning Visuals
• Kotlin Coroutines vs Threads Memory Benchmark
• The Syntax Chronicles: Implementing Google Sheets API in your Android app
#android
Вчера Apple представила новые процессоры M3 и заодно MacBook Pro и iMac с ними. Быстродействие почему-то сравнивают с M1, но в целом упор сделан на GPU - в них завезли трассировку лучей, сеточные шейдеры и тому подобные вещи. То есть упорно хотят сделать из Mac игровую платформу. При том, что самый дешевый MacBook с “обычным” M3 будет стоить $1599 (а максимум - что-то в районе $8K), затея, прямо скажем, не очевидная.
Разработка
• Apple представила процессоры серии M3
• Делаем многократно используемые компоненты не делая их многократно используемыми
• Backend Driven UI с точки зрения бэкенда: к чему готовиться, если вы решили на него перейти
• 6 Software Engineering Templates I Wish I Had Sooner
• Advice to a novice programmer
• 10 Mobile App Projects to Elevate Your Skills to Senior Developer Level
Маркетинг
• The creative testing blueprint: Strategies for high-impact ad campaigns
• Mastering search engine optimization for your mobile app
Кроссплатформа
• Flutter и работа с нативным кодом на примере библиотеки для работы с NFC
• State Management With Provider
• akhmat-s/flutter-integration-testing-and-ci-cd-593a0656fb74">Flutter Integration Testing and CI/CD
• nitheeshag/building-a-compose-multiplatform-app-with-an-architectural-pattern-e31a85e82927">Building a Compose Multiplatform app with an Architectural pattern
• Exploring Flutter’s new Sliver API: A Comprehensive Guide
iOS
• Подходы к верстке в UIKit
• How to get a SwiftData model container and context in SwiftUI
• Packaging Libraries in iOS: A Comprehensive Guide v2
• Seamless Flow: Streamlining iOS Projects with CI/CD Tools and Tactics
• How to setup your Xcode project for testing with Unit and UI Tests in 4 simple steps
• SwiftUI: Introducing MVI How to Easily Implement MVI in SwiftUI
• How to solve nested Observable Objects issue
#ios
Опубликовал второе интервью с Максимом Сидоровым - на этот раз про то, как проводятся собеседования в SberDevices. Получился прямо гайд - и не только о том, как разработчикам готовиться к интервью, но и как компаниям (собеседователям) к нему готовится. В общем, очень рекомендую.
Разработка
• Как устроены собеседования в SberDevices — Максим Сидоров
• Как изменились подходы к автоматизированному тестированию в Тинькофф
• ChatGPT в мобильной разработке: как использовать, чтобы получить пользу
• Avito Platform engineering meetup #2
• Ozon Tech Community ML&DS Meetup
• Полный курс по QA. Как правильно писать тесты?
• Fixing the Volume on my Bluetooth Earbuds
• Use Abstraction to Improve Function Readability
• The most valuable trait of top software engineers
Маркетинг
• Luminar Neo упрощает использование ИИ в обработке фотографий
• Unity's Runtime Fee debacle caused 15% of its US advertisers to jump ship
Кроссплатформа
• Writing Swift-Friendly Kotlin Multiplatform APIs
• Embrace Functional Programming with /Dart 3.1/
• Build SwiftUI apps for iOS and Android with Skip
iOS
• Все видео Swift Connection 2023
• Aidoku: открытый ридер манги для iOS
• Автоматизация ревью ресурсных картинок в iOS
• Реальное iOS собеседование в Яндекс
• Show Callers in Xcode 15
• Automerge for Swift
• Combine charts to create stunning designs with Swift Charts
• illescasDaniel/hacking-ios-alerts-with-swift-61aefce9736a">Hacking iOS Alerts in Swift
• Deliver reusable components without making them reusable
• SwiftUI Tutorial: Keyframe Animations for iOS 17
#ios