Pull to refresh

Comments 33

1) А записью обработкой звуковых сигналов с микрофона Котлин умеет работать или это только через ява?

>я помогаю его вам доработать до приемлемого состояния

можете сделать запись звука с микрофона, обработку (хотя бы просто умножить на 1.1) и воспроизведение обработанного сигнала?

Есть ли на Котлин что-то удобное для рисование графиков (не низкоуровневое) типа Plot из Matlab?

Для записи используется MediaRecorder, его вызвать возможно и из Java и из kotlin

Для того ускорить аудиопоток есть в exoplayer есть параметр PlaybackParameters, там это в одну строчку делается

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

Сам закодить ничего не могу — могу только на основе твоего кода помочь разобраться

а медиарекордер дает доступ к буферу (в Котлин) потока записи сигнала? Я спрашивал про то, что называет фулдуплекс. то есть поток звукового сигнала направляется в цикркулярный буфер, а из него берутся блоки, умножаются на число, отправляются в буфер на вывод. Это схема работы изменятелей голоса например.

А на сколько это соотносится с темой статьи?

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

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

А этот mpchart может 60 раз в секунду обновлять график - типа оцилографа?

А акселерометр как заюзать?

вероятно только через яву - придется ее тоже выучить. хотел еще спросить про управление жизненным циклом активити - но кажется это тоже только через яву.

С помощью котлина можно сделать всё, что можно сделать с помощью джавы. И акселерометр и жизненный цикл

Спасибо! Отличный гайд! Вот бы еще такой по iOS-разработке )

В самом начале текста ересь написана "Проектов на Java уже не осталось, но на собеседованиях деды все еще любят поспрашивать "А как оно там работает?" Скажите это терабайтам кода на GIT, написанным на Java, и множествам библиотек от туда же. Уровень текста понятен, читать дальше смысла не вижу.

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

По-вашему получается, если я в свой на Котлине написанный проект затянул пару либ в виде бинарников, которые были написаны на Java мой проект станет внезапно Java-проектом? Не думаю.

Понятное дело, автор рано хоронит Java, но, как мне кажется, но в современной андроид-разработке Java постепенно уходит. Естественно, в библиотеке, которая была написана 10 лет назад и с тех пор поддерживается силами энтузиастов, так и будут использовать Java, никто её переписывать на Котлин не будет. Но буквально сегодня нажимать кнопку "New Project" и выбирать в качестве языка Java это как-то странно.

В 2023 году Android-приложение на Java это лютейшее легаси. Даже крупные банки уже на Kotlin пишут.

Большое спасибо, великолепная статья со всеми нужными ссылками для саморазвития!

Kotlin - упрощённая версия Java. Реально полезные приложения написаны на Java, а их аналоги чуть менее популярные на Kotlin

Я могу перечитывать этот комментарий бесконечно. Сударь, продолжайте в том же духе! Вас ждёт отличная карьера. Вы вполне могли бы затмить талантом, к примеру, Роуена Аткинсона, в роли ИТ-обозревателя!

UFO just landed and posted this here

Я бы уже давно в таких статьях аморфное "Android-разработчик" разделял на две чуть более чёткие категории в плане скиллов, этапов роста и рыночных перспектив. Что-то типа стажёра/трэйни - уровень при котором вы прочитали первую книгу по Kotlin, написали первое самостоятельное приложение Cinema App внутри MainActivity и получили шанс, что вас куда-то возьмут, чтобы чему-то научить и возможно даже что-то будет платить(но не обязательно). И джуна(каноничный с точки зрения соискателей - с 0 коммерческого опыта), при котором у вас появится реальный устроиться полноценно либо через спам своего резюме либо через курсы типа Тинька с Яндексом.

не совсем понял, в чем по твоему мнению разница intern и джун

в моем понимании тот, кто написал cinema app это стажер, тот кто пару месяцев поработал на реальном проекте это джун

По мне так все проблемы Android-роадмэпов последних лет в остуствие чётких указателей - вот с этого уровня уже можешь пытаться стажировки искать и т.п., вот до этого даже не надейся на полноценный джунский оффер, а вот это вообще не трогай, пока первые два не перерастёшь. В результате по факту у всех т.н. roadmap-ов никакой "road" и не пахнет - просто ежегодно увеличивающийся перечень всего того, с чем можно столкнуться за пару месяцев работы на реальном проекте, причём безотносительно того техлид ты или стажёр:). При этом опять же с моей точки зрения очевидно, что стажировка требует всё-таки куда более скромных скиллов и временных вложений, чем джунский оффер при 0 коммерческого опыта и при этом более предпочтительна для роста, чем самообучение. Но далеко не у всех начинающих с 0 есть возможность идти по этому пути по финансовым и т.п. обстоятельствам.

Не надо останавливаться. Давайте ещё поделим. Джун, который потрогал Retrofit. Джун, который потрогал адаптер-делегаты. Джун, который умеет в Room. Не надо доводить до абсурда. Стажировки/интернатуры это не работа в принципе, это обучение. Где порой платят. Впрочем, ученикам водителя троллейбуса тоже платят стипендию, так что тут никаких противоречий нет.

Как тот кто этот путь пройти умудрился, в том числе и благодаря Android academy, я бы не согласился что анимации не стоит рассматривать. Как и тесты. В обычных анимациях особо сложного нет (анимируй property), а помочь могут. А тесты очень хорошо показывают что надо бы вынести наружу, т.е. на практике показывают изъяны кода.

Ну а потоки да, знать бы надо :) иногда полезно, как и принципы синхронизации.

Знать надо, но за все время моей карьеры про анимации меня спросили только на собесе в ситимобил. Unit тесты попросили написать только в сбере

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

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

Я сохраню себе эту карту, и буду изучать по шагам в 23-ем году. Отличный труд. Спасибо автору!

Здравствуйте, спасибо большое за подробный гайд, видно, что делалось с душой.

Однако, на мой взгляд, без серьёзной прикладной задачи все эти знания, поступив в голову, довольно быстро оттуда исчезнут. Сам проходил курсы от Гугл, а также другие, доступные на торрентах, всё хорошо, получается. Однако, как только перехожу к реальной задаче - мрак и ступор. А задача у меня не совсем тривиальная: коммуникация через USB Serial c устройствами на базе протокола MODBUS. Для подобных задач не то что туториалов нет, так даже вменяемых примеров на гитхабе. Сам я embedded программист, поэтому иногда тяжко вникнуть в асинхронность и другие особенности Android программирования.

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

На мой взгляд, в таком "прикладном" формате и обучение гораздо эффективнее будет, нежели решать в 100500 раз типовую задачу, описанную на тех же обучалках Google.

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

Может, подскажете, где поискать такого ментора? Спасибо.

Sign up to leave a comment.

Articles