Русский
Русский
English
Статистика
Реклама

App store

Жулики против разработчиков приложений Apple. Как потерять два миллиона долларов и не подать виду

08.02.2021 12:21:23 | Автор: admin


Алло, Хьюстон, у нас проблемы! Вернее, не у нас, а у вас. И не в Хьюстоне, а в Купертино, или где там теперь базируется офис Apple, занимающийся поддержкой магазина приложений App Store. Эти самые проблемы возникают регулярно не только у пользователей, но и у разработчиков софта, страдающих от действий всевозможных жуликов, c которыми в Apple не могут (или не хотят) ничего поделать. О самых интересных, а также о наиболее распространённых способах мошенничества в App Store в сегодняшней статье.


Внимание: фейкоделы!


Об одном из таких случаев рассказал мировой общественности независимый программист Коста Элефзеиру (Kosta Eleftheriou), подсчитавший, что за минувший год жулики украли у него и других авторов ПО примерно 2.000.000 $. Его грустная история, которой он поделился в Твиттере, вызывает сначала удивление, а затем оторопь: неужели так бывает на самом деле? Оказывается, бывает.



Коста разработчик экранной клавиатуры для Apple Watch, причём, как он утверждает, лучшей экранной и клавиатуры в своем роде. Он потратил долгие месяцы, создавая и совершенствуя своё детище, прежде чем оно было опубликовано в App Store. Коста преследовал две цели: во-первых, его приложение должно позволить набирать текст на часах с высокой скоростью, а во-вторых, опережать по своим функциям и удобству ближайших конкурентов. Пользователи по достоинству оценили эту разработку: в 2020 году виртуальная клавиатура Косты поднялась в топ платных приложений App Store для Apple Watch. По словам программиста, наиболее сложной частью его разработок были алгоритмы автозамены, использовавшиеся совместно с методом выбора символов свайпами. Благодаря этой технологии владельцам Apple Watch удалось приблизиться в скорости набора текста к пользователям iPhone. Все конкурирующие приложения по этому параметру плелись далеко позади.

Для продвижения своей экранной клавиатуры Коста снял видеоролик, демонстрирующий принципы её работы. Оценив скорость и качество набора текста, пользователи приобретали программу. Казалось, что успех уже не за горами, и разработчику осталось лишь закрепить свои достижения, добавляя в приложение новые функции и понемногу устраняя выявленные ошибки. Но вместо заслуженного признания создателя виртуальной клавиатуры ожидало горькое разочарование. Причем по причине, которую тот даже не мог себе представить.

Вскоре после попадания программы в топ App Store неизвестные жулики создали и разместили в каталоге Apple ее клон, в точности копировавший интерфейс приложения, но не имевший никаких полезных функций. Фактически программа просто показывала красивые картинки на экране часов, и больше не делала ничего полезного. Затем злоумышленники начали агрессивно рекламировать свою поделку в Facebook и Instagram, используя имя Косты Элефзеиру и снятое им демонстрационное видео, на котором показана работа настоящего приложения.

Но если программа толком не работает, как мошенники заставляли пользователей платить за нее? Очень просто: после запуска мошенническое приложение демонстрировало на экране пустое окно с кнопкой Разблокировать сейчас, по нажатию на которую потенциальная жертва жуликов оформляла подписку стоимостью $416 в год.



Однако если программа толком не работает и при этом стоит неприличных денег, пользователи должны очень быстро раскусить обман, и напихать разработчикам полную панамку негативных фидбеков. Так бы, безусловно, и произошло, если бы мошенники не публиковали в каталоге Apple купленные и откровенно фейковые пятизвездочные отзывы. Среди них, например, можно найти хвалебную рецензию юзера, безмерно довольного тем, что поделка мошенников прекрасно обрабатывает нажатие Control+Alt+Del, позволяющее вызвать на экран Apple Watch диспетчер задач Windows. И ещё одну, в которой указано, что экранная клавиатура для часов умеет переключаться в альбомную ориентацию, из-за чего на ней очень удобно набирать команды в терминале (wat?). Фальшивые пользователи делятся своим опытом запуска приложения для Apple Watch на iPhone, хвалят функции, которых в оригинальной программе попросту нет, и сравнивают ее с несуществующими клавиатурами для часов Apple от Google и Microsoft. Некоторые обзоры повторяли друг друга слово в слово, отличались только имена их авторов.



Конечно, на страничке приложения в App Store появлялись и настоящие отзывы на одну звезду, в которых пользователи сообщали, что данная программа это откровенный скам, и единственная работающая в ней функция сбор денег. Но подобные отзывы закономерно тонули в потоке проплаченных мошенниками фейков.

В результате публикации нескольких сотен фальшивых отзывов созданное жуликами липовое приложение быстро оказывается в топе каталога Apple, вытесняя с лидирующих позиций оригинальную программу. Помимо оттока пользователей и связанных с этим убытков, подделки наносят колоссальный ущерб репутации разработчика, именем которого беззастенчиво пользуется их создатели. Разработчика, который, к слову, оплачивает корпорации Apple аккаунт в App Store и перечисляет немаленький процент от монетизации своих приложений.

Одновременно с бурным развитием магазинов приложений, таких как App Store и Google Play, появилась на свет и стала набирать обороты услуга под названием ASO Application Search Optimisation (или App Store Optimisation применительно к каталогу Apple). По большому счету, это разновидность SEO, но ориентированная на продвижение приложений. То есть, комплекс мер, направленный на повышение позиции программы в поисковой выдаче каталога с целью опережения конкурентов по числу установок. Как и в случае с SEO, здесь используются белые и черные приемы. Например, белые методы включают правильную настройку заголовков, ключевых слов, оптимизацию описания на странице программы, правильное размещение скриншотов. С примером черного ASO нас познакомил Коста Элефзеиру.

Случай с программой Коста далеко не единственный в App Store. Жулики клонируют многие популярные программы, при этом отзывы на их страницах буквально сделаны под копирку. Удивительно, но в настоящее время Apple не предпринимает активных мер для борьбы с подобными явлениями, вернее, эти меры явно недостаточны для того, чтобы защитить честных разработчиков от мошенников, использующих их имя с целью наживы. Фактически, у пользователя нет возможности сообщить в Apple о мошенническом приложении магазин перенаправит его в службу поддержки, населенную, как планета Железяка из повести Кира Булычева, роботами, и заточенную на решение технических проблем.

По всей видимости, в Apple считают используемый сейчас механизм проверки приложений достаточно надежным, даже несмотря на то, что при поиске в App Store по точному названию программы в выдаче нет-нет, да и попадется несколько подделок. Иногда Apple удаляет откровенные фейки по жалобе создателей оригинального приложения, но мошенники регистрируют новый аккаунт, и все начинается сначала. При этом разработчики жалуются на то, что некоторые честные приложения App Store отклоняет без объяснения причин по одному лишь подозрению в мошенничестве. Решения этой проблемы на сегодняшний день, по-видимому, не существует.

Возмещения покупок и restore-from-backup scam


Один из самых распространенных методов монетизации приложений, представленных в App Store InApp Purchase, то есть, встроенные покупки. К таковым относится премиум-контент, подписки и прочие цифровые товары. В App Store существует механизм refunds возмещения пользователю стоимости внутрипрограммной транзакции, если он сообщит в Apple, что совершил покупку по ошибке, или на самом деле не собирался ничего платить после установки приложения.

При этом Apple не сообщает разработчикам никакой персональной информации о покупателях, отсутствует подробная детализация транзакций о покупках и возвратах. Создатель программы фактически не имеет возможности ни отследить, ни заблокировать потенциальных жуликов. Кроме того, если для какого-либо приложения фиксируется слишком много заявок на возмещение платежей со стороны пользователей, оно рискует выдворением из каталога App Store.

На самом деле, по словам самих разработчиков, Apple редко возвращает пользователям платежи за сonsumables электронные покупки, совершаемые внутри приложения на постоянной основе в течение всего его жизненного цикла, например, за приобретение игровой валюты. Более того, в отличие от приложений Android, где встроенные покупки consumable и non-consumable отличаются по большому счету только вызовами API, в Apple требуют заранее выбрать нужный формат при настройке IAP.



Вместе с тем, жулики не оставляют попыток обмануть систему с использованием различных методов. Так, разработчики одной из игр для iOS рассказывали, что мошенники пользуются подвергнутыми джейлбюрейку устройствами, на которые они устанавливали модифицированную версию приложения. Она позволяла приобретать внутриигровые кредиты в обход IAP, на эти кредиты покупать игровые предметы, которые потом продавались на форумах за полцены. Однако если в этом случае страдала лишь внутриигровая экономика, то в аналогичной ситуации разработчики приложения с функцией мессенджера вынуждены были платить экспертам (инструкторам по фитнесу и диетологам), консультации которых покупали недобросовестные пользователи. В результате они теряли на этом уже реальные деньги.

Схожим образом работает так называемый restore-from-backup scam. Пользователь совершает покупку в приложении, после чего этому приложению отправляется запрос на повторную транзакцию в связи с тем, что программа якобы была удалена с устройства, а затем восстановлена из резервной копии с ранее совершенной покупкой. Фактически же никакого восстановления не выполнялось: запрос является мошенническим, и жулик пытается таким образом совершить покупку на другом устройстве, не заплатив за нее ни цента.

В описанных выше случаях проблема возникает вроде как на стороне приложения, потому Apple предпочитает не вмешиваться в происходящее. Сами разработчики предлагают разные методы борьбы с подобными явлениями использование CloudKit для предотвращения дублирования квитанций об оплате, дополнительные проверки данных из App Store о состоянии и дате платежа, или ограничения объема транзакций для недавно зарегистрировавшихся пользователей.

Как бы то ни было, Apple бережно охраняет свою клиентскую базу в том числе, и от разработчиков ПО. Получается, что защита от скама это забота в первую очередь самих девелоперов, вынужденных бороться, с одной стороны, с жуликами, пытающимися лишить их прибыли, а с другой с самой корпорацией Apple, реагирующей на подобные инциденты со скоростью укушенного за хвост динозавра, то есть, медленно и не всегда эффективно.

Последнее время критика App Store со стороны разработчиков звучит всё громче. Своё мнение не стесняются высказывать известные медийные персоны и признанные эксперты в области IT. Принесет ли это какой-либо результат, и поможет ли изменить политику Apple в отношении разработчиков программного обеспечения? Время покажет.

Подробнее..

Дайджест интересных материалов для мобильного разработчика 354 (20 26 июля)

26.07.2020 14:07:00 | Автор: admin
В этом выпуске облачные игры и правосторонние интерфейсы, обновленный Office и бездушные монетизаторы, рост гипер-казуальных игр и спад у ML-инженеров, ролики и локализация, дизайн системы и серверный UI, сервисы на Dart и многое другое!


Один из победителей iPhone Photography Awards 2020
Меня зовут Владимир Касаткин, и я работаю бэкенд-разработчиком в компании ivi.ru, в команде UX. Цель этой статьи показать, как мы уменьшили объём клиентской разработки, но при этом увеличили количество проводимых A/B-тестов. Выскажите свое мнение, узнайте об актуальных тенденциях в сфере разработки и повлияйте на будущие тренды.

Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.

iOS

(+10)Swift: Копируй-изменяй
(+5)Реализация наследования в файлах локализации iOS
Apple предоставляет исследователям безопасности разблокированные iPhone
Swift для TensorFlow
Боковое меню на SwiftUI
Как избежать ненужных релизов приложений
Используйте Combine, чтобы писать более читаемый Swift-код
Шаблон Factory Method в Swift
Оптимизация запуска приложений и обнаружение проблем с производительностью с помощью Инструментов
Анимация загрузки в виде кубиков на SwiftUI
История моих экспериментов с Swift KeyPath
Что такое Keyframe анимация в Swift 5?
Что нового в Vision Framework в iOS 14
Как создать и кастомизировать TextField в SwiftUI
Дистрибуция скомпилированных статических библиотек и статических фреймворков на Swift
Индикаторы активности на SwiftUI
SwiftUI в WidgetKit
Translate-SwiftUI: переводчик из iOS 14

Android

(+12)Выпускники семестрового курса Разработка приложений на Android, Технопарк Mail.ru
(+2)Как подружить RxJava с VIPER в Android, подходы применения и о структуре планировщиков
(0)Как подружить React Native и Java код на Android
Android 11 стал Red Velvet Cake
Ведущий разработчик Google Camera перешел в Adobe
Масштабирование Android-сборки
Преимущества Kotlin над Java: Backend и Android
Полезные расширения Flutter
Как создать успешное Android-приложение
Реализация анимации переходов в Android
Эволюция связей View в Android
Когда клавиатура встречается с корутинами
Современная обработка даты и времени во всех версиях Android
Как создать плагин Gradle для Android на Kotlin
Android Model-View-Intent с Kotlin Flow
Миграция приложения Google I/O на Hilt
Автоматизация обновления зависимостей в Gradle-проектах с помощью Dependabot
NY Times: JSoup и современная Android-архитектура
AndroidBottomBar: красивое нижнее меню

Разработка

(+24)Облачный гейминг с открытым исходным кодом на WebRTC: p2p, мультиплеер, zero latency
(+21)Правосторонний интерфейс: адаптируем контролы к right-to-left языкам
(+18)Сервис на языке Dart: введение, инфраструктура бэкэнд
(+7)Интервью с DHH: обсудили проблемы с App Store и разработку нового почтового сервиса Hey
(+6)21 метод UX-исследований: какой выбрать
(+5)История про то, как из студенческого геймдев-клуба выросла компания по разработке игр
(+4)Детальный разбор навигации в Flutter
(+3)Flutter под капотом: Binding
(+3)Темы приложений для Xamarin.Forms
(+2)Что нового в Unity 2020.1?
IObeya получила $17 млн. на цифровизацию гибких методологий
Podlodka #173: развиваем голос
Дизайн приложений: примеры для вдохновения #9
Microsoft показывает обновление дизайна для Office
Snapchat развертывает мини-приложения
40 советов, которые навсегда изменят ваше программирование
Важность побочных проектов
Snap открыл 13-недельную программу помощи разработчикам
Как доступно в цифровых каналах объяснить дорогу до локации
Мобильное приложение на Flutter. Стоимость, сроки, подводные камни. Часть 2
Как junior-дизайнер создавал приложение по менеджменту задач и при чем тут рисунки на полях блокнота
Askona Sleep: новый кейс от 65apps
Как мы сделали приложение SpotiApp для Spotify, которое сейчас приносит $1000 в день
Слайдеры лучше, чем цифровая шкала?
Что делает UX стратегию успешной
Умный способ бросить пить приложение Sober One
Мультиплатформенные сетевые библиотеки с Ktor
Лучшие провайдеры API и SDK для видеоконференций
Восхитительные инструменты разработчика, которые вы, возможно, не используете
8 причин, почему проекты разработки мобильных приложений терпят неудачу
Как одно правило проверки кода превратило мою команду в команду мечты
Что мне нравится и не нравится во Flutter
10 отличных подкастов и плейлистов для мобильных разработчиков
Tabler Icons: бесплатные иконки

Аналитика, маркетинг и монетизация

(+25)Моё знакомство с AppGallery: как я воспользовался возможностями Huawei и нашёл точку роста для своего проекта
(+14)Почему у монетизаторов нет души, а токсичные члены команды самые эффективные
(+4)Нужны ли дизайнеру метрики?
(0)Гибкая локализация: как применить agile к проекту по переводу
(0)Ролики для долгосрочной рекламной кампании мобильной игры: что делать, чтобы креативы не приедались аудитории?
(0)Харизматичный дизайн или использование эмпатии для вовлечения пользователя
Рост гипер-казуальных игр: отчет Adjust и Unity
LOVEMOBILE #07: AppFollow
myTracker открыл трекинг предустановок
Kudo онлайн-конференция с переводом
Analysis Group исследовала налог App Store по заказу Apple
Объявлены победители iPhone Photography Awards 2020
Бесплатный курс ASO: от простого к сложному
Meemo управление финансами и социальные покупки
Максим Лаба (Nativex): Bilibili прибыльная платформа для игр, lifestyle и образовательных приложений, выходящих в Китай
Calm совместно с HBO запускает сериал
528 дней создания плеера
Search Ads: нужна ли вашему приложению рекламная сеть Apple?

AI, Устройства, IoT

(+86)Теплое ламповое интернет-радио
(+40)GPT-3 от OpenAI может стать величайшей вещью со времён Bitcoin
(+13)Нейронки с нуля, или Как мы делали помощника для наших диспетчеров техподдержки
OpenCV AI Kit вышел на Kickstarter
Вирус-шифровальщик остановил работу устройств и самой компании Garmin
В Humble Book Bundle книги по разработке для Raspberry Pi и Arduino
ML-инженеры теряют работу. В любом случае изучайте машинное обучение
Почему вы должны получить новый сертификат по машинному обучению от Google
Убьет ли GPT-3 программирование?

Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку пришлите, пожалуйста, в почту.
Подробнее..

Дайджест интересных материалов для мобильного разработчика 364 (27 сентября 4 октября)

04.10.2020 14:17:49 | Автор: admin
В этом дайджесте обновления Android, собственный движок для игр, симуляция волос и создание VHS-эффектов, No-Code платформы машинного обучения и доходы приложений. Приятного чтения!


У меня был простой рендер спрайтов и текста, простая система обработки ввода, из которой можно было получать информацию о мышке и нажатых клавишах, и всякие утилиты-обвязки вспомогательных систем движка. В общем какую-то простую картинку вывести я мог. В последствии это все очень сильно изменилось и поросло архитектурными хитростями. Начиная с Android 8 (у некоторых вендоров с 7.1) в системе появился новый механизм накатки OTA-обновлений, т. н. Seamless A/B OTA Updates бесшовные обновления. В этом посте я опишу общие принципы его работы, рассмотрю механизм с точки зрения разработчика, а также проведу сравнение со старым (будем его называть recovery-based) подходом применения обновлений.

Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.

iOS

(+22) Navigation bar и анимация перехода
Apple запустила генератор коротких ссылок и QR-кодов для App Store
Apple отказалась от 30% налога ради малого бизнеса
Использование AVAudioEngine для записи, сжатия и потоковой передачи звука на iOS
SKOverlay в SwiftUI
Core Data и SwiftUI 2.0
Используем кастомные Debug Descriptions, чтобы упростить отладку Swift
10 запутанных, но важных функций Swift
2 способа исполнения MVVM iOS
SwiftUI и Firestore: обновление данных
Как сделать раздвигающийся TableView с помощью Swift
Instructions: пояснения и обучение работе с продуктом
Tiktok Clone: короткие видео на Swift и Firebase
Twitter Text: парсинг текста

Android

(+8) Как разработать аналог Zoom для ТВ-приставок на RDK и Linux. Разбираемся с фреймворком GStreamer
(+7) Холодный запуск Android-приложения
(+6) Еще раз про многомодульность Android-приложений
(+6) Как устроен Push Kit от Huawei
(+4) Как спроектировать пошаговое заполнение данных в мобильном приложении
(+4) Google Play In-App Review API: пошаговое руководство по внедрению
(+1) Голос в мобильном приложении: учимся вызывать экраны и заполнять формы без рук
Google упростит работу со сторонними магазинами в Android 12
Google Play будет тщательнее следить за оплатой покупок в приложениях
Беспроводная Android-разработка с локальным устройством
Асинхронные сообщения с Kotlin и RabbitMQ
Первые мысли о Jetpack Compose
Изменение стартовых шаблонов Android
Splash Screen в Android
Время плыть: переход с Kotlin на Flutter
Исследуем Kotlin DSL
Развенчиваем мифы о производительности Android
Создание тепловых карт с помощью Google Maps для Android
Все, что вам нужно знать о биометрической библиотеке Android
JetMessenger: клон Facebook Messenger на Jetpack Compose
CircleMenu: круговое меню для Android

Разработка

(+22) Plague M.D. Я остался в России и меня поглотила Чума. Сопли и нытье прогера
(+16) Выводы, которые я сделал, помогая стартапу для секс-чатов повысить конверсию
(+8) InheritedWidget во Flutter
(+8) Симуляция волос и тканей с Unity Cloth на мобильных устройствах
(+6) Создание эффекта VHS-видео в Unreal Engine
(+6) Flutter клёвенький у меня только такое объяснение. Обзор лучших выпусков Flutter Dev Podcast
(+6) Как создать мини-приложение: база знаний VK Mini Apps
Podlodka #183: обратная связь
Финал фестиваля программирования RuCode
GitHub запускает сканирование кода на уязвимости
Как изменить жизнь программиста с правилом 80/20
Курсы Как создавать мобильные приложения и игры в Humble Bundle
4 расширения VS Code для того, чтобы расслабиться на работе
Интервью с product-менеджером Flutter и Dart (Google)
Facebook против Google: битва межплатформенных фреймворков
Лучшие практики CI/CD
GitHub Codespaces: работа с Flutter
Лучший совет по созданию программного обеспечения от моего ментора
Четыре вещи, которые нужно забыть, чтобы стать лучшим программистом
Мои первые 24 часа с Flutter
7 способов действительно чему-то научиться из туториалов

Аналитика, маркетинг и монетизация

(+25) Как приложения без возможности выигрыша вытягивают у пользователей миллионы долларов
(+3) История Waze: от бессмыслицы до миллиардной компании
(+1) Разбор игры RAID: Shadow Legends (монетизация через поведенческую психологию)
(0) Локализационное тестирование: зачем оно нужно приложению или сайту?
Сингл группы BLACKPINK Lovesick girls выходит в PUBG MOBILE
IronSource открывает доступ к in-app bidding платформе для всех
make sense: О выходе на зарубежный рынок
Доходы приложений в 3 квартале выросли на 32% до $29 млрд.
Epic и Apple отказались от суда присяжных
В России вступил в силу Закон о блокировке пиратских приложений
Почему инфлюэнсеры-звезды, такие как Ли Цзяци, так важны для бизнеса, нацеливающегося на Китай
Rephrase.ai: генерация людей для рекламы
Как мы запустили приложение для анимации фото на Product Hunt
Запуск инди-приложения

AI, Устройства, IoT

(+27) Лучшие IDE для Raspberry Pi
(+17) Знакомство с Node-RED и потоковое программирование в Yandex IoT Core
(+12) Добавляем в плеер функцию Ambilight при помощи умных ламп Xiaomi
(+1) NB-IoT. Non-IP Data Delivery или просто NIDD. Тестирование с коммерческим сервисом МТС
(0) Умный дом в каждую квартиру многоквартирного дома. Детально о контроллере и шлюзах
8 No-Code платформ машинного обучения для мобильных разработчиков
Продажи Apple Watch 6 вдвое опережают продажи предыдущей версии

Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку пришлите, пожалуйста, в почту.
Подробнее..

Дайджест интересных материалов для мобильного разработчика 381 (8 14 февраля)

14.02.2021 14:06:25 | Автор: admin
В новом дайджесте локализация и кастомные плагины, защита прав и неготовность Flutter, документация и тестирование, доходы подписок и легендарный симулятор Кобаяси Мару. Подключайтесь!



Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.

iOS

Создание пользовательских функций запросов с key paths
Процесс локализации iOS приложения в компании Vivid Money
AppsFlyer запускает предиктивную аналитику для iOS
Начинаем работу с Combine
Мошенничество в App Store: разработчик раскрывает многомиллионные аферы с приложениями
Hyundai не ведет переговоров с Apple
Советы по реализации темного режима в iOS
Набор инструментов iOS-разработчика на 2021 год
Поиск лучшего CI/CD для разработки под iOS
Swift простая обработка ошибок
Уловки iOS: автоматическая обработка клавиатуры
5 способов улучшить рабочий процесс в Xcode
Быстрое погружение в iOS-разработку
SPPermissions: получение разрешений в Swift
PermissionsSwiftUI: получение разрешений в SwiftUI

Android

SafetyNet Attestation описание и реализация проверки на PHP
Как заблокировать приложение с помощью runBlocking
Android Broadcast: новости #3
Чем различаются Dagger, Hilt и Koin
Android туториал: учим CRUD
Готовимся к декларативному UI
Три вещи, которые я перестала делать вручную как Android-разработчик
Внедрение нативного кода Kotlin во Flutter-приложение
ShapeableView в Jetpack Compose
Как мы ускорили запуск приложения Dropbox для Android на 30%
Компоненты Android View Binding: Диалоги и Адаптеры
GitHub Actions для Android-разработчиков
Expenso: контроль расходов
Auxio: плеер для Android

Разработка

Как создать кастомный плагин для Dart-анализатора
Защита авторских прав на ваши Pet-projects
На GitHub предлагают запустить каталог мобильных приложений
Выпускные проекты: как позаботиться о себе, завести питомца, найти пункт переработки и получить ответ на любой вопрос
Match-3 Framework это просто
Магия асинхронных операций: взгляд изнутри. Future
Connected! Самое главное о дизайне VPN-приложения
Mockito. Из чего он приготовлен и как его подавать?
Микромодульный подход к дизайну продукта
Стики и работа с Event System в Unity 3D
Какая бывает документация
Мобильное тестирование, автоматизация тестирования, тестирование API: с чем нужно уметь работать в 2021 году
Что разработчику нужно знать о работе с дизайном/дизайнером
Принципы нарративного дизайна
Оценка трудозатрат в веб- и мобильных проектах
Flutter. Асинхронность (async) <> параллельность (isolate). Совсем
Работа с адаптивным программируемым интерфейсом APIs во Flutter
Podlodka #202: офисная политика
Flutter Dev Podcast #24: Dart Null Safety
Flutter пока не смог стать надежным кроссплатформенным решением
Как попасть в геймдев: 5 игр, с которых стоит начать свой путь в разработке игр
Cocos переходит в 3D
Дизайн приложений: примеры для вдохновения #31
Эстетический и минималистичный дизайн как часть юзабилити
Unity за 1 минуту
Учимся программировать и писать игры на Nintendo Game Boy
Как 3 месяца парного программирования повлияли на мою карьеру разработчика
Устали от императивных циклов For? Используйте функциональные операторы
Объектно-ориентированное мышление слишком сложно для вас
Создание IoT-приложения, совместимого со смарт-устройствами, на Flutter
Ускоряем разработки приложений с помощью Flutter
20 лучших движков и платформ/инструментов для разработки мобильных игр в 2021 году
Как Material Design помогает брендировать ваше приложение
Как вести переговоры продуктового дизайнера и разработчика
Boardgame.io: движок для пошаговых игр

Аналитика, маркетинг и монетизация

Scopely запустила симулятор Кобаяси Мару
Отчет Flurry 2021 State of Mobile
Расходы в Топ-100 приложений с подпиской выросли на 34% до $13 млрд
App Annie Pulse: инсайты рынка приложений
78% пользователей отказывалось от покупки, если требовалась установка приложения
Новый рейтинг мобильных рекламных сетей Singular 2021 ROI Index
Роскомнадзор выпустил мобильное приложение
Apple начала показывать рекламу на странице поиска
Electronic Arts покупает Glu Mobile
Beam: осмысленный браузер
Blizzard готовит несколько мобильных игр World of Warcraft
Как увеличить revenue мобильного приложения на 10-15% с помощью специальных инструментов от Apple
Оптимизируйте удержание приложений с помощью модели Hooked
20 ужасных ASO-ошибок, которых нужно избежать в 2021

AI, Устройства, IoT

ESP32-C3: первое знакомство. Заменим ESP8266?
Как машинное обучение и TensorFlow помогают готовить гибридную выпечку: хобби-кейс разработчика Google
Как построить AI-друга. Расшифровка доклада

Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку пришлите, пожалуйста, в почту.
Подробнее..

Дайджест интересных материалов для мобильного разработчика 388 (28 марта 4 апреля)

04.04.2021 12:12:21 | Автор: admin
В новой недельной подборке архитектурные паттерны и новая WWDC21, распознавание карт и 13 подвохов мобильного приложения, траты пользователей, тестирование иконок и многое другое!



Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.

iOS

Как меня Apple навечно забанил
Архитектурные паттерны в iOS: страх и ненависть в диаграммах. MV(X)
Compositional Layout: стоит ли игра свеч?
Почему мы не обновляли приложение ВКонтакте для iPad пять лет, а теперь обновили
Подключаем нагрудный датчик пульса по Bluetooth на Swift
Настало время офигительных историй[1/2]
Разрабатываем своего первого голосового ассистента на iOS
App Store отклоняет приложения, использующие сторонние SDK, которые собирают пользовательские данные
WWDC21 пройдет онлайн с 7 по 11 июня
Как создавать виджеты с WidgetKit
7 эффективных ключевых слов для оптимизации вашего Swift-кода
Представляем Epoxy для iOS
Синглтон против внедрения зависимостей в Swift
Удаляем фон в изображениях на Swift с помощью Core ML
2 iOS-инструмента для обнаружения мертвого и клонированного кода
Как перенести Луну в вашу комнату с помощью ARKit
Три типа дыр в безопасности, которые я вижу во многих iOS-приложениях
SwiftUI Animations: анимации на SwiftUI
ProgressHUD: анимированные иконки

Android

Доказательное программирование
CameraX+ML Kit для распознавания номера карты в действии
Google ограничивает, какие приложения могут видеть другие установленные приложения
Jetpack Activity Result API. Часть 2. Как работает под капотом
Google выпустил сканер документов Stack
Android Broadcast: как попасть на стажировку в Redmadrobot
Отладка скриптов сборки и плагинов Gradle [IntelliJ/Android Studio]
Самое простое руководство по пониманию Gradle!
Непустые списки в Kotlin
Более безопасный способ сбора потоков из пользовательских интерфейсов Android
Системный сбой в Android WebView: как разработчики могут избежать такой ошибки
Знакомимся с поведением ваших зависимостей
Запускаем ARM-приложения в эмуляторе Android
Реализация Snackbar для отмены действий в Jetpack Compose
Motion Layout: создание простой анимации Recycler View
Десять #AndroidLifeHacks, которые вы можете использовать прямо сейчас
LabeledSeekSlider: настраиваемый слайдер
Flux: погода на Jetpack Compose
KanbanBoard: канбан-доска на Kotlin

Разработка

13 подвохов мобильного приложения, о которых лучше знать до старта разработки
Осмысленные интерфейсы
TestOps: писать автотесты недостаточно
Какие вопросы ожидать на позицию автоматизатора и причем тут сортировка?
Дайджест релизов мобильной разработки Mail.ru Group за время пандемии
Storybook + Flutter = storybook_flutter
Паттерны и Методологии Автоматизации UI: Примеры из жизни
make sense: О карьерном росте до руководителя, необходимых навыках, лидерстве и доверии
Podlodka #208: операционные системы
GitHub обновил уведомления в приложении
Дизайн приложений: примеры для вдохновения #38
Google улучшает установку PWA
20 обязательных навыков для разработчиков 2021
CoScreen создает общую среду для разработки
Опыт 10,000+ экранов: 10 советов от ведущего продуктового дизайнера
Как мы разработали приложение за 300 тысяч и чуть не потеряли 4 млн рублей
Проектирование микро-взаимодействий в Figma с помощью интерактивных компонентов
Это начало конца PWA?
Бесшовная разработка мультиплатформенных приложений с Flutter
4 простых совета, чтобы стать более ценным разработчиком
6 основных различий между Junior и Senior разработчиком
Как мы ускорили нашу систему Continuous Integration на 50%
Как спланировать успех при запуске нового технического проекта
7 уроков моего пути от Junior-разработчика до Senior за 2 года
10 самых популярных вопросов на собеседовании по системному дизайну
ГОНКА к маркетинговому успеху
Инструменты для создания мобильных приложений с дополненной реальностью (AR)
Основы GitHub Actions
4 ошибки, которые я сделал как программист, но мне пришлось стать техническим директором, чтобы увидеть их
Разработка программного обеспечения игра проигравших
Как реализовать покупку подписок в приложении на Flutter
Доставка лучшего программного обеспечения быстрее: как мы сэкономили полмиллиона долларов
Чем мы можем делиться в Kotlin MultiPlatform: модули? данные? экраны?
Создайте свое приложение на Flutter за 5 дней

Аналитика, маркетинг и монетизация

Маркетологи в мобайле: Игорь Посталенко (Тинькофф)
Средний пользователь iPhone в США потратил в 2020 году на приложения $138
Траты пользователей на приложения и игры поставили новый рекорд в 1 квартале 2021
Прекращается работа Facebook Analytics
TechIntern: биржа IT студентов
A/B-тестирование иконок: опыт DEVGAME
Российский игровой рынок в 2020 году вырос на 35%
Lookout for Metrics от Amazon оценивает бизнес с помощью машинного обучения
Доверяете ли вы статистике от Google?
Яндекс попросил Samsung и других производителей не устанавливать неудаляемые приложения компании

AI, Устройства, IoT

Что такое IoT и что о нем следует знать
Microsoft поставит 120,000 HoloLens в армию
Snapchat готовит новые AR-очки Spectacles
IoT-устройства переведут на российский софт

Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку пришлите, пожалуйста, в почту.
Подробнее..

Airport маркетплейс для приложений в TestFlight

21.08.2020 12:12:17 | Автор: admin


У пользователей iOS сейчас непростые времена: App Store теряет крупные приложения и блокирует успешные стартапы, многие компании обвиняют Apple в монополизме, а Epic Games вообще в открытую нарушает ToS. В этой ситуации всё больше разработчиков и юзеров начинает пользоваться TestFlight официальной платформой Apple для тестирования приложений под iOS.

TestFlight стал хабом для приложений, которым нет места в основном магазине. Например, Джордан Сингер из Square разработал несколько приложений серии lil apps, каждое из которых выполняло свою маленькую задачу, будь то калькулятор, список дел или прогноз погоды. Apple не пропустила ни одно из таких приложений, сославшись на их недостаточный для публикации в App Store функционал, хотя минимализм и был их основной фишкой. Приложение Clubhouse, ставшее хитом в Долине, ещё даже не вышло в основной магазин разработчики хотят наращивать аудиторию и вводить фичи постепенно, опасаясь проблем от врывного успеха после публикации в App Store.



TestFlight работает так: разработчик отправляет приложение на проверку, которая происходит гораздо менее тщательно, чем при релизе в магазин. Причем как правило проверяется только первая загруженная версия, если приложение хоть как-то работает и хоть что-то из себя представляет (хотя бы одну кнопку), его пропускают. Следующие версии обычно не проверяют. Приложение можно скачать по ссылке-приглашению, во внутреннем тестировании могут принять участие до 100 человек, в общем тестировании до 10000. Для большинства инди-разработчиков этого более чем достаточно, и они совершенно не торопятся терпеть неудобства от публикации в App Store.

Airport и Departure


Томас Уэйт из BitSuites запустил сайт Departures, на котором собирает все найденые инвайты TestFlight и где любой желающий может принять участие в тестировании приложений даже самых крупных компаний вроде Microsoft. Так как Departures привлекает довольно много внимания, его также используют небольшие разработчики для раскрутки своего приложения среди лояльной и сплочённой аудитории.



Уже упомянутый Джордан Сингер пошёл ещё дальше, и разработал удобное и функциональное приложение Airport, в котором можно изучить самый крупный каталог приложений TestFlight и скачать любое из них. Сам Airport ставится через основное приложение TF, а всё остальное доступно для установки уже в нём напрямую.



К десятому дню с момента запуска Airport в нём было:

  • 284 приложения
  • 10000 пользователей (или тестировщиков, как посмотреть)
  • 241 тысяча просмотров суммарно у всех приложений

Airport предоставляет приложения списком и выборкой по категориям, умеет предлагать карточки, искать приложения и собственно устанавливать их, а также буквально вчера в нём появились профили разработчиков, в которых собраны их приложения.





Несмотря на то, что доступ к Airport можно было получить только по заявке, приложение стало очень популярно в Твиттере, быстро набрало свои максимальные 10 тысяч пользователей и оказалось на распутье: дальнейшую судьбу проекта Джордан ещё не раскрыл. Он может попытаться опубликовать Airport в App Store и надеяться, что Apple не воспримет его как конкурирующий с самим App Store маркет (а это не так, у них разные аудитории и продукты), а может пойти по пути AltStore и выбрать полулегальную установку с обновляющимися сертификатами. Всё зависит от позиции Apple, которую те ещё не озвучили. Если Airport выйдет из стадии эксперимента в общедоступный продукт, он может вскоре спутать карты Apple, которая всегда отчаянно боролась с альтернативными источниками получения приложений для iOS.

Джордан пообещал вскоре выпустить Airport для общего пользования тем или иным путём, так что без внимания проект не останется :)

Сайт: https://airport.community/
Разместить своё приложение: https://airtable.com/shrMuoAmFkRthLqgM
Разработчик: https://twitter.com/jsngr
Apple TestFlight: https://developer.apple.com/testflight/



На правах рекламы


Наша компания предлагает аренду VPS для совершенно любых проектов. Предлагаем широкий выбор тарифных планов, максимальная конфигурация позволит разместить практически любой проект 128 ядер CPU, 512 ГБ RAM, 4000 ГБ NVMe!

Подробнее..

Перевод 15 лучших приложений 2020 года по версии Apple и чему мы можем у них научиться

22.12.2020 14:23:50 | Автор: admin
Обзор лучших приложений, которые помогли нам остаться в здравом уме в этом году.


События 2020года сделали его совершенно уникальным. Но Apple всегда объявляла лучшие приложения года, независимо от того, насколько хорошим или плохим он был. Список лучших из лучших раньше был сосредоточен на iPhone, но теперь в него входят и приложения для Apple TV, Apple Watch, iPad и Mac, и среди претендентов что угодно, от обычных программ до стриминговых развлекательных сервисов и игр.

1декабря Apple объявила список 15лучших приложений года. Некоторые пункты списка удивления не взывают: например, приложение года для iPad Zoom. Среди критериев отбора были не только удобство использования и дизайн, но и технические инновации, культурное влияние и, конечно же, быстрое приспособление к ситуации, которое помогло нам преодолеть все те проблемы, что свалились в 2020году.

Приложения отражают культуру, и в 2020году разработчики в большинстве своем стремились к полезности: всю свою творческую энергию они направили на то, чтобы пользователи заботились о здоровье, учились, были на связи и могли развлечь себя.
Apple



Победители категории Лучшее в App Store 2020:


Лучшие приложения:


  • iPad: Zoom (Zoom, США)
  • iPhone: Wakeout (Андрес Канелла, США)
  • Mac: Fantastical (Flexibits, США)
  • Apple TV: Disney+ (Disney, США)
  • Apple Watch: Endel (Endel, Германия)


Лучшие тренды в приложениях:


  • Тренд года: Shine поощрение пользователей к заботе о себе (Shine, США)
  • Тренд года: Explain Everything Whiteboard оживление удаленных занятий (Explain Everything, Польша)
  • Тренд года: Caribu поддержка контакта семей с близкими (Caribu, США)
  • Тренд года: ShareTheMeal борьба с голодом (ООН, Германия)


Лучшие игры:


  • iPhone: Genshin Impact (miHoYo, Китай)
  • iPad: Legends of Runeterra (Riot Games, США)
  • MacOS: Disco Elysium (ZA/UM, Великобритания и Эстония)
  • Apple TV: Dandara Trials of Fear (Raw Fury, Швеция)
  • Игра года для Apple Arcade: Sneaky Sasquatch (RAC7, Канада)
  • Тренд года: Pokmon Go переосмысление подхода к игре (Niantic, США)


А теперь давайте взглянем на эти приложения поближе и посмотрим, чем они выделились.


Zoom лучшее приложение 2020 г. для iPad


Отличительная черта: простой путь взаимодействия пользователя в три касания.

Zoom обеспечивает короткий путь взаимодействия: всего три касания. Если посмотреть на обычную схему взаимодействия, то этапов оказывается совсем немного, основные действия понятные и простые: чтобы подключиться ко встрече, достаточно пройти три этапа:

  1. Присоединиться к встрече.
  2. Ввести пароль или номер комнаты (при необходимости).
  3. Ввести свое имя.




Caribu для iPhone и iPad тренд года


Отличительная черта: повышение удобства онлайн-общения для детей и родителей или родственников, когда семьи особенно в этом нуждаются!

Caribu добавила на свою платформу для видеосвязи в реальном времени десятки интерактивных игр и более тысячи новых книг для семей, которые хотят общаться с близкими.
Apple


Неудивительно, что приложение Caribu попало в список лучших 2020 года: раньше мне приходилось использовать Facetime и держать в руках огромную книгу чтобы рассказать сказку 4-летнему племяннику. Как UX-специалист я понимаю, что это не самый оптимальный вариант.

Но теперь я могу разговаривать по видео, читая ему одну из множества цифровых книг, и мы будем видеть один экран на двоих. В некоторых книгах даже есть функция совместного рисования, которая ему очень нравится пока рисую я.

Это почти как виртуальный присмотр за детьми,

Максем Тухман, генеральный директор Caribu


Shine для iPhone и Apple Watch тренд года


Отличительная черта: отличное использование цвета и быстрое приспособление к событиям 2020 года пандемии и движению Black Lives Matters.

Главное в Shine это простые мягкие формы и понимание психологии цвета. Приложение помогает бессознательно связывать каждый узор с эмоцией или настроением,

Ирина Коршак, иллюстратор

Чтобы побудить пользователей серьезно относиться к психическому здоровью, когда в новостях по всему миру пандемия и движение Black Lives Matter, Shine открыли раздел, посвященный психическому здоровью темнокожих пользователей.

По словам Наоми Хирабаяши, соучредителя Lidey и генерального директора Shine, задача приложения не только поддержка психического здоровья, но и содействие пониманию проблем, связанных с BLM, нетемнокожими американцами.


ShareTheMeal для iPhone и iPad тренд года


Отличительная черта: содействие важному благородному делу во время кризиса.

Приложение Всемирной продовольственной программы ООН ShareTheMeal дает любому человеку возможность участвовать в благотворительности: через него передано уже более 87 миллионов обедов для нуждающихся,
Apple


Для Всемирной продовольственной программы ООН лауреата Нобелевской премии мира этого года пандемия COVID-19 стала еще одним кризисом в дополнение к уже существующим, которые вызывают проблемы с продовольствием во всем мире. ShareTheMeal стремится максимально упростить благотворительность и сделать ее беспрепятственной

По словам Макса Косты, который возглавляет команду, ответственную за приложение в Берлине, пандемия подчеркнула важность ВПП, хотя можно было ожидать, что люди будут слишком заняты собственными проблемами, чтобы делиться с теми, кому повезло меньше,

Fast Company


Wakeout! лучшее приложение 2020 г. для iPhone


Отличительная черта: делает упражнения дома доступными для всех особенно для тех, кому не нравится сама идея упражнений!

Wakeout! отличается от других подобных приложений тем, что предлагает более 1000 упражнений, подходящих для всех даже для тех, кто слишком занят или в принципе не любит упражнения. К тому же, приложение уведомляет пользователя, когда он слишком долго сидит. Приложение включает в себя короткие простые упражнения, которые помогают бороться с сидячим образом жизни во время пандемии.


Fantastical лучшее приложение 2020 г. для macOS


Отличительная черта: единый интерфейс управления расписанием и его визуализации, чего не хватает в Календаре, Напоминаниях от Apple и других аналогичных приложениях для macOS.

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

Как можно видеть ниже, также есть новая функция Интересные календари, которая позволяет добавлять разные календари:


Источник: Fantastical, разработчик Flexibits


Disney+ лучшее приложение 2020 г. для Apple TV


Отличительная черта: актуальность и доступная цена: 7$ в месяц.

Приложение Disney+ вышло в ноябре 2019 года, его интерфейс всё еще совершенствуется, но для этого сервиса сейчас самое время. Кроме того, цена по сравнению с другими платформами более доступная.


Сравнение различных стриминговых платформ и стоимости ежемесячной подписки.


Explain Everything Whiteboard для iPhone и iPad тренд года


Отличительная черта: простота использования для любого возраста, особенно для учащихся (пользователи помоложе) и преподавателей (пользователи постарше).

Благодаря этому приложению учащимся не нужно беспокоиться о форматах файлов это дает конкурентное преимущество по сравнению с другими приложениями. Предлагаемые инструменты просты в использовании, а его облачные функции совместной работы позволяет студентам удаленно работать над проектами в группе.

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


Endel лучшее приложение 2020 г. для Apple Watch


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

Endel приложение, работа которого основана на научно подтвержденных методах. Его задача рекомендовать звуковые пейзажи с учетом погоды, циркадного ритма и, конечно же, текущих занятий. Персонализация подхода обеспечивается отслеживанием следующих данных:

  • текущая деятельность,
  • время суток,
  • пульс (измеряется через Apple Watch),
  • погода
  • и многое другое

Endel утверждает, что измеряемые параметры связаны с концентрацией и состоянием потока полного погружения в работу.


Лучшие игры года



Из-за пандемии скуки в 2020 году люди, которые обычно не играют в видеоигры, начали в них играть на имеющихся устройствах. Рынок видеоигр даже вырос в этом году.


Pokmon GO тренд года


Отличительная черта: превращение игрового процесса на открытом воздухе в домашние упражнения + геймификация упражнений и социального взаимодействия.

  • Упражнения: позволяет отслеживать в качестве игровых достижений сделанные в помещении шаги например, бег на беговой дорожке.
  • Социальное взаимодействие: виртуальные социальные функции в игре были улучшены, с тем чтобы игроки могли поддерживать контакт, даже когда они не могут встретиться в реальной жизни.

Когда в начале этого года разразилась пандемия COVID-19, Niantic быстро отреагировали и изменили Pokmon Go так, чтобы люди по-прежнему могли играть, но не выходя на улицу. Аудитория хорошо приняла нововведения, и в конце марта доходы от игры выросли это была лучшая неделя в 2020 году,

Game Industry


Legends of Runeterra для iPad


Отличительная черта: в целом аккуратный интерфейс, без задержек + простая навигация.

Приятно, когда есть возможность развлечь людей, которым остается лишь ждать, пока всё это закончится,
Джефф Джу, исполнительный продюсер Legends of Runeterra


Когда разразилась пандемия, Riot Games уже работали над Legends of Runeterra И оказалось, что застрявшие дома люди активно искали новые игры, похожие на Runeterra: это виртуальная карточная игра, поэтому у нее не было проблем из-за коронавируса, как в случае оффлайн игр например, Magic: The Gathering в ее традиционной бумажной форме,

Fast Company


Sneaky Sasquatch игра года для Apple Arcade


Отличительная черта: легкий и приятный игровой процесс, чувство свободы и бегства от реальности, когда игроки в этом особенно нуждаются.

В череде невероятно забавных игр эта особо выделяется за что и выиграла в номинации Игра года для Apple Arcade. Дурашливый, но аккуратный визуальный стиль, чудесная музыка и великолепный игровой процесс не пропустите.
Apple


Сооснователь RAC7 Games Джесси Рингрос рассказал изданию Complex (Канадское подразделение):

Сейчас нормальной жизнью жить не получается поэтому мы решили дать возможность побыть снежным человеком. В игре большая доля эскапизма. Думаю, она вышла как раз вовремя

Популярность игры начала выходить на пик как раз во время пандемии. Мультяшная графика, спокойный игровой процесс с низким уровнем стресса и возможность ненадолго убежать от реальности. Вы оказываетесь в очень уютном окружении. И у вас нет никаких явных целей и задач. Можно проказничать, исследовать мир и или просто делать что захочется


Dandara: Trials of Fear для Apple TV


Отличительная черта: сходство сюжета с текущей ситуацией в мире.

Сюжет игры кажется сегодня на удивление актуальным. Рассказ, по сути, сосредоточен на изоляции и ее влиянии на общество. Игра не тратит много времени на раскрытие сюжета; вы не найдете длинных анимационных вставок и продолжительных объяснений вам придется собирать историю по кусочкам с помощью дневников и заметок, разбросанных по всему миру. Чтобы найти некоторые из них, придется здорово постараться но если сюжет вас заинтересует, их стоит поискать,

Switch Player


Disco Elysium для MacOS


Отличительная черта: новаторский подход в ролевых играх: увлекательное приключение, построенное на чтении текста!

Да, всё верно: в основе игры чтение увлекательных текстов!

Disco Elysium это не привычная ролевая игра, а скорее даже наоборот: здесь нет сражений, у героя нет невероятных суперсил, и объем текстов в Disco Elysium больше, чем полное собрание сочинений Шекспира. Главное здесь это внимание к деталям, размышление о своих действиях и нестандартное мышление. По сути, это детективная ролевая игра,

обзор от Mef Tech


Если вам интересно копнуть глубже, чем просто лучшие приложения 2020 года, вот список самых загружаемых приложений:

Топ бесплатных приложений для iPhone


  1. ZOOM Cloud Meetings
  2. TikTok
  3. Disney+
  4. YouTube
  5. Instagram
  6. Facebook
  7. Snapchat
  8. Messenger
  9. Gmail
  10. Cash App


Топ платных приложений для iPhone


  1. TouchRetouch
  2. Procreate Pocket
  3. Dark Sky Weather
  4. Facetune
  5. HotSchedules
  6. AutoSleep Track Sleep
  7. The Wonder Weeks
  8. SkyView
  9. Shadowrocket
  10. Sky Guide


Топ бесплатных игр для iPhone


  1. Among Us!
  2. Call of Duty: Mobile
  3. Roblox
  4. Subway Surfers
  5. Ink Inc. Tattoo Drawing
  6. Magic Tiles 3: Piano Game
  7. Brain Test: Tricky Puzzles
  8. Brain Out
  9. Coin Master
  10. Cube Surfer!


Топ платных игр для iPhone


  1. Minecraft
  2. Plague Inc
  3. Heads Up!
  4. Monopoly
  5. Bloons TD6
  6. Geometry Dash
  7. NBA 2K20
  8. Grand Theft Auto: San Andreas
  9. The Game of Life
  10. True Skate


Топ бесплатных приложений для iPad


  1. ZOOM Cloud Meetings.
  2. Disney+
  3. YouTube
  4. Netflix
  5. Google Chrome
  6. TikTok
  7. Amazon Prime Video
  8. Gmail
  9. Hulu
  10. Google Класс


Топ платных приложений для iPad


  1. Procreate
  2. GoodNotes 5
  3. Notability
  4. Duet Display
  5. Teach Your Monster
  6. LumaFusion
  7. Affinity Designer
  8. Toca Hair Salon 3
  9. Toca Life: Hospital
  10. Toca Kitchen 2


Топ бесплатных игр для iPad


  1. Among Us!
  2. Roblox
  3. Magic Tiles 3: Piano Game
  4. Ink Inc. Tattoo Drawing
  5. Call of Duty: Mobile
  6. Subway Surfers
  7. Dancing Road: Color Ball Run!
  8. Tiles Hop EDM Rush
  9. Mario Kart Tour
  10. Save The Girl!


Топ платных игр для iPad


  1. Minecraft
  2. Monopoly
  3. Bloons TD 6
  4. Plague Inc.
  5. Geometry Dash
  6. The Game of Life
  7. Five Nights at Freddys
  8. Human: Fall Flat
  9. Stardew Valley
  10. Terraria


Топ игр Arcade


  1. Sneaky Sasquatch
  2. Hot Lava
  3. Skate City
  4. Sonic Racing
  5. PAC-MAN Party Royale
  6. SpongeBob: Patty Pursuit
  7. Oceanhorn 2
  8. Crossy Road Castle
  9. WHAT THE GOLF?
  10. LEGO Brawls


Очевидно, что победители этого года отличаются не только удобством для пользователей, но и быстрым приспособлением к ситуации, а также продвижением таких ценностей, как забота и готовность помочь, которые сегодня как никогда важны. Спасибо всем разработчикам и дизайнерам, приложившим много усилий для создания приложений, которые помогают людям быть в безопасности, следить за здоровьем и оставаться продуктивными в 2020 году.


О переводчике


Перевод статьи выполнен в Alconost.

Alconost занимается локализацией игр, приложений и сайтов на 70 языков. Переводчики-носители языка, лингвистическое тестирование, облачная платформа с API, непрерывная локализация, менеджеры проектов 24/7, любые форматы строковых ресурсов.

Мы также делаем рекламные и обучающие видеоролики для сайтов, продающие, имиджевые, рекламные, обучающие, тизеры, эксплейнеры, трейлеры для Google Play и App Store.
Подробнее..

Как написать симпатичный чейнджлог опыт Авито

25.05.2021 12:05:50 | Автор: admin

Привет! Меня зовут Гера, я продуктовый редактор вАвито. Пишу тексты для интерфейсов ирассылок, аещё чейнджлоги дляGooglePlay иAppStore. Это тексты, вкоторых рассказывается, что появилось вновой версии приложения. По-английски их ещё иногда называют what'snew или releasenotes.

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

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

А зачем оно всё

Возможно, ценность чейнджлогов очевидна не всем компаниям. Фейсбук отказался отуникальных текстов много лет назад и теперь повторяет шаблоны обисправленных ошибках. Необходимость рассказывать оновых фичах не пропала, просто дляэтого чаще стали использовать пуш-уведомления, письма, баннеры, сториз.

Есть ли какая-то логика вприменении шаблонов неизвестноЕсть ли какая-то логика вприменении шаблонов неизвестно

Сторы включают пользователям автоматическое обновление: многие и не знают, что загрузили новую версию приложения. App Store идёт дальше: раньше чейнджлоги жили вотдельной вкладке наглавном экране, но в2019году скрылись внастройках. Наиконке был счётчик необновлённых приложений, но и он пропал. Ктому же, оба стора не дают узнать, сколько людей прочитали текст.

Но мы вАвито ценим чейнджлоги. Они помогают бесплатно дотянуться доне самой многочисленной, приэтомнаиболее активной и преданной аудитории. Эти пользователи любят узнавать оновых фичах просто излюбопытства, интереса ктехнологиям или потому, что следят законкурентами. Вконце концов, это разработчики, которые могут однажды прочитать здоровский чейнджлог и захотеть прийти насобеседование.

Читать такие сообщения приятно. Особенно учитывая, что это пустышка новых фич врелизе не былоЧитать такие сообщения приятно. Особенно учитывая, что это пустышка новых фич врелизе не было

Мне кажется, свои редакторские навыки я развил вомногом благодаря чейнджлогам. Ведь это суть нашей работы: сначала разбираешься всложном вопросе, затем пишешь онём ёмко ичеловечно.

Процесс в Авито

Сжатые сроки

В Авито новые версии приложений выходят каждую неделю и дляAndroid, и дляiOS. Соответственно, каждую неделю требуются два чейнджлога. Приэтом часто разные: фича могла мильон лет существовать наiOS и только сейчас появиться наAndroid.

Если вы хотите узнать, как устроен выпуск приложений вАвито, загляните в статью вней много технических деталей.

Неуловимые изменения

Вместе с задачей начейнджлог редактор получает таблицу сизменениями врелизе.

Разобраться всмысле изначимости фич бывает жутко сложно: названия задач написаны разработчиками дляразработчиков, а не редакторов. Иногда большие изменения скрываются заневзрачным названием, азаярким техническое улучшение, которое пользователи могут инеощутить. Спросить урелиз-инженера, что интересного вэтой версии, нельзя: вАвито десятки команд и каждая работает надсвоим кусочком сервиса.

Типичные названия задач изтаблицы: какие-то иностранные колонки, богатые парсинги и чистые симуляторыТипичные названия задач изтаблицы: какие-то иностранные колонки, богатые парсинги и чистые симуляторы

Есть и ещё одна сложность. Почти все фичи сначала тестируются начасти пользователей всреднем наАвито одновременно крутятся 80экспериментов. Даже если изменение решают катить, отследить этот момент непросто. Фичу могут включить безрелиза набэкенде, тогда отдельной задачи и не появится.

Кто виноват? Что делать?

Детективная работа

Чтобы собрать информацию, нужно превратиться в сыщика идипломата.

Некоторые продакты сами пишут редактору, ноэто бывает редко. Релизы фич невсегда проходят гладко, ичейнджлог это последнее, очём думают менеджеры втакой момент. Поэтому приходится периодически писать продактам идоставатьих вопросами. Ведь редактору нужно непросто узнать, когда и какая фича раскатывается. Главное понять, как она работает и вчём еёценность дляпользователей иАвито.

Прежде чем обратиться кменеджеру, детективу приходится наводить справки исобирать улики. Дляэтого нужно спрашивать удругих редакторов, надкакими интересными фичами они работают. Общаться сдизайнерами и изучать их макеты. Ходить навстречи продуктовых команд, где они рассказывают освоих достижениях ипланах.

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

Есть и минус: теперь я получаю ворох писем, безкоторых жилось бы спокойнее. Например, озапрете продажи подержанных трусов наАвито. Но такова цена работы детектива.

Формальности

Когда чейнджлог написан, я согласовываю его спродактом. А если менеджер вотпуске сдизайнером, потому что онвсегда погружён вконтекст. Так удаётся избежать неточностей иубедиться, что акценты расставлены правильно.

Затем записываю текст в файлик систорией чейнджлогов он ведётся сиюля 2018года иотдаю релиз-инженеру, который заливает новую версию приложения встор.

И так подва раза каждую неделю. Не считая майских и новогодних каникул.

Советы по написанию

Теперь расскажу, очём важно помнить, чтобы чейнджлог не только вышел, ноиполучился хорошеньким.

Главная цель такого текста подсветить значимое дляпользователей изменение. Это может быть новая возможность, редизайн или исправленная ошибка.

На месте автора я бы задался вопросом: какая ценность в изменениях? Может, оптимизация ускорила загрузку страниц? Или новые цвета сделали приложение удобнее для людей с плохим зрением? Если ценности нет, то можно инерассказывать об измененияхНа месте автора я бы задался вопросом: какая ценность в изменениях? Может, оптимизация ускорила загрузку страниц? Или новые цвета сделали приложение удобнее для людей с плохим зрением? Если ценности нет, то можно инерассказывать об изменениях

Соблюдайте законы сторов

Поправилам GooglePlay иAppStoreчейнджлоги нельзя использовать вмаркетинговых целях, например рекламировать акцию, если она никак несвязана спродуктовым изменением. Нообязательно нужно упомянуть, что именно улучшено или исправлено.

Из-за неподходящего текста релиз может непройти проверку инераскатиться. Иногда сторы пропускают такие чейнджлоги, нориск слишком велик: можно подвести коллег, которым важно зарелизить приложение вовремя.

Так выглядят примерно 99,9% чейнджлоговТак выглядят примерно 99,9% чейнджлогов

Также помните олимитах. Это актуально скорее дляGooglePlay: внём ограничение 500символов. ВAppStore 4000, нужно ещё умудриться столько написать: это четверть этой статьи.

Перед отправкой проверяйте чейнджлог наошибки, если есть корректор, топоказывайте ему. Текст вAppStore нельзя заменить после того, как приложение прошло проверку, только если катить новую версию. ВGoogle Play чейнджлог можно поменять влюбой момент, нолучше доэтого недоводить.

Однажды я налажал и написал насколько раздельно, хотя в этом случае нужно было слитно. Чтобы исправить мою ошибку, релиз-инженеру пришлось катить внеплановую версиюОднажды я налажал и написал насколько раздельно, хотя в этом случае нужно было слитно. Чтобы исправить мою ошибку, релиз-инженеру пришлось катить внеплановую версию

Помните, очём икак уже писали

Человек видит чейнджлоги примерно водном итомже месте авAppStore даже может полистатьисторию версий. Поэтому начинайте иструктурируйте текст по-разному всоседних релизах.

У нас есть файлик с историей чейнджлоговУ нас есть файлик с историей чейнджлогов

Слова стало, теперь, исправлено итому подобные неизбежно будут встречаться чаще других. Но я слежу затем, чтобы они повторялись как можно реже, иначе тексты выглядят небрежно.

Непишите отестах

Тут две опасности. Во-первых, часть пользователей вообще неувидит изменения, поэтому дляних это бесполезная информация. Аво-вторых, даже те,кто попадут втест, могут лишиться фичи если эксперимент свернут.

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

Рассказывайте омасштабных изменениях

Если вы исправили опечатку или передвинули кнопку напару пикселей, вряд ли стоит обэтом писать.

Речь о фиче, которой могут воспользоваться практически все пользователи Авито, которые начнут создавать объявление. Не рассказать о таком было бы преступлениемРечь о фиче, которой могут воспользоваться практически все пользователи Авито, которые начнут создавать объявление. Не рассказать о таком было бы преступлениемКонечно, Яндекс.Картами пользуются не только вМоскве, но москвичей много и обновление дляних значимоеКонечно, Яндекс.Картами пользуются не только вМоскве, но москвичей много и обновление дляних значимое

Иллюстрируйте пользу

Если позволяет место, добавьте наглядных примеров, чтобы ценность изменения стала более явной.

Может показаться, что котики это ленивый пример. Но на Авито больше 100 тысяч объявлений с ними, одно милее другогоМожет показаться, что котики это ленивый пример. Но на Авито больше 100 тысяч объявлений с ними, одно милее другогоВсего одним словом зачем-то ВКонтакте эмоционально подсвечивает проблему, скоторой сталкивались многие. Идоступно рассказывает отехнических сторонахВсего одним словом зачем-то ВКонтакте эмоционально подсвечивает проблему, скоторой сталкивались многие. Идоступно рассказывает отехнических сторонах

Аккуратно говорите обошибках искорости работы

Иногда хочется написать, что ошибок стало меньше, ноэто редко будет правдой. Один исправленный недочёт может породить пяток других просто они пока будут незаметны. Поэтому стоит говорить оконкретных исправлениях.

Таже ситуация соскоростью истабильностью. Очень редко происходят настолько масштабные иуниверсальные изменения вприложении, что оно увсех начинает работать быстрее инадёжнее. Если это как раз такое обновление, нужно быть конкретными.

Это была неприятная проблема, но не суперстрашная. Поэтому уместно разбавить текст чем-то забавнымЭто была неприятная проблема, но не суперстрашная. Поэтому уместно разбавить текст чем-то забавнымWhoosh кратко и чётко описывает решённую проблему. Но без последнего предложения вполне можно было обойтись: оважном изменении уже рассказалиWhoosh кратко и чётко описывает решённую проблему. Но без последнего предложения вполне можно было обойтись: оважном изменении уже рассказалиТак Яндекс.Такси скоро разгонится допервой космической скорости. Нет ничего страшного вповторении, но это выглядит завиральноТак Яндекс.Такси скоро разгонится допервой космической скорости. Нет ничего страшного вповторении, но это выглядит завирально

Если шутите, то без кринжа

В Авито мы некасаемся политики идругих острых тем. Если шутка рождается сама походу написания, проверяемеё накринжовость, оскорбительность ипонятность.

Обязательно покажите чейнджлог нескольким людям. Непоймут инеулыбнутся откажитесь отидеи, это нетрагедия.

Было важно, чтобы релиз вышел вконце августа. Иначе опытные закатыватели банок написали бы, что нельзя сделать заготовки наосень осеньюБыло важно, чтобы релиз вышел вконце августа. Иначе опытные закатыватели банок написали бы, что нельзя сделать заготовки наосень осеньюТут Авиасейлс обыгрывает принятие поправок кКонституции. При этом обизменениях они сказали, так что формальности соблюденыТут Авиасейлс обыгрывает принятие поправок кКонституции. При этом обизменениях они сказали, так что формальности соблюденыВроде Тинькофф добавляет достаточно милую подпись, но не бывает такого, чтобы дождило увсех пользователей. Втакие моменты может создаться ощущение, что отебе не подумалиВроде Тинькофф добавляет достаточно милую подпись, но не бывает такого, чтобы дождило увсех пользователей. Втакие моменты может создаться ощущение, что отебе не подумали

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

Хороший редактор как клей: собирает целое из разрозненного и не вытекает наружуХороший редактор как клей: собирает целое из разрозненного и не вытекает наружуЭто снова Авиасейлс, в принципе от них такого и ожидаешь. Но в тексте нет ни слова об изменениях релиз мог непройти проверкуЭто снова Авиасейлс, в принципе от них такого и ожидаешь. Но в тексте нет ни слова об изменениях релиз мог непройти проверку

Однажды у нас вышел милый чейнджлог опопулярной породе собак:

Но пользователей Авито так много, что кто-то всё равно непонял:

Непревращайтесь вроботов

Хотьипишем отехнических штуках, важно оставаться человеками.

В принципе тут чувствуешь, что с тобой говорит РЖД, а не человек В принципе тут чувствуешь, что с тобой говорит РЖД, а не человек

Что делать, если писать неочем

В Авито в 2020году на Android вышло 46релизов, и 16 то есть треть были счейнджлогами-пустышками. На то есть причины: иногда редактору не удаётся найти интересную тему, а иногда их действительно нет.

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

На случаи, когда всёже придётся выпускать пустышку, уменя есть заготовки. Писать можно оразном. Например, одавнишней, новажной фиче:

Или об интересном исследовании:

Можно написать что-то ситуативное например, привязаться кчемпионату мира пофутболу:

Или рассказать очём-то, что можно найти наАвито:

Если соблюсти формальности и сказать обисправлениях, можно аккуратно прорекламировать икакой-то свой проект:

Кратко: как писать симпатичные чейнджлоги

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

  • Говорите, что изменилось. Вряд ли вам нужно, чтобы релиз отклонили, особенно, если внём исправлена неприятная ошибка.

  • Не преувеличивайте. Если приложение нестало работать быстрее уабсолютного большинства пользователей, не стоит говорить, что всё внезапно начнёт летать.

  • Будьте последовательны. Чейнджлог ещё одна точка соприкосновения пользователя спродуктом. Если обычно общаетесь навы и,вообще, деловито, нестоит писать Зацени, обновление пушка!

  • Приносите пользу. Представьте, что вам нужно объяснить изменения бабушке, пока выедете влифте. Важно подсветить, что вобновлении интересного, как оно улучшит жизнь.

  • Аккуратнее с шутками. Когда вы придумаете нечто потешное, покажите чейнджлог нескольким людям. Если смешно только вам, отшутки лучше избавиться.

  • Делайте заготовки. Вам нужны тексты наслучаи, когда рассказать будет не очем. Обыграйте сценарии использования приложения, расскажите опроведённом исследовании, покажите занятную статистику, подсветите старую, но важную фичу.

Подробнее..

За что App Store может отклонить приложение чек-лист

18.06.2021 14:19:30 | Автор: admin

App Store самая строгая площадка для размещения приложений. Ревью проходит дольше и строже, чем у Google Play и Huawei App Gallery. В 2020 году AppStore отклонил миллион приложений, которые публиковались впервые, и миллион апдейтов.

С одной стороны, такая строгая политика это хорошо: пользователям легче выбрать приложение и быть уверенным, что оно безопасно. Однако для разработчиков это настоящая головная боль.

Например, получить отказ в публикации можно, если в приложении есть контент, защищённый авторскими правами, причём даже если он на скриншотах в магазине Apple. А если приложение связанно со здоровьем, придётся предоставить описание алгоритмов и уровень точности снимаемых приложением показаний.

Мы составили чек-лист очевидных и не очень очевидных причин, по которым AppStore отклоняет приложения. Сам чек-лист в гугл-доке. В статье раскроем подробнее каждый пункт.

Нарушения политики конфиденциальности и пользовательских данных

Нет ссылки на пользовательское соглашение. Ссылка должна быть и внутри приложения, и на странице в магазине. Если ссылка ведёт на сайт компании, соглашение должно быть размещено там и ссылка должна работать.

Данные передаются третьим лицам. Приложения, которые управляют другими мобильными устройствами, не должны продавать или передавать данные с управляемых устройств третьим лицам.Это также касается приложений, которые собирают данные в рамках медицинских исследований или данные о здоровье. Они не должны передавать их третьим лицам и использовать для аналитики и настройки контекстной рекламы.

Нарушение функциональных требований

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

Плейсхолдеры на экранах вместо реальных функций или контента. Необходимо полностью доделать приложение, прежде чем отправлять его на ревью. Важно реализовать всю запланированную функциональность до публикации. Нельзя оставить комментарии или код, который нигде не используется в приложении, Apple не даст вашему приложению зелёный свет.

У нас в Surf, например, однажды отклонили приложение, потому что в нём была подключена библиотека для Apple Pay, но она нигде не использовалась.

UI, не соответствующий Human Interface Guideline. Сложное для использования приложение, имеющее нелогичное поведение и расположение элементов, отклонят.

Необоснованный запрос на доступ к файлам или функциям устройства. Нужно запрашивать доступ только к тому, что напрямую необходимо для работы приложения. Также придётся подробно обосновать, зачем приложению эту нужно обойтись фразой Предоставьте доступ к геолокации не получится.

Пользователь должен понимать, зачем предоставлять доступ, и самостоятельно решать, разрешать его или нет. Если пользователь откажется предоставить доступ к функциям или данным, приложение должно продолжать работать. Но нужно объяснить пользователю, что функциональность в таком случае может быть ограничена.

Несанкционированный доступ к данным пользователя. В 2021 году вступило в силу изменение политики Apple в отношении рекламы. Теперь, чтобы собирать данные для рекламных кампаний, нужно запросить разрешение у пользователя на доступ к отслеживанию активности.

Изменение поведения системных функций, кнопок или жестов. Нельзя изменять поведение кнопок громкости или жестов свайпа панели управления.

Для распознавания по FaceID используются сторонние технологии. Идентификация пользователя по FaceID должна происходить только с помощью библиотеки LocalAuthentication.

Нет входа по AppleID, если есть возможность входа через соцсети. Это обязательно для iOS 13 и новее.

Нарушения в оформлении приложения

В описании приложения упоминаются другие платформы. На странице магазина или внутри самого приложения не должно быть упоминаний других производителей, сторонних иконок и устройств. Скриншоты для страницы приложения в сторе следует сделать так, чтобы было понятно, что они сделаны на устройстве компании Apple.

Описание приложения неполное и вводит в заблуждение. Приложение не должно содержать информации, которая может ввести пользователей в заблуждение: например, описание несуществующих функций или мимикрии под известное приложение. На скриншотах в магазине не должно быть функций, которые не реализованы в приложении.

Есть слова Beta, Demo или Debug в названии приложения. Такие приложения запрещены к публикации в магазине App Store. Для бета-версий есть Test Flight.

Нет описания новой функциональности у обновлённого приложения. Если в приложении появилась новая функциональность, необходимо описать её в поле в App Store Connect. Без чёткого описания приложение ревью не пройдёт.

Скриншоты приложения, иконка и другой контент на странице магазина не подходят для аудитории 4+. И не важно, что приложение может быть не предназначено для такого возраста: аудитория App Store дети от четырёх лет.

Контент не соответствует возрастной метке. При публикации нужно пройти опрос, чтобы установить возрастную метку приложения. Если контент ей не соответствует, приложение или обновление отклонят при публикации.

Не стоит указывать в описании или на скриншотах, что продукт имеет отношение к Apple либо компания отвечает за качество, если это не так. Если приложение станет выбором редакции, Apple автоматически установит на нём соответствующую иконку.

Файл с расширением .ipa превышает размер 50 мб в момент публикации.

Нет демо-пользователя для ревью, если приложение требует обязательной авторизации.

Не указаны правила участия и выигрыша, если в приложении есть розыгрыши, рулетки или казино. Следует явно написать, что Apple не имеет никакого отношения к этим конкурсам и розыгрышам.

Реклама не соответствует возрастному рейтингу приложения. Также важно убедиться, что она не сбивает пользователя с толку и не мешает ему.

Приложение опубликовано от имени разработчика. Приложения, которые предоставляют банковские услуги, услуги относящиеся к здравоохранению, авиа- и жд-перевозкам, нужно публиковать от имени компании. Apple не позволит опубликовать такое приложение с собственного аккаунта разработчика.

В период пандемии этот пункт стал особенно важен: Apple строго следит за распространением информации, связанной с COVID-19.

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

Контент оскорбляет людей разных рас, вероисповеданий, сексуальной ориентации, национальности.

Приложение поощряет незаконное использование оружия или позволяет его купить.

Есть откровенно сексуальный или порнографический контент.

Приложение разрешает анонимную отправку смс/ммс, анонимные звонки, розыгрыши.

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

У карты лояльности в wallet нет контактной информации о компании. Её нужно добавить, чтобы пользователи могли связаться с компанией, если захотят.

Покупки в приложении

Цифровой контент продаётся не через in-app purchase.К цифровому контенту относятся подписки, музыка в приложении, видео, расширенный доступ к функциям.

Не указана вероятность, с которой пользователь получит тот или иной предмет из лутбокса. Вероятность нужно обозначить перед покупкой этого игрового элемента.

Приложение заставляет пользователя делать дополнительные действия, чтобы разблокировать контент или функции. Например, оценивать, оставлять отзыв, устанавливать другое приложение.

Приложение не предоставляет пользователю всю необходимую информацию о покупке до момента продажи. Это важно, если приложение использует Apple Pay. Также недопустима кастомизация окна оплаты.

Категория Kids

Kids в App Store отдельный вид приложений. К ним Apple относится максимально строго. Категория Kids делится на три подкатегории: до 5 лет, 68 лет, 911 лет.

Есть внешние ссылки, покупки и другие отвлекающие факторы. Такие элементы требуют дополнительной защиты и отделения от функциональности, которую используют дети. Исключение составляют опции родительского контроля.

Не соблюдены законы, касающиеся защиты конфиденциальности детей в интернете. Запрещено отправлять личную информацию и данные об устройстве третьим лицам.

Есть сторонняя аналитика и реклама. Имеется в виду любая система аналитики, передающая информацию на другой сервер. Разрешены лишь те службы, которые не передают никакую идентифицирующую информацию о детях: местоположение, имя, дату рождения, адрес имейла.

Составили гугл-док с чек-листом требований для ревью App Store.

А по каким причинам App Store отклонял ваши приложения? Расскажите в комментариях.

Подробнее..

Дайджест интересных материалов для мобильного разработчика 398 (14 20 июня)

20.06.2021 12:09:43 | Автор: admin
В этой подборке исследуем StoreKit 2, распознаем лица и позы на Android, улучшаем производительность React-приложений, учим сквирклморфизм и многое другое!



Этот дайджест доступен в виде еженедельной рассылки. А ежедневно новости мы рассылаем в Telegram-канале.

iOS

За что App Store может отклонить приложение: чек-лист
Meet StoreKit 2
Тим Кук: на Android в 47 раз больше вредоносных программ, чем на iOS
Новый антимонопольный акт может заставить Apple продать App Store
Что нового во встроенных покупках в iOS 15 WWDC 21
Строим лабиринты с SwiftUI
iOS 15: заметные дополнения к UIKit
Info.plist отсутствует в Xcode 13 вот как его вернуть
ScrollView в XCode 11
Создаем игры на SwiftUI с помощью SpriteKit
Мастерим списки в SwiftUI
Как лучше структурировать свои проекты в Xcode
Глубокое погружение в Акторы в Swift 5.5
Разработка функций iOS-приложения в виде модулей в Xcode
Как делать видеозвонки с помощью SwiftUI
Euler: вычислительный фреймворк на Swift
WorldMotion: положение устройства относительно Земли

Android

Как использовать Android Data Binding в пользовательских представлениях?
AppSearch из Jetpack вышел в альфа-версии
Распознавание лиц и поз за 40 минут
Android Broadcast: новости #10
Создайте свою библиотеку KMM
История моего первого а-ха-момента с Jetpack Compose
Как стать ассоциированным разработчиком Android (Kotlin Edition)
Анимации Jetpack Compose в реальном времени
RecyclerView с NestedScrollView: лучшие практики
Android Bitbucket Pipeline CI/CD с Firebase App Distribution
CompileSdkVersion и targetSdkVersion в чем отличие?
Нижняя панель навигации Android с Jetpack Compose
Интеграция Google Sign-in в Android-приложение
Focus в Jetpack Compose
DashedView: полосатые View
Screen Tracker: название видимого Activity/Fragment
SquircleView: красивые View

Разработка

5 000 000 строк кода, 500 репозиториев: зачем мы адаптировали приложение AliExpress для Рунета
Десятикратное улучшение производительности React-приложения
gRPC + Dart, Сервис + Клиент, напишем
Podlodka #220: волонтерство в IT
Хороший день разработчика: Good Day Project от GitHub
К 2024 году 80% технологических продуктов будут создавать непрофессионалы
Сквирклморфизм (Squirclemorphism) в дизайне интерфейсов
12 рекомендаций, которые помогут улучшить процесс регистрации и входа в систему
React Native в Wix Архитектура (глубокое погружение)
Как узнать плохой код? 8 вещей
5 лучших пакетов Flutter, которые вы должны знать
Советы по кодинг интервью в Google
Как стать плохим разработчиком

Аналитика, маркетинг и монетизация

Гайд по тестированию рекламы для мобильных приложений
Вслед за Apple и Google комиссию магазина приложений снизила Amazon
make sense: О инфлюенсер-маркетинге
UserLeap получает еще $38 млн на отслеживание пользовательского опыта
Классическая MMORPG RuneScape запускается на iOS и Android
Маркетологи в мобайле: Александр Плёнкин (Vprok.ru Перекрёсток)
Почему такие скриншоты пустая трата времени? (пока у вас нет 4,000 загрузок в месяц)
Amplitude получил еще $150 млн
$100 млн для Free Fire: как младший брат может обогнать старшего на уже сложившемся рынке?
App Annie: рынок мобильных игр в России в 2020 вырос на 25% до $933 млн
Темные паттерны и уловки в мобильных приложениях
Использование BigQuery и Firebase Analytics для привлечения, вовлечения и оценки пользователей

AI, Устройства, IoT

Запускаем DOOM на лампочке
Быстрое обнаружение Covid-19 на рентгеновских снимках с помощью Raspberry Pi
Как я учу Python на Raspberry Pi 400 в библиотеке
Топ-5 преемников GPT-3, о которых вы должны знать в 2021 году

? Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку пришлите, пожалуйста, в почту.
Подробнее..

Перевод Как Apple при помощи нерыночных методов занимается вымогательством у разработчиков

06.08.2020 18:12:42 | Автор: admin


Автор статьи Энди Йен основатель и директор Proton Technologies AG, предоставляющей сервисы веб-почты с шифрованием ProtonMail и VPN ProtonVPN. Получил диплом по физике частиц в Гарварде, некоторое время работал исследователем в ЦЕРН.

На прошлой неделе Еврокомиссия среагировала на жалобу от Spotify, объявив о начале расследования практик Apple в отношении App Store, которые, возможно, нарушают законы конкуренции Евросоюза. Мы в компании Proton аплодируем этому решению и смелости компании Spotify, поднявшей этот вопрос.

Apple целый год рекламировала себя как компанию, ставящую на первое место интересы пользователей, но теперь она всё чаще работает совместно с диктаторскими режимами и урезает цифровую свободу. Было время, когда Apple позиционировала себя как бунтарскую альтернативу гигантам вроде Microsoft. Сегодня Apple превратилась в монополию, давящую потенциальных конкурентов эксплуататорскими поборами, и занимающуюся цензурой по указке диктаторов.

Американские техногиганты давно занимаются прессингом, пытаясь задушить инакомыслие и конкуренцию, чтобы не расставаться с доминированием на рынке. Мы знаем это постольку, поскольку годами терпели эту эксплуатацию. И, как многие другие, мы долго не решались высказаться, опасаясь того, что эти техногиганты могут злоупотребить своей доминирующей позицией, уничтожив всех, кто осмелиться встать у них на пути.

Однако мы считаем, что наша совесть не позволяет нам больше молчать. Недавние антимонопольные расследования, запущенные против Apple в США и Европе подтверждают нашу позицию. Мы пришли к выводу, что Apple создала новую опасную нормальность, позволяющую ей злоупотреблять своим монопольным положением, назначая грабительские комиссии и проводя цензуру, что душит технический прогресс, творческую свободу и права человека. Что ещё хуже, она создала прецедент, вдохновляющий другие технические монополии на подобные злоупотребления.

При помощи своего монопольного положения Apple держит нас всех в заложниках


Apple iOS контролирует 25% глобального рынка смартфонов (оставшиеся 75% по большей части контролирует Google Android). Получается, что для более чем миллиарда людей (а особенно для жителей США, где доля рынка Apple приближается к 50%) App Store это единственный способ устанавливать приложения. Это даёт Apple невероятные рычаги влияния на то, как по всему миру создаётся и потребляется ПО.

Возможно, наиболее болезненным выражением этой власти является непомерный налог на разработчиков в 30%, который сегодня рассматривают в антимонопольных расследованиях в США и Евросоюзе. Это, очевидно, чрезвычайно высокая комиссия, и при нормальных рыночных условиях её никто не стал бы терпеть однако она особенно вредит тем, кто пытается предлагать продукт, конкурирующий с Apple. Очень сложно конкурировать, если вас заставляют платить вашему конкуренту 30% от всех ваших прибылей.

Apple пытается оправдать такие комиссии, утверждая, что App Store ничем не отличается от торгового центра, в котором компании, пытающиеся предлагать свои продукты, должны платить арендную плату владельцу ТЦ (в данном случае, Apple). Приводя этот аргумент, компания удобно опускает тот факт, что в случае с iOS существует единственный ТЦ, и нет возможности взять в аренду помещения у другого, конкурирующего с ним ТЦ. Apple не нарушает закон, владея ТЦ и сдавая помещения в аренду, или владея единственным ТЦ. Незаконно лишь эксплуатировать факт наличия единственного ТЦ, взимая чрезмерную плату, вредящую конкурентам.

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

После того, как Еврокомиссия начала своё расследование 16 июня, Apple выпустила заявление, где говорится, что Еврокомиссия выдвигает беспочвенные жалобы от горстки компаний, просто возжелавших халявы.

Этот комментарий демонстрирует чёрствость, с которой Apple экспроприировала и задушила творческое начало, процветавшее когда-то в интернете. Если на эту ситуацию пожаловалось немного компаний (к примеру, Spotify), это оттого, что доминирование Apple на рынке не даёт мелким компаниям возможности возражать. Тут либо подчиняйся, либо тебя удалят из App Store без возможности апелляции.

Apple уже зашла настолько далеко, что удаляет приложения из App Store, если те отказываются предлагать пользователям покупать внутри приложения те функции, которые можно купить где-то ещё. Иначе говоря, Apple хочет получить треть всех ваших продаж, хотите вы продавать свой продукт на их платформе, или нет. Именно это и произошло с компанией Proton.

На примере судов над мафией мы знаем, что отсутствие свидетелей, желающих давать показания, не говорит о том, что преступления не было это лишь подчёркивает могущество обвиняемого. Сегодня мы хотим дать показания, опровергающие заявления Apple о том, что лишь горстка компаний протестует против их практик.

Apple помогает пропагандировать авторитаризм по всему миру


Если пользоваться доминирующим положением на рынке для устранения конкурентов неправильно и незаконно, то пользоваться этим для подавления цифровой свободы просто неэтично. Уже давно кто-то должен был обвинить Apple в таком поведении. Мы, как непосредственные свидетели такого поведения, можем поделиться нашей историей.

В январе 2020 года ProtonVPN выпустила обновление описания своего приложения для iOS в App Store. В новом описании подчёркивались возможности ProtonVPN, в частности, способность разблокировать цензурируемые веб-сайты.

Хотя ProtonVPN находится в АС с 2018 года, и базовая функциональность нашего VPN не менялась, Apple внезапно отказала в публикации новой версии приложения, пригрозив вообще удалить его из АС. Они потребовали, чтобы мы убрали из описания упоминания цензуры на том основании, что в некоторых странах свобода слова серьёзно ограничена. Либо мы подчинялись, либо нас убирали из АС. А больше всего беспокоит тот факт, что Apple потребовала убрать упоминания цензуры из языков всех стран, где доступно наше приложение по сути, подчиняясь требованиям авторитарных правительств, и затрагивая даже те страны, где свобода слова защищена.

Действительно, в некоторых странах, например, в Китае, Южном Судане и Саудовской Аравии, свобода слова действительно серьёзно ограничена, и тысячи активистов были убиты или брошены в тюрьму за попытки выразить своё мнение. Однако уступая тиранам и приводя всё к наименьшему общему знаменателю, Apple игнорирует признаваемые международным сообществом права человека и останавливает прогресс, которым все мы наслаждаемся, и за который активисты заплатили своими жизнями.

Одной из серьёзнейших угроз демократии и свободе в XXI веке является интернет-цензура, и в этом смысле VPN это один из лучших инструментов, способных дать людям доступ к независимым источникам точной информации. Свободное распространение идей и право на конфиденциальность ваших идей является одним из главнейших принципов демократии.

И, видимо, Apple в этот принцип уже не верит. К примеру, Apple подчиняется китайским законам, запрещающим пользователям доступ к тысячам приложений, требующим от иностранных компаний хранения данных местных граждан в границах страны и предоставления к ним доступа для местных властей. Даже Google сильнее сопротивляется давлению со стороны Китая.

Мы считаем неприемлемым, что Apple использует доминирующее положение на рынке для того, чтобы склонять к участию в ущемлении прав человека другие компании, которые иначе могли бы и воспротивиться этому. И эти попытки выходят за пределы наших возможностей бороться с цензурой при помощи нашего приложения.

В Китае Apple подвергла цензуре такие платформы, как The New York Times и Bloomberg News, а в Гонконге заблокировала доступ к приложению HKMaps, поддерживавшему местные демократические протесты. Она также согласилась удалить десятки приложений и подкастов, которые, по мнению Китая, нарушают местные законы о цензуре.

В рамках нашей миссии по предоставлению всеобщего доступа к конфиденциальности и цифровой свободе мы разработали ProtonVPN, первый бесплатный и безлимитный VPN-сервис в мире, не отслеживающий действия пользователей. Мы находимся на переднем крае всемирной борьбы за свободу, и недавно заняли третье место в рейтинге гонконгского App Store во время местных протестов. Подвергая описание ProtonVPN цензуре с целью повиновения запросам авторитарных правительств, Apple всё более усложняет людям реализацию своих фундаментальных прав, а также чётко даёт понять, что для неё прибыль важнее людей.

С большой властью (и прибылью) приходит большая ответственность


Несмотря на то, что компания пытается выставить себя борцом за права человека, в последние годы количество случаев, когда Apple защищала эти права, постоянно уменьшается. Уровень компромиссов, на которые она соглашается пойти, удивляет даже её инвесторов увеличивается количество акционеров, требующих от компании соблюдения базовых прав человека.

В прошлом году Apple сообщила о рекордных доходах в $55 млрд, став наиболее доходной технокомпанией в мире. Мы не возражаем против того, чтобы Apple зарабатывала деньги, и они имеют право максимизировать прибыль. Однако, как и любая компания, Apple должна также подчиняться законам, включая и законы о конкуренции, и в этом смысле мы поддерживаем и одобряем попытку Евросоюза заставить Apple держать ответ.

Мы также считаем, что технокомпании, особенно зарабатывающие по $55 млрд, как минимум имеют моральную обязанность соблюдать права человека, даже если это нельзя заставить их делать по закону. Однако заставить её можем мы, потребители. Выбирая, кому отдавать свои деньги, мы даём понять, что именно мы считаем минимально допустимым уровнем моральной ответственности.

Мы надеемся, что обозначив свою позицию сегодня, мы вдохновим и других высказываться и делать всё, чтобы создать более справедливое, свободное и объективное общество. Если вы также стали жертвой злоупотребления со стороны Apple, пишите нам на адрес at legal@protonmail.com.
Подробнее..

Перевод Как продавать приложения для Mac за пределами App Store

26.01.2021 10:19:42 | Автор: admin


Mac всегда отличался от своего близкого родственника iOS, особенно в отношении того, что пользователю можно и нельзя запускать в своей системе. Даже после появления Apple Silicon компания Apple чётко дала понять, что Mac остаётся Mac, и его по-прежнему можно хакать, даже при запуске на новой архитектуре.

Для программистов это значит, что при разработке для платформы Mac у нас есть выбор: мы можем распространять приложения независимо, за пределами Mac App Store, только через Mac App Store или сочетать оба варианта.

Данная статья стала результатом моих размышлений на эту тему. Она задумывалась как руководство по аспектам, которые нужно знать при распространении приложений для Mac за пределами App Store, а не как подробное описание конкретных действий. Надеюсь, что представленная здесь информация поможет новичкам снять завесу тайны с этого процесса, а описание моего собственного процесса будет полезно в качестве опорной точки.

App Store и прямое распространение: плюсы и минусы


Все эти варианты имеют свои достоинства и недостатки. Начнём с того, что некоторые приложения для Mac просто невозможно будет распространять через Mac App Store. Примером этого может послужить моё приложение AirBuddy, которому для обеспечения глубокой интеграции с беспроводными устройствами Apple необходимо запускать системный агент и использовать приватные API, что в App Store запрещено. То же самое относится и ко многим другим видам приложений, которые просто не смогут работать в условиях ограничений песочницы Mac.

Для тех же, у кого выбор есть, я составил список плюсов и минусов выпуска в Mac App Store или независимого распространения.

Плюсы Mac App Store


  • Компания Apple занимается за вас распространением, продажей и лицензированием.
  • Большинству пользователей проще найти и установить приложение.
  • Есть вероятность попасть в рекомендации Apple и стать известным большему количеству покупателей.
  • Можно использовать такие функции, как вход с учётной записью Apple, недоступные для приложений, распространяемых вне Mac App Store

Минусы Mac App Store


  • Нужно платить Apple долю 15% или 30% от всех продаж. Это зависит от того, сколько заработали за год все ваши приложения.
  • Каждое обновление, даже самое мелкое, обязано пройти процесс App Review с вероятностью отказа по произвольным причинам.
  • Из-за строгих требований песочницы невозможно раскрыть весь потенциал macOS.
  • Невозможно выпускать платные обновления.

Плюсы прямого распространения


  • Можно выпускать обновления в любой момент без необходимости ожидания проверки и не боясь, что их отклонят
  • Раскрывается весь потенциал macOS с системными расширениями, демонами, выходом из песочницы, приватными API и многим другим.
  • Повышение процента продаж.
  • Реализация платных обновлений или других бизнес-моделей, недопустимых в App Store
  • Возможность жить без постоянного страха, что твоё приложение внезапно станет проблемой для Apple и появится угроза его удаления из App Store

Минусы прямого распространения


  • Нужно заниматься лицензированием, распространением и обновлениями (вы увидите, что это не так сложно)
  • Не так просто реализовывать расходные (consumable) и постоянные (non-consumable) покупки внутри приложения (нет StoreKit)
  • Нельзя использовать некоторые сервисы Apple, например, вход с учётной записью Apple (другие сервисы, например, CloudKit, работают нормально)

Примечание о Catalyst и SwiftUI


С появлением Catalyst стало появляться множество новых приложений для Mac, поскольку теперь намного проще взять готовое приложение для iPad и портировать его на Mac. Приложения, портированные на macOS через Catalyst, необязательно выпускать в App Store, даже если оригинал под iOS находится там.

Кроме того, на данный момент не существует TestFlight для macOS (одно из моих пожеланий на 2021 год), поэтому если вы хотите распространять бета-сборки приложения, созданного Catalyst, то это необходимо делать за пределами Mac App Store, и это не сильно отличается от распространения приложения в продакшене.

Многое из описанного в статье применимо и к Catalyst-приложениям в конце концов, это же приложения для Mac, однако части приложений потребуется дополнительный хакинг Apple препятствует использованию всех возможностей AppKit непосредственно из Catalyst-приложения. Однако немного потрудившись, можно заставить Catalyst-приложение использовать многие функции Mac, в том числе поддержку AppleScript и другие возможности.

При разработке SwiftUI-приложений для Mac в процессе распространения не должно быть серьёзных отличий, потому что в SwiftUI-приложении мы можем использовать все функции macOS API без хаков, требуемых для Catalyst-приложений.

Распространение


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

Хостинг


Первым серьёзным шагом, позволяющим вашему приложению для Mac попасть в руки пользователей без App Store выбор способа распространения его двоичного файла. Отсутствие App Store означает, что вам придётся хостить двоичные файлы приложения и обновлений где-нибудь в Интернете, дав пользователям ссылку на скачивание.

Реализовать это можно множеством разных способов. Для приложения в open source можно использовать релизы на Github и даже хостить update feed приложения в репозитории Github. Именно так я распространяю приложение WWDC для macOS.

В случае коммерческих приложений я использовал Backblaze B2 для хранения двоичных файлов приложений, дельта-обновлений и update feed, проксируя все запросы через Cloudflare, чтобы у меня был собственный домен для скачивания/обновлений, а также чтобы при необходимости добавлять на сервер фильтрацию, кэширование и логику.

B2 чрезвычайно доступный провайдер (я редко плачу больше 1 доллара в месяц). Большинство приложений для Mac невелико по размерам, поэтому даже если ваше приложение активно скачивают, маловероятно, что вам придётся много платить за объём хранилища/трафик. Ещё одним популярным вариантом являются бакеты Amazon S3, но его панель управления повергает меня в ужас, поэтому я предпочитаю B2, который намного проще (и дешевле).

Пока я не автоматизировал этап публикации релизов своих приложений, поэтому для загрузки нового релиза я просто использую Transmit как клиент для моих бакетов B2. Кстати, прежде чем мы доберёмся до загрузки релиза на сервер, есть ещё один важный этап: получение нужного файла для загрузки.



На правах рекламы


Если вам нужен сервер в России для отладки или размещения проектов, то вам прекрасно подойдут наши эпичные серверы. Создание собственной конфигурации в пару кликов, посуточная тарификация серверов, антиDDoS уже в коробке, удобная панель управления. Лучше один раз попробовать!





Подтверждение и упаковка


При экспорте архивированного приложения из Xcode у нас есть два основных варианта распространения: App Store Connect и Developer ID. Для распространения приложений без App Store мы будем использовать Developer ID.

Ту же учётную запись разработчика, которую вы используете для распространения приложений через Mac App Store, можно использовать и для подписывания приложений при распространении приложений по Developer ID. Сам сертификат отличается, но Xcode автоматически сгенерирует и установит его, если вы ещё этого не сделали в процессе экспортирования архива.

С момента выпуска macOS Catalina все приложения, распространяемые напрямую среди пользователей должны проходить проверку Apple, в противном случае они по умолчанию не запустятся. Процесс проверки заключается в передаче приложения компании Apple, которая выполняет автоматизированный контроль зловредного ПО и штампует ваш двоичный файл специальной сигнатурой, позволяющей ему запускаться. Это не процедура App Review, а автоматизированная проверка, предотвращающая распространение таким способом зловредного ПО. Кроме того, она позволяет Apple пометить как зловред единственный двоичный файл, а не весь аккаунт разработчика на случай, если он когда-нибудь окажется скомпрометированным.

Возможность проверки двоичного файла непосредственно в Xcode organizer зависит от способа упаковки, выбранного для распространения приложения. Нельзя просто закачать папку .app на сервер и позволить пользователям её скачивать, её нужно превратить в неструктурированный файл. Проще всего это сделать, упаковав приложение в zip, и распространять его как файл zip, однако, по моему опыту, распространение приложения в виде файла DMG значительно снижает количество просьб о помощи со стороны пользователей.

Вероятно, вы уже видели DMG при загрузке файлов Mac. Это образы дисков, монтируемые macOS при двойном нажатии в Finder. Они также могут содержать графические инструкции о том, что нужно перетащить приложение в папку Applications. Это упрощает жизнь пользователю и снижает вероятность того, что этот пользователь запустит приложение из папки Downloads или другого произвольного места.

Если вы собираетесь распространять своё приложение в виде DMG, то вам достаточно просто экспортировать его, выбрав в Xcode опцию Developer ID без проверки (notarization), а затем выполнить проверку самого DMG. В Xcode нет опции экспорта в DMG, поэтому придётся воспользоваться сторонним инструментом. Мне нравится работать с create-dmg. Кроме того, я создал и распространяю в open source инструмент dmgdist, автоматизирующий процесс создания, загрузки и штампования DMG, что позволяет одной командой получить готовый к распространению образ.

Для распространения приложения в виде файла zip процесс подготовки проще: после выбора в Xcode Developer ID выберите опцию загрузки (upload). Будет создана проверенная версия приложения, которую затем можно будет упаковать в zip и распространять.

Обновления приложений


Ещё один аспект App Store заключается в том, что он занимается обновлениями приложений. Когда мы загружаем новую версию в App Store Connect и она проходит проверку, пользователям становится доступным обновление в App Store. Нам нужно каким-то образом воссоздать этот процесс для приложений, распространяемых напрямую.

Самый лучший (и популярный) способ использовать Sparkle. Он существует уже много лет и стал практически официальным способом распространения обновлений приложений для Mac, продаваемых вне Mac App Store.

Сейчас Sparkle как бы живёт двойной жизнью. Можно использовать или легаси-версию Sparkle, или более современную ветку v2, в которую включено множество улучшений, например, возможность обновлять используемые в песочнице приложения. Я по-прежнему пользуюсь легаси-версией, потому что она мне знакома, а интеграция более современной версии всё ещё кажется немного сложной. Не надо чинить то, что не сломано.

Процесс генерации обновления приложения обычно происходит следующим образом: проверяем, что с каждым обновлением версия приложения становится больше, создаём пакет в соответствии с описанным выше (Sparkle понимает zip, DMG и пакеты установщика), а затем используем инструмент generate_appcast для обновления feed. После этого загружаем дельты, пакет новой версии и обновлённый AppCast feed на выбранный хостинг, после чего пользователи увидят новую версию, проверив обновления внутри приложения.

Это может показаться сложным и определённо требует практики, но после настройки процесса он оказывается совершенно беспроблемным (на мой взгляд, гораздо лучше, чем работа с App Store Connect).

Зарабатываем деньги за пределами Mac App Store


Если вы хотите распространять своё приложение для Mac вне App Store, то есть вероятность, что в какой-то момент вы захотите зарабатывать на нём. Как и в App Store, можно использовать множество разных бизнес-моделей, но наиболее популярной при прямой продаже покупателям является старая добрая модель плати вперёд: пользователь платит за скачивание приложения, регистрирует его при помощи лицензионного ключа и получает обновления бесплатно, по крайней мере, в течение какого-то периода времени.

Ещё одна популярная бизнес-модель для приложений, распространяемых вне App Store это модель подписки, при которой пользователи ежемесячно или ежегодно платят какую-то сумму, чтобы продолжать использовать приложение. По выбору бизнес-модели можно написать целое руководство (или серию руководств), поэтому в этом я вам не помощник. В этом разделе я буду подразумевать, что используется модель плати вперёд, которую я выбрал для своих приложений.

Чтобы вам заплатили за ваш продукт, нужен какой-то магазин, в который приходят пользователи, узнают о приложении и покупают его (если повезёт). Хорошим вариантом для новичков является сайт Gumroad, предлагающий страницу магазина, обработку платежей, хостинг и лицензирование. Когда я выпустил первую версию AirBuddy в январе 2019 года, то использовал Gumroad, и он сослужил мне очень хорошую службу, продав в течение года десятки тысяч копий приложения.

Однако изначально Gumroad не проектировался для продажи ПО, поэтому ему не хватает гибкости, имеющейся у других сервисов. После выпуска моего нового приложения FusionCast и AirBuddy 2.0 я перешёл на Paddle, который теперь занимается обработкой платежей и лицензированием моих приложений.

Ещё один вариант просто использовать сервис платежей, что-нибудь типа Stripe или FastSpring, или же обрабатывать заказы и заниматься лицензированием самостоятельно. Таким образом вы получите оптимальную гибкость, хотя придётся больше работать и скорее всего понадобится платить за дополнительные сервисы (например, для отправки электронных писем).

Я бы сказал, что если вы стремитесь подзаработать, продавая приложения для Mac за пределами Mac App Store, то лучшим вариантом является Gumroad, поскольку этот сайт сделает за вас практически всё и вам даже не придётся создавать сайт для приложения. Однако если вы продаёте приложения как компания или это ваш основной источник дохода, то бОльшую гибкость обеспечит профессиональное решение, имеющее меньше ограничений, например, Paddle.

Лицензирование, защита от копирования и пиратство


Возможно, распространяя приложения Mac напрямую, вы озаботитесь пиратством: любой сможет взять двоичный файл вашего приложения и запустить его, не заплатив за лицензию, только если вы не задействуете какую-нибудь защиту от копирования.

Хоть это и так, я пришёл к выводу, что разработчикам, особенно инди, не стоит тратить любое существенное количество времени на создание защиты от копирования. Да, некоторые люди украдут вашу работу, но они в любом случае не заплатили бы, поэтому время, потраченное на беспокойство об этом или на встраивание в приложение сверхпродвинутой DRM это время, которое можно было бы потратить на устранение багов и разработку новых функций. Кроме того, подобные практики в конечном итоге чаще наказывают законных пользователей, чем препятствуют пиратству (достаточно взглянуть на множество примеров подобного из отрасли разработки игр).

В первой версии AirBuddy вообще не было никакой защиты от копирования, даже простейшей формы регистрации для ввода лицензионного ключа. Я нашёл в Интернете несколько спираченных копий (разумеется, некоторые из них были заражены), но не увидел признаков того, что приложение пиратит большой процент пользователей, и мои показатели тоже этого не отражают. В версии 2 я использую Paddle SDK для регистрации при установке приложения, но на этом всё.

Приложения, распространяемые через Mac App Store, тоже не имеют автоматической защиты от пиратства: необходимо вручную проверять чек App Store, чтобы убедиться в легальности копии. Большинство кодов верификации чеков тривиально взламывается, поэтому приложение, распространяемое через Mac App Store, защищено от пиратства не сильнее, чем приложение, распространяемое напрямую.

Маркетинг


Я добавил этот раздел в первую очередь для того, чтобы сказать: нет серьёзных различий в маркетинге при прямом распространении приложения для Mac и при распространении через Mac App Store. В наши дни простой выпуск приложения в App Store практически ничего не значит, потому что низка вероятность того, что пользователи просто органически обнаружат совершенно новое приложение без внешней информации.

При распространении через App Store можно пропустить этап создания веб-сайта, так как в качестве основной витрины можно использовать страницу в App Store, но даже в этом случае я считаю, что большинство приложений выиграет от наличия отдельной лэндинг-страницы.

Маркетинг приложений сам по себе может быть темой для ещё одного руководства, но в целом можно порекомендовать использовать любые доступные вам каналы, особенно если у вас уже есть подписчики (в Twitter, Instagram, TikTok и т.д.). Отправка своего приложения (с бесплатной лицензией) веб-сайтам и людям, занимающимся обзорами приложений для Mac, тоже может стать отличным способом повышения популярности. Также можно использовать платную рекламу в социальных сетях, подкастах и изданиях.
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru