В нашем новом дайджесте LLM на iOS и архитектура Android-приложений, здоровье сборки и реактивные формы, скользкий кусок мыла, 40 лет программирования, чаты с Аидом, потери денег на ИИ и многое другое!
Подписывайтесь на на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
![](https://habrastorage.org/webt/bm/ey/3v/bmey3vm9feoinh5m-863rknjiis.png)
iOS
• LLaMA 2, RWKV, Santacoder и другие LLM на iOS
• WidgetKit в iOS — не просто большие иконки
• Avito iOS meetup #10
• Поваренная книга SwiftUI: List View и NavigationStack
• Понимаем @discardableResult в Swift
• Опубликованы SF Symbols 5
•
SwiftFormat Automation for iOS apps
•
Swift Splash visionOS Sample Code
•
Changes to URL string parsing in iOS 17
•
Split your data easily and efficiently with .chunked()
•
SwiftUI: Adaptable Stack
•
Using Core Data and Swift Data side by side
•
API Calls with iOS Combine
•
Style your TipKit Tips
•
Thread safety in Swift with actors
•
Tackling Memory Limitations in iOS: A Deep Dive
•
Data Flow & Data Sharing using SwiftUI
•
@preconcurrency: Incremental migration to concurrency checking
•
Design Patterns in Swift (Abstract Factory)
•
Unit Test the Observation Framework
•
Sensory feedback in SwiftUI
•
SwiftUI: Multilevel MVVM
•
7 Spectacular Project-Based Tutorials for Learning Swift and SwiftUI
•
Advanced Memory Management in iOS: Exploring ARC, Manual Retain-Release, and Memory Leaks
•
A Day in the Life of a SwiftUI View
•
SwiftUI to destroy the Publishing Industry
•
Create custom Bindings in SwiftUI
•
How to use TimelineView in SwiftUI
•
Updating Code to iOS 17
•
Nimble: метчер для Swift и Objective-C
•
BigUIPaging: страницы на SwiftUI
Android
• Как выступить на Mobius и внести свой вклад в Kotlin — Максим Сидоров (SberDevices)
• Android 14: что появилось нового и что изменилось? Возможности новой версии мобильной ОС
• Архитектура Android. Понятно и подробно
• Kodein DI для Android. KMP и Compose
• Миграция продакшен приложения из Room в SQLDelight
• Инъекция зависимостей или локатор служб?
• Компиляция Record для Android
• Как я осваивал Jetpack Compose
• Паттерн делегирования для написания многократно используемых компонентов Compose
• Как мониторить здоровье вашей Gradle-сборки
• Как сделать приложение для мобильного стриминга на Android с помощью опенсорс-инструментов и EdgeStreaming
• Определение произвольной точки на полигоне. Jetpack Compose. Canvas. Algorithm
• Unit-тесты для галочки — как не надо делать и как исправить
• Compose Pathway #1: знакомство с фреймворком
• Оно само: используем плагины компиляции
• Compose, еще раз Compose и развитие сообщества
•
Jetpack Compose on Fire: The Latest Koin 3.5 Features
•
Konsist: First experience with the new linter for Kotlin
•
Dependency Injection vs Service Location
•
Strategies for automatically refreshing data on Android using Kotlin Flow
•
Exploring the Power of Live Data in Kotlin: A Comprehensive Guide with Examples
•
Delegation Pattern To Write Reusable Compose Components
•
Using Android’s new Credential Manager API
•
Mastering Jetpack Compose Performance With Examples
•
Hacking LazyList in Android Jetpack Compose
•
Shimmer & Shadow Loading Effect Animation with Jetpack Compose
•
Creating Dynamic Background Blur with Jetpack Compose in Android
•
Understanding Jetpack Compose Measuring: A Deep Dive
•
Implementing Parallax Carousel from SwiftUI to Jetpack Compose
•
Introducing Iris Mock: An easier way to mock network calls on Android
•
Jetpack Compose Custom Hideable Bottom Sheet
•
Kotlin asSequence: The Key to Efficient Collections
•
Kotlin Illustrated — Data Classes and Destructuring
•
Konsist and Conquer: Embracing the World of Dynamic Testing
•
Smooth Moves: ???? Unleash the Magic of SwiftUI Animations
•
How to Customize Toolbar and Navigation Bar in SwiftUI
•
Harnessing The Power of Async/Await in SwiftUI: Revolutionizing Concurrency in iOS Development
•
Designing for spatial computing: from iOS and iPadOS to visionOS
•
Android Interview Questions for Mid to Senior-Level Developers
•
Building the Flappy Musk.eteer Arcade Game with Jetpack Compose
•
Navigation Stack Interactive Pop Gesture — Full Swipe Pop
•
Gestures in Jetpack Compose
•
AI Landmark Recognition With Tensorflow Lite and CameraX on Android
•
How to Build a Video Recorder With CameraX in Android
•
New Component Activity’s Edge to Edge is Amazing
•
Kotlin Extensions — Many developers forget THIS!
•
The Unit Testing Diet Sample App: пример Behavior-Driven разработки
•
Resaca: привязка ViewModel к Composable
Кроссплатформа
• 4 сценария, когда нужно сделать ставку на Kotlin Multiplatform, а не Flutter
• Что быстрее: Animated + useNativeDriver или Reanimated?
• Реактивные формы во Flutter: как делать формы с меньшими трудозатратами
• Что такое keys во Flutter?
•
Arrange Buttons in a Row With ToggleButtons Flutter Widget
•
Thermal Print With Flutter
•
Native App Passkeys: Native implementation vs WebView Implementation
•
Flutter’s Event Loop and Microtask Queue: A Comprehensive Guide
•
Flutter Navigation and Routing: A Complete Guide
•
Why We Never Manage State with Global Variable in Flutter
•
Minimal Social App • Flutter x Firebase Tutorial
•
FocusBloom: управление временем на Kotlin Multiplatform
Разработка
• Скользкий кусок мыла: контроллер из телефона
• 40 лет программирования
• Как показать номер версии на экране загру…
• 8 вещей, которые я усвоил за 6 лет карьеры разработчика
• Как тестировщику уйти из корпорации в стартап и не сойти с ума
• Как применяется и для чего нужен local first подход
• Tesla выпустила первый API для приложений сторонних разработчиков
• Podlodka #340: зачем нужны ИТ-рекрутеры
• Podlodka #339: все про кодировки текста
• Microsoft отказывается от VBScript
• Яндекс выпустил NaviKit SDK для создания собственной навигации
• Всеобъемлющий Rust — бесплатный курс
• Визуализация данных с помощью Python — бесплатный курс от IBM
•
Readability: Google’s Temple to Engineering Excellence
•
How LinkedIn Adopted Protocol Buffers to Reduce Latency by 60%
•
Characteristics of Code Quality
•
Research: Quantifying GitHub Copilot’s impact on code quality
•
2-Minute Rule to Become a Master at Coding — Atomic Habits
•
What is Design-Driven Development?
•
AR for everyone: How to build accessible augmented reality UX
•
How Giphy Delivers 10 Billion GIFs a Day to 1 Billion Users
Аналитика, маркетинг и монетизация
• Самые скачиваемые и зарабатывающие приложения в сентябре 2023
• В 2023 году потребители проведут в Android-приложениях для покупок 50 млрд часов
• Character.AI добавляет групповые чаты с ИИ
• Приложение Keepler поможет улучшить навыки свиданий или отношений
• Clash of Clans и Clash Royale выходят на ПК
• Компании теряют деньги на ИИ
• Respawn — управление задачами и привычками: разбор приложения
• Microsoft обновила веб-версию магазина приложений для Windows
•
The most popular Mixpanel alternatives, compared
•
Top 10 Hypercasual Games in Q3 2023
•
How Duolingo designs product (and why)
AI, Устройства, IoT
• Делаем HMI-панель из планшета для системы автоматизации на контроллере Wiren Board
• Разговоры с кроватью, про Яндекс Алису и умный дом Home Assistant
• Open Interpreter: выполнение локальных задач с Code Interpreter
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подписывайтесь на на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
![](https://habrastorage.org/webt/bm/ey/3v/bmey3vm9feoinh5m-863rknjiis.png)
![](https://habrastorage.org/getpro/habr/post_images/f19/30a/c49/f1930ac4945596eb9707bc7a01bc5bdc.png)
• LLaMA 2, RWKV, Santacoder и другие LLM на iOS
• WidgetKit в iOS — не просто большие иконки
• Avito iOS meetup #10
• Поваренная книга SwiftUI: List View и NavigationStack
• Понимаем @discardableResult в Swift
• Опубликованы SF Symbols 5
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/e1a/3cf/2a8/e1a3cf2a8b65a0da69bbdd5c0ad040fe.png)
• Как выступить на Mobius и внести свой вклад в Kotlin — Максим Сидоров (SberDevices)
• Android 14: что появилось нового и что изменилось? Возможности новой версии мобильной ОС
• Архитектура Android. Понятно и подробно
• Kodein DI для Android. KMP и Compose
• Миграция продакшен приложения из Room в SQLDelight
• Инъекция зависимостей или локатор служб?
• Компиляция Record для Android
• Как я осваивал Jetpack Compose
• Паттерн делегирования для написания многократно используемых компонентов Compose
• Как мониторить здоровье вашей Gradle-сборки
• Как сделать приложение для мобильного стриминга на Android с помощью опенсорс-инструментов и EdgeStreaming
• Определение произвольной точки на полигоне. Jetpack Compose. Canvas. Algorithm
• Unit-тесты для галочки — как не надо делать и как исправить
• Compose Pathway #1: знакомство с фреймворком
• Оно само: используем плагины компиляции
• Compose, еще раз Compose и развитие сообщества
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/webt/ma/lx/8h/malx8hbgozt6lee8rmxmg96_s6a.png)
• 4 сценария, когда нужно сделать ставку на Kotlin Multiplatform, а не Flutter
• Что быстрее: Animated + useNativeDriver или Reanimated?
• Реактивные формы во Flutter: как делать формы с меньшими трудозатратами
• Что такое keys во Flutter?
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/708/1c6/34e/7081c634ec176ab6b953d9d19e82a09a.png)
• Скользкий кусок мыла: контроллер из телефона
• 40 лет программирования
• Как показать номер версии на экране загру…
• 8 вещей, которые я усвоил за 6 лет карьеры разработчика
• Как тестировщику уйти из корпорации в стартап и не сойти с ума
• Как применяется и для чего нужен local first подход
• Tesla выпустила первый API для приложений сторонних разработчиков
• Podlodka #340: зачем нужны ИТ-рекрутеры
• Podlodka #339: все про кодировки текста
• Microsoft отказывается от VBScript
• Яндекс выпустил NaviKit SDK для создания собственной навигации
• Всеобъемлющий Rust — бесплатный курс
• Визуализация данных с помощью Python — бесплатный курс от IBM
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![](https://habrastorage.org/getpro/habr/post_images/509/dc9/bde/509dc9bde69347ecbe0c21ff2973d7e7.jpg)
• Самые скачиваемые и зарабатывающие приложения в сентябре 2023
• В 2023 году потребители проведут в Android-приложениях для покупок 50 млрд часов
• Character.AI добавляет групповые чаты с ИИ
• Приложение Keepler поможет улучшить навыки свиданий или отношений
• Clash of Clans и Clash Royale выходят на ПК
• Компании теряют деньги на ИИ
• Respawn — управление задачами и привычками: разбор приложения
• Microsoft обновила веб-версию магазина приложений для Windows
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![](https://habrastorage.org/getpro/habr/post_images/853/812/9f5/8538129f5e7b404a720121cb9c3814db.jpg)
• Делаем HMI-панель из планшета для системы автоматизации на контроллере Wiren Board
• Разговоры с кроватью, про Яндекс Алису и умный дом Home Assistant
• Open Interpreter: выполнение локальных задач с Code Interpreter
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.