Разработка ждёт балета
Внезапно (не то чтобы очень, но всё же) Google убрали раздел Tablet с android-dot-com. Пациент и раньше был скорее мёртв, чем жив, так что я радуюсь. А за новость скажем спасибо @istima. #tablet #chromeos #google https://techcrunch.com/2018/06/01/google-quits…
Оказалось, что пропажа tablets раздела с android-dot-com - всего лишь баг, который не заметили сразу. За поправку спасибо @Scorpikk. Но я по-прежнему настаиваю, что пациент скорее мёртв :)
#tablet #google
https://www.engadget.com/2018/06/02/google-killed-android-tablet-section
#tablet #google
https://www.engadget.com/2018/06/02/google-killed-android-tablet-section
Engadget
Google quietly killed its Android tablet web page (update: it's back)
The official Android tablet page no longer exists.
Сразу две статьи из серии, в которой планируется рассказать об уроках, вынесенных из разработки cooperative multitasking библиотеки поверх Kotlin coroutines. Всё это слабо затрагивает Android-разработку, но любителям Kotlin и корутин должно зайти.
В первой статье речь в основном пойдёт о разнице между вертикальной и горизонтальной обработкой.
Во второй же статье - про оптимизацию suspending functions на примере реализации очереди.
#kotlin #coroutine
https://blog.pronghorn.tech/cooperative-multitasking-with-kotlin-coroutines/
http://blog.pronghorn.tech/optimizing-suspending-functions-in-kotlin/
В первой статье речь в основном пойдёт о разнице между вертикальной и горизонтальной обработкой.
Во второй же статье - про оптимизацию suspending functions на примере реализации очереди.
#kotlin #coroutine
https://blog.pronghorn.tech/cooperative-multitasking-with-kotlin-coroutines/
http://blog.pronghorn.tech/optimizing-suspending-functions-in-kotlin/
Если тебе ну вот прямо ни разу не интересен серверный мир, можешь смело пропускать пост. В противном случае - привет. Доклад от создателя Node.js Ryan Dahl, в котором он рассказал, о чём в Node он сожалеет и что нас ожидает в его новой поделке: Deno.
Увы-и-ахи:
* Node не остался на Promise
* Безопасность - в Node тебе доступно всё, что можно
* Система сборки - Node привязан к GYP, на ней же сидел Chrome, когда Node начинался. Только вот Chrome переехал на GN, а GYP из Node уже не выпилить
*
* node_modules
*
* index.js
Что же такое Deno? Ryan назвал его “A secure TypeScript runtime on V8”. Пока это дело в разработке и пользоваться им не стоит, но мы привыкли ждать :)
В чём основные цели Deno?
* Использовать V8 secure sandbox, не давать произвольным native функциям залезать в V8. Внутри это устроено так: бежит Deno Process (к слову, написан на Go), у которого есть все permissions. Внутри него бежит V8, у которого этих самых permissions примерно нихрена. И связывается всё это по простой send-receive схеме поверх Protobuf.
* Упростить систему модулей
- Дружное нет переиспользованию текущей Node modules экосистемы
- import statements должны содержать расширение файла (и довольно похожи на Go)
- Импорты по URL подтягиваются только первый раз и кэшируются
- Vendoring возможен через указание non-default cache directory
* Только один исполняемый файл на выходе (кажется, чуваку очень понравился Go)
* TypeScript компилятор встроен в исполняемый файл (Ryan очень тепло отзывался о TypeScript и назвал Dart total failure)
* “Die as soon as it gets an error”
* Поддержка top-level await
* Быть browser-compatible там, где это возможно
#talk #nodejs #deno
https://youtu.be/M3BM9TB-8yA
Увы-и-ахи:
* Node не остался на Promise
* Безопасность - в Node тебе доступно всё, что можно
* Система сборки - Node привязан к GYP, на ней же сидел Chrome, когда Node начинался. Только вот Chrome переехал на GN, а GYP из Node уже не выпилить
*
package.json* node_modules
*
require(“module”) должен содержать расширение файла* index.js
Что же такое Deno? Ryan назвал его “A secure TypeScript runtime on V8”. Пока это дело в разработке и пользоваться им не стоит, но мы привыкли ждать :)
В чём основные цели Deno?
* Использовать V8 secure sandbox, не давать произвольным native функциям залезать в V8. Внутри это устроено так: бежит Deno Process (к слову, написан на Go), у которого есть все permissions. Внутри него бежит V8, у которого этих самых permissions примерно нихрена. И связывается всё это по простой send-receive схеме поверх Protobuf.
* Упростить систему модулей
- Дружное нет переиспользованию текущей Node modules экосистемы
- import statements должны содержать расширение файла (и довольно похожи на Go)
- Импорты по URL подтягиваются только первый раз и кэшируются
- Vendoring возможен через указание non-default cache directory
* Только один исполняемый файл на выходе (кажется, чуваку очень понравился Go)
* TypeScript компилятор встроен в исполняемый файл (Ryan очень тепло отзывался о TypeScript и назвал Dart total failure)
* “Die as soon as it gets an error”
* Поддержка top-level await
* Быть browser-compatible там, где это возможно
#talk #nodejs #deno
https://youtu.be/M3BM9TB-8yA
YouTube
10 Things I Regret About Node.js - Ryan Dahl - JSConf EU
See also https://github.com/ry/deno
JSConf EU is coming back in 2019 https://2019.jsconf.eu/
JSConf EU is coming back in 2019 https://2019.jsconf.eu/
@duglasher в очередной раз нам с вами кое-чего подкинул. На этот раз доклад Владимира Иванова про миграцию с RxJava на Kotlin Coroutines. Доклад на примере простого Github клиента показывает следующее:
* Проблемы RxJava
- Создаётся много overhead
- Сложный stacktrace, который ещё и не указывает на то, откуда всё изначально вызывалось
- Необходимость обучать новых разрабов, которые с RxJava не работали
* По Kotlin Coroutines:
- Легче читать, т.к. код асинхронный, но пишется как синхронный
- Обработка ошибок средствами языка
- Stacktrace всё ещё не очень, хоть и не такой длинный
Теперь немного про остальное в докладе:
* Deferred - оно как Future, только другое:
- Non-blocking
- cancellable
* Что есть suspension?
- Если обычно при вызове блокирующего метода текущий поток останавливается, то при вызове suspending function поток продолжает выполняться, а корутина уходит на выполнение к своему context.
- То есть suspension означает, что мы не блокируем, а только приостанавливаем поток, что в свою очередь означает возможность продолжить выполнение с того же места, но накладывает ограничение - suspension может случиться только в определённых местах (там, где можно вызвать fun с suspend модификатором)
* Показано, как мигрировать тесты
* И немного про работу с Kotlin Channels
#talk #rxjava #kotlin #coroutine
https://youtu.be/dQSLfj8EoVU
* Проблемы RxJava
- Создаётся много overhead
- Сложный stacktrace, который ещё и не указывает на то, откуда всё изначально вызывалось
- Необходимость обучать новых разрабов, которые с RxJava не работали
* По Kotlin Coroutines:
- Легче читать, т.к. код асинхронный, но пишется как синхронный
- Обработка ошибок средствами языка
- Stacktrace всё ещё не очень, хоть и не такой длинный
Теперь немного про остальное в докладе:
* Deferred - оно как Future, только другое:
- Non-blocking
- cancellable
* Что есть suspension?
- Если обычно при вызове блокирующего метода текущий поток останавливается, то при вызове suspending function поток продолжает выполняться, а корутина уходит на выполнение к своему context.
- То есть suspension означает, что мы не блокируем, а только приостанавливаем поток, что в свою очередь означает возможность продолжить выполнение с того же места, но накладывает ограничение - suspension может случиться только в определённых местах (там, где можно вызвать fun с suspend модификатором)
* Показано, как мигрировать тесты
* И немного про работу с Kotlin Channels
#talk #rxjava #kotlin #coroutine
https://youtu.be/dQSLfj8EoVU
YouTube
#Mobile, Владимир Иванов, RxJava не нужен: меняем Rx на корутины в Котлине
Владимир Иванов
EPAM Systems
RxJava не нужен: меняем Rx на корутины в Котлине
Судя по опросам 61 процент людей начиная писать Android приложение на Kotlin будут использовать RxJava 2 в качестве инструмента для управления фоновой работой. Но у RxJava есть…
EPAM Systems
RxJava не нужен: меняем Rx на корутины в Котлине
Судя по опросам 61 процент людей начиная писать Android приложение на Kotlin будут использовать RxJava 2 в качестве инструмента для управления фоновой работой. Но у RxJava есть…
Помните Temple Run? Была когда-то такая игрушка. Вот в статье по ссылке описан reverse engineering этого дела. Статья не самая подробная, но даже если опыта в таких вещах нет, я бы советовал прочитать.
#unity #reverse #cybersec
https://www.rotlogix.com/blog/2018/6/10/reverse-engineering-android-unity-games-part-one
#unity #reverse #cybersec
https://www.rotlogix.com/blog/2018/6/10/reverse-engineering-android-unity-games-part-one
Просто интересная находка: статья от Romain Guy из ранних времён Android про некоторые оптимизации рисования background’ов.
#view #performance
http://www.curious-creature.com/2009/03/04/speed-up-your-android-ui/
#view #performance
http://www.curious-creature.com/2009/03/04/speed-up-your-android-ui/
Forwarded from Android Good Reads
Напоминаю, что остался буквально месяц до закрытия подачи заявок на AppsConf. Для вас это отличный шанс воспользоваться помощью опытных ребят из программного комитета, которые будут курировать вашу заявку, помогут и с рассказом, и со слайдами. Если есть вопросы, пишите прямо @etolstoy в личку, помогу с составлением заявки и тезисов.
http://conf.ontico.ru/lectures/propose?conference=ac2018
http://conf.ontico.ru/lectures/propose?conference=ac2018
Забавная статья, с не менее забавным названием: “Forget about Clean Code, let’s embrace Compassionate Code”.
#clean #code
http://johannesbrodwall.com/2018/06/24/forget-about-clean-code-lets-embrace-compassionate-code/
#clean #code
http://johannesbrodwall.com/2018/06/24/forget-about-clean-code-lets-embrace-compassionate-code/
Мда… Давненько я сюда ничего не писал. Извиняюсь, в последнее время всё как-то кувырком, совсем не было времени.
Сегодня будет статья с хорошим разбором priority buckets в Android P. Суть в том, что теперь приложения получают разные возможности (на Jobs, Alarms, FCM уведомления и на доступ в сеть) в зависимости от паттерна их использования (запущен ли апп, foreground сервисы, sync adapter и т.п. и как часто пользователь приложение запускает). А подробности, как и всегда, найдёшь по ссылке.
#androidp #battery #performance
https://medium.com/google-developer-experts/exploring-android-p-priority-buckets-d34d12059d36
Сегодня будет статья с хорошим разбором priority buckets в Android P. Суть в том, что теперь приложения получают разные возможности (на Jobs, Alarms, FCM уведомления и на доступ в сеть) в зависимости от паттерна их использования (запущен ли апп, foreground сервисы, sync adapter и т.п. и как часто пользователь приложение запускает). А подробности, как и всегда, найдёшь по ссылке.
#androidp #battery #performance
https://medium.com/google-developer-experts/exploring-android-p-priority-buckets-d34d12059d36
Medium
Exploring Android P: Priority Buckets
At Google I/O there were a lot of new announcements around the latest version of Android, P. One of these announcements were Priority…
Просьбы о помощи пост.
Моему хорошему другу - прекрасной Оксане - очень нужно выстроить ферму мобильных девайсов для проведения нагрузочного тестирования Wi-Fi сетки в условиях, максимально близких к реальным. Если среди вас или ваших друзей есть те, кто шарит за такие вещи и готов поработать, отзовитесь! :)
За шэр - отдельное и очень большое спасибо.
#help #wifi #testing
https://www.facebook.com/okokawa/posts/10212047953099638
Моему хорошему другу - прекрасной Оксане - очень нужно выстроить ферму мобильных девайсов для проведения нагрузочного тестирования Wi-Fi сетки в условиях, максимально близких к реальным. Если среди вас или ваших друзей есть те, кто шарит за такие вещи и готов поработать, отзовитесь! :)
За шэр - отдельное и очень большое спасибо.
#help #wifi #testing
https://www.facebook.com/okokawa/posts/10212047953099638
Facebook
Oxana Kashirskaya
Ребят, я осознаю, что читать подобный пост у меня на стене как минимум странно😜 Так уж сложилось, что мне необходимо сделать ферму из телефонов для тестирования различных типов нагрузки на wi-fi сеть...
По странному стечению обстоятельств и не без нежных пинков @etolstoy родился новый подкаст, ко-хостом которого я стал: Run Loop. В первом выпуске у нас в гостях Максим Ефимов - Android-разработчик из Uber, счастливый житель Амстердама и в целом приятный мужчина в полном расцвете сил. Он расскажет о жизни в Uber, о том, как обычно проходит его рабочий день и о многом другом. Приходите, слушайте, пишите фидбек. Мы будем рады.
#podcast #runloop #uber
Soundcloud: https://soundcloud.com/runloop-podcast/run-loop-1-maksim-efimov
iTunes: https://itunes.apple.com/ru/podcast/run-loop-podcast/id1409669962
#podcast #runloop #uber
Soundcloud: https://soundcloud.com/runloop-podcast/run-loop-1-maksim-efimov
iTunes: https://itunes.apple.com/ru/podcast/run-loop-podcast/id1409669962
SoundCloud
Hear the world’s sounds
Explore the largest community of artists, bands, podcasters and creators of music & audio
Чувак качественно накидал про
https://medium.com/google-developers/prefetch-text-layout-in-recyclerview-4acf9103f438
#androidp #textview #precomputedtext
PrecomputedText API, что с ним можно делать и, главное, как это можно делать. Напомню, что это та самая штука, которая позволяет вытащить часть работы по обсчёту текста на фоновый поток.https://medium.com/google-developers/prefetch-text-layout-in-recyclerview-4acf9103f438
#androidp #textview #precomputedtext
Medium
Prefetch Text Layout in RecyclerView
To layout text on Android, the system does a lot of work. Each glyph is resolved — dependent on font, locale, size, font features (like…
Интересный слух прилетел с xda-developers. Кажется, что в Android Q backend Skia переведут на Vulkan.
#androidq #skia #rendering #vulkan
https://www.xda-developers.com/google-android-q-vulkan-graphics-render-ui/
#androidq #skia #rendering #vulkan
https://www.xda-developers.com/google-android-q-vulkan-graphics-render-ui/
XDA
Android Q+ may use the Vulkan Graphics API to render the UI
Skia, Google's open source graphics engine, has a Vulkan Graphics API backend. This backend may be utilized to render the UI in Android Q or later.
Не проходим мимо: AMA на Reddit с Android командой. Там много всего интересного. Например, упомянули, что ведётся работа в сторону чего-то, позволяющего показать, как именно был зарезолвлен тот или иной атрибут на View. Или, к примеру, рассказали, почему share диалог работает так плохо, и что с ним планируется делать.
#reddit #ama #android
https://www.reddit.com/r/androiddev/comments/8xspo7/were_on_the_engineering_team_for_android_p_ask_us/
#reddit #ama #android
https://www.reddit.com/r/androiddev/comments/8xspo7/were_on_the_engineering_team_for_android_p_ask_us/
reddit
We’re on the engineering team for Android P. Ask us Anything!...
**EDIT 7/19 @ 1:40 PT** A big thank you to everyone in the Android dev community! We'll continue to work on responses. *** As part of the...
Вышел 2-й выпуск Run Loop. К нам в гости пришёл Егор Бугаенко. Егор рассказал о своём новом проекте Zold, о своём режиме работы и ещё о нескольких интересных штуках.
#podcast #runloop
iTunes: https://itunes.apple.com/ru/podcast/run-loop-podcast/id1409669962?mt=2
Soundcloud: https://soundcloud.com/runloop-podcast/run-loop-2-egor-bugaenko
#podcast #runloop
iTunes: https://itunes.apple.com/ru/podcast/run-loop-podcast/id1409669962?mt=2
Soundcloud: https://soundcloud.com/runloop-podcast/run-loop-2-egor-bugaenko
Очень приятная статья, в которой Иван Гришаев рассказывает, зачем нужен Clojure. Мне очень понравилось. Пойдите, почитайте. Она очень короткая, чесслово.
#fp #clojure
http://grishaev.me/why-clj
#fp #clojure
http://grishaev.me/why-clj
grishaev.me
Зачем нужна Кложа
Когда спрашивают, зачем изучать Кложу, мы слышим что-то неубедительное. Репл,функциональный подход, неизменяемость. Это слабые аргументы. Их нет в мире тех,к...
Forwarded from ❗️NEWS Android Dev Подкаст (Denis Nek)
Сразу за официльным анонсом спешим опубликовать наш новый выпуск:
https://androiddev.apptractor.ru/android-dev-podkast-71/
Подкаст #71. Google Assistant на русском.
Эксклюзивное интервью сразу вместе с официальным анонсом Гугл Ассистента на русском языке. Для кого голосовые ассистенты, что они умеют, как и на чем под них разрабатывать, а также, какие бонусы можно получить, опубликовав свой экшены, вы узнаете из нашего свежайшего выпуска.
https://russia.googleblog.com/2018/07/google.html - официальный анонс
http://dialogflow.com/ - DialogFlow
https://codelabs.developers.google.com/codelabs/actions-1/index.html#0 - кодлаб про основы разработки своих Actions On Google
https://codelabs.developers.google.com/codelabs/actions-2/index.html#0 - кодлаб про разработки своих Actions On Google продвинутого уровня
https://codelabs.developers.google.com/codelabs/androidthings-assistant/index.html - кодлабы по настройке Ассистента на Raspberry Pi
https://developers.google.com/actions/ - официальная документация
https://www.w3.org/TR/speech-synthesis11/ - Speech Synthesis Markup Language (SSML)
https://androiddev.apptractor.ru/android-dev-podkast-71/
Подкаст #71. Google Assistant на русском.
Эксклюзивное интервью сразу вместе с официальным анонсом Гугл Ассистента на русском языке. Для кого голосовые ассистенты, что они умеют, как и на чем под них разрабатывать, а также, какие бонусы можно получить, опубликовав свой экшены, вы узнаете из нашего свежайшего выпуска.
https://russia.googleblog.com/2018/07/google.html - официальный анонс
http://dialogflow.com/ - DialogFlow
https://codelabs.developers.google.com/codelabs/actions-1/index.html#0 - кодлаб про основы разработки своих Actions On Google
https://codelabs.developers.google.com/codelabs/actions-2/index.html#0 - кодлаб про разработки своих Actions On Google продвинутого уровня
https://codelabs.developers.google.com/codelabs/androidthings-assistant/index.html - кодлабы по настройке Ассистента на Raspberry Pi
https://developers.google.com/actions/ - официальная документация
https://www.w3.org/TR/speech-synthesis11/ - Speech Synthesis Markup Language (SSML)
@sawelyy из CleverPumpkin прислал ссылку на либу, которую они запилили. Это по сути View календаря, которая позволяет делать много разного. И вот прямо месяца два назад нам в App in the Air нужен был выбор интервала дат. Ничего нормального мы не нашли и написали сами. Хотя вот такая вот либа потенциально сэкономила бы приличный кусок времени. Поэтому посмотрите, может быть кому-то пригодится.
#library #calendar #view
https://github.com/CleverPumpkin/CrunchyCalendar
#library #calendar #view
https://github.com/CleverPumpkin/CrunchyCalendar
GitHub
GitHub - CleverPumpkin/CrunchyCalendar: A beautiful material calendar with endless scroll, range selection and a lot more!
A beautiful material calendar with endless scroll, range selection and a lot more! - CleverPumpkin/CrunchyCalendar
О, Facebook выложил своё решение для TLS 1.3. Называется это дело Fizz. Будем ждать Buzz :)
#facebook #library #tls
https://code.fb.com/networking-traffic/deploying-tls-1-3-at-scale-with-fizz-a-performant-open-source-tls-library/
#facebook #library #tls
https://code.fb.com/networking-traffic/deploying-tls-1-3-at-scale-with-fizz-a-performant-open-source-tls-library/
Забыл напомнить, что у нас вышел 3-й выпуск подкаста Run Loop. В этот раз сообразили на троих и просто поговорили о том, как проходят наши будни.
#podcast #runloop
iTunes: h t t p s : / / i t u n e s . a p p l e . c o m / r u / p o d c a s t / r u n - l o o p - p o d c a s t / i d 1 4 0 9 6 6 9 9 6 2 ? l = e n & m t = 2
Soundcloud: https://soundcloud.com/runloop-podcast/run-loop-3-special
#podcast #runloop
iTunes: h t t p s : / / i t u n e s . a p p l e . c o m / r u / p o d c a s t / r u n - l o o p - p o d c a s t / i d 1 4 0 9 6 6 9 9 6 2 ? l = e n & m t = 2
Soundcloud: https://soundcloud.com/runloop-podcast/run-loop-3-special
SoundCloud
Hear the world’s sounds
Explore the largest community of artists, bands, podcasters and creators of music & audio
Тут что-то нахваливают вот эту статью, которая по сути перечисляет малоизвестные функции стандартной библиотеки Kotlin. Мне кажется, что по большей части это либо баяны, либо штуки, которыми пользуешься раз в год. Но может кому-то понравится, ловите.
#kotlin #stdlib
https://tech.okcupid.com/hidden-gems-in-kotlin-stdlib/
#kotlin #stdlib
https://tech.okcupid.com/hidden-gems-in-kotlin-stdlib/