Pull to refresh
0
0
Иван @aokruan

Android/iOS разработчик

Send message

Coroutines :: опыт практического применения

Reading time9 min
Views34K
В этой статье расскажу о том, как работают корутины и как их создать. Рассмотрим применение при последовательном, параллельном выполнении. Поговорим об обработке ошибок, отладке и способах тестирования корутин. В конце я подведу итог и расскажу о впечатлениях, которые остались после применения данного подхода.

Статья подготовлена по материалам моего доклада на MBLT DEV 2018, в конце поста — линк на видеозапись.

Последовательный стиль


Total votes 27: ↑27 and ↓0+27
Comments3

Обнаружение объектов с помощью YOLOv3 на Tensorflow 2.0

Reading time14 min
Views44K

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

В данной статье мы узнаем о системе YOLO Object Detection и как реализовать подобную систему в Tensorflow 2.0.

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments2

Тестируем Android-приложение правильно

Reading time5 min
Views12K

Всем привет,


Меня зовут Андрей Рыжкин, я CTO AGIMA.


Сегодня я расскажу о том, как мы тестируем приложения на Android, а также поделюсь нашим чек-листом.


Чек-лист от команды AGIMA




В 2020 году количество приложений для Android вплотную приблизилось к трём миллионам (по данным Appbrain на 28 марта). И это число продолжает расти – каждый день появляются сотни новых программ для этой операционной системы. В том числе благодаря AGIMA. Мы создаем самые разные приложения для Android – простые и сложные, узкоспециализированные и «для всех». И можем немало рассказать о нюансах их разработки.

Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments2

Как бы сделал Билл Гейтс: разбор успешных презентаций

Reading time6 min
Views4.5K
Советы, как построить выступление от владельцев многомиллионных компаний.

image

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

Один из представителей делового мира, президент компании «Ford» и «Chrysler» Ли Якокка в своей известной книге «Карьера менеджера» подчеркивает, что «управление представляет собой не что иное, как настраивание людей на труд. Единственный способ настраивать людей на энергичную деятельность – это общаться с ними». Именно от этого умения зависит не только эффективность выстраивания отношений с другими людьми, но и формирование профессионального имиджа.

Устное выступление – это наиболее древний вид речи, а значит наиболее освоенный и изученный. Зачастую страх общения возникает тогда, когда нет четкого понимания, как точно выразить свою мысль, как грамотно использовать возможности хорошего русского языка. Этому можно научиться, ведь, как считает один из самых лучших тележурналистов мира Ларри Кинг, говорить – «это все равно, что играть в гольф, водить машину или держать магазин: чем больше этим занимаешься, тем лучше выходит».
Читать дальше →
Total votes 2: ↑1 and ↓1+2
Comments4

Гидропоника. Выращиваем сверхострый чили и заставляем всех его есть

Reading time14 min
Views142K


Полтора килограмма термоядерного Тринидадского Скорпиона я в итоге собрал с одного куста на гидропонике.


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


Небольшая часть урожая


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


Сегодня в меню


  1. Что такое гидропоника и почему она гораздо проще, чем почва с червячками
  2. Никаких дорогих бутылочек. Мешаем компоненты по три рубля за ведро
  3. Питание растения как алгоритм
  4. Как быстро собрать прототип гидропонной установки
  5. Что такое capsicum chinense и как выжить при дегустации
Total votes 248: ↑248 and ↓0+248
Comments332

Принципы SOLID, о которых должен знать каждый разработчик

Reading time11 min
Views350K
Объектно-ориентированное программирование принесло в разработку ПО новые подходы к проектированию приложений. В частности, ООП позволило программистам комбинировать сущности, объединённые некоей общей целью или функционалом, в отдельных классах, рассчитанных на решение самостоятельных задач и независимых от других частей приложения. Однако само по себе применение ООП не означает, что разработчик застрахован от возможности создания непонятного, запутанного кода, который тяжело поддерживать. Роберт Мартин, для того, чтобы помочь всем желающим разрабатывать качественные ООП-приложения, разработал пять принципов объектно-ориентированного программирования и проектирования, говоря о которых, с подачи Майкла Фэзерса, используют акроним SOLID.



Материал, перевод которого мы сегодня публикуем, посвящён основам SOLID и предназначен для начинающих разработчиков.
Читать дальше →
Total votes 42: ↑33 and ↓9+24
Comments33

30+ лаконичных профессиональных рекомендаций для Android разработчика

Reading time12 min
Views7.4K
Специально для студентов базового курса «Android-разработчик» подготовили перевод полезного материала.





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

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

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

Итак, не теряя больше времени, давайте начнем.
Читать дальше →
Total votes 12: ↑9 and ↓3+10
Comments5

Организация простой архитектуры в андроид-приложении со связкой ViewModel+LiveData, Retrofit+Coroutines

Reading time6 min
Views20K
Без долгих вступлений расскажу, как можно быстро и просто организовать удобную архитекруту вашего приложения. Материал будет полезен тем, кто не очень хорошо знаком с mvvm-паттерном и котлиновскими корутинами.

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

Наши действия: из активити (фрагмента) вызываем нужный метод ViewModel -> ViewModel обращается к ретрофитовской ручке, выполняя запрос через корутины -> ответ сетится в лайвдату в виде ивента -> в активити получая ивент передаём данные во вью.
Читать дальше →
Total votes 9: ↑6 and ↓3+3
Comments24

Если вы что-то создаёте, избегайте расписания менеджера

Reading time5 min
Views54K


В книге ”Masters of Doom” о компании id Software и её влиянии на массовую культуру Дэвид Кушнер размышлял о необычном стиле работы ведущего программиста Джона Кармака.

Чтобы повысить производительность и не отвлекаться от работы над движком Quake, тот принял агрессивный подход — начал постепенно смещать начало рабочего дня. В конце концов Джон садился программировать вечером, а заканчивал перед рассветом. Эти непрерывные отрезки тишины, изоляции и глубокой работы позволили ему создать первый в мире сверхбыстрый 3D-движок. Игра Quake произвела настоящий фурор.
Читать дальше →
Total votes 134: ↑131 and ↓3+128
Comments98

Custom layouts. Part 2. CellLayout

Reading time10 min
Views23K
И снова здравствуйте, коллеги.

И снова я пожаловал к вам с топиком кастомной разметки. На этот раз, я задумал сделать некую “ячейчатую” разметку.
Смысл прост: вся площадь контейнера делится на сетку из квадратных ячеек одинакового размера, и каждый потомок может занять произвольные клетки на этой сетке. Используя подобную разметку можно составлять красивую мозаику из кнопок или картинок, не прибегая к многочисленным вложенным layout’ам. И, поскольку, это специально заточенный для этих целей layout, он будет работать очень шустро.


Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments16

Простой вариант системы видеонаблюдения в помещении с использованием датчика движения и Python на платформе Raspberry

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


Читать дальше →
Total votes 36: ↑35 and ↓1+34
Comments31

Room: Хранение данных на Android для всех и каждого

Reading time5 min
Views108K

Room — это новый способ сохранить данные приложений в Android-приложении, представленный в этом году на Google I/O. Это часть новойAndroid Architecture, группа библиотек от Google, которые поддерживают уместную архитектуру приложений. Room предлагается в качестве альтернативы Realm, ORMLite, GreenDao и многим другим.


Room — это высокоуровневый интерфейс для низкоуровневых привязок SQLite, встроенных в Android, о которых вы можете узнать больше в документации. Он выполняет большую часть своей работы во время компиляции, создавая API-интерфейс поверх встроенного SQLite API, поэтому вам не нужно работать с Cursor или ContentResolver.

Читать дальше →
Total votes 14: ↑11 and ↓3+8
Comments7

Information

Rating
Does not participate
Location
Красноярск, Красноярский край, Россия
Date of birth
Registered
Activity

Specialization

Mobile Application Developer
From 500,000 ₽
Kotlin
SWIFT
Android Studio
Xcode
MVVM
Room
Clean Architecture
SwiftUI
Realm
Client-server applications