Как писать код на телефоне
Мобильный гейминг развивается невероятными темпами. Сегодня графика в игре на смартфоне выглядит так, как несколько лет назад выглядела на мощных консолях и это не предел. Это направление будет развиваться, ведь ничто не заменит возможность просто достать телефон из кармана и отдохнуть несколько минут в любимом приложении. Не удивительно, что появилось такое понятие как чит на игры Android, специальный код, который позволяет сделать процесс более увлекательным и получить некоторые преимущества.
Чит-коды в играх Android: что это и как пользоваться?
Если вы играли на компьютере, то понимаете, что такое чит-коды и как ими пользоваться. Это специальный набор символов, который был изначально создан разработчиками геймерского контента. Если вводить эти комбинации в определенных условиях, то можно получить существенное преимущество над другими участниками, сделать своего персонажа сильнее, а игровой процесс более быстрым. Да, не всегда чит-коды положительно влияют на сам сюжет, ведь теряется наслаждение от победы, которая теперь дается легко. Но если цель стоит не в том, чтобы победить, а просто развлечься, то комбинации сделают процесс более увлекательным.
В играх Android также есть возможность вводить коды для получения тех или иных преимуществ. Работает все так, как и на компьютере, но пользователи попросту не знают, как вводить читы Android и поэтому они пользуются меньшим спросом. На самом же деле в этом процессе нет ничего сложного, разобравшись один раз, можно будет использовать коды практически везде, где они предусмотрены. Есть несколько способов ввода комбинаций в Android приложениях, вы можете подобрать себе тот, который проще всего реализовать и который работает в вашей любимой игре.
Как вводить читы на Android?
Если речь идет о компьютере, то здесь все просто, перед вами клавиатура, можно вводить код и получать результат. Иногда необходимо выполнить некие действия в игре, или нужно заработать очки, зажать несколько клавиш и потом использовать символы. Но куда вводить чит Android, ведь клавиатуры перед глазами нет, только сенсорный экран и интерфейс.
Способ 1: в чат
Это самый простой способ, его можно реализовать без стороннего софта и профессиональных навыков. Но необходимо понимать, что работает такой вариант не всегда, если только сама игра поддерживает его. Чтобы воспользоваться этим методом ввода чит-кодов, необходимо выполнить следующие действия:
- Запустить игру.
- Зайти в режим игры, где необходимо ввести код.
- Найти чат. Он есть в онлайн играх, где можно общаться с другими геймерами, но также может быть и в оффлайн режиме.
- В чат вводим код и отправляем его.
Следует обращать свое внимание на то, нужно ли указывать дополнительные символы перед отправкой кода в чат. В месте, где вы нашли комбинации для определенной игры, будут указаны такие условия. Возможно, перед кодом необходимо поставить пробел, двоеточие или любой другой символ. Также в некоторых играх стоит изначально включить функцию чит-кодов, через тот же чат определенной командой, а уже потом вводить комбинацию.
Способ 2: с помощью Smart Office 2
Это очень распространенный и популярный способ ввода кодов в играх на Android. Реализовать его будет немного сложнее, ведь теперь уже нужен сторонний софт, но выполнив процедуру один раз, вы уже не будете считать ее трудной.
Итак, чтобы ввести код с помощью Smart Office 2, необходимо выполнить такие действия:
- Переходим в Google Play и находит приложение Smart Office 2.
- Загружаем и устанавливаем его.
- Запускаем игру, в которой хотим вводить коды.
- Сворачиваем игру кнопкой «Домой» или соответствующим жестом.
- Запускаем программу Smart Office 2.
- Выбираем «Новый документ» и формат, например DOC.
- Кликаем на пункт «Правка» в нижней части экрана.
- Снова открываем игру через меню уже запущенных приложений.
- На экране будет интерфейс игры, но клавиатура от Smart Office 2 никуда не исчезнет.
- Можно вводить чит-код.
Если смартфон слабый, то изначально рекомендуется очистить список запущенных программ, а уже потом запускать игру и Smart Office 2. В случае нехватки оперативной памяти, система закроет приложение и данный способ не будет работать.
Способ 3: через GameKeyboard+
Если предыдущее приложение создавалось для других целей и пользователи попросту научились использовать «Баг» в своих целях, то GameKeyboard+ создана именно для решения проблемы с чит-кодами.
Чтобы воспользоваться этим способом, нужно выполнить следующее:
- Загружаем и устанавливаем с Google Play программу GameKeyboard+.
- После первого запуска необходимо установит галочку напротив пункта «Game Keyboard».
- Согласиться с предупреждением и нажать «Да».
- На втором шаге следует выбрать метод ввода «Game Keyboard».
- Кликнуть пункт «Usage Mode» и в выпавшем списке «Edit Mode».
- После этого вам будет предложено настроить геймпад под свои потребности, можно этого и не делать.
- Остается свернуть программу GameKeyboard+ и запустить игру.
- Нажав кнопку громкости вверх, на экране появится клавиатура и можно будет вводить чит-коды.
Способ 4: для эмуляторов Android на ПК
Этот способ подойдет тем, кто использует эмулятор на компьютере и запускает игры через него. Здесь все довольно просто, вы загружаете и устанавливаете программное обеспечение Android на свой компьютер, выбрав для себя самый удобный. После этого на экране будет уже привычный для всех Android интерфейс. Необходимо установить игру, запустить его, использовать подключенную к ПК клавиатуру и вводить чит-коды. Этот способ позволяет использовать любое приложение на Android с комбинациями, но необходимо потратить немного времени на настройку самого эмулятора.
Реальный пример ввода читов в GTA San Andreas на Android
Для многих использование читов началось именно с GTA. В этой игре огромное количество кодов, которые позволяли полностью изменить процесс и добиться невероятных результатов. Сегодня GTA San Andreas отлично работает на Андроиде, при этом все комбинации, которые вы могли использовать на компьютере, можно применять и на телефоне. Запустив GTA San Andreas Android, как вводить коды многие не знают, поэтому мы сейчас рассмотрим все на реальном примере.
Как вводить читы в GTA San Andreas на Android:
- Скачиваем и устанавливаем GameKeyboard из Google Play.
- Запускаем программу и выполняем ее настройку, как это описано в способе 3 выше.
- Заходим в настройки виртуальной клавиатуры и видим пункт «Переназначить клавиши».
- Выбираем любую ненужную клавишу, например «точку», и назначаем ее в качестве «Enter». Именно в GTA San Andreas стандартная кнопка Enter на клавиатуре не работает.
- Запускаем GTA San Andreas и нажимаем клавишу громкости вверх.
- На виртуальной клавиатуре вводим чит-код и кликаем на назначенную кнопку Enter.
Есть также и еще один способ, как ввести чит код на Android в GTA San Andreas. Вы можете подключить любую USB-клавиатуру к смартфону или планшету, используя переходник. В этом случае можно будет вводить коды через физическое внешнее устройство и все будет работать.
На написание данной статьи меня сподвиг пост хабровчанина ilichme — Десктоп – давай, до свидания!. Поэтому, сегодня более детально поговорим о том есть ли жизнь на Марсе насколько возможно и удобно писать код на устройстве с Android на борту. Сразу оговорюсь — обсуждать буду только планшеты, так как о прелестях кодирования на смартфоне и так все ясно. Хоть и речь не о написании кода, а об организации рабочего пространства, которое будет максимально удобным для разработки в условиях, где нет любимых IDE и т.д.
В свое время, когда покупал планшет, одним из критериев выбора было наличие удобной клавиатуры, так как я тогда знал, зачем покупаю сей девайс. А так как выбор в данном секторе небольшой, то остановился на ASUS Transformer. Это я к тому, что если у вас есть реальная необходимость писать код «на коленке», в условиях, которые не способствуют этому — значит статья для вас. Хотя она совсем не претендует на подробное пособие и решение ваших проблем (так как запросы у всех разные). А если уже говорить о запросах — эта стать скорее всего повод развить тему более подробно и поделиться опытом. Я уверен, что где-то существует еще не один вариант решения таких задач, под разные уровни работы.
Что будем обсуждать?
Так вот, некоторое время назад, я осознал, что много полезного времени теряю в дороге. Конечно, можно просто наслаждаться отдыхом, но иногда в голову приходят неожиданные решения разных рабочих проблем, которые нужно отработать прямо сейчас, ибо потом потеряешь мысль. Или просто хочется писать код — часто так бывает. В общем, время терять нельзя. Но, как назло, Android не самая удобная система для веб-разработки. Разработчики почему-то не очень спешат делать удобные редакторы кода или локальные сервера для отладки. Да вы все сами знаете и понимаете.
Техническое задание
- Удобный редактор кода, с подсветкой синтаксиса, с возможностью просмотра результата в браузере, функциями undo\redo, с выбором кодировки и т.д.
- Локальный веб-сервер (имеется в виду полноценный — с PHP, MySQL). Конечно, можно отдельно поставить PHP как? и руками прикрутить MySQL, но я хотел все и сразу
- Так же хотелось иметь встроенный ftp для работы с удаленным сервером (пока не критично)
В общем, это минимальный набор, который необходим в условиях отсутствия традиционного рабочего места. Конечно, сюда можно добавить еще много пунктов, но это дело вкуса, и, давайте не будем забывать, что это всего лишь планшет, и всего лишь временное решение проблемы. По мере необходимости и роста запросов, я буду искать новые решения, но пока достаточно и этого.
Что я нашел
Итак, потратив некоторое время, я довольно быстро нашел приложения, которые практически полностью меня удовлетворили.
Редактор кода
- Поддерживаемые форматы: .js .htm .html .css .php .php3 .php4 .php5 .txt and .xml;
- Подсветка синтаксиса;
- Встроенные виртуальные клавиши для тэгов и популярных ключевых фраз;
- Undo/Redo
Для тех, кому не понравился данный редактор, как альтернативу, могу посоветовать DroidEdit. Он также существует в двух версиях. Но как по мне, он уступает WebMaster's HTML Editor. Но, это дело вкуса. Все остальные редакторы мне совсем не понравились, так как имеют проблемы или с кодировкой или с работой с большими файлами. А это важно.
FTP-клиент
Программа позволяет сохранять конфигурации соединений (сервер, логин, пароль), а также предоставляет возможности скачивания/закачивания файлов, синхронизации каталога в сети с каталогом на мобильном устройстве, удаления и переименования файлов, изменения прав доступа. Для защиты ваших данных, программа позволяет использовать SSH RSA/DSA ключи. В общем, стандартный набор нормального ftp-клиента, вот только синхронизация папок, поддержка SCP и импорт настроек из файла доступны в ПРО-версии, которая стоит чуть больше 5$.
Локальный веб-сервер
А теперь поговорим о самом интересно — о локальной среде разработки и отладки написанного кода. Согласитесь, без локального веб-сервера вся идея разработки на планшете ничего бы не стоила. И так приходиться терпеть неудобства с ftp, так если бы еще пришлось работать с удаленным веб-сервером, было бы совсем неудобно. Как для меня, так это очень важный момент.
После некоторого времени поисков, я нашел-таки парочку неплохих решений, таких как kWS — Android Web Server или PAW Server for Android, но они меня не впечатлили.
Я уже было согласился их использовать, но неожиданно наткнулся на очень интересный продукт — KSWEB — server + PHP + MySQL и я сразу понял, что это то, что я так долго искал.
KSWEB — это пакет веб разработчика для платформы Android. В его состав входят: веб сервер, язык программирования PHP версии 5.4 и СУБД MySQL версии 5.1. KSWEB дает возможность организовать на вашем Android устройстве платформу для запуска и отладки веб приложений (сайтов). Все, что вам нужно, это установить приложение. В корне памяти устройства создастся папка htdocs, куда необходимо сохранять ваши файлы. Все, как в любом нормальном веб-сервере. После установки, откроется окно управления сервером.
Первым делом, я установил phpMyAdmin (он не установлен по умолчанию). Необходимо кликнуть на соответствующую кнопку в меню, программа спросит, куда устанавливать (путь оставить по умолчанию, так как он должен установиться в папку веб-сервера). Все файлы сервер скачает и распакует самостоятельно. После этого зайти в phpMyAdmin можно будет через панель управления сервером или через браузер, прописав localhost:8080/phpmyadmin. phpMyAdmin полностью функциональный, версии 3.5.2
Для того, чтобы запустить ваш файл, необходимо в панели управления нажать кнопку GO TO. Сразу откроется браузер по умолчанию, в адресной строке уже будет прописан путь к серверу (localhost:8080/), вам же остается только дописать имя файла. С панели управления также можно перегрузить сервер при необходимости. Кнопка Minimize сворачивает сервер в трей, а кнопка Exit закрывает приложение.
Панель настроек имеет такой вид:
Здесь вы можете указать порт, через который будет работать сервер, можете выбрать другую папку для сервера, заставить сразу грузиться в трей не открывая при запуске главное меню. По умолчанию, KSWEB содержит настроенные конфигурационные файлы сервера, PHP и MySQL. Однако, если вы хотите что-то в них изменить, в опциях сервера кликните на пункт «INI Files». Файлы с настройками будут пернесены на SD-карту вашего устройства по адресу "/mnt/sdcard/ksweb/ini/", если она доступна. Повторно кликнув на пункт настроек «INI Files», будут задействованы внутренние файлы настроек.
В Маркете нет возможности купить платную версию, это вы можете сделать через панель опций программы. Лицензия стоит чуть больше 2$ — смешная цена за столь удобное и полезное приложение.
Вот, собственно, и весь необходимый минимум. Конечно, все это субъективно, и я рад буду услышать дополнения и новые решения. Я же, параллельно с личностным ростом и новыми проблемами, буду искать новые пути и средства решения. Может, в конце-концов, и соберу идеальную среду разработки на Android) Спасибо за внимание.
Есть на самом деле много приложений, на которых можно знатно покодить, но я выделил всего три.
1.Acode - хорошее приложение для тех, кто любит писать fronted, он включает в себя HTML, CSS, js и т.д.
2.Code Editor - здесь можно уже писать как на Python, так и на js. А вообще в приложение имеется более 30 языков, на которых вы бы могли написать код.
3.QuickEdit - да, это текстовый редактор, но на нем тоже можно писать код, менять тему и много чего ещё.
Вообще можно писать код где угодно, даже на парте в институте или на бумажке в туалете, но самое главное - это то, чтобы вам нравилось то, что вы делаете. ;)
Web-технологии
233 поста 4.5K подписчика
Правила сообщества
1. Не оскорблять других пользователей
2. Не пытаться продвигать свои услуги под видом тематических постов
3. Не заниматься рекламой
4. Никакой табличной верстки
5. Тег сообщества(не обязателен) pikaweb
Спасибо кэп. Пост охуенно информативен. А то прогеры и не знали, что на смартфоне есть и редакторы, и ssh, и ftp. Ты открыл глаза. Молодец что выделил какие-то три конкретных редактора. А теперь вопрос, если уж ты пишешь этот пост, не догадался расписать почему именно эти три редактора? Тебе с такими постами не на Пикабу, а на Яндекс.дзен надо. Тут, конечно, не хабр, но посты аля: "я стираю лаской. Почему? Идите нахуй вот почему." - тоже как то не особо хочется видеть.
Эмммм, ну, как бы то сказать то? А, собсвенно, ЗАЧЕМ.
Можно, в Google Play полно компиляторов, редакторов и тп портированных с Линукса. Но это геморрой даже с внешней блютуз клавой.
Как кодить на телефоне? Кладешь телефон на стол, ставишь на него ноутбук и кодишь.конечно не под хтмл и цсс, но pydroid еще под пайтон %)
Почему в списке нет Notepad++ (Notepadqq под Линь)?
Продолжение поста «Генератор градиентов и палитры по картинкам»
Прошло 3 месяца с первого поста про мой проект — Gradients.app, он про цвета и градиенты.
Расскажу про изменения и обновления за это время.
Вращение градиента
Вращение градиента появилось в мини-карточке, на подробной странице и при генерации нового градиента. Выбирайте нужный угол поворота и скачивайте градиент под выбранным углом. В мини-карточках градиент скачивается в размере 1920 на 1080 px.
Новый вид страницы градиента
Пользователь может задать размер градиента самостоятельно или выбрать уже готовые размеры. Максимальный размер градиента — 2000 на 2000 px. Изображение градиента скачивается если на него нажать.
Добавление градиента в общую ленту
Пользователю придёт письмо о добавлении в общую ленту и ссылка на градиент.
Генерация градиентов без грязных переходов
Случайная генерация градиентов теперь красивая, не появляются грязные переходы, а цвета рассчитываются по HSL модели.
Появился инструмент смешивания цветов
Можно выбрать до 4х цветов и два режима смешивания RGB и HSL.
Просто про режимы RGB и HSL:
Смешивая синий и желтый в RGB вы получите серый цвет, а в режиме HSL зеленый. В RGB между синим и желтым на цветовом круге серый цвет поэтому их сложение его и даст, а в HSL получится дуга т.к. цвета на разном уровне.
Появился генератор оттенков
Выбирайте цвет и количество оттенков от 3 до 36. Оттенки генерируются в сторону белого, серого и черного цвета.
Набор сочетаний цвета текста и фона
На мини-карточках есть цвет фона, текста и их контраст, чем он выше тем читаемость лучше.
Можно отсортировать наборы по контрасту, времени и просмотрам.
На подробной странице сочетания добавлен заголовок, абзац текста со всеми буквами алфавита и различные начертания шрифта.
Генерация сочетаний цвета текста и фона
К наборам добавил генерацию и для пользователей.
Пользователь может сгенерировать все цвета случайно или каждый по отдельности. Под цветами добавлены подсказки читаемости для заголовков и обычного текста по стандартам WCAG.
Огромное спасибо за комментарии в предыдущем посте, я всё записал и уже что-то добавил.
Буду рад критике и советам.
Ответ на пост «Перевел интерактивные уроки "Базовый курс CSS" и "Базовый курс JavaScript"»
Раз пошла такая пьянка, рискну рассказать о сервисе, который сейчас разрабатываю в качетсве пэт проджекта.
А решил я создать сайт с интерактивными курсами по программированию.
На текущий момент уже созданы курсы :
Базовый HTML, (источник freecodecamp, планируется пополняться и расширяться)
Прикладной визуальный дизайн - дополнение к курсу по CSS (источник freecodecamp. Название курса может быть не совсем корректное)
Базовый курс по php - интерактивный курс по php, сборная солянка со всего интернета.
Дабы не спамить ссылками на все курсы - есть еще курс по JS, в разработке курс по SQL и базам данных.
Прекрасно понимаю, что сайт еще достаточно сырой, есть куча недоработок и багов. К сожалению разработка и наполнение ведется в одно лицо.
В планах сделать интерактивные курсы по питону.
Что из недостатков по сайту вижу сейчас:
- курс по sql - решил сделать озвучку видео при помощи голосовых апи (специальный сервис). Звучит немного убого. В будущем хочу перезалить/перезаписть
- немного страдает адаптивность, хотя в целом сайт не предназначен для мобильных устройст, т.к. неудодно писать код с мобилки
- не весь функционал реализован до конца
- некоторые курсы (в частности JS) содержат не совсем актуальную информацию. По JS в будущем хочу сделать отдельный курс по ES6 (либо актуальному на момент создания стандарту)
Проект в целом создавался скорее для собственного интереса, т.к. было интересно реализовать возможность интерактивных задач для различных ЯП в браузере.
Если будет интересно - могу сделать пару постов о том, как реализовал тот или иной тренажер.
Дядя Боб говорил в своей книге: «Вы читаете эту статью по двум причинам. Во-первых, вы разработчик. Во-вторых, вы хотите стать лучше как разработчик».
Представьте, что вы в библиотеке и ищете книгу. Если издания рассортированы и каталогизированы, вы быстро найдёте нужное. А если у библиотеки приятный интерьер и архитектура, во время поиска вам будет особенно комфортно.
Так же и с кодом. Если вы хотите создать что-то хорошее, нужно уметь писать понятный код и организовывать его в проекте. Когда коллегам понадобится найти что-то в коде, будет достаточно посмотреть названия методов, классов и пекеджей, чтобы разобраться. И не придётся переписывать всё с нуля, махнув на вашу работу рукой.
Что такое чистый код
Как вы понимаете, недостаточно просто побыстрее написать приложение. Если другим разработчикам будет тяжело в нём разобраться, это просто увеличит технический долг.
Код можно назвать чистым, если его с ходу понимают другие разработчики. Тогда его можно читать и изменять, расширять и поддерживать.
Почему это важно
Код отражает ваш мыслительный процесс. Поэтому нужно стараться сделать код более простым и читаемым.
Основные характеристики чистого кода
- Изящный — он должен заставлять вас улыбаться, как когда любуетесь хорошо спроектированным домом или пробуете вкусную еду.
- О нём позаботились — вы потратили много времени, чтобы структурировать и упростить код. Уделили время деталям.
- Сфокусированный — каждый метод, класс и модуль преследуют одну понятную цель и не перегружены деталями.
- В нём нет повторяемых функций, функциональность не дублируется.
- Проходит все тесты.
- Количество сущностей — методов, классов и абстракций — сведено к необходимому минимуму.
Разница между умным разработчиком и профессиональным в том, что второй ставит читаемость во главу угла. Профессионалы используют весь свой опыт, чтобы писать код, который поймут остальные.
Создавайте говорящие названия
Выбор хорошего говорящего названия отнимает время, но в итоге экономит ещё больше. Название переменной, метода или класса должно отвечать на все основные вопросы. То есть объяснять, для чего этот класс (метод, переменная), что он делает и как его использовать. Если приходится пояснять что-то в комментариях — значит, название недостаточно говорящее. Посмотрим на пример:
Имена классов
Названия классов и объектов должны быть существительными типа Customer, WikiPage, Account, AddressParser. Избегайте в именах слов Manager, Processor, Data или Info, потому что они мало говорят о функциональности объекта. Не используйте глаголы.
Имена методов
В названиях методов как раз нужны глаголы типа postPayment, deletePage, save.
Используйте названия из предметной области
Если общепринятого термина нет, используйте название из предметной области. Тогда разработчик, который поддерживает ваш код, сможет спросить о его значении эксперта.
Комментарий автора статьи
Например, вы пишете софт для телекоммуникационного оборудования. Ваши области задачи (экспертизы, решения) — это текстовое и голосовое общение, видеосвязь. Неважно, на каком языке, как и на какой платформе вы пишете, — предметная область от этого не меняется. Если вы разрабатываете приложение для создания и продажи фотоконтента, то предметная область включает фотографию и e-commerce. Любой человек, который видит ваш код в первый раз, должен сразу понимать, чем занимается каждый класс, модуль или пекедж в вашем приложении. Думайте об этом, когда добавляете в название что-то из предметной области этого класса.
Пишем код, используя принципы SOLID
Эти принципы были введены в практику ООП Робертом Мартином, а SOLID — мнемоническая аббревиатура для них. Они описывают подход к проектированию простых, читаемых и надёжных программных решений не только в Android-разработке, но и в целом в объектно-ориентированном программировании.
Принцип единой ответственности (Single Responsibility Principle — SRP)
У класса должна быть одна задача. Изменить состояние класса можно только для того, чтобы выполнить конкретную задачу. Не добавляйте в класс функциональность просто потому, что можете. Если класс выполняет разные задачи — разбейте его на два или вынесите часть задач в другие классы. Избегайте божественных классов. Посмотрим на пример:
В классе RecyclerView.Adapter есть метод onBindViewHolder, который занимается посторонними задачами. Adapter должен только создавать ViewHolder и передавать в него данные. Он не должен обрабатывать эти данные в методе onBindViewHolder. Даже само название метода говорит нам об этом.
Принцип открытости-закрытости (Open-Closed Principle — OCP)
Классы должны быть открыты для расширения, но закрыты для изменения. Иными словами, если кто-то захочет внести коррективы в ваш класс А, то его можно расширить (отнаследоваться от него), но никак не менять напрямую.
Простой пример — тот же RecyclerView.Adapter. Вы можете отнаследоваться от него, чтобы создать свою имплементацию с необходимыми вам свойствами и поведением. Но вы не можете внести эти изменения непосредственно в RecyclerView.Adapter.
Принцип подстановки Барбары Лисков (Liskov Substitution Principle — LSP)
Класс-потомок никогда не изменяет поведение класса-родителя. То есть подкласс может переопределять методы родительского класса, только если это не меняет его функциональность.
Например, вы создаёте интерфейс, у которого есть метод onClick(). Затем вы имплементируете интерфейс в MyActivity, и когда onClick() вызовется — отобразите в нём Toast. Не прописывайте эту функциональность в интерфейсе. Дополняйте onClick(), только переопределяя его в классе-потомке.
Принцип разделения интерфейсов (Interface Segregation Principle — ISP)
Ни один наследник не должен имплементировать методы, которые он не использует. Если у вас есть класс или интерфейс А и вы имплементируете его в классе B, то не нужно переопределять все методы А в B.
Для примера рассмотрим имплементацию в вашей Activity SearchView.OnQueryTextListener(). Вам нужен оттуда только один метод, но там их два:
Как сделать так, чтобы вы не имплементировали ненужную функциональность? Отнаследуйтесь от SearchView.OnQueryTextListener(), создайте свой колбэк и передавайте дальше только то, что вам нужно:
Как это будет выглядеть в нашей Activity:
Или можно написать функцию-расширение, как это принято в Kotlin:
Как это будет выглядеть в Activity:
Принцип инверсии зависимостей (Dependency Inversion Principle — DIP)
Зависимости должны быть от абстракций, а не от конкретных имплементаций. Роберт Мартин приводит два аргумента:
- Верхнеуровневые модули не должны зависеть от низкоуровневых. И те и другие должны зависеть от абстракций.
- Абстракции не должны зависеть от деталей, детали должны зависеть от абстракций.
Высокоуровневые модули, в которых прописана сложная бизнес-логика, должны легко переиспользоваться и не зависеть от изменений в низкоуровневых модулях. Чтобы это работало, вам нужно определить абстракции, которые отделяют высокоуровневые модули от низкоуровневых.
Простой пример — паттерн MVP, где вы определяете интерфейсы, которые помогают передавать данные из одного конкретного класса в другой. Это значит, что UI-часть (Activity/Fragment) не должна ничего знать о том, как именно работают методы Presenter. И если вы измените что-то в Presenter, Activity этого даже не заметит. Посмотрим на примере. Presenter имплементирует интерфейс:
То же самое в Activity:
Мы создали интерфейс, отделяющий имплементацию Presenter от Activity, которая содержит ссылку на интерфейс, а не на Presenter.
Если вы уже разрабатывали приложение, в котором были бессмысленные названия, божественные классы, спагетти-код — поверьте, я тоже такое делал. Поэтому и делюсь знаниями от Дяди Боба о чистом коде. Надеюсь, они вам помогут.
Читайте также: