fa
Feedback
Разработка ждёт балета

Разработка ждёт балета

رفتن به کانال در Telegram

What I cannot create, I do not understand. DM: @alexey_mileev PeerLab: https://t.me/+e2ND1tAa0lU2ZTli

نمایش بیشتر
1 619
مشترکین
اطلاعاتی وجود ندارد24 ساعت
اطلاعاتی وجود ندارد7 روز
اطلاعاتی وجود ندارد30 روز
آرشیو پست ها
Что-то из нового Android: - Battery: * App standby buckets: использование аппа определяет, как и когда он запустить свои jobs * Background restrictions: если апп ведёт себя непорядочно, можно ему к чёртовой матери всё запретить - Background input & privacy: * Микрофон в фоне - нельзя * Камера в фоне - нельзя * Разные сенсоры - вроде бы будут возвращать нулевые значения - можно сказать, тоже нельзя - Background text measurement: * Измерять текст дорого, а делать это приходится много. Прозвучала цифра: 80%-90% всего measure-layout-draw цикла приходится на измерение текста. * Поэтому теперь его можно делать в фоне - PrecomputedText.create(…) - Notifications: * inline images & stickers * можно показать картинки участников чата, например * smart reply UI (а-ля чатбот) * no more “app is using battery” notification - Deprecation policy: * Август 2018 - новые аппы только с targetSdk 26 * Ноябрь 2018 - обновления аппов только с targetSdk 26 * Август 2019 - те, кто используют нативные куски, обязаны давать 64-bit ABI (32-bit опционально) Это только то, за что зацепился глаз. В докладе ещё больше, но тратить время не советовал бы :) #androidp #background #notifications https://youtu.be/eMHsnvhcf78

Из этого выступления я выпишу не очень много поинтов, но доклад интересный, сходите посмотрите. А поинты там такие: - Well Aged Advice: * Prioritise efficiency * Avoid WakeLocks * Don’t use undocumented APIs * Store strings and values as resources * Avoid transmitting/storing contacts & location - Android Fundamentals: * Java language syntax -> Kotlin * UI logic for background processing -> ViewModels * Services for background processing -> Work Manager * Monitor system events with Receivers -> Work Manager * Content Providers for database access -> Room Бонус: в Android P не будет вылезать ANR-диалог, апп просто будет падать. #tips #anr https://youtu.be/eHjHlujp3Tg

Доклад про то, что нового в Android development tools. Отмечу следующее: - Android Studio 3.2: * What’s new window * App bundle generation * Dynamic features support * “Sessions” window in profiler * Energy profiler * AndroidX refactoring - перевести всё на новую версию support-библиотек. Ещё появился Jetifier: “converts legacy Maven artefacts to the new AndroidX namespace and caches those for new builds” * Navigation library и UI для неё - позволяет выстроить всю навигацию одним xml, в том числе умеет добавлять анимации переходам, позволяет удобно прописать deeplinks и даже вроде бы позволяет разрулить передачу аргументов в Activity/Fragment * Layout Editor - появляются всякие кнопки и меню для быстрого добавления sample data в design-режиме * Запустили студию на Pixel Chromebook (no ADB yet - “you can upload straight to the Play Store and hope for the best”) * D8 - new default Dexer & R8 - new default optimizer * Бонус: показали фичу, которая в разработке (сказали, выйдет наверное даже не в 3.3) и использует следующую версию ConstraintLayout - работа с transition анимациями прямо из UI. - Emulator: * Save and replay snapshots * Better camera to support AR apps Ну, как-то так. #studio #emulator #adt https://youtu.be/WxAZk7A7OkM

В видео по ссылке рассказывают, что нового в ART в Android P: 1. Оптимизации компилятора для Kotlin (например, inline null-checks для non-null параметров) 2. CompactDex - штука, которая почикает Dex-файлы прямо на девайсе. Умеет: deduplicate and shrink code items, deduplicate multidex data, incorporate profile based Dex layout optimization (сложить методы, которые дёргаются часто или на старте в одно место в памяти) 3. На Nougat появились code profiles - во время выполнения аппа проверяется, какой код и когда выполняется и применяются соответствующие оптимизации. На Android P пошли дальше: появляется cloud profiles - данные о выполнении вашего кода загружаются в облако и оттуда прилетают другим юзерам. То есть если на Nougat чем чаще апп использовался, тем лучше работал, то на Android P ребята из Google хотят добиться оптимальной производительности сразу после установки, как раз благодаря cloud profiles. А теперь гениальная идея из их доклада: берём 1%-2% юзеров из alpha и beta каналов, они используют апп, а потом на всех юзеров уже раскатывается апп, для которого собраны все profiles и апп сразу работает оптимально. Любо! #kotlin #art #performance #optimize https://youtu.be/Yi9-BqUxsno

Выступление Chet Haase и Romain Guy. Тут ты должен был стать заинтригован. В докладе описывается весь Android Rendering Pipeline, но поскольку вместить это в 40 минут не получится, доклад выглядит как быстрое набрасывание названий разных классов и модулей. Тем не менее, вдумчиво его посмотреть я бы скорее советовал. Наброшу несколько названий из доклада, чтобы ты понимал, о чём речь: Choreographer, VSync, UI Thread, RenderThread, SurfaceFlinger, BufferQueue, Hardware Composer (HWC). Теперь несколько интересных фактов из сессии: 1. Начиная с Android Oreo можно использовать Bitmap.Config.HARDWARE, чтобы аллоцировать Bitmap напрямую на GPU и не тратить время на копирование. Недостаток: если серьёзно разойтись, можно получить пачку совершенно невнятных крашей из глубин фреймворка 2. Кусочек хинта (почему так - см. видео) - чем меньше Window объектов на экране, тем лучше 3. Метод invalidate(left, top, right, bottom) можно больше не дрочить - система уже умеет неплохо оптимизировать этот момент, а багов от его использования уйма 4. “RecyclerView is now able to do prefetching of items ahead of time” 5. Graphika app on Github - пачка примеров с использованием SurfaceFlinger, Surface, SurfaceView, media encoder, virtual displays. 6. adb shell dumpsys SurfaceFlinger лучше выполнять, когда что-то анимируется/меняется на экране, иначе можно получить не совсем точные данные из-за дополнительных оптимизаций Подробности обо всём этом найдёшь по ссылке. #rendering #window #surface #gpu https://youtu.be/zdQRIYOST64

Цитата, близкая к оригиналу: "On Pixel 2 we've got 7 hardware layers, but on the Pixel 2XL we use 2 of them to draw the round
Цитата, близкая к оригиналу: "On Pixel 2 we've got 7 hardware layers, but on the Pixel 2XL we use 2 of them to draw the rounded corners. So, basically, you've got only 5." ¯\_(ツ)_/¯

Есть проблема. Я её, например, ощущаю на себе: все приложения соответствуют Material Design и почти все выглядят одинаково скучно. Размывается индивидуальность бренда. На выбор компании остаются только цвет да иконки (не всегда, но часто). И, хотя Google-guys с самого начала говорили, что material - это рекомендация, а не жёсткие рамки, почти все всё равно лепили по material-лекалам одно и то же безобразие. Ну, Google поняли, что имеют дело со стадом хомячков, и решили добавить нам степеней свободы. Посредством Material Theming нам дают свободу (и тулзы, чтобы эту свободу держать в узде - сочетай цвета, мать твою) в выборе цветов, шрифтов и форм для элементов на экране. Появился Sketch-плагин, который позволит переложить работу дизайнера в стили для Material Components - пачки написанных для нас View. Ещё мне очень понравился момент с формой контролов (см. картинку выше), который даёт дополнительное понимание z-level’а компонентов. #talk #material #design https://youtu.be/3VUMl_l-_fI

Ну, вы знаете, на днях закончился Google I/O. Мне не удалось на нём побывать, но иметь материал где-то на подкорке хочется. Я думаю, что не один в таком положении. Поэтому я буду потихоньку смотреть записи всех сессий, что мне показались интересными, и закидывать сюда поинты из каждого видео, которые меня заинтересуют. Не в каждый нюанс я буду погружаться достаточно глубоко, поэтому, если где-то ошибусь, feel free to написать мне, что я мудак и объяснить, в чём именно :) Итак, первый пошёл…

Ребята из Uber показали свой доморощенный method tracing tool. И вот знаете, с одной стороны, богатая идея, а с другой, немножко пугает: они решили измерять с уровня системы, т.е. их тул это форк AOSP, который умеет бенчмаркать. Такие дела. #performance #benchmarks #methodtracing https://eng.uber.com/nanoscope

Внезапно, начиная с 15.0.0 версии, принцип версионирования Google Play Services и Firebase библиотек меняется на SemVer. #google #playservices #firebase https://android-developers.googleblog.com/2018/05/announcing-new-sdk-versioning.html

Неплохую статью прислал @duglasher. В блоге Instagram Engineering вышла статья про то, как они пилили type mode (a.k.a. лень фотографировать, просто разукрашу текст) на iOS и Android. Часть про адаптацию размера текста довольно простая, а вот часть про Span мне понравилась, есть интересные советы, которые много где могут пригодиться. #instagram #text #span https://instagram-engineering.com/building-type-mode-for-stories-on-ios-and-android-8804e927feba

В статье разбирается, какие методы обычно используются в приложениях, чтобы понять, что они бегут на эмуляторе, и как эти проверки обойти. #emulator #cybersec http://www.juanurs.com/Bypassing-Android-Anti-Emulation-Part-I/

Ребята из Uber написали о том, как они на программном уровне улучшили GPS (и не только, куда же без GLONASS) позиционирование. Жаль только, что работать это будет не во всех городах и не на всех девайсах. #gps #location https://eng.uber.com/rethinking-gps/

Небольшой обзор новых View в 28-й support library. В целом, всё как обычно. Добавили несколько View, которые все уже написали сами. Всё равно приятно, если работать это будет нормально, разумеется. Мне особо понравились изменения в кнопках - видно, что Material не стоит на месте и потихоньку меняется в лучшую сторону. #material #supportlib https://medium.com/exploring-android/exploring-the-v28-android-design-support-library-2c96c6031ae8

Статья уровня “для начинающих”, но мне почему-то дико зашло. Чувак очень элегантно скрестил logger с Kotlin-фишками и кусочком Timber, который позволяет достать имя класса, из которого был вызван метод logger. #kotlin #log https://www.varvet.com/blog/logger/

Интересный оффтоп. Замечательная статья, в которой очень подробно описан каждый шаг boot процесса для Linux: от power-кнопки до готовой к работе системы. #linux #boot #kernel https://www.ibm.com/developerworks/library/l-linuxboot/

Весьма длинная статья, в которой хорошо разобраны цифровые подписи. #signature #cryptography #cybersec https://blog.cryptographyengineering.com/2018/04/07/hash-based-signatures-an-illustrated-primer/