Опровергаем технические собеседования
Подборка всех материалов за прошлую неделю - опровергаем архитектурные заблуждения и знакомимся с Swift Algorithms, собеседуемся в RuStore и двигаем рукой справа налево, уменьшаем продуктовую анимацию, тащим новые технологии, идем в Мордор с Фродо и многое другое!
Kotlin исполнилось 8 лет
JetBrains выпустила Kotlin в 2016 году и версия 1.0 вышла 15 февраля. За прошедшее время Kotlin стал главным языком Android-разработки и универсальным языком программирования, который обеспечивает разработку для бэкенда, мобильных устройств, веб-приложений, десктопов и науки о данных.
В конце 2023 года Kotlin достиг 15 места в рейтинге языков программирования TIOBE, а в опросе Stack Overflow 2023 года так же находится на 15 месте, опережая Swift, Dart и борясь с Rust и Go.
В Data.ai
отчитались о росте дейтинга - январь 2024 года поставил рекорд по доходам и загрузкам в категории. Правда, потребители в основном остаются верны своим приложениям и в США Топ-3 приложения занимают более 53% рынка. Впрочем, только в январе 2024 года 28 приложений в стране получили более 1 миллиона долларов, так что ориентация на нишевые сегменты вполне позволяет неплохо жить. А значит всяких чудных приложений для свиданий, о которых я тут периодически пишу, будет все больше.
Разработка
• Rasa, платформа для разработки разговорных чат-ботов, привлекает $30M
• VK Education открывает набор на бесплатные образовательные программы в IT и digital
• Что учесть при портировании приложения на Аврору
• Pkl: Apple's New JSON/YAML Killer
Маркетинг
• Январь поставил рекорд по загрузкам и доходам дейтинг-приложений
• Пиратское приложение Kimi вышло в лидеры App Store
Кроссплатформа
• Создаем параллакс-эффект во Flutter с CustomPaint
• Создание кастомного React Native компонента Switch с помощью библиотек Reanimated и Gesture Handler (Часть 2)
• Apple Wants To Kill PWAs
• Method Channels in Flutter for Native Code Interaction
• The State of React Native
iOS
• Знакомимся с пакетом Swift Algorithms
• Топ-5 распространенных практик написания хорошего Swift-кода
• Как устроен @State в SwiftUI
• iOS Mobile App Security: Best Practices for iOS Mobile Developers
• Understanding Once and For All SwiftUI Alignment Guides
• SwiftUI Field Guide
#ios
Еще одно интересное в своей идее приложение - Fantasy Hike. Внутри это фитнес-трекер, который считает шаги, снаружи это путешествие в Мордор в попытке уничтожить Кольцо Всевластия 🌋. Приложение отслеживает ваш ежедневный прогресс, рассчитывает, когда вы прибудете к своей огненной цели, предоставляет уведомления о важных сюжетных событиях и позволяет соревноваться не только с основным оригинальным “носителем”, но и с другими персонажами. При среднем прохождении 5 километров в день вы достигнете Огненной горы через 1 год и 228 дней. Вполне достаточно, чтобы полюбить ходьбу. А как вы можете применить сеттинг “Властелина колец” в вашем приложении?
Разработка
• Chat with RTX от NVIDIA позволяет запускать генеративные модели на ПК
• The power of product principles
• How to create the perfect icon
• Reverse-engineering an encrypted IoT protocol
• Maybe Everything Is a Coroutine
Маркетинг
• Fantasy Hike — фитнес-трекер по мотивам «Властелина колец»
• iMessage в ЕС не будет считаться платформенным сервисом
Кроссплатформа
• Debug your Flutter App like a Pro with these 5 Tips & Tricks
• A PocketBase backend for Flutter and Dart
iOS
• OKLCHGradient: OKLCH градиенты для SwiftUI
• Камера как сканер штрих-кодов: проблемы, инструменты и эксперименты
• Automating app releases for multiple platforms with Xcode Cloud
• Self vs self in Swift – Find out the differences with practical examples
• SwiftConf '23 Videos
• iOS Interview Guide: Equatable Protocol
#ios
На сладкое - дейтинг для ПК-бояр состоятельных господ. Не, серьезно. Каких только дейтингов мы не видели. Но вот приложение Score, запущенное сегодня финансовой платформой Neon Money Club, предназначено для знакомств людей с хорошим и отличным кредитным рейтингом. Фоново говорят, что оно призвано помочь повысить осведомленность о важности финансов в отношениях, что кредитный рейтинг не равно состоятельность и прочие интересные вещи, но вне этого, конечно, сама идея оригинальностью не блещет.
Разработка
• Что ждёт мобильную разработку в 2024 году
• The UX of Threads’ downfall
• (Almost) Every infrastructure decision I endorse or regret after 4 years running infrastructure at a startup
Маркетинг
• Score — новое дейтинг приложение для людей с хорошей кредитоспособностью
Кроссплатформа
• Организация “глобальных” провайдеров во Flutter Riverpod с помощью миксинов
• iOS Development With Kotlin Multiplatform: Tips and Tricks
• From Native to React Native to Flutter
iOS
• Автоматический аудит доступности SwiftUI в Xcode 15
• Опровергаю пять архитектурных заблуждений
• expertappdevs/sorting-out-your-app-architecture-with-swiftui-design-patterns-013248907e93">Sorting Out Your App Architecture With SwiftUI Design Patterns
• Exploring SwiftUI Property Wrappers: @FetchRequest, @SectionedFetchRequest, @Query, @Namespace, @Bindable
• How to use @ScaledMetric in SwiftUI for Dynamic Type support
• Discovering Swift Algorithms package
• Getting started with Apollo iOS for GraphQL with Swift
#ios
Сегодня последний день в опросе Developer Nation, так что всех призываю еще раз воспользоваться шансом - пройти опрос, внести свой вклад в будущее сообщества и получить ценные призы, вплоть до MacBook Pro 13" M2.
Разработка
• CodeSignal запускает платформу обучения с ИИ-помощником
• 7 must-know object-oriented software patterns (and their pitfalls)
• Mobile search: which pattern should you choose?
Маркетинг
• Сколько зарабатывает Medium на мобильных подписках?
• How to get your first 10,000 mobile app installs
Кроссплатформа
• hello_chirag/top-6-react-native-best-practices-for-2024-d90763aeedfc">Top 6 React Native Best Practices for 2024
• Extreme UI Adaptability in Flutter — How Google Earth supports every use case on earth
iOS
• Масштабирование iOS в Bumble: вызовы
• Как поддерживать недельный релизный цикл и ничего не забывать
• Вопросы с собеседований: Что такое модификатор памяти weak в Swift
• Delta: эмулятор классических видеоигр для iOS
• Disabling Core Data CloudKit Logging
• Screen vs View in SwiftUI
• Create an animated transition with Matched Geometry Effect in SwiftUI
• Senior iOS Tip: Xcode Templates
#ios
Пришел порекомендовать вам онлайн-вебинар, пропустить который будет большим упущением!
Тема: «Реклама в вашем приложении: от регистрации в РСЯ до начала монетизации»
Дата и время: 14 февраля 12:00
Разберемся с экспертом, как зарегистрироваться в Рекламной сети Яндекса, интегрировать Yandex Mobile Ads SDK в приложение на Android, настроить свой первый рекламный блок, начать показ рекламы и получать доход.
Регистрируйтесь прямо сейчас — будет полезно и интересно https://bit.ly/3SVZPrp?erid=LdtCJxq7T
Кто ты, обманывающий на технических собеседованиях?
Подборка всех материалов за прошлую неделю - SwiftData и код доставки пиццы на Android, будущее swift-testing и мастерство программирования, обман на технических собеседованиях с помощью ChatGPT, самые скачиваемые и зарабатывающие приложения в России в январе, Мобильные игры в продуктовых приложениях и многое другое!
С мест докладывают, что в бете 17.4 для европейского союза перестали работать PWA-приложения. Вместо этого они открываются в Safari. Как шутят в Х, “наконец-то iOS одинаково относится ко всем браузерам, когда дело доходит до PWA. Раньше только Safari мог устанавливать и запускать PWA-приложения. С выходом бета-версии iOS 17.4 в ЕС ни один браузер не может устанавливать PWA-приложения, даже Safari”. Судя по всему, связано это с внедрением альтернативных браузеров, так что все в стиле Apple - “черт с ними, сделаем, но чтобы все взвыли”.
Разработка
• Apple продолжает работу над складными устройствами
• Новая ИИ модель Apple может редактировать изображения с помощью естественного языка
• Design Perfect Date Picker
Маркетинг
• SocialPeta выпустила Глобальный Аналитический Доклад о мобильных приложениях за 2023 год
Кроссплатформа
• Реализация чата на Flutter при помощи вебсокетов
• Как создать shader в Flutter для эффектной анимации в приложении?
• Best Flutter Packages Of 2023
• narendardiscover/flutter-screen-navigation-d49349178f11">Flutter: Screen Navigation
• Tracking Lifecycle changes in Compose Multiplatform: IOS and Android
iOS
• Glur: прогрессивный блюр для SwiftUI
• Записываем видео App Preview в симуляторе Xcode
• Стеки и Очереди в Swift
• Using SwiftNIO - Channels
• The power of self-sufficient features
• What is @testable Annotation in Swift?
• jipedev/first-thoughs-about-the-composable-architecture-in-ios-f2dff99216f5">First thoughs about The Composable Architecture in iOS
• sharmadhruv1516/building-a-passcode-lock-screen-in-swiftui-a-step-by-step-guide-3870b06f76df">Building a Passcode Lock Screen in SwiftUI: A Step-by-Step Guide
#ios
А Android 15 готовится облегчить использование смартфона для пожилых
В Android 14 QPR3 вы можете обнаружить скрытую страницу для новой функции под названием Easy pre-set. Этот режим, судя по всему, призван облегчить использование Android для людей, которые не так подкованы в технологиях или у которых могут быть проблемы со зрением.
1. Согласно строкам конфигурации, простой режим оптимизирует пользовательский интерфейс Android для "улучшения читаемости и простоты навигации". В частности, он "увеличивает иконки и текст, добавляет контрастность и жирный шрифт, а также добавляет кнопки навигации в нижнюю часть экрана".
2. Хотя можно вручную запустить страницу настроек для новой функции легкой предварительной настройки, включить новый режим пока невозможно.
3. Хотя эта функция присутствует в версии Android 14 QPR3 Beta 1, маловероятно, что Google планирует выпустить ее вместе со стабильным обновлением Android 14 QPR3 в июне. Более вероятно, что она выйдет в составе Android 15 позже в этом году
И что: многие другие OEM-производители предлагают подобную функцию, а в Google Play есть сторонние лаунчеры, предназначенные для пожилых или менее подкованных в технике людей. Но все равно приятно видеть, что Google добавляет подобную функцию в стоковую версию Android.
Видео и подкасты за неделю:
• (iOS Ru)
Как устроен Яндекс Go и зачем работать со студентами и стажерами
• (iOS Ru)
Навигация в SwiftUI
• (iOS En)
Self vs self in Swift – Find out the differences with practical examples
• (iOS En)
SwiftConf ’23 Videos
• (iOS En)
SwiftUI Minimal Todo List With SwiftData & Interactive Widgets
• (iOS En)
SwiftUI CoverFlow
• (iOS En)
Making it Rain – Advanced Special Effects with SwiftUI
• (iOS En)
Pop to Root View When TabView Item is Pressed
• (iOS En)
SwiftData & CloudKit: See How To Add Syncing In Your Apps
• (And Ru)
Многомодульность для UI-тестов
• (And Ru)
Как мы создавали дизайн-систему на Jetpack Compose
• (And Ru)
Как мы автоматизировали генерацию Baseline Profile
• (And Ru)
Кто-то съел мою память на CI!
• (And Ru)
Верхнеуровневый обзор архитектуры CI/CD мобильного приложения
• (And En)
BasicTextField2 - Everything You Need to Know
• (And En)
THIS New Modifier in Compose 1.7.0 Is Amazing!
• (And En)
Mastering Code Quality: A Deep Dive into Custom Linting for Android Developers with Gopal
• (And En)
How to integrate Google sign-in with Credential Manager on Jetpack Compose with Supabase Auth
• (Crs Ru)
Вызовы масштабируемости Kotlin Multiplatform на большом проекте
• (Crs En)
The State of React Native
• (Dev Ru)
Как затащить новую технологию
• (Dev Ru)
Как увольнять людей?
• (Dev En)
Pkl: Apple’s New JSON/YAML Killer
• (Dev En)
Firestore Multiple Databases now generally available, Go 1.22, and more dev news!
Что вы интересного посмотрели/послушали про разработку на этой неделе?
🌐 @AppFiles
Apple готовит ИИ инструменты для Xcode
По слухам, компания Apple работает над новыми крупными функциями искусственного интеллекта. И появятся они не только в iOS 18, но и в собственной IDE компании.
1. Пишут, что Apple «близка к завершению» обновлению Xcode и будет в нем использовать искусственный интеллект для улучшения программирования и тестирования.
2. Речь идет о генерации и дополнении кода, а так же генерации кода для тестирования приложений.
3. Цель Apple — выпустить новые функции ИИ в Xcode уже в конце этого года. Вероятно, речь идет о релизном цикле Xcode 16.
И что: у Android Studio уже есть свой Bot, у остальных есть Copilot и Xcode последним получит ИИ-функции. Станет ли от этого лучше большой вопрос, но проще точно.
Android
• Minimum: минималистичный лаунчер
• End-To-End Testing With Robot Pattern And Jetpack Compose
• domen.lanisnik/guide-to-foreground-services-on-android-9d0127dc8f9a">Guide to Foreground Services on Android 14
• farhaddeveloper98/write-androidstudio-plugin-step-by-step-part1-create-simple-action-toolwindow-with-custom-ui-01aeefceec94">Write AndroidStudio Plugin Step By Step
#android
Пиратское приложение Kimi вышло в лидеры App Store
На прошлой неделе приложение под названием Kimi обогнало известные потоковые сервисы, такие как Netflix и Prime Video, в списке лучших бесплатных развлекательных приложений App Store.
1. Внешне Kimi было замаскировано под приложение, которое проверяет зрение, заставляя вас играть в "найди разницу" на похожих фотографиях.
2. На самом деле оно ничего подобного не делало и содержало пиратские передачи и фильмы, включая недавние блокбастеры и отмеченные наградами ленты.
3. Приложение было впервые одобрено в сентябре, но примечательно, что оно даже не маскировалось под тонкой оболочкой легальности. Вы открывали его, а там только фильмы и шоу. Нет ни заставки, ни трюка, чтобы разблокировать настоящее приложение.
4. Сейчас приложение удалено, но на это понадобились публикации в топовых изданиях и, соответственно, полгода.
И что: Apple гордится своей конфиденциальностью и безопасностью, а также тем, что приложения, которые она делает доступными для загрузки, соответствуют всем ее требованиям. Например, компания заявила, что любой альтернативный магазин приложений, который попадет на платформы, должен будет иметь строгие правила и инструменты модерации, сравнимые с ее собственными. Как самой Apple начать соответствовать своим правилам, тогда не уточнялось.
Android
Посмотрите новое интервью с Андреем Белоусом о том, куда движется Android и мобильная разработка!
• Тренды Android-разработки
• Вопросы с собеседований: Как в Android определяется приоритет приложений перед системой
• App shortcuts в Android
• Compose Multiplatform Made easy with Circuit
• The Future of Android Development is Here: Meet Studio Bot, Your AI Co-Pilot
• Exploring Kotlin’s Sealed Interface: A Comprehensive Guide for Android Developers
• vishalvis02/kotlin-performance-tuning-20-best-practices-you-should-know-55a922e838dd">Optimizing Kotlin Performance: Essential Practices You Need to Master
#android
Ищите дизайнера для вашего приложения?
Работая с нами, вы получите красивый дизайн приложения, который соответствует всем требованиям Арр Store и Google Play.
Мы придумаем креативные решения для ваших экранов, подберем оптимальные размеры всех текстов и кнопок. Из-за грамотного расположения элементов на экранах, пользователю вашего приложения будет удобно и комфортно его использовать.
Мы очень качественно подходим к работе с нашими клиентами: постоянно на связи; оперативно сообщаем вам, на каком этапе работы ваш проект; присылаем работу для внесения правок.
Наш канал - @it_perfection
Для заказа дизайна пишите - @DenisGlav
Android
• Kotlin Cheatsheet: краткий справочник по Kotlin
• Material Design 3 для Compose 1.2
• Техническое собеседование инженеров мобильной разработки в RuStore
• How to Implement Swipe to Delete with Material3
• Modern Android Development in 2024
• Speeding up isBlank()
• Material Design 3 for Compose 1.2
• How to integrate Google sign-in with Credential Manager on Jetpack Compose with Supabase Auth
#android
Material Design 3 для Compose 1.2
Вышел релиз 1.2 Compose Material 3, в котором появились новые компоненты, некоторые изменения в старых компонентах и расширение системы цветов Material3.
Статья: https://apptractor.ru/info/articles/material-design-3-dlya-compose-1-2.html
Платформа: Android
Android
• Предварительный просмотр представлений Jetpack Compose за считанные секунды
• Podcaster: реализация Jetpack Media3 в реальном приложении
• Запускаем автотесты Android на EMCEE
• Мобильные игры в продуктовых приложениях
• Разбор кода приложения по доставке пиццы
• В Android Studio заработал Device streaming
• Изи freestyle Android приложения на Kivy (Python), Google collab и ваш не любимый ChatGPT
• What Every Android Developer Should Have in Their GitHub?
• Abstraction design: Introduction
• Crafting Android bytecode analysis tooling using a secret ingredient
• How We Made the CES 2024 AR Experience: Android Virtual Guide, powered by Geospatial Creator
• Jetpack Compose: Divider
#android
Сколько зарабатывает Medium на мобильных подписках
Все мы знаем Medium по назойливому пейволу - многие посты в блогах предназначены только для подписчиков. И если вы всегда хотели узнать, сколько же дохода они приносят, то у AppFigures уже есть ответ.
1. С 2017 года доходы Medium от мобильных устройств выросли на 6,968%.
2. В 2023 году чистый доход (после налога Apple и Google) Medium вырос на 14% в годовом исчислении и составил 9.4 млн долларов. И это только подписки на мобильных устройствах, не считая веб.
3. 2023 год не был самым быстрым годом роста выручки Medium, но он стал годом с наибольшей выручкой. Самым “быстрым” годом для Medium стал 2018-й, когда рост на 1061% привел к первому миллиону долларов с мобильных устройств, а второй по темпам роста год — 2019, когда доходы выросли еще на 173%.
4. США — крупнейший поставщик денег Medium, на долю которого приходится более 57% всех доходов. Великобритания, Индия, Канада и Австралия замыкают пятерку лидеров, каждый из которых имеет однозначный кусок пирога.
И что: в то время, когда все больше изданий отказываются от подписки, интересно видеть, как краудсорсинговое издание все-таки может монетизироваться.
Стриминг устройств в Android Studio перешел в стадию открытого альфа-тестирования
Device streaming в Android Studio позволяет безопасно подключаться к удаленным физическим Android-устройствам, размещенным в защищенных центрах обработки данных Google.
1. Это самый быстрый и простой способ протестировать приложение на физических устройствах некоторых новейших моделей Android, включая Google Pixel 8 и 8 Pro, Pixel Fold, некоторые устройства Samsung и другие. Кроме того, сервис поддерживает некоторое количество старых устройств, так что у вас будет доступ к широкому спектру конфигураций и уровней API.
2. После подключения к устройству вы можете развернуть свое приложение, видеть дисплей, взаимодействовать с устройством (в том числе поворачивать или разворачивать его) и делать все остальное, что можно делать с устройством через прямое ADB-соединение по SSL — и все это не выходя из Android Studio.
3. Когда вы закончите использовать устройство, Google сотрет все ваши данные и сбросит его на заводские настройки, прежде чем предоставить его другому разработчику.
4. Во время Open Alpha тарификация отключена. Это означает, что вы и ваша команда можете использовать потоковую передачу данных с устройств в Android Studio бесплатно. Однако использование ограничено определенным количеством часов в день для каждого проекта.
Видео и подкасты за неделю:
• (iOS Ru)
Как поддерживать недельный релизный цикл и ничего не забывать
• (iOS En)
SwiftUI: Stretchy Slider Like in iOS 17
• (iOS En)
How To Save A Struct In SwiftData
• (iOS En)
Introducing Vortex: High-performance particle effects for SwiftUI
• (iOS En)
PencilKit and SwiftUI: Build a Collaborative Drawing App
• (iOS En)
SwiftUI: Universal Hero Effect
• (And Ru)
Мобильные игры в продуктовых приложениях
• (And Ru)
Разбор кода приложения по доставке пиццы
• (And Ru)
Запускаем автотесты Android на EMCEE
• (And En)
Now in Android: 99 - Jetpack Compose, Google AI on Samsung Galaxy, Play recovery tools, and more
• (And En)
The Ultimate Beginners Guide to Realm DB on Android (CRUD with Multi-Relations)
• (And En)
How to Implement Swipe to Delete with Material3
• (And En)
Intersection Types in Kotlin
• (Crs En)
Build Swift Windows News App with WinSDK
• (Dev En)
Google Cloud region is Johannesburg, MobileDiffusion, and more dev news!
Что вы посмотрели/послушали интересного про разработку?
🌐 @AppFiles
Android
• Работаем с размером шрифта для обеспечения доступности
• Android 15 готовится облегчить использование смартфона для пожилых
• One-Time Events, StateFlow VS. Channel
• vikasacsoni9211/quest-for-android-excellence-interview-edition-2024-part-i-11d5c517e9f6">Android Interview Questions: 2024
• Pixel Perfect: Designing for Every Screen, Every Fold
• On-Device Machine Learning In Android: Frameworks and Ecosystem
#android
Напиши музыкальный плеер для iOS
✨ Отус приглашает 15 февраля в 20:00 по мск на бесплатный практический урок "Пишем музыкальный виджет на SwiftUI".
Ведущий: Анна Жаркова – руководитель группы разработки.
Вебинар является часть полноценного онлайн курса «iOS Developer. Professional». Курс доступен в рассрочку!
➡️ Регистрация на вебинар: https://otus.pw/W2Rw/?erid=LjN8KSB1a
На вебинаре:
✔️ создадим приложение с использованием музыкального сервиса MusicKit и интерактивный виджет к нему;
✔️ познакомимся со SwiftUI, узнаем, как создавать виджеты с помощью WidgetKit и AppIntents для их интерактивности;
✔️ ответим на все возникающие вопросы.
Apple выпустила модель, которая позволяет пользователям описывать на понятном языке, что они хотят изменить в фотографии
Модель MGIE, над которой Apple работала совместно с Калифорнийским университетом в Санта-Барбаре, позволяет обрезать, изменять размер, переворачивать и добавлять фильтры к изображениям с помощью текстовых подсказок.
1. При редактировании фотографии с помощью MGIE пользователю нужно просто набрать то, что он хочет изменить в изображении. В статье приводится пример редактирования изображения пиццы пепперони. Набрав запрос «сделать ее более здоровой», можно добавить овощные начинки.
2. Apple сделала MGIE доступной на GitHub, а также выпустила веб-демонстрацию на Hugging Face Spaces. Компания не сообщила, какие у нее планы на эту модель, помимо исследовательских.
И что: я уже писал, что iOS 18 должна стать самой «амбициозной и неотразимой». И, судя по всему, во многом неотразимость будет касаться ИИ-функций. Так что ждем MGIE в iOS.