На Reddit появился интересный пост. Руководитель из FAANG уволился, основал свой первый стартап с SaaS, нашел пресловутый PMF, собрал небольшую команду и все у него поперло - клиенты, семизначные доходы и т.п. Тут на беду пришли VC, дали инвестиций и стали требовать “роста”, да не простого, а максимального. И чувак забросил свой продукт и начал заниматься ростом. Клиенты разбежались, судя по названию компания закрылась. Вывод - у всего есть своя цена, в том числе и у инвестиций, роста, потери фокуса.
Разработка
• Моя история: $0->$100 млн->$0 за 5 лет
• Как разработчику готовиться к собеседованиям
• C++ Zero Cost Conf 2023 Москва
• Podlodka #332: что скрывают системы бронирования авиабилетов
• Simple APIs are elegant APIs
• Junior to senior: An action plan for engineering career success
• A Flexible Framework for Effective Pair Programming
• Moving faster
• 5 common code patterns slowing down your app
Маркетинг
• Самые зарабатывающие приложения в июле 2023
• Bumble for Friends: решение для несуществующей проблемы?
• Верховный суд постановил, что Apple может не открывать стороннюю оплату в App Store
Кроссплатформа
• Create an AI Image Generator In Flutter
iOS
• Swift Transformers: языковые модели на iPhone
• Apple Watch X станут серьезным обновлением
• Как жить с двумя провайдерами карт в крупном проекте
• Декларативная навигация в iOS-приложении
• В iOS/iPadOS включается системный экран помощи при проблемах с оплатой
• 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
#ios
• Unified Swift/SwiftUI Library Deployment
RuStore добавил рекламные инструменты для разработчиков и бизнеса
Теперь продвигать приложения внутри магазина и находить новых пользователей можно благодаря VK Рекламе: алгоритмы платформы автоматически предложат тексты объявлений и адаптируют изображения под формат рекламы в магазине. Рекламу увидит аудитория, которая вероятнее скачает мобильное приложение на смартфон. Меньше денег — больше установок.
Еще одно обновление в отечественном магазине приложений — персональные рекомендации. Благодаря им пользователи RuStore будут видеть новые и подходящие им приложения.
О новых инструментах — на сайте.
ИТ + научпоп + музыка = большой ИТ-пикник в Москве 💛
2 сентября Тинькофф, CodeFest и Мельница собирают большой благотворительный ИТ-фестиваль. Встречаемся в Коломенском на максимально летнем вайбе.
В программе: ИТ- и научпоп-лектории, выступления топовых спикеров, воркшопы, интерактивные зоны и вишенка на торте — музыкальные перформансы от Антохи MC, Zoloto, Therr Maitz, The Hatters, «Сироткина», а также секретного хедлайнера. Как думаете, кто им может быть?
Для участия нужно выбрать благотворительный фонд из списка и сделать донат от 1000 рублей. Подробности и регистрация — тут.
Реклама. АО "Тинькофф Банк"
Перевел вторую, практическую часть про современную архитектуру Android-приложений (первую можно прочитать здесь). Собственно, все изложено в начале - изучайте принципы, а не слепо следуйте правилам. Но в целом автор все излагает весело и задорно. Так что рекомендую.
Разработка
• Гибкая и современная архитектура приложений для Android: пошаговое руководство
• Stability AI запускает StableCode, большую языковую модель для генерации кода
• Google запустил Project IDX — облачную среду разработки c ИИ
• 18 Sites to Host Your Backend Code for Free
• Llama from scratch (or how to implement a paper without crying)
Маркетинг
• В RuStore появились рекламные инструменты для разработчиков и бизнеса
• A Simple Framework for Identifying Real User Problems
Кроссплатформа
• flutterwtf/top-famous-apps-built-with-flutter-framework-8aa5f0474520">Top Famous Apps Built with Flutter Framework
iOS
• Как мы улучшаем курс по iOS-разработке — и зачем вносить изменения сразу после запуска
• SwiftData: быстрый старт
• 5 iOS App Development Trends that Simplify Your Tech Journey
• mateuszsiatrak/automating-build-number-increments-in-xcode-with-custom-format-a-practical-guide-bcc90a19f716">Automating Build Number Increments in Xcode with Custom Format: A Practical Guide
• 10 signs you are a shit iOS developer
• My First VisionOS Application
• Xcode Debug Console Tour: Exploring All Options
#ios
Google запустил Project IDX — облачную среду разработки c ИИ
Google объявил о запуске Project IDX - браузерной среды разработки с поддержкой искусственного интеллекта.
1. В настоящее время она поддерживает такие фреймворки, как Angular, Flutter, Next.js, React, Svelte и Vue, и такие языки, как JavaScript и Dart, а поддержка Python, Go и других языков находится в стадии разработки.
2. В скором времени будут встроенные симуляторы Android и iOS прямо в браузере.
3. В качестве, собственно, IDE используется открытая Visual Studio Code.
4. В качестве ИИ используется Codey — базовая модель Google PaLM 2 для задач программирования. Благодаря Codey IDX поддерживает интеллектуальное завершение кода, чат-бот типа ChatGPT/Bard, который может помочь разработчикам как с общими вопросами, так и с вопросами, связанными конкретно с кодом, а также возможность добавления контекстных действий с кодом, таких как «добавить комментарии».
И что: проект IDX — это хорошая «песочница», в которой Google демонстрирует возможности искусственного интеллекта для разработчиков, но превратится ли он в полноценную IDE, которую разработчики захотят использовать в своих проектах, пока неясно.
Android
• Kotlin: взгляд изнутри — преимущества, недостатки и особенности
• andkemal/common-mistakes-to-avoid-in-jetpack-compose-d5093fb1169e">Common Mistakes to Avoid in Jetpack Compose
• Date & Time Picker with Compose
• callmeryan/a-developers-approach-to-identifying-jetpack-compose-usage-in-apps-978601e36de2">A Developer’s Approach to Identifying Jetpack Compose Usage in Apps
• Effortlessly Toggle Between LazyColumn and LazyVerticalStaggeredGrid
#android
Нашел интересную статью о том, что когда вы закончили проект, то это как бы не совсем конец. Как пишут, основной проект, может быть, и завершен, но впереди еще много работы. Да, очевидный результат достигнут (производительность улучшена, статья опубликована и т.п.), но дальше надо дать этому проект жизнь. Можно в оставшиеся 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
Android
• Девушка джун: войти в айти в 2023 без Java и диплома ВУЗа
• Эмпатичное проектирование
• Декларативная архитектура и навигация с Decompose
• Google Play Billing Samples: примеры использования Play Billing
• Android Generic Kernel Image — как Google может (теоретически) заменить ядро Linux
• Публикуем Android приложения автоматически с помощью Gitlab CI
• 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
• theAndroidDeveloper/the-most-important-aspect-of-the-kotlin-flow-operator-combine-e59b2e38fcb2">The most important aspect of the Kotlin flow operator — combine()
#android
Гибкая и современная архитектура для собственного удовольствия
Новый еженедельный дайджест - 103 статьи и новости. Прочитайте, поставьте 👍, сохраните в избранное и поделитесь с коллегами. Еще у меня есть канал IT Insights, где новости и статьи про код, технологии и все самое интересное за пределом мобайла. Вот, например, Oscilloscope Music - чумовая аудиовизуальная музыка.
💻 Прислать материал для дайджеста можно сюда.
Видео и подкасты за неделю
• (iOS Ru)
Как жить с двумя провайдерами карт в крупном проекте
• (iOS Ru)
Декларативная навигация в iOS-приложении
• (iOS En)
SwiftUI Dynamic Sheet Height - iOS 17
• (iOS En)
I converted a Core Data to SwiftData
• (iOS En)
What's New in Xcode 15
• (And Ru)
Эмпатичное проектирование
• (And Ru)
Девушка джун: войти в айти в 2023 без Java и диплома ВУЗа
• (And En)
Now in Android: 88 - Android Studio Giraffe, K2 compiler, and Jetpack Compose Live Edit
• (And En)
Fixing touch target size in PLR
• (And En)
Bottom Navigation Bar With Badges - UX With Material3
• (And En)
Bottom App Bars - UX With Material3
• (Crs En)
Compose Multiplatform on iOS in Production at Instabee
• (Crs En)
FlutterCon’23 Videos
• (Dev Ru)
Podlodka #332: что скрывают системы бронирования авиабилетов
• (Dev Ru)
C++ Zero Cost Conf 2023 Москва
Посмотрели/выпустили какое-то другое интересное видео? Отправьте боту🧑🏻💻
Тинькофф проведет большой мобильный митап в Воронеже 📲
Встречу соберут 19 августа на «Винзаводе». В программе докладов — четыре кейса:
— про то, как мы отказались от ручного тестирования;
— про безопасность приложений;
— и про ускорение сборки проектов.
А после — общение и нетворкинг. Кажется, лучше плана на субботу и не придумаешь!
📆 19 августа, «Винзавод», IT’s Tinkoff Mobile Meetup. Зарегистрироваться можно тут: https://o.tinkoff.ru/its_tinkoff_mobile_meetup.vrn
Android
• CloudStream: стриминг и скачивание медиа
• Jetpack WindowManager 1.1 is stable
• OTP/Pin Input Made Easy in Jetpack Compose
• How to avoid asking for Android Context in Kotlin Multiplatform libraries API
• binayshaw7777/exploring-material-design-3-creating-stunning-visuals-for-your-app-d3f10a72d1ac">Exploring Material Design 3: Creating Stunning Visuals for Your App
• rishikesh-shede/5-easy-steps-to-wireless-android-debugging-2218e41a9797">5 Easy Steps to Wireless Android Debugging
#android
❗️ Все еще используете устаревший Core Data?
🔥 Приглашаем 15 августа в 20:00 по Москве, на открытый вебинар “Знакомимся c SwiftData” онлайн-курса "iOS Developer. Professional".
SwiftData - новый фреймворк от Apple для работы с данными на WWDC 2023. Он заменит устаревший CoreData и предлагает более удобный, и простой подход к созданию схемы данных, настройке хранилища и работе в целом.
Переход на SwiftData может принести вам ряд преимуществ. Новый фреймворк предоставляет более гибкий и простой подход к работе с данными, а также обладает лучшей производительностью и надежностью. Кроме того, Apple активно поддерживает SwiftData и предоставляет обновления и исправления ошибок, что гарантирует его долгосрочную поддержку.
❗️Записывайтесь на вебинар, чтобы узнать больше о новом решении для работы с данными от Apple, как его использовать и как перейти на него с CoreData.
➡️Записаться на вебинар: https://otus.pw/HxnR/
— После вебинара вы сможете продолжить обучение на курсе "iOS Developer. Professional" по специальной цене.
Нативная интеграция. Информация о продукте www.otus.ru
Примерно в раз месяц выходят статьи о том, как люди делают свои рекомендации фильмов (наверное, вторая по популярности тема после поиска туалетов). И от всех проектов веет какой-то безысходностью. А вот известный разработчик Кейс Лисс взял просто и сделал “свой IMDb”, но без рекламы, азартных игр и барышень. По сути, Callsheet — это «кастомная» версия IMDb, которая понравится тем, кто предпочитает чистый, современный и хорошо продуманный дизайн, и готов заплатить небольшую сумму за улучшение. Получится у него или нет непонятно (проверим месяца через 3), но вот сама идея - не выебываться, а просто сделать нормально то, что погрязло в проблемах, вообще отличная. С такой на хакатоне не победишь, но бизнес вполне построишь.
Разработка
• Callsheet для iOS — лучшая версия IMDb
• Скрытые затраты на разработку мобильных игр
• Язык Julia впервые вошел в Топ-20 индекса TIOBE
• Дорогая, что-то пошло не так. Гид по пустым состояниям и ошибкам + шаблоны на все случаи
• Should I change job?
• How we built the Canva Apps SDK
• How TikTok’s UX Keeps Users Hooked According to Psychology
• Why We Are Stuck With So Many Incompetent Programmers
• How we designed one of Faire’s most requested features
Маркетинг
• Как мы запустили свой трекер финансов: кейс Moneon
• In-depth: A/B testing examples from Airbnb and YC's top companies
Кроссплатформа
• FeedFlow: кроссплатформенный RSS-ридер
• Flutter DevTools: анализируем и улучшаем Flutter-приложения на примере «Росбанк Инвест»
• FlutterCon'23 Videos
• jacobras/flutter-versus-kotlin-multiplatform-for-existing-codebases-19ff5e53ccbf">Flutter versus Kotlin Multiplatform for existing codebases
• syaifakmal/debouncing-and-throttling-on-flutter-265d42eee8d9">Debouncing and Throttling on Flutter
iOS
• Одна наша ошибка в модуляризации iOS-приложения, которая замедлила процесс сборки в Xcode
• Using De Casteljau’s Algorithm/Bezier Curves in SwiftUI
• jacobmartinbartlett/access-control-in-swift-like-a-boss-6b6da94d9d5a">Access control in Swift like a boss
• Why Use Cases are useless
• How moving from SPM to CocoaPods improved our developer productivity
• Getting Started with Xcode Server: A Practical Guide for Simplifying CI/CD for iOS Apps
• Share data across devices without internet access. iOS Multipeer Connectivity
#ios
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