Нашел интересную статью о том, что когда вы закончили проект, то это как бы не совсем конец. Как пишут, основной проект, может быть, и завершен, но впереди еще много работы. Да, очевидный результат достигнут (производительность улучшена, статья опубликована и т.п.), но дальше надо дать этому проект жизнь. Можно в оставшиеся 10% представить проект другим командам, выложить код для других, продумать смежные проекты и т.п. В общем - довольно занятный взгляд. Подумайте, как можно применить к вашей деятельности.
Разработка
• Не останавливайтесь на 90%
• Стартапы бесплатно получат ресурсы VK на сумму до 2 млн рублей
• Spotify представил новую платформу Confidence для A/B-тестирования
• Apple может тестировать Mac Mini на M3
• Мифы и легенды о безопасности мобильных приложений
• Avito Security Meetup
• Podlodka #329: с чего начинается Big Data
• AI Companion App: легкий стек для создания и размещения собственных ИИ-компаньонов
• Как конфигурировать функциональность мобильных приложений
• How to Build Toxic Software Teams
Маркетинг
• Чтение книг с переводом: разбор приложения
• WePlay ставит рекорды прибыли
• Сила Streak: повышение вовлеченности обучающих приложений
• Многолетнее падение загрузок WhatsApp остановилось
Кроссплатформа
• Как мы сделали онлайн-редактор кода на Flutter
• jonasuekoetter/understanding-and-building-a-replacement-for-firebase-dynamic-links-2dedd4ea5401">Understanding and Building a Replacement for Firebase Dynamic Links
• pluzhnikov137/boosting-flutter-integration-tests-execution-speed-in-pipeline-by-3x-fe20ddcc5af1">Boosting Flutter Integration tests execution speed in pipeline by 3x!
iOS
• App Store Connect Swift SDK: SDK для работы с App Store Connect
• Кто ты, SwiftData
• GC, ARC, RAM. Часть 3. iOS
• На сколько Swift удобен для DSL?
• Reducing JPEG UIImage RAM Usage by 50%
• Smart Open Xcode
• SwiftData Saving Changes
• Objective-C Internals
• SwiftData Basics Tutorial: How to Easily Persist Data in SwiftUI
• Running Automated Tests via CI Pipelines: GitHub Actions
• Migrating to the Observation framework in SwiftUI
• Notification action buttons with images in iOS
#ios
По ту сторону дефолтных аватаров
Новый еженедельный дайджест - 125 материалов! Прочитайте, поставьте 👍, сохраните в избранное и поделитесь с коллегами. Еще у меня есть канал IT Insights, где новости и статьи про код, технологии и все самое интересное за пределом мобайла. Вот, например, там была интересная ссылка "Проектно-ориентированное обучение" - туториалы, с помощью которых начинающие разработчики научатся создавать приложения с нуля. Эти учебники разделены по основным языкам программирования, есть Dart, Kotlin и Swift.
💻 Прислать материал для дайджеста можно сюда
Видео и подкасты за неделю
• (iOS Ru)
Кто ты, SwiftData
• (iOS Ru)
GC, ARC, RAM. Часть 3. iOS
• (iOS Ru)
Поле для ввода кода доступа
• (iOS Ru)
Coffee&Code #9: Николай Трухин, молодой синьор-разработчик из Белграда
• (iOS En)
What I've learned implementing Swift Macros: 5 takeaways
• (iOS En)
SwiftUI Animated Tags View - Layout API
• (iOS En)
SwiftData Basics Tutorial: How to Easily Persist Data in SwiftUI
• (iOS En)
How to format physical units in Swift using MeasurementFormatter
• (iOS En)
SharePlay - Turn your app experience into a shared experience
• (iOS En)
SwiftUI: Scroll to Hide Tab Bar
• (And Ru)
Как Google победил фрагментацию в Android
• (And Ru)
Инди-разработка Android-приложений: боли, идеи и заработок
• (And En)
Fixing touch target size in PLR
• (And En)
Live Edit for Jetpack Compose
• (And En)
Android Studio Giraffe stable release, New Samsung foldables, and more dev news!
• (And En)
Top App Bar (Toolbar) - UX With Material3
• (And En)
Selection UI Components (Checkboxes, Switches, Radio Buttons) - UX With Material3
• (And En)
Android Worldwide July 2023
• (Crs Ru)
Как мы сделали онлайн-редактор кода на Flutter
• (Crs En)
Firebase Analytics in Flutter app
• (Crs En)
Scale McDonald’s with KMM
• (Dev Ru)
Мифы и легенды о безопасности мобильных приложений
• (Dev Ru)
Avito Security Meetup
• (Dev Ru)
Podlodka #329: с чего начинается Big Data
Посмотрели/выпустили какое-то другое интересное видео? Отправьте боту🧑🏻💻
Android
• Debugging Google Maps App Issue on Android
• Debugging the recomposition in Jetpack Compose
• Clok: The math behind the clock
#android
Мобильный опыт 2023
Компания Embrace выпустила отчет The State of Mobile Experience 2023. В нем исследуются основные проблемы пользователей мобильных приложений и их разработчиков.
Например, традиционный предмет исследования — по какой причине пользователи готовы удалить приложение.
1. На первом месте сбои - 32% (точно удалю) + 28% (скорее всего удалю).
2. На втором неотзывчивые кнопки (22% + 29%).
3. На третьем фризы (28% + 23%).
4. Далее невозможность заполнить формы, медленный запуск приложения, долгая загрузка видео и изображений.
5. При этом фризы хотя бы раз в день встречает 44% пользователей, а креши 45%. Как они живут с такими приложениями - большой вопрос.
И что: в мире мгновенного удовлетворения потребностей и постоянно совершенствующихся технологий пользователи приучены ожидать от своих устройств все более быстрого ответа и безошибочной работы. Так что тестированию и отслеживанию быстродействия/сбоев надо уделять особое внимание.
Android
• Stable Diffusion AI: свой генератор изображений для Android
• Оптимизация анимации на Compose: крутим лоадеры, ищем неочевидные функции
• williamrai13/how-i-became-an-android-developer-4b4dfa230fcf">How I became an Android Developer
• Android 13 Runtime Notification Permission: XML & Jetpack Compose Guide
• Debugging Alarms with ADB
• margin555/using-string-resources-in-a-viewmodel-e334611b73da">Using String Resources in a ViewModel
#android
В Xcode наконец-то можно попробовать TipKit - новый фреймворк для показа всплывающих подсказок. Работает пока не до конца, но судя по описанию выглядит довольно функционально и полезно. А еще Kotlin Multiplatform Mobile (KMM) всех задолбал и превращается просто в Kotlin Multiplatform (KMP) - чтобы не путать всех с мобильными платформами (ибо сейчас он поддерживает еще веб и десктопы).
Разработка
• Kotlin Multiplatform Mobile (KMM) превращается в Kotlin Multiplatform (KMP)
• Об одном подходе к исследованию вероятностных характеристик на примере реального продукта
• Explaining Vector Databases in 3 Levels of Difficulty
• 5 UX Secrets Behind the Success of Threads App by Meta
Маркетинг
• Самые скачиваемые и зарабатывающие приложения в России в июле 2023
• Bloom учит Поколение Z инвестициям
Кроссплатформа
• Intercepting Ktor Network Responses in Kotlin Multiplatform
• A Deep Look Into Flutter Databases
• How we reduced bundle size by 15% with patching package
iOS
• Добавляем обучающие моменты в приложения с помощью TipKit
• iTorrent: торрент-клиент для iOS
• jacobmartinbartlett/unit-testing-with-async-await-123c6c4a6fbd">Unit Testing with async/await
• iOS Interview Guide: Custom higher-order functions in Swift
• Modularised Navigation in SwiftUI — An Enum-based Approach
• The Large Title UINavigationBar Glitches and How to Fix Them
• Localization testing in Xcode
• SwiftUI Tutorial: Navigation
#ios
Сейчас в App Store и Google Play представлено 746 тыс. мобильных игр. 70% мобильных игр находятся в Google Play, а остальные 30% — в App Store. В AppFigures провели исследование - в каких странах больше всего выпускают (издают) мобильные игры (как это сделать по описанию в магазине не совсем понятно, но пусть). США лидируют с огромным отрывом - там сделано 32.6% всех игр. На втором месте Китай с “всего” 5.1%. Россия с 3% на 5 месте, между Германией и Индией. Самая хорошая цифра в другом - в июне в двух магазинах было опубликовано 17 тысяч новых игр, что является самым высоким показателем по количеству новых релизов за месяц в этом году. А вы сколько новых игр скачали в прошлом месяце? 🙂
Разработка
• Какие страны выпускают больше всего мобильных игр?
• Исследование State of Databases 2023
• Что такое магистральная разработка
• Алгоритмическое собеседование в Яндекс в прямом эфире
• Постоянные отказы на собеседованиях: что мне делать
• На шаг ближе к метавселенной, или Как мы оживили аватары пользователей в VK Звонках
• Как сделать аналог Firebase App Distribution
• Ozon Tech Intro Meetup: как работают системы поиска, рекомендаций и рекламы
• Iosevka: шрифт для кода
• Эвристики Нильсена на примере реальных приложений
• Что порой кроется за «успехом»
• A WWDC Design Lab Made My App So Much Better
• Before you try to do something, make sure you can do nothing
Маркетинг
• DSP: различия и преимущества lookalike и предиктивных моделей. Часть #2
• Pokemon Sleep набрал 2 млн установок
• Rewind выпустил приложение для iPhone, которое поможет вам запомнить всё
• $18.2 млн в Серии B: Airvet — телемедицина для домашних животных
Кроссплатформа
• Кодогенерация для Flutter: что, как и зачем
• Будущее iOS-разработки на Flutter
• jacobras/popular-apps-using-kotlin-multiplatform-kmp-in-2023-and-what-you-can-learn-from-them-1f94d86489b7">Popular apps using Kotlin Multiplatform (KMP) in 2023 — and what you can learn from them
• Scale McDonald's with KMM
iOS
• Distributed actors и где они обитают
• Apple определила API, использование которых надо будет объяснять
• Thread Safety в Swift
• Adding teachable moments to your apps with TipKit
• Swift Macros
• Composable Architecture 1.0
• Animating Carrousel Transitions in SwiftUI
• DocC Tutorial for Swift: Automating Publishing With GitHub Actions
• Observation Framework in iOS 17
• Crafting a Swift Package Plugin for App Data Protection
#ios
Видео и подкасты за неделю
• (iOS Ru)
Distributed actors и где они обитают
• (iOS En)
TipKit - iOS 17 - SwiftUI
• (iOS En)
OSLog and Logger
• (iOS En)
Radial Layout With Gestures - SwiftUI
• (iOS En)
Inout Parameters and Mutating Functions
• (iOS En)
How to master Combine like a Pro – The Basics
• (iOS En)
SwiftUI NavigationStack Hero Animation Effect - Custom Matched Geometry Effect
• (And Ru)
Секретная фича в Android Studio: логируем, пока дебажим, не меняя сам код
• (And En)
Now in Android: 87 - Android 14 Beta 4, Google Play policy update, and Compose Performance
• (And En)
What's new in Android Studio - Giraffe
• (And En)
Text Fields - UX With Material3
• (And En)
Buttons - UX With Material3
• (Crs Ru)
Кодогенерация для Flutter: что, как и зачем
• (Crs En)
Build an iOS & Android app in 100% Kotlin with Compose Multiplatform
• (Dev Ru)
Ozon Tech Intro Meetup: как работают системы поиска, рекомендаций и рекламы
• (Dev Ru)
На шаг ближе к метавселенной, или Как мы оживили аватары пользователей в VK Звонках
• (Dev Ru)
Как сделать аналог Firebase App Distribution
• (Dev Ru)
Алгоритмическое собеседование в Яндекс в прямом эфире
• (Dev Ru)
Постоянные отказы на собеседованиях: что мне делать
• (Dev En)
The ultimate guide to A/B testing
Посмотрели какое-то другое интересное видео? Отправьте боту🧑🏻💻
Вышло второе наше интервью с Андреем Белоусом - на этот раз про поиск работы в Европе. Главных совета 3 - итеративно улучшаться в разработке, прокачивать софт-скилы и язык. Вес остальное более менее в рамках разумного. Андрей еще готов отвечать на вопросы - о чем вам было бы интересно поговорить? Скидывайте темы или прямо вопросы в комментарии.
Разработка
• Работа в Европе для мобильных разработчиков
• Новая AR-платформа Mirrorscape улучшает Dungeons & Dragons
• Stability AI выпускает Stable Diffusion XL 1.0
• Проектируем функционал сторис
• Building Startups as a Developer: Learning from My Mistakes
• Automating Web Scraping with ChatGPT Code Interpreter
Маркетинг
• Маркетинг подписных приложений 2023 — отчет AppsFlyer и Liftoff
• Google Play начнет пессимизировать приложения, не поддерживающие планшеты
Кроссплатформа
• Под капотом анимаций в React Native. Часть 1/2: Animated and Bridge
• Integrate Apple Sign-In on Android using Flutter
• namtarr/kmm-in-a-simple-language-learning-app-was-it-worth-it-d685463174c7">KMM in a simple language learning app: was it worth it?
• migalv/improve-your-flutter-app-performance-with-this-small-trick-110681a4d480">Improve your Flutter app performance with this small trick
iOS
• Библиотека криптования ChaCha20
• Разбираю Swift Runtime на детали
• Superwall: Remote Paywall Configuration on iOS
• iOS Development with Factory: The Power of Dependency Injection
• onlyapps/how-to-create-and-publish-your-own-swift-package-manager-spm-library-6704063bcc8c">How to Create and Publish Your Own Swift Package Manager (SPM) Library
• paereson/how-to-deal-with-custom-fonts-in-swift-and-swiftui-f7886a824ac8">How to deal with custom fonts in Swift and SwiftUI
• ahmetenesirmak/swift-access-control-a649560d9532">Access Control in Swift
#ios
Android
• Вышла стабильная версия Android Studio Giraffe
• A Step-by-Step Guide to Building a Timeline Component with Jetpack Compose
• Jetpack Compose — The order of modifiers does matter
• Nibel: A Navigation Library for Adopting Jetpack Compose in Fragment-Based Apps
• sumitkmr/coroutines-masterclass-chapter-1-foundation-of-coroutines-8ef5bd677016">Coroutines Masterclass: Chapter-1: Foundation of Coroutines
• Exploring Differences Between lateinit and lazy in Kotlin
#android
Android
• Инди-разработка Android-приложений: боли, идеи и заработок
• Как Google победил фрагментацию в Android
• Jetpack Compose Permissions: A Quick and Easy Guide
• Android Lint workflow using Github Actions
• Transforming UseCase: Embracing Fluent and Functional Approach
• Supercharging Continuous Integration with Gradle
• Google Shutting down Firebase Dynamic Links
#android
Чтение книг с переводом: разбор приложения
Разбираю приложение @x_TT_x - читалку книг со встроенным переводчиком.
TLDR: сделано хорошо, но продуктовой истории не видно. Может стоит изменить фокус и проработать пресловутую JTBD?
Статья: https://apptractor.ru/info/articles/chtenie-knig-s-perevodom-razbor-prilozheniya.html
Если хотите принять участие - пишите в комменты.
Мои коллеги делают приложение AdMobile, фронт для AdMob/AdSense, который показывает данные о заработке и прочую аналитику.
В приложении:
• подробные данные о заработке в каждом приложении
• данные за день, неделю или месяц с графиками
• по странам, рекламным юнитам,
• есть информация о выплатах
• виджет для домашнего экрана
• поддерживает несколько аккаунтов
• даже WearOS.
Если работаете с рекламной монетизацией - самое то: https://play.google.com/store/apps/details?id=io.stark.admob
С мест докладывают, что теперь в RuStore можно публиковать приложения для Smart TV на базе Android. Откуда RuStore на Smart TV? Хороший вопрос, говорят, что должны появится этим летом, так что аудитория их, наверное, пока исчезающе мала.
Разработка
• Самые высокооплачиваемые вакансии июля в области разработки приложений
• Наступает закат эпохи смартфонов
• Разработка мобильных приложений: ключевые принципы продуктового и проектного подходов
• Backend Driven…аналитика? Backend Driven аналитика
• IronZen: как мы решили боль тысяч тревожных людей, разработав собственное мобильное приложение
• A Realistic Day of a Product Manager’s Life at Microsoft
• Vertical vs. Horizontal Cards: Which Are Better?
• Tidal Cycles – Live coding music with Algorithmic patterns
Маркетинг
• «Мобильный опыт 2023» — отчет Embrace
• В RuStore появилась возможность загружать приложения для ТВ
• $100 млн: Inworld — ИИ для NPC
• Смарт-очки Ray-Ban почти не используются
Кроссплатформа
• Firebase Analytics in Flutter app
• Understanding Keys, Elements, RenderObjects and their interplay in Flutter
• The basics of Layout Animations in React Native Reanimated
iOS
• Создаем дефолтные аватары пользователей в SwiftUI
• visionOS 30 Days: уроки разработки для visionOS
• How to use type erasure in Swift with a real example
• Advanced async testing: Unstructured concurrency
• Animate background with color gradient in SwiftUI
• Understanding iOS Memory Management With Toy Analogies
#ios
На iOS вышла The Composable Architecture 1.0 от Point Free. Она призвана решить основные архитектурные проблемы и сделать код тестируемым, простым, композитным. Правда, в примере показывают, как делать простой кликер. На это нужно раз в 10 больше кода, чем на “ванильном SwiftUI”. Так что кто его знает, на больших проектах может и пригодится, а так… 👨💻
Разработка
• Snapchat запустил новую программу вознаграждения создателей AR-линз
• Как маленькая нейроязыковая модель в Клавиатуре победила серверные подсказки
• Модерируемое юзабилити-тестирование: от идеи до задачи в таск-трекере
• How DoorDash Migrated from StatsD to Prometheus
• omarmahin0/oride-ux-case-study-bbcfe4d03ef4">ORIDE — UX Case Study
Маркетинг
• Какая конверсия в платящего пользователя хорошая?
• Amazon Clinic заработал во всех штатах
Кроссплатформа
• Мобильная мультиплатформенная разработка в McDonald’s
• How To Use Lints In Flutter
• Storing data from the Flutter app → Google Sheets
• muralitharan0002/enhance-your-react-native-application-performance-27bfe3578ac4">Enhance your React Native Application Performance
iOS
• The Composable Architecture достигла версии 1.0: что это такое
• Elevate User Experience: Create Default Avatars in SwiftUI
• Streamlining Similar View Controllers: A Swift Tutorial to Embrace the Refactor Mindset
• Mastering StoreKit 2
• How to automate taking screenshots with fastlane for iOS
#ios
Android
• Лучший спутник в вашем творческом процессе: Android Studio Bot VS ChatGPT для разработчиков
• How to create a chatbot with Firebase Firestore and PaLM on Android
• Try the K2 compiler in your Android projects
• Android Worldwide July 2023
• Gradle Cache: Your build’s best friend
• Firebase Dynamic Links Depricated! Migrate to Android App Links
• Passing events from Composable functions to MVI ViewModels
#android
Самые скачиваемые и зарабатывающие приложения в России в июле 2023
Установки
Неудивительно, что при всем ажиотаже Threads от Instagram* занял в установках первое место. По оценке AppMagic, новая социальная сеть получил в России более 3 миллионов установок.
1. Threads, an Instagram app
2. Telegram
3. Wildberries
4. Yandex with Alice
5. drivee
6. TikTok
7. OZON: товары, продукты, билеты
8. Free VPN Proxy by Planet VPN
9. WhatsApp Messenger
10. Авито: квартиры, авто, работа
Заработок
Лидер ВКонтакте заработал за месяц более $1 миллиона. Телеграм на третьем месте около $850,000.
1. VK: social network, messenger
2. Royal Match
3. Telegram
4. PUBG MOBILE
5. Roblox
6. Gardenscapes
7. FaceApp: Perfect Face Editor
8. Homescapes
9. Litres: Books and audiobooks
10. Tanks Blitz PVP битвы
Интересный запуск
В Google Play вышло приложение "Яндекс Смена: поиск подработки", новое приложение для поиска дополнительного заработка, местный аналог When I Work. За три недели приложение набрало в России уже около 15,000 установок и постоянно растет. Мог ли кто-нибудь кроме Яндекса такое запустить? Это интересный вопрос.
Поставьте 👍, если интересен такой формат.
Android
• Compose Adaptive Scaffold: простая поддержка больших экранов
• Секретная фича в Android Studio: логируем, пока дебажим, не меняя сам код
• Прикладное adb (Android Debug Bridge) для зумеров
• Designing a Functional Library
• Jetpack Compose for Maps
• Deep dive into Live Edit for Jetpack Compose UI
• Modelling the domain layer using composable use cases
• Lazy Grids for Android TV using Jetpack Compose
• Fluent and Fun Clean Architecture using Kotlin
#android
Разбираем фризы неизменной ценности
Новый еженедельный дайджест - 111 материалов! Прочитайте, поставьте 👍 и обязательно поделитесь с коллегами. Еще у меня есть канал IT Insights, где новости и статьи про код, технологии и все самое интересное за пределом мобайла. Вот, например, там была интересная ссылка "Исчерпывающее руководство по локальному запуску Llama 2" - как запустить модель Llama 2 на M1/M2 Mac, Windows, Linux или даже на телефоне.
💻 Прислать материал для дайджеста можно сюда
Apple определила API, использование которых надо будет объяснять
На WWDC компания объявила, что разработчики должны будут указывать причины использования отдельных API в декларации конфиденциальности своего приложения.
1. Сделали это, конечно, во имя конфиденциальности и безопасности, чтобы по ним не отслеживали отдельных пользователей.
2. Среди API - File timestamp API, определяющие даты создания файлов, System boot time API, раскрывающие информацию о времени работы ОС, Disk space API, дающие информацию о доступном пространстве в хранилище.
3. User defaults API, самая простая "официальная" система для хранения настроек и прочей информации, тоже попал под раздачу. Впрочем, вероятно, UserDefaults надо будет запрашивать при доступе к данным только сторонних приложений?
4. Все это касается и сторонних SDK, за них тоже надо будет отчитываться.
5. Начиная с осени 2023 г. при загрузке в App Store Connect нового приложения или обновления приложения, использующего API, для которого требуется указание причины, вы будете получать уведомление, если в декларации конфиденциальности вашего приложения не указана утвержденная причина. А начиная с весны 2024 г. это станет обязательным.
И что: всё во имя человека, для блага человека. И мы даже знаем имя этого человека 🍏
Android
• Настраиваем интерфейс Android-приложения с помощью тем
• SQLDelight: типобезопасные Kotlin API из SQL
• Переиспользование модулей в многомодульных Android приложениях
• Error Handling in Clean Architecture using Flow and Jetpack Compose
• Kotlin Enum Class
• Simplify Dependency Management for Android Projects with Gradle Version Catalog and Dependabot
• rahmicemreunal/navigating-the-complexities-building-a-scalable-multi-module-navigation-architecture-in-android-bbf4ddc18911">Navigating the Complexities: Building a Scalable Multi-Module Navigation Architecture in Android
#android
Вы давно просили - и вот свершилось. Канал с английскими материалами - Mobile Economy. Как там будет все развиваться пока не совсем понятно, но вы все равно подписывайтесь 🙂 А еще есть apptractor">блог на Medium с теми же самыми английскими дайджестами.
Разработка
• Умные колонки Assistant не перейдут на Fuchsia
• Значение совещаний и некоторые альтернативы
• Platform engineering is just DevOps with a product mindset
• A comprehensive guide to running Llama 2 locally
Кроссплатформа
• The Top 5 Flutter State Management Solutions: A Deep Dive
• FlutterCon 23 Resources
iOS
• Design Patterns In Swift: паттерны проектирования на Swift
• Эксперты App Store: онлайн-сессии в августе
• chloehoulihan/chloes-opinionated-and-biased-law-of-swiftui-905e07563a8d">Chloe’s Opinionated and Biased Law of SwiftUI
• mobile_44538/integrating-the-swift-estimoteuwb-sdk-into-your-swiftui-project-a8e6fe709410">Integrating the Swift EstimoteUWB SDK into your SwiftUI project
• mihailsalari_76470/embracing-the-future-with-swift-concurrency-a-comprehensive-overview-d43b566e08b8">Embracing the Future with Swift Concurrency: A Comprehensive Overview
• Why you should use OSLog in 2023
#ios