Signal и Telegram также растут в Китае — пока

Поскольку опасения по поводу политики конфиденциальности WhatsApp отправляют миллионы пользователей на Западе в Signal и Telegram, в двух зашифрованных приложениях наблюдается небольшой рост пользователей в Китае, где WeChat уже давно доминирует, а правительство жесткий контроль над онлайн-общением.

После всплывающего уведомления WhatsApp, напоминающего пользователям, что он делится своими данными со своим родительским Facebook, люди начали уходить на альтернативные зашифрованные платформы. Telegram прибавил 25 миллионов только в период с 10 по 13 января, сообщила компания на своем официальном канале Telegram, а Signal поднялся на вершину рейтинга App Store и Google Play Store в десятках стран, как ранее сообщал TechCrunch.

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

Рост Telegram и Signal в Китае не так заметен, как их стремительный рост в регионах, где WhatsApp был основным приложением для чата, но рост является напоминанием о том, что альтернативы WeChat все еще существуют в Китай в различных сферах.

Signal собрал 9000 новых загрузок из China App Store в период с 8 по 12 января, что на 500% больше, чем в период с 3 по 7 января, согласно данным исследовательской компании Sensor Tower . Telegram добавил 17000 загрузок с 8 по 12 января, что на 6% больше, чем с 3 по 7 января. Рост WhatsApp застопорился, зафиксировав 10 000 загрузок за оба периода.

По оценкам Sensor Tower, Telegram установил около 2,7 миллиона общих установок в App Store в Китае по сравнению с 458 000 загрузок из Signal и 9,5 миллиона раз из WhatsApp.

Тот факт, что Telegram, Signal и WhatsApp доступны в Китае, может стать неожиданностью для некоторых людей. Но решения Китая о цензуре могут быть произвольными и непоследовательными. Как показывает сайт мониторинга цензуры Apple Censorship, все основные западные мессенджеры по-прежнему доступны в China App Store.

Ситуация для Android сложнее. Сервисы Google в значительной степени заблокированы в Китае, и пользователи Android возвращаются в магазины приложений Android, принадлежащие местным компаниям, таким как Tencent и Baidu. Ни Telegram, ни Signal недоступны в этих сторонних магазинах Android, но пользователи, у которых есть инструмент, который может обойти Великий брандмауэр Китая, такой как виртуальная частная сеть (VPN), могут получить доступ к Google Play и установить зашифрованные мессенджеры.

Следующей проблемой является использование этих приложений. Все основные чат-приложения немного отличаются от цензуры Пекина. Некоторые, например Signal, отлично работают без необходимости использования VPN. Уловка заключается в том, чтобы зарегистрироваться в Signal, пользователь должен активировать свою учетную запись с помощью номера телефона, а китайские номера телефонов привязаны к реальным именам людей.. Пользователи сообщают, что WhatsApp иногда работает в Китае без VPN, хотя загружается очень медленно. А Facebook вообще не работает без VPN.

«Некоторые веб-сайты и приложения могут оставаться нетронутыми до тех пор, пока не достигнут определенный порог количества пользователей, после чего власти попытаются заблокировать или заблокировать веб-сайт. или приложение », — сказал Чарли Смит, псевдонимный глава Great Fire, организации, которая следит за китайским Интернетом и также использует Apple Censorship.

« Возможно, до этого массового перехода с WhatsApp у Signal не было этого много пользователей в Китае. Это могло измениться за последнюю неделю, и в этом случае власти могли бы обдумывать ограничения для Signal », — добавил Смит.

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

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

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

В последние годы американский гигант активизировал подавление приложений в Китае, сосредоточение внимания на сервисах, которые предоставляют китайским пользователям доступ к неотфильтрованной информации, таких как провайдеры VPN, программы чтения RSS-каналов и приложения для подкастов. Apple также удалила десятки тысяч нелицензионных игр в последние кварталы после многолетней задержки.

«У Apple есть история превентивной цензуры приложений, которые, по их мнению, власти хотели бы подвергнуть цензуре», — заметил Смит. . «Если Apple решит удалить Signal в Китае либо по собственной инициативе, либо в прямом ответе на запрос властей, то клиенты Apple в Китае останутся без вариантов безопасного обмена сообщениями».

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



10 самых распространенных ошибок, которые делают разработчики Android: Учебное пособие по программированию

Чтение за 9 минут

Android. Что не нравится в этой платформе? Это бесплатно, настраивается, быстро растет и доступно не только на вашем телефоне или планшете, но и на ваших умных часах, телевизоре и автомобиле..

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

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

Несмотря на такую ​​огромную сегментацию, большинство на самом деле ошибки возникают из-за логических ошибок. Эти ошибки легко предотвратить, если мы правильно понимаем основы!

Вот руководство по программированию Android, в котором рассматриваются 10 наиболее распространенных ошибок, которые делают разработчики Android.

Распространенная ошибка №1: разработка для iOS

К моему большому удовольствию, эта ошибка Android встречается гораздо реже в наши дни (частично потому, что клиенты начинают понимать, что дни, когда Apple устанавливала все стандарты дизайна, давно ушедшие). Но, тем не менее, время от времени мы видим приложение, которое является клоном iOS.

Не поймите меня неправильно, я не евангелист программирования Android! Я уважаю каждую платформу, которая продвигает мобильный мир на шаг вперед. Но сейчас 2014 год, и пользователи уже давно используют Android и привыкли к платформе. Продвигать к ним стандарты дизайна iOS — ужасная стратегия!

Не делайте этого, если нет веской причины для нарушения правил. (Google делает это постоянно, но никогда не путем копирования-вставки.)

Вот некоторые из наиболее распространенных примеров этой ошибки Android:

  1. Вы не должны делать статические вкладки, и они не должны находиться внизу (я указываю на вас в Instagram).
  2. Значки системных уведомлений не должны иметь цвета.
  3. Значки приложений не следует размещать внутри прямоугольника с закругленными углами (если это не ваш фактический логотип, например facebook).
  4. Экраны-заставки являются избыточными за пределами первоначальной настройки/введения. Не используйте их в других сценариях.
  5. В списках не должно быть знаков вставки.

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

Распространенная ошибка № 2: разработка для вашего устройства Android

Если вы не создаете киоск/промо-приложение для одного планшета, скорее всего, ваш Android приложение не будет хорошо смотреться на всех устройствах. Вот несколько советов по программированию Android, которые следует запомнить:

  • Пиксели, не зависящие от плотности (dp), отличаются от обычных пикселей (px).
  • Ресурсы включены несколько раз для учета различной плотности и ориентации.
  • Рисунки с 9 фрагментами растянуты по размеру экрана.

Буквально тысячи возможных сценариев, но через некоторое время вы разовьете чувство, чтобы охватить их все несколькими случаями.

У вас нет тысяч устройств? Не проблема. Эмулятор Android отлично подходит для копирования физических устройств. Еще лучше, попробуйте Genymotion, он молниеносный и поставляется с множеством различных популярных предустановленных устройств.

Кроме того, вы пробовали повернуть свое устройство? Весь ад может вырваться наружу…

Распространенная ошибка №3: ​​не использовать намерения

Намерения — один из ключевых компонентов Android. Это способ передачи данных между различными частями приложения или, что еще лучше, разными приложениями в системе.

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

Вариант 1:

  • Запросить разрешение SEND_SMS.

        
  • Напишите свой собственный код для отправки SMS с помощью SmsManager .
  • Объясните своим пользователям, почему вашему приложению галереи нужен доступ к сервисам, которые могут стоить денег, и почему они должны предоставить это разрешение, чтобы использовать ваш app.

Вариант 2:

  • Запустите намерение SMS и позвольте приложению, предназначенному для SMS, сделать работа

      Намерение sendIntent = новое намерение (Intent.ACTION_VIEW);  sendIntent.setData (Uri.parse ("sms:" + phoneNumber));  sendIntent.putExtra ("sms_body", x);  startActivity (sendIntent);  

Если у вас есть сомнения, лучшим решением будет вариант 2!

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

Если нет веских причин для создания специальной реализации (например, камеры, которая применяет фильтры), всегда используйте намерения для этих сценариев. Это сэкономит вам много времени на программирование и лишит AndroidManifest.xml ненужных разрешений.

Распространенная ошибка №4: не использовать фрагменты

Некоторое время назад в Honeycomb Android представила концепцию фрагментов . Думайте о них как о отдельных строительных блоках с собственными (довольно сложными) жизненными циклами, которые существуют внутри Activity. Они очень помогают с оптимизацией для различных экранов, ими легко управлять с помощью родительской активности, их можно повторно использовать, комбинировать и размещать по желанию.

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

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

Распространенная ошибка №5: блокировка основного потока

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

Хотя наука, лежащая в основе измерения частоты кадров, которую могут воспринимать наши глаза/мозг, сложна и зависит от множества факторов, общее правило состоит в том, что все, что ниже 24 кадров в секунду с задержкой более 100 мс, не будет восприниматься как плавное.

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

Еще хуже, если основной поток заблокирован на некоторое время (5 секунд для действий, 10 для широковещательных приемников) произойдет ANR.

Это было настолько распространено в Android 2.x, что в более новых версиях система не позволяет вам создавать сеть вызывает в основном потоке.

Чтобы избежать блокировки основного потока, всегда используйте рабочие/фоновые потоки для: 1. сетевые вызовы 2. загрузка растрового изображения 3. обработка изображений 4. запросы к базе данных 5. Чтение/запись SD

Распространенная ошибка №6: изобретение колеса заново

«Хорошо, я не буду использовать основной поток. Я напишу свой собственный код, который взаимодействует с моим сервером в фоновом потоке ».

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

  1. Используйте gradle в качестве системы сборки.
  2. Используйте Retrofit/Volley для сетевых вызовов.
  3. Используйте Picasso для загрузки изображений.
  4. Используйте Gson/Jackson для анализа JSON.
  5. Используйте общие реализации для входа в социальные сети.

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

Распространенная ошибка № 7: не предполагать успеха

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

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

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

Распространенная ошибка № 8: не понимать растровые изображения

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

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

Допустим, вы хотите вывести на экран изображение, которое вы только что сделали. с вашей камерой. Общий объем памяти, необходимый для этого, рассчитывается по следующей формуле: memory_needed_in_bytes = 4 * image_width * image_height;

Почему 4? Что ж, наиболее распространенная/рекомендуемая конфигурация растрового изображения — это ARGB_8888 . Это означает, что для каждого рисуемого пикселя нам нужно сохранить 8 бит (1 байт) для альфа, красного, жадного и синего каналов в памяти, чтобы правильно его отображать. Есть альтернативы, такие как конфигурация RGB_565 , которая требует вдвое меньше памяти, чем ARGB_8888 , но теряет прозрачность и точность цветопередачи (при этом может быть добавлен зеленый оттенок) .

Предположим, у вас новое устройство с экраном Full HD и камерой на 12 МП. Размер только что сделанного изображения составляет 4000×3000 пикселей, а общий объем памяти, необходимый для его отображения: 4 байта * 4000 * 3000 = 48 МБ

48 мегабайт вашего RAM только для одного образа !? Это много!

Теперь давайте учтем разрешение экрана. Вы пытаетесь показать изображение размером 4000×3000 на экране с разрешением 1920×1080 пикселей, в худшем случае (отображение изображения в полноэкранном режиме) вам не следует выделять более 4 * 1920 * 1080 = 8,3 МБ памяти.

Всегда следуйте советам по программированию Android для эффективного отображения растровых изображений:

  1. Измерьте вид, в котором вы показываете свои изображения.
  2. Масштабируйте/обрезайте большое изображение соответствующим образом.
  3. Показывать только то, что может быть отображено.

Распространенная ошибка № 9: Использование Deep View Hierarchy

Макеты имеют представление XML в Android. Чтобы нарисовать контент, необходимо проанализировать XML, измерить экран и разместить все элементы соответствующим образом. Это ресурсоемкий и трудоемкий процесс, который необходимо оптимизировать.

Так работает ListView (а в последнее время и RecyclerView).

Если макет был однажды раздут, система его повторно использует. Но все же в какой-то момент должно произойти раздувание макета.

Допустим, вы хотите создать сетку 3×3 с изображениями. Один из способов сделать это — вертикальный LinearLayout , содержащий 3 LinearLayout с равным весом, каждый из которых содержит 3 ImageView с равным весом.

Что мы получаем при таком подходе? Предупреждение о том, что «вложенные веса плохо влияют на производительность».

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

В этом случае RelativeLayout или GridLayout эффективно заменит вложенный LinearLayouts .

Распространенная ошибка № 10: не задавать для minSdkVersion значение 14

Что ж, это не ошибка, но плохая практика.

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

Цифры ясны, пользователи ушли, разработчики не должны отставать.

Я знаю, что это неприменимо для некоторых крупных рынков со старыми устройствами (например, Индия), и установка для minSdkVersion значения 14 в приложении Facebook означает, что нужно оставить пару миллион пользователей без любимой социальной сети. Но если вы начинаете все сначала и пытаетесь создать для своих пользователей приятный опыт, подумайте об устранении прошлого. У пользователей, у которых нет ресурсов или которые чувствуют необходимость обновить свое устройство/ОС, не будет стимула опробовать лучшую версию вашего приложения для Android и в конечном итоге потратить на нее деньги.

Заключение

Android — мощная платформа, которая быстро развивается. Возможно, неразумно ожидать, что пользователи будут идти в ногу со временем, но разработчики Android должны делать это.

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

Оцените статью
clickpad.ru
Добавить комментарий