В новом дайджесте своя прошивка с нуля и поваренная книга SwiftUI, автоматическая публикация приложений и работа в Apple без Leetocde и колледжа, защита простых архитектур, самые быстрорастущие приложения августа, стартовый набор для ИИ-города и многое другое.
В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!
![](https://habrastorage.org/r/w1560/webt/qd/cm/d9/qdcmd90dlvked1mzsot6gz4ng3k.png)
iOS
• Автоматизация увеличения номера сборки Xcode в кастомном формате
• Приложение Rocket Launch c GraphQL-запросами через Apollo
• “Поваренная книга SwiftUI” от Kodeco
• Apple Watch X станут серьезным обновлением
•
Applying metal shader to text in SwiftUI
•
AppKit vs SwiftUI: Stable vs Shiny
•
Adaptative Views That Fit Anywhere in SwiftUI
•
Augmented Reality’s RoomPlan for iOS: Getting Started
•
How to Create a Flexible View With SwiftUI Layou
•
Unified Swift/SwiftUI Library Deployment
•
iOS Interview Guide: Escaping and Non-Escaping Closures in Swift
•
How to Create a Flexible View With SwiftUI Layout
•
Discover MeasurementFormatter
•
Mistakes to Avoid When Implementing Quick Tips with SwiftUI’s TipKit
•
Mastering Thread Safety in Swift With One Runtime Trick
•
Round Specific Corners in iOS 17 & SwiftUI 5
•
Apple’s Animation APIs: Through the Ages
•
Unveiling the Future: Apple VisionOS Explained with Use Cases
•
Building a searchable map with SwiftUI and MapKit
•
Build a Reactive Screen Flow in Swift With Workflow
•
iOS Architecture: Separating logic from effects
•
The DI crashers
•
The Singleton Chronicles: The “One Ring” of iOS Design Patterns
•
DataKit: чтение и запись данных в двоичном формате
•
Swift Transformers: языковые модели на iPhone
Android
• Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля
• Kodein DI для Android. Основы API
• Публикуем Android приложения автоматически с помощью Gitlab CI
• Android Generic Kernel Image — как Google может (теоретически) заменить ядро Linux
• Yandex MapKit для новичков: разрабатываем карты в Android-приложении
• А это можно запустить в фоне?
• Ракету пустил и забыл. Или как заставить DI работать
• Organic Maps — открытые оффлайн карты
• Аналитика многомодульных проектов
• Jetpack Emoji Picker: новый способ добавления эмодзи в приложение для Android
•
A glimpse of K2 in Now In Android
•
State Holders in Jetpack Compose
•
Tabbed Navigation for Android TV using Jetpack Compose
•
Add Shake Animations to your Composable
•
The most important aspect of the Kotlin flow operator — combine()
•
What Are the Top 7 Android App Development Trends in 2023?
•
Drag to Reorder RecyclerView Items with Kotlin
•
Seamless Play of D&D — Implementing Drag and Drop Across Multiple Screens
•
How to use cubic Bézier curves in Jetpack Compose
•
Choosing the right storage experience
•
Android-Hidden Users for Specific Account
•
Stop Calling Kotlin Flows Hot and Cold
•
Kotlin’s Supercharged Flow API — Combining and Merging Flows for Reactive Programming
•
Enrich stylus and mouse experiences with hover
•
Navigating the Complexities: Multi-Module Navigation with Navigation Component
•
Recreating UseCase: Embracing a Fluent and Fun Approach
•
Android’s most commonly asked interview questions
•
Most commonly discussed interview questions about Android— Part II
•
Mastering JSON Serialization and Deserialization with Moshi in Kotlin
•
Clean Architecture for Android Sample Project: чистая архитектура для Android
•
Jetpack Compose UI Architecture Plugin: шаблоны для быстрой разработки
Кроссплатформа
• Ой, всё! Или как мы ошибаемся в Dart и Flutter
• Как заставить Flutter глитчевать?
• KivyMD на «кухне»
• Flutter Dev Podcast #41: FlutterFlow
•
Create an AI Image Generator In Flutter
•
Generative Art in Flutter
•
MVI in Kotlin Multiplatform
•
Enhancing Scalability and Structure in Flutter App Architecture
•
Creating Ultra gradients with flutter
•
Niyo’s journey with the Flutter mobile app
•
Dart 3.1 & a retrospective on functional style programming in Dart 3
•
What’s new in Flutter 3.13
•
Dioxus: Fullstack GUI-библиотека
Разработка
• Как получить работу в Apple без колледжа и LeetCode
• В защиту простых архитектур
• Руководство по Jobs to Be Done и Desired Outcomes для дизайна интерфейсов
• Рынок вакансий мобильных разработчиков упал на 24%. Объясняем почему так случилось
• Developer Speaking Club #0: как правильно обучаться, загрузка файлов и как войти в IT
• Как выйти из IT: опасный бизнес
• Podlodka #333: делаем бизнес на опенсорсе
• $25 млн в Серии А: ProjectDiscovery — открытая платформа поиска уязвимостей
• $3 млн: Configu — платформа configuration-as-code
• VK Education открывает набор на бесплатные курсы по Go, Python и технической поддержке
• Как программировать и двигаться вперед быстрее
• Моя история: $0->$100 млн->$0 за 5 лет
• Как разработчику готовиться к собеседованиям
•
Simple APIs are elegant APIs
•
Junior to senior: An action plan for engineering career success
•
A Flexible Framework for Effective Pair Programming
•
5 common code patterns slowing down your app
•
Speech and Natural Language Input for Your Mobile App Using LLMs
•
Amazon Prime Video reduced costs by 90% by ditching Microservices
•
Scaling the Instagram Explore recommendations system
•
How we reduced the cost of building Twitter at Twitter-scale by 100x
•
What is offline-first architecture?
•
How To Create Compound Efficiencies In Engineering
•
What I learned after managing a small team for 2 years
Аналитика, маркетинг и монетизация
• «Белый шум» на Spotify стоит $38 млн в год
• Skich, приложение для обнаружения мобильных игр, теперь позволяет запускать и управлять играми
• Roblox разрешает продавать сделанные тела и головы аватаров
• Catchup — простое приложение для напоминания о необходимости связаться с друзьями и близкими
• Setapp планиурет запустить магазин приложений на iOS в Европе
• Топ быстрорастущих приложений в России в августе
• Slack уступает Teams и Discord (опрос)
• Самые зарабатывающие приложения в июле 2023
• Bumble for Friends: решение для несуществующей проблемы?
•
No, you don’t want an app
AI, Устройства, IoT
• Почему здесь так жарко? Взламываем умный кондиционер
• Простая нейронная сеть без библиотек и матриц. Эволюционный алгоритм
• Промышленная безопасность: умные каски
• Lavritech L1: полная версия контроллера на платформе LavriBoard7
• RT-2 — новая модель переводит видение и язык в действия роботов
•
AI Town: стартовый набор для создания и настройки собственного ИИ-города
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
В нашем Telegram-канале Mobile Insights, еще больше материалов для мобильных разработчиков, а в IT Insights — об интересном коде и технологиях. Подключайтесь!
![](https://habrastorage.org/webt/qd/cm/d9/qdcmd90dlvked1mzsot6gz4ng3k.png)
![](https://habrastorage.org/getpro/habr/post_images/f19/30a/c49/f1930ac4945596eb9707bc7a01bc5bdc.png)
• Автоматизация увеличения номера сборки Xcode в кастомном формате
• Приложение Rocket Launch c GraphQL-запросами через Apollo
• “Поваренная книга SwiftUI” от Kodeco
• Apple Watch X станут серьезным обновлением
•
![](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/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)
• Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля
• Kodein DI для Android. Основы API
• Публикуем Android приложения автоматически с помощью Gitlab CI
• Android Generic Kernel Image — как Google может (теоретически) заменить ядро Linux
• Yandex MapKit для новичков: разрабатываем карты в Android-приложении
• А это можно запустить в фоне?
• Ракету пустил и забыл. Или как заставить DI работать
• Organic Maps — открытые оффлайн карты
• Аналитика многомодульных проектов
• Jetpack Emoji Picker: новый способ добавления эмодзи в приложение для Android
•
![](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/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/webt/ma/lx/8h/malx8hbgozt6lee8rmxmg96_s6a.png)
• Ой, всё! Или как мы ошибаемся в Dart и Flutter
• Как заставить Flutter глитчевать?
• KivyMD на «кухне»
• Flutter Dev Podcast #41: FlutterFlow
•
![](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/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/708/1c6/34e/7081c634ec176ab6b953d9d19e82a09a.png)
• Как получить работу в Apple без колледжа и LeetCode
• В защиту простых архитектур
• Руководство по Jobs to Be Done и Desired Outcomes для дизайна интерфейсов
• Рынок вакансий мобильных разработчиков упал на 24%. Объясняем почему так случилось
• Developer Speaking Club #0: как правильно обучаться, загрузка файлов и как войти в IT
• Как выйти из IT: опасный бизнес
• Podlodka #333: делаем бизнес на опенсорсе
• $25 млн в Серии А: ProjectDiscovery — открытая платформа поиска уязвимостей
• $3 млн: Configu — платформа configuration-as-code
• VK Education открывает набор на бесплатные курсы по Go, Python и технической поддержке
• Как программировать и двигаться вперед быстрее
• Моя история: $0->$100 млн->$0 за 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/getpro/habr/post_images/509/dc9/bde/509dc9bde69347ecbe0c21ff2973d7e7.jpg)
• «Белый шум» на Spotify стоит $38 млн в год
• Skich, приложение для обнаружения мобильных игр, теперь позволяет запускать и управлять играми
• Roblox разрешает продавать сделанные тела и головы аватаров
• Catchup — простое приложение для напоминания о необходимости связаться с друзьями и близкими
• Setapp планиурет запустить магазин приложений на iOS в Европе
• Топ быстрорастущих приложений в России в августе
• Slack уступает Teams и Discord (опрос)
• Самые зарабатывающие приложения в июле 2023
• Bumble for Friends: решение для несуществующей проблемы?
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![](https://habrastorage.org/getpro/habr/post_images/853/812/9f5/8538129f5e7b404a720121cb9c3814db.jpg)
• Почему здесь так жарко? Взламываем умный кондиционер
• Простая нейронная сеть без библиотек и матриц. Эволюционный алгоритм
• Промышленная безопасность: умные каски
• Lavritech L1: полная версия контроллера на платформе LavriBoard7
• RT-2 — новая модель переводит видение и язык в действия роботов
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.