Mobile Development by AppTractor
11K subscribers
1.86K photos
39 videos
11 files
4.65K links
Цифры, советы и все интересное о разработке мобильных приложений и сервисов. Комментарии и вопросы можно писать прямо @lbogolubov

• Аудитория https://t.me/apptractor/1066
• Сайт https://apptractor.ru/
Download Telegram
Тут с мест докладывают о падении спроса на всяческие курсы и вроде как “это будет первый год в истории российского рынка, когда отрасль покажет не рост, а падение”. С одной стороны, конечно, во времена могилизации (С) не до обучения, а с другой - в кризис самое оно поучить что-нибудь новое. Как вы - учите что-нибудь сейчас?

Разработка

Спрос на обучающие курсы для взрослых упал на 10–30%
Canva становится одним из самых зарабатывающих приложений в США
Telegram вдвое снизил стоимость подписки в Индии
Google Japan показал клавиатуру в виде палки
Доходы рынка приложений в 3 квартале снизились на 5%
Stark: решение проблем с доступностью
Awesome Scalability: список чтения по масштабируемости систем
Как победить выгорание, синдром самозванца и прокраситанцию: советы IT психолога
Podlodka #287: стейблкойны
Epic Games и Autodesk привносят 3D в архитектуру и инженерию
Meta впервые в истории сокращает персонал
SAD (Slack-Anti-Delete): сохранение удаленных сообщений в Slack
Facts about State Machines
A Product Engineering Skill That No One Talks About+
You’re not an imposter. Developers are all faking it.

iOS

Планирование приложений — руководства Apple
State Machine в SwiftUI
What are Sendable and @Sendable closures in Swift?
Mastering Dynamic Island in SwiftUI
Discover the MVVM Architecture in less than 90 seconds
Drag & Drop in SwiftUI

Android

Видео Droidcon New York 22
Миграция с Rx на корутины — опыт «Тинькофф Мобайл»
Lensa — разработка оффлайн фоторедактора на Android
Deep Dive Into Deep Link. Часть 2. Проблемы: устройство, версия ОС
Collect useful logs in production using Crashlytics, File logging and Timber
Adaptive UI with Jetpack Compose
Building A Jetpack Compose Window With AbstractComposeView
Jetpack Compose Popup — Master It!

Кроссплатформа

Kotlin Multiplatform: как превратить нативное приложение в кроссплатформенное
The Art of Multiplatform Programming: The Secret to Maximizing Shared Code
Put Flutter to Work
Flutter: FCM — How to Navigate to a Particular Screen After Tapping on Push Notification

Вакансия дня

Middle iOS-разработчик в Комитет
👍3
Помните PWA, прогрессивные веб-приложения, которые своим появлениям, казалось, положат конец гегемонии магазинов приложений и даже нативной разработке? Чудо ожидаемо не случилось и технология погрязла в платформенных различиях. Тем не менее, все развивается и с каждым годом становится лучше - в первой статье разбирается, какие проблемы остались у PWA. Все они, конечно, решаемы, но вывод у автора простой - PWA нативные приложения не заменит, да и фиг с ними, он нужен для другого.

Разработка

Почему PWA еще не победили нативные приложения?
Вы не самозванец — все разработчики притворяются
$80 млн в Серии Д: Tally — ИИ для выплат по кредитным картам
Amazon, Apple, Microsoft, Meta и Google улучшат распознавание речи для людей с ограниченными возможностями
The Coders Programming Themselves Out of a Job

iOS

NetNewsWire: открытый RSS-ридер
Zillow использует Look Around из Apple Maps для выбора жилья
PencilKit: Building a complete drawing app with a few lines of code
How to Build a Voice Assistant App for iOS?
Use a Base Class or a Protocol In Swift?
iOS Realtime Video Streaming App Tutorial

Android

Неочевидное про Fragment API. Часть 3. Навигация
Prioritizing App Stability — Mobile Performance @ Lyft
Jetpack Compose Popup — Master It!
Build a Custom Design System Using Jetpack Compose
Android's Unlikely Success
Performance in Jetpack Compose

Кроссплатформа

Zero To Hero in KMM with Compose and SwiftUi
React Native Infinite Scrolling with React Query
Google Flutter versus Microsoft .NET MAUI

Вакансия дня

Android-разработчик в RuStore
👍6
Duolingo купила свой первый стартап. Интересно, что это не изучение языков, не аналитика или что-нибудь техническое — это анимационная студия, которая создавала графику для самого Duolingo, а также для Amazon, Dropbox, Spotify и Google.

Совсем любопытно то, что бизнес-директор говорит, что приобретение Gunner соответствует тому факту, что Duolingo — «компания, очень ориентированная на метрики». Даже из использования анимаций Duolingo получает измеряемую ценность. Например, подписки в приложении выросли, когда компания в приложении запустила их анимированную рекламу. «Это то, чему вы можете придать очень четкую экономическую ценность».

А вы измеряете ценность анимаций?
👍37
Meta поджимают со всех сторон. TikTok отжал молодежь с видео, реальный BeReal обгоняет глянцевый Instagram, а вот новый проект Fizz вообще играет там, где Facebook начинался. Это анонимная социальная сеть для колледжей и кампусов с геолокацией и дамами. Ее главное отличие: 1) зарегистрироваться в ней могут только реальные ученики с действующим адресом электронной почты ВУЗа; 2) общаются все в локальных группах; 3) модерируют ее тоже живые учащиеся. Получается дикая вирусность и “амбассадорность”. Основатели уже говорят об охвате 95% студентов Стэнфорда, 70% в Райсе. К концу 2023 планируют покрыть практически все кампусы США. К чему это все - а ведь буквально только что Facebook казался непоколебимой социальной глыбой. Если у вас есть идея как его подсидеть, может самое время?

Разработка

Fizz: социальная сеть для колледжей
Каждый шестой программист хулиганил в школе
Опубликован единый стандарт Matter 1.0 для IoT-устройств
Recelery запустил шаринг еды
Duolingo купила студию анимации
Как купить девайс для умного дома и попасть в команду разработчиков (часть 2)
Data Science is Dying?
The Anti-Pattern that Sees the Disempowerment of Engineering Organisations Everywhere
Radio buttons, checkboxes, toggle switches, and dropdown lists: design tips for using selection controls
Charts Anatomy by Apple

iOS

Логи в iOS, эпизод 2: os_signpost
Show progress of the task using SwiftUI ProgressView
Accordion in SwiftUI – DisclosureGroup Explorations
The Problems with Singletons and Why You Should Use DI Instead
State Restoration in SwiftUI

Android

Whetstone: DI фреймворк для Android
Удобный бенчмаркинг с Jetpack Benchmark Library. Макро- и микробенчмарки
Jetpack Compose Clean Navigation
Exploring “select” expression of Kotlin coroutines
Understand Kotlin Reified and Type Erasure
Loading Shimmer in Compose

Кроссплатформа

7 Useful Flutter Packages You Should Use in Your Next Project
Responsive Flutter apps will no longer be a nightmare: Let’s simplify the process

Вакансия дня

Middle Android Developer в Simply Technologies
👍9😢2👏1😁1
Из вчерашних новостей - примерно каждый шестой программист в школе вел себя не очень хорошо. А какое поведение у вас было в школе?
Anonymous Poll
20%
Отличное
35%
Хорошее
32%
Удовлетворительное
13%
Неудовлетворительное
Сайт RayWenderlich (лучшие туториалы по iOS и Android разработке) провел опрос мобильных разработчиков и опубликовал отчет о работе State of Mobile Jobs 2022. Всего в нем 1.2К ответов (конечно не очень репрезентативно, но все же), на сайте можно поиграться с данными в разных разрезах. В целом средняя по больнице зарплата - $81,588. Интересно, что по языкам самая большая у Obj-C разрабов, и это понятно и по другим исследованиям, а вот на втором месте - C++, на третьем Python. Вот и примерный план роста 😀
🔥8
Lyft поделился своей работой над улучшением мобильного перфоманса. Пишут, что стратегии, изложенные в этой статье, не зависят от платформы, просто приводится все на примере Android. С другой стороны, меня всегда приводит в недоумение вопрос того, кто же это все наворотил. Кто то же писал на диск 2 тыс. раз в минуту и использовал SharedPreferences в качестве хранилища в памяти. Где были все архитектуры, тестеры, шаблоны и Code Review?

Разработка

Расстановка приоритетов в стабильности приложений — работа над производительностью в Lyft
Работа в мобильной разработке 2022 — опрос RayWenderlich.com
$87.4 млн в Серии Д: onX — карты для внедорожных путешествий
Серебро и бронза: как мобильная разработка ПСБ попала в топ-3 отрасли
Прогулка по изнанке «Спортмастера»: ножками и в приложениях
Google представил смартфоны Pixel 7 и Pixel 7 Pro на собственном чипе Tensor G2 и первые часы Pixel
$150,000 Amazon Engineer vs. $300,000 Google Engineer

iOS

ConfettiSwiftUI: конфетти на SwiftUI
How iOS Apps Adapt to the various iPhone 14 Screen Sizes
Infinite Marquee Animation with SwiftUI
Scale Animation With Anchor in SwiftUI
Create Multi-Steps View in SwiftUI
The Problems with Singletons and Why You Should Use DI Instead

Android

Android Dev Summit ‘22: Coming to you, online and around the world!
Jetpack Glance AppWidget - Developing Location Checker App widget
How to secure your Android apps
A full-fledged guide about GraphQL for Android
Jetpack compose: Cool Button Click Effects

Кроссплатформа

Преобразование текста в аудио в Unity-проектах (используя Google Cloud)
Web socket in Flutter
MVI implementation in Kotlin Multiplatform using the Reaktive library

Вакансия дня

Android-разработчик в Sportmaster Lab
👍5😁1
Как не настоящий программист решил на досуге порешать Leetcode на Swift. Первая задача - сумма двух. Дан массив целых чисел nums и целое число target, нужно вернуть индексы двух чисел из массива, которые в сумме образуют target.

Решение

Первое приходящее на ум решение — сделать два вложенных цикла, в которых перебирать массив, поочередно складывая числа и сравнивая получившееся с целевым значением.

Вот мое решение:

class Solution {
func twoSum(_ nums: [Int], _ target: Int) -> [Int] {

var resultA = [Int]()

outerLoop: for i in 0...nums.count - 2 {
for j in (i+1)...nums.count - 1 {

// Поиск суммы
if ((nums[i] + nums[j]) == target) {
resultA.append(i)
resultA.append(j)
break outerLoop
}
}
}
return resultA
}
}

Лучший результат на Leetcode:

• Время выполнения: 77 мс
• Скорость выполнения — лучше 66.47% всех решений
• Потребление памяти — лучше 90.65% решений.

Что интересного из решения я узнал:

• Break не выходит сразу из всех циклов, нужно определять внешний и из него выходить.
• Можно оптимизировать перебор хотя бы на 2 элемента, чего многие (судя по показателям) не делают даже в этом подходе.
• На самом деле результат Leetcode — плавающий и зависит от каких-то внутренних факторов. В следующий раз может быть другое время выполнения и другое потребление памяти, так что, наверное, стоит даже с одним и тем же кодом сделать несколько подходов в оценке.

Неплохо, но, очевидно, по скорости где то есть возможности для улучшения. Что можно улучшить в моем коде? Какой бы иной подход вы предложили?

Продолжение: https://apptractor.ru/twosum
👍15😁1
Mobile Meetup | SberMarketTech

В программе 4 доклада по разработке на iOS и Android:

📱 Александр Соломатов, руководитель группы iOS-разработки в CберМаркете, расскажет про горизонтальную карусель для баннеров на SwiftUI.

📱 Евгений Прокопьев, Android-разработчик в CберМаркете, покажет как работать с анимациями в React Native.

📱 Валерий Скворцов, iOS-разработчик в СберМаркете, поделится результатами экспериментов с механизмом избегания клавиатуры в SwiftUI.

📱 Александр Сычев, руководитель мобильной разработки СберЗдоровья, расскажет, как получить максимум от координаторов при решении задач навигации.

Также будет Q&A сессия, где вы сможете задать вопросы. Авторам самых интересных отправим крутой мерч в подарок 🎁

🗓 13 октября, 19:00 Мск • Онлайн

Регистрация по ссылке: https://bit.ly/3fGDWeh
5👍2
Новый большой еженедельный дайджест (вариант в Телеграф) - 103 отборных материала за неделю. По возможности поставьте 👍, поделитесь с коллегами и в соцсетях, поддержите наш канал на Boosty. Как говорил Билл Клинтон, "учитывая текущее плачевное состояние наших программ, можно сказать, что программирование определенно все ещё черная магия и, пока, мы не можем называть его технической дисциплиной". За прошедшее время мало что изменилось, но наш дайджест может прибавить вам немного техники 😌
👍8
This media is not supported in your browser
VIEW IN TELEGRAM
Telegram запустил новый конкурс для iOS-разработчиков. Призовой фонд 1-го раунда составляет 50,000 долларов. Задача состоит в том, чтобы создать отдельное приложение для редактирования мультимедиа. Написать его надо на Swift без использования сторонних UI-фреймворков. В редакторе должны быть различные инструменты для рисования и редактирования текста на основе предоставленных макетов. Приложение должно быть совместимо с iOS 13 и выше. Победителям может быть предложен шанс присоединиться к команде Telegram в Дубае. Последний срок сдачи работ — 31 октября.
👍101
Как подружить фичу Autoplay и tvOS?

Autoplay — это когда по завершении просмотра одного фильма пользователю предлагается посмотреть похожий контент, рекомендованный системой.

О нюансах реализации этой фичи на tvOS рассказала Валерия Рублевская, iOS-разработчик на проекте онлайн-кинотеатра KION от МТС.

Прочитать можно здесь.
Удивительно, но Horizon Worlds от любимой всеми нами и запрещенной социальной платформы, оказался унылым говном. Судя по внутренней переписке, виртуальный мир страдает от кучи проблем - багов, плохого пользовательского опыта, вообще малой интересности и отсутствия product market fit даже для самих разработчиков. В общем, пришествие метавселенной, кажется, надолго откладывается. Как говорится, ну да и хрен с ней.

Разработка

Horizon Worlds страдает от сбоев и даже разработчики мало используют его
Готовимся к собеседованиям в западных компаниях — курсы и обучающие материалы
Загрузки приложений для знакомств резко выросли после нескольких лет стагнации
Самые зарабатывающие приложения США в сентябре
Задачи с собеседований: Leetcode — Сумма двух
Такси для незрячего
$2 млн: Klikit — SaaS-платформа для ресторанов
Sharing: шаринг файлов для iOS и Android
Квест на прокачку QA или приключение на 20 минут
Памятка для UX-дизайнера на все случаи жизни: как взяться за задачу и довести ее до конца
Designing a finance tracker app
6 things UI/UX designers forget to design
The Legendary and Highest-Paid Software Engineer From Google
Reverse Engineering a Cat Feeder to Boost Productivity

iOS

Использование Apple Swift и SwiftUI в iOS 16
Конкурс Telegram для iOS-разработчиков
What the measurement type is and why you should be using it
Platform specific code in Swift Packages
Cool Swift Features That Are Rarely Used
HMS ML Kit: Real-Time Translation (iOS — Swift)
Opacity Animation in SwiftUI
Path Animation in SwiftUI

Android

Google выпустил превью библиотек Jetpack Multiplatform
Expandable Compose Calendar: календарь Jetpack Compose
DI в Android в 2022
Добавляем комфорта в работу с WebView
Разработка лаунчера для Android: интервью с разработчиком Яндекс.Лончер
MVI и State Machine — объединяем концепции. Визуализация и анализ диаграммы состояний в Android и KMM проектах
Application-as-a-Function Thinking
Collapsing toolbar with parallax effect and curved motion in Jetpack Compose
Compose Tooling
Jetpack Compose Side Effects – With Examples

Кроссплатформа

Pass Data Between Screens-Flutter
Monorepo for iOS and Android Project

Вакансия дня

React Native разработчик в Style DNA
👍4
Forwarded from Код Воробья для iOS разработчиков
В Xcode 14 добавили экспорт локализации пакетов. Подробнее в туториале по локализации.

Это новый туториал на сайте, мы сделали большой ультимативный гайд по локализации. Разобрали основы, экспорт и импорт, как локализовать SPM-пакеты, плюрализацию, картинки, плагины для авторгенерации.

В конце туториала узнаете почему для некоторых российский рубль показывается как , а для некоторых RUB.
6👍3🔥1
Apple запустила Ask Apple - новую серию интерактивных Q&A и индивидуальных консультаций с экспертами компании. Вопросы и ответы будут в Slack, консультации будут в рабочее время “один на один”, в разных часовых поясах и на нескольких языках. Предполагается, что «Спросите Apple» будет постоянной серией консультаций, а первый раунд состоится 17–21 октября. Доступно все в для участников Apple Developer Program и Apple Developer Enterprise Program, расписание доступно на сайте.

Разработка

Apple запустила серию консультаций для разработчиков Ask Apple
Реверс инжиниринг кормушки для кошек для повышения производительности разработки
ИИ Yummy создает рецепты с едой
AirBell — велосипедный звонок с AirTag
Количество установок BeReal превысило 50 млн
What It’s Like to Be a Mobile Team in a Desktop-First Company
How I made 70k reputation on StackOverflow while helping people understand Kotlin

iOS

Inject: Hot reloading для UIKit
Начало работы с Dynamic Island и Live Activities в iOS 16.1
6 YouTube channels that every iOS developer should subscribe
Setting Up Live Activities for the Dynamic Island in SwiftUI
Expandable and dynamic sized Table Header View and Table Footer View
Apple introduces Ask Apple for developers
How to Find All Fully Visible Cells in Table and Collection View
The Layout Protocol in iOS 16

Android

Принимаем TRON USDT на Java
Measuring Jank in Android Apps
Transforming Kotlin Collections – Functions with Examples
State hoisting vs Defer reads

Кроссплатформа

Kotlin Multiplatform Mobile теперь в бета-версии
Наводим мосты между Flutter и нативными библиотеками
Создаем сложные интерфейсы и спецэффекты на базе Qt. Часть I
Flutter: The power of DI and Injectable
Build Collision-Based Game Using Flame in Flutter
How to draw in Flutter — The Complete Crash Course

Вакансия дня

Middle Android-разработчик в команду Мессенджера ВКонтакте
👍3
Kotlin Multiplatform Mobile выходит на финишную прямую - на этой неделе JetBrains после двух лет альфы объявила о переходе KMM в стадию беты. Говорят, что время экспериментов закончилось и технология почти готова, то есть ее можно (относительно) безопасно использовать в ваших проектах. В компании будут работать над стабильным релизом, а пока проведут серию вебинаров, посвященных основам KMM и демонстрирующих некоторые из наиболее популярных вариантов использования.
🔥14😁2👍1
В новых BMW с Curved Display появятся казуальные игры от AirConsole. Это такая облачная платформа, которая, как я понял, позволяет стримить простые казуальные игры на экраны, а управлять ими со смартфонов. Занятно то, что у Tesla, например, скоро Witcher 3, Cyberpunk 2077 и вообще Steam в машинах будет, а тут казуальщина. Но самый шик в том, что и AirConsole будет не у всех, а пока только у BMW 7. Представить владельцев семерок, играющих в викторины и всякие подобия Angry Birds, конечно, сложно, но можно. Но вопрос того, как, почему и насколько Tesla обогнала даже топовый BMW, меня озадачивает до сих пор.

Разработка

Казуальные игры AirConsole появятся в автомобилях BMW
6 вещей, о которых обычно забывают UI/UX-дизайнеры
$100 млн в Серии B: Homa — Аналитика для игр
Работа с ASO: как тестировать тренды и не получить иск
The End of Programming
Advice for Junior Developers
I Coded a Tinder Bot to Automate My Dating Life. Here’s What Happened

iOS

How To Create a Button With Loading Indicator in iOS
Is Swift Combine Dead?
Creating a Login Screen in SwiftUI
5 iOS Libraries to Make Your App Special

Android

Text Flow: обтекание текста в Jetpack Compose,
Best Practices in Kotlin
Jetpack Compose for Wear OS - Building Weather App
Bringing passkeys to Android & Chrome
Jetpack Compose Swipe To Refresh
Dynamic Environment Switching on Android

Кроссплатформа

Deeplinks и Flutter
7 Most-Starred React Native Libraries You Should Know
7 Flutter Open Source Projects to Become a Better Flutter Developer

Вакансия дня

Flutter-разработчик в SharesPro
👍5
AppsFlyer опубликовал очередной Performance Index - рейтинг лучших медиа-источников для приложений и игр.

Из интересного: ухудшение ситуации в мировой экономике привело к сокращению бюджетов на рекламу приложений на 14% во втором квартале по сравнению с первым. Средний бюджет приложения (за редким исключением) снизился на 12%, при этом на Android снижение было сильнее, чем на iOS (-13% против -9%).

Что касается медиа, то бюджеты 7-и из топ-10 и 14-и из 20-и ведущих медиа-источников, которые они получают от рекламодателей для проведения кампаний по привлечению пользователей, сократились во втором квартале по сравнению с первым кварталом, включая 3 ведущих игроков: Google, Meta и Unity. Годовое сравнение показывает, что общие рыночные потери в 2022 году были в четыре раза выше, чем в 2021 году (-12% против -3%).
👍5😱3