Мобильная разработка за неделю #518 (4 — 10 декабря)

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
В нашем новом дайджесте устройство протокола iMessage и новое приложение Beeper Mini (которое уже не работает), бесплатный Xcode Cloud, новый ИИ от Google в Android, создание простого калькулятора, интернационализация от i до n, конец плоского дизайна и многое другое.

Подписывайтесь на на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.



iOS

• Использование on-demand ресурсов для безопасного хранения ключей API в iOS-приложениях
• Как устроен протокол iMessage
• Swift Utilities — Интеграция SwiftUI в UIKit
• Идеальный REST клиент iOS
• Swift Utilities — Работа со SwiftData в Background
• Разработчики будут бесплатно получать 25 часов Xcode Cloud в месяц
• Поваренная книга SwiftUI: создание кастомного модификатора представления + создание сетки представлений
•  Building Robust iOS Applications: The Art of Modularization
•  Apple’s use of AppKit, Catalyst, Swift and SwiftUI in macOS Sonoma
•  Using on-demand resources for securely storing API keys in iOS apps
•  Observable Architecture Beta
•  Easy app walkthroughs with MarkWalkthrough
•  AsyncStream in the real world: wrapping an Apple Photos callback
•  From viewWillAppear to viewIsAppearing — Perfecting Your iOS View Transitions
•  Testing private functions in Swift
•  Future-Proofing Your Projects for Swift 6: A Comprehensive Guide
•  SwiftUI for Jetpack Compose developers — State
•  Easily Change the Language of the Simulator to Test Your App
•  Swift: Simulating Inheritance in structs with the Power of enums
•  Are You Truly Adopting MVVM? Or Just a Badly Shaped MVP?
•  SFSafariViewController in SwiftUI: Open webpages in-app
•  Mastering MapKit in SwiftUI. Customizations.
•  7 Steps to Add Chat to a SwiftUI App Using Firebase
•  Handling new Enum cases in Swift. UnknownCaseDecodable protocol
•  Distributing a Swift Macro using CocoaPods
•  GPT’s specifically for Apple Frameworks
•  Mastering in SwiftUI
•  Stop abusing value type
•  How To Create A Tic Tac Toe Game in Xcode 15 (SwiftUI)
•  Interactive Widgets – Intents
•  SwiftUI Complex Hero Animation With Synchronized ScrollViews
•  Create your first app with SwiftUI and SwiftData
•  Swift Data Many to Many relationships
•  How To Create And Use A Card View in Xcode 15 (SwiftUI)
•  ColorfulX: градиенты с Metal
•  IMSwitch: графические переключатели для SwiftUI

Android

• Gemini — новая основа для искусственного интеллекта в Android
• Готовим конфигурацию Android-приложения с помощью Dynamic Proxy и рефлексии
• Создание простого калькулятора в Android Studio
• Улучшение производительности Android-приложения NordVPN с помощью плагина Compose Compiler
• Переход на Gradle 8 Android проекта
• Как интегрировать Dynamic Features в Android-приложение
• Вопросы с собеседований: для чего нужны сервисы в Android-приложении
•  Idiomatic Kotlin: Merge Two Strings Alternately + Benchmarks
•  Implementing an animated column section header using Jetpack Compose
•  Improving NordVPN’s Android performance using the Compose Compiler plugin
•  Koin, Ktor & Paging in KMM
•  Global Google Developer Experts Share Their Favorite Tools and Advice for New Developers
•  Custom Pull to Refresh in Jetpack Compose
•  First look at AndroidX Bluetooth
•  Better Previews in Jetpack Compose, Tips and Tricks
•  Kotlin Delegation: A Powerful Code Organization Technique for Reusability and Maintainability
•  Mastery on Invoke Kotlin
•  Clean Architecture for Android MVI
•  Stealing API keys — Security in Android
•  Android Interview Cheat Sheet
•  Live Mosaic at Droidcon London 2023
•  100% Flakiness-free UI test automation with Kaspresso and Allure Testops
•  KSP2 Preview: Kotlin K2 and Standalone Source Generator
•  Improve Your Android App Performance With Baseline Profiles
•  Kotlin under the hood: The nuances of using annotations in Kotlin
•  Enhancing Jetpack Compose app performance
•  Latest Updates to Google Play, New APIs in Jetpack Compose, and more dev news!
•  mutableStateOf() VS. mutableIntStateOf() — Auto-Boxing Explained
•  Is it okay to use runBlocking?
•  Tusky: Android-клиент для Mastodon
•  CountryCP: выбор страны в Compose

Кроссплатформа

• Flutter Web умер. Да здравствует Flutter Web
• Инструкция: как быстро настроить GitLab CI/CD на Flutter-проекте
• Как я стал Google Developer Expert по Flutter
• PWA vs. нативные приложения: когда и как выбрать?
•  Welcome Fleet with Kotlin Multiplatform Tooling
•  Kotlin Multiplatform Development Roadmap for 2024
•  Flutter GameDev with Casual Games Toolkit & Flame
•  Handling Asynchronous Data in Flutter with Generic Classes
•  Building a Spreadsheet Interface in Flutter: A Quick Guide
•  Why Flutter is “NOT” the Best Mobile App Development Tool
•  How to implement push notifications in Kotlin Multiplatform
•  Calling Platform-Specific Dependencies in Kotlin Multiplatform
•  Safeguarding Your Flutter Apps
•  Flutter GameDev with Casual Games Toolkit & Flame
•  Practical Functional Programming in Dart and Flutter
•  FreeToGame: KMP-проект для Android, iOS, Desktop и Wear OS

Разработка

• Интернационализация от i до n: как мы переводим интерфейсы в Фантехе Яндекса
• Мода на плоский дизайн наконец-то прошла?
• 10 тёмных паттернов в UX-дизайне и как их избежать
• 9 советов, которые облегчат путь до мидла
• Операционные системы — Как это работает
• Как зарабатывать на обучении в IT?
• TypeScript убил JavaScript?
• Microsoft открыла Terminal Chat
•  UI/UX Design: The Fastest Way to Make Your Designs More Interesting
•  How Google takes the pain out of code reviews, with 97% dev satisfaction
•  How Uber Computes ETA at Half a Million Requests per Second
•  How psychology design products that win customers
•  Data Quality Score: The next chapter of data quality at Airbnb
•  Are your engineering “best practices” just developer dogmas?
•  Your GitHub pull request workflow is slowing everyone down
•  How to Build a Personal Brand as a Developer
•  How the first gen iPod was reverse engineered to run Rockbox

Аналитика, маркетинг и монетизация

• Как продвигать приложение детской одежды в VK Рекламе и Яндекс Директе — кейс Gulliver Market и Rocket10
• Дизайн А/Б-тестов
• 5 прогнозов для мобильных приложений 2024
• Discord провел редизайн мобильного приложений с акцентом на сообщения
• Beeper Mini — новое приложение для переписки в iMessage с Android (и уже не работает)
• Bumble For Friends использует ИИ для написания первого сообщения
• Animate Anyone приближает создание видео-дипфейков
• Самые скачиваемые и зарабатывающие приложения в России в ноябре 2023
• Маркетологи в мобайле: Александра Мареева («Спортмастер»)
• Capsule: новости на основе ИИ и человеческих редакторов
• Threads обгоняет X
•  France in three charts: Installs, sessions, and retention rates
•  How to implement gamification and enhance your app’s user experience

AI, Устройства, IoT

• О троице, которая хакнула настоящий поезд. Даже целых 30 поездов
• Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266
• Создаём сортировщик деталей Lego Technic, распознающий объекты в реальном времени
• Pimento использует ИИ для превращения брифов в креативные мудборды
• Apple выпустила библиотеки машинного обучения для Apple Silicon
• Google выпустил AlphaCode 2 на основе Gemini
• Amazon выпустил Q, своего помощника с искусственным интеллектом
• Рынок смарт-часов восстанавливается
•  MLOps Course – Build Machine Learning Production Grade Projects

← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Источник: https://habr.com/ru/companies/productivity_inside/articles/779668/


Интересные статьи

Интересные статьи

Real-time приложения, как следует из названия, предоставляют мгновенный обмен данных и информации между сервером и клиентом. Они встречаются повсеместно в различных сферах, начиная от социальных сетей...
Рынок интернета вещей растет значительными темпами и разработка кода для микроконтроллеров важна для любых проектов, где подразумевается наличие какого-либо вспомогательного оборудования или носимого ...
Главным событием этой недели было Google I/O, на которой представили некоторые нововведения, зарелизили ряд новых версий библиотек и инструментов. Из интересного: вышла вторая Beta Android 13, запусти...
В данной работе создадим приложение с вложенным списком и на его примере рассмотрим функционал и возможности Power Apps при наличии связей между таблицами с данными. Для удобства пользователей данные ...
Я работал в команде, которая делала десктопное приложение для VPN. Не самая простая штука в мире, много нюансов, много обратной совместимости. У нас были четыре разраба, три тесте...