Рубрика «разработка мобильных приложений» - 41

Как реализовать чистую архитектуру на Android?

Что вы найдёте в этой статье?

В 2016 году я начал изучать Java, а в начале 2017 года — Android. С самого начала я уже знал, что существует понятие архитектуры приложений, но не знал, как это применить в своём коде. Я находил много разных гайдов, но понятнее от этого мне не становилось.

Эта статья — именно та, которую мне хотелось бы прочитать в начале своего пути.

Читать полностью »

В новом выпуске нашего дайджеста дизайн Яндекс.Авто, карта метро, некстген симуляция движения человека, личные проекты, лучший квартал для мобайла за всю историю, простое объяснение юнит-экономики и много другого интересного.

Дайджест интересных материалов для мобильного разработчика #306 (8 — 14 июля) - 1Читать полностью »

ГЛАВА 1. Амбиции

Конец февраля 2018

Карта Метро Москвы и всего мира для Android - 1

Мы, как адепты идеологии свободного ПО и свободного рынка считаем, что монополия — это плохо.

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

Команда: в разное время от 2х до 4х человек.

Повествованием охвачено только Android приложение, ввиду того, что оно было запущено первым и все основные механизмы были обкатаны на нём. Конечно, на текущий момент доступна и версия для iOS.

ГЛАВА 2. Маршрут во мраке

Март – июнь 2018.

Нужна карта. Берем SVG, пихаем в SVGView, все отлично. Лагает ужасно, но мы радостные. Как рисовать отдельные маршруты? Никто не знает.

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

К тому же нам было нужно, чтобы приложение работало как можно быстрее. Использование WebView сразу отпадает, нужна GL-поверхность. Решили попробовать с SurfaceView (opengl поверхность, которую можно использовать как канвас) – всё не то. Она может производить изменения внутри себя, мигая черным цветом, так как она просто плохо реализована и не может выдержать нагрузку больше отрисовки кубика 20х20. Она может увеличиваться, пропадая через раз. Нам нужно было другое решение, но такое, которое было бы не так далеко от SurfaceView, так как по интерфейсу нам она полностью подходила.

image
Вкратце про баги драйверов на Android
Читать полностью »

Теперь фреймворк Vision умеет распознавать текст по-настоящему, а не как раньше. С нетерпением ждём, когда сможем применить это в Dodo IS. А пока перевод статьи о распознавании карточек из настольной игры Magic The Gathering и извлечении из них текстовой информации.

Как распознать текст с фото: новые возможности фреймворка Vision - 1
Читать полностью »

iOS-дайджест №9 (28 июня – 11 июля) - 1
Источник картинки: appleinsider
Джони Айв покидает белую комнату, мы Touch Bar'у скажем «Да!» и сгибающийся iPad в новом выпуске iOS-дайджеста.
Читать полностью »

Optimization of Python codes deals with selecting the best option among a number of possible options that are feasible to use for developers. Python is the most popular, dynamic, versatile, and one of the most sought after languages for mobile application development. Right from the programming projects like machine learning and data mining, Python is still the best and most relevant language for application developers.

Code Optimization Tips for Python Developers

In this post, I will discuss some of the optimization procedures and patterns in Python coding in an effort to improve the overall coding knowledge.

Optimizing Slow Code First

Top 5 Tips Developers Should Know For Python Codes Optimization - 1

When you run your Python program, the source code .py is compiled using CPython into bytecode (.pyc file) saved in a folder (_pycache_) and at the end interpreted by Python virtual M2M code (machine to machine). Since Python uses an interpreter to execute the bytecode at runtime which makes the process a bit slower.

To make your execution faster on CPython, get PyPy v7.1 that include two different interpreters and the feature of its predecessor PyPy3.6-beta and Python 2.7. Compared to CPython it is 7.6X faster which is critical for coding. Programs in CPython takes a lot of space, but PyPy takes up less space in programs.
Читать полностью »

Итак, это третья часть моей попытки переосмыслить привычный поиск по картам. Первая часть тут, а вторая тут — они более технические, но пробежать глазами для лучшего понимания можно. Вкратце это звучит так: мне надоело ковыряться в картах за рулем, пытаясь среди мелких значков и рекламы найти ближайшую заправку. Вместо этого хотелось бы просто ехать, посматривая на экран приложения. Чтобы оно сортировало ближайшие места по времени езды, показывало списком, объясняло, какие из них по пути и какой к ним трафик. Такая вот идея.

Как я пытался починить поиск по картам для водителей. Часть 3 (финал) - 1

Собственно, к версии приложения 3.0 наконец получилось реализовать все основные функции, которые хотелось. После прошлой статьи из этой серии его скачало некоторое количество людей, и даже написали отзывы — спасибо, ко всем прислушался. Работал над новой версией месяца два интенсивно, все мелкие изменения не перечислить — по сути это на 80% новое приложение. С кардинально улучшенным интерфейсом, раза в 2 быстрее и значительно стабильнее. Опять же, приглашаю сочувствующих оценить и поругать. А под катом снова технические моменты.

https://www.dchabanenko.com/city-scope — вот тут ссылки на айфон и андроид

Читать полностью »

Интеллектуальные CPaaS: новинки индустрии и что ей дали AI-ML - 1

В июне в Амстердаме прошлая очередная APIDays – конференция для всех, кто так или иначе создает и пользуется различными API. Темой конференции стал «расцвет контекстуальных коммуникаций», то есть коммуникаций, в которых обе стороны сразу и полностью понимают контекст общения. Звучит абстрактно, поэтому пара примеров: вам звонят с незнакомого номера. Соответственно, вы не знаете, кто звонит, откуда и с какой целью. И напротив, если вы делаете какую-то операцию в приложении интернет-банкинга и на каком-то шаге что-то пошло не так, вы можете прямо с этого шага позвонить в поддержку – контекст ситуации с ходу будет ясен как вам, так и оператору. Чтобы обеспечивать такую осведомленность, бизнесы используют коммуникационные платформы (CPaaS, Communications Platform as a Service), а те, в свою очередь, используют AI и Machine Learning. Именно об этом и рассказывал наш CEO Алексей Айларов, выступая на APIDays, а сегодня мы публикуем адаптацию июньского выступления.
Читать полностью »

На седьмой встрече iOS-разработчиков в нашем офисе обсуждали самописный remote cache для iOS, feature toggles, как использовать proxy-объекты в разработке тёмных тем для приложений, и рассмотрели разные варианты развития карьеры разработчика (фриланс, работа на корпорацию, работа на свой проект). Этот пост — отчёт о том, как прошёл митап. Внутри — видеозаписи, презентации спикеров, ссылки на фотоотчёт и отзывы участников встречи.

Remote cache для iOS, feature toggles, тёмные темы и карьера разработчика — отчёт с Avito iOS Meetup #7 - 1

Читать полностью »

Справочник по источникам событий в Rx - 1

RxJava используется в большом количестве android-приложений, но при этом многие не знают других источников событий, кроме Observable и, может быть, Flowable. Они забывают о специализированных классах Single, Maybe и Completable, которые зачастую способны добавить больше ясности в код.
Под катом вас ждёт шпаргалка по источникам событий, которые существуют в RxJava.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js