Если вы перешли с Windows на Linux и выбрали Mint-дистрибутив, то, вероятно, вы столкнетесь с некоторыми неудобствами вроде того, что, например, не работает переключение между языками на Ctrl+Shift и на Ctrl+Alt, а так же горячая клавиша Win+D и прочие. И всегда сразу в незнакомом дистрибутиве возможно найти, где именно можно настроить вышеназванные опции. В этой заметке я кратко опишу шаги по их настройке (все скрины делались Linux Mint 18.3 Sylvia Mate): Продолжить чтение
Архивы за месяц: Март 2020
Краткий ликбез по работе с Ubuntu на bash
Информация о системе
lsb_release -a
— узнать версию ядра Linux (если не работает, значит утилита на установлена)cat /etc/*-release
— получить информацию о сборке (ubuntu/manjaro/fedora)cat /etc/issue.net
— узнать версию ubuntuecho $0
— узнать оболочку терминала (bash/zsh/tcsh)echo $XDG_CURRENT_DESKTOP
— узнать версию графической оболочкиuname -m
— узнать разрядность операционной системыcompgen -u
— получить список пользователейid
— получить список всех групп пользователей с их uidid -G
— получить все группы текущего пользователяgroups
— просто перечислить все группы текущего пользователя./<filename>
— запуск бинарной программы в linuxsudo -i
— выполнять все команды суперпользователя без подтверждения
Лайфхаки npm
npm install
— установка всех модулей указанных в package.json
npm install package_name@0.1.14
— установка конкретной версии конкретного пакета
npm i[nstall] package_name -g
— установить зависимость глобально
npm ls -g --depth=0
— показать глобально установленные модули (без зависимых модулей)
npm ls -g --depth=1
— показать глобально установленные модули (с зависимыми 1-го уровня вложенности)
npm update --save [package_name]
— обновить пакет
npm ci
— установка зависимостей из package-lock.json
Популярные пакеты npm
vue-cli
Позволяет быстро развернуть vue приложение через интерфейс командной строки:
npm install -g vue-cli
— глобальная установкаvue init webpack-simple
— инициализация нового проекта в текущей папкеnpm install
— устанавливает все пакеты, необходимые для vuenpm run dev
— запуск сервера разработкиnpmrun build
— построить решение для деплоя
create-nuxt-app
Позволяет быстро развернуть nuxt приложение на пк
npm install -g create-nuxt-app
— установить глобальноcd <projects_path>
— переходим в папку с проектамиcreate-nuxt-app <app_name>
— создание проектаcd <app_name>
— переходим в папку с проектомnpm run dev
— запускаем сервер разработки либоnpm run build & npm run start
— запускаем realize версию
Xamarin.Forms интересные ссылки
Работа с sms
- Чтение смс через Xamarin by BroadcastReceiver на stackoverflow, на xamarin forums and more one stackoverflow by xamarin.forms question.
- Как можно вызывать Droid funcs from Xamarin.Forms. it’s in russian. Пример на github by Xamarin
- Пометить смс как прочитанную. Изменение статуса sms.
- Примеры разделения смс по типам
- Чтение смс с фильтром (см ответ Ömer)
- Получить номер сим-карты и название ее оператора. Так же релевантные ссылки по Xamarin и нативу
- Получать уведомления об отправке sms (android)
- Еще примеры нотификации
- Вибрация на Android и на Xamarin
- Получить смс за последние 14 дней, получение определенного количества
- Назначение приоритета для intent-фильтра для приоритета перед встроенными программам
- Set sms-messenger as default in android
- Об Intent-фильтрах из первых рук и их использование в Xamarin
- получение контактов без плагинов + для андроид.
ListView
- Изменить цвет фона выбранной ячейки в ListView (Xamarin Forms)
- Настройка высоты строки в ListView
- Измерить ширину текста на xamarin forums и github
- Binding к ListView
- Использование SwitchCell
- Сhange background color of selected viewcell on contextmenu appearance — почему-то помимо ViewCell цвет меняется и у Switch-ей
Кастомизация элементов
- Изменение цвета нижней границы при фокусе на элементе (Android) без ререндеринга
- Рендеринг своего собственного нативного элемента (оф. док) и метанит (устаревший)
- Кастомный рендеринг Entry
- Удаление границ у элемента Xamarin.Forms через нативный рендеринг
- Добавить обработчик клика к Label-у
- Установить прозрачность для Activity
- Список соответствий нативных элементов с Xamarin.Forms для рендеринга
- Example for ViewRenderer
- Переопределение при кастомном рендеринге методов
DispatchDraw
и `OnElementChanged` (можно так же в OnVisibilityChanged) - NavigationPage custom render
- Рисование на Android (доступно в методе
DispatchDraw
) - Анимация прозрачности элемента на Android. Но для меня сработало это.!
- Получение системных мелодий
- Прослушивание системных настроек Android
- Исходники ActionMenuItemView для кастомизации под EditView (в ActionBar)/ Необходимо реализовать интерфейсы
MenuItem
и обработчики событий. Сложность — средняя - Библиотека для создания модальных окон (с прозрачностью)
Адаптация под клавиатуру
- Выравнивание под клавиатуру Android
- Как определить высоту виртуальной клавиатуры
- Перемещение вида вверх в соответствии с высотой клавиатуры (через пакет KeyboardOverlap)
- Адаптация к клавиатуре через ререндер
- Кастомный элемент для адаптации к клавиатуре + ссылка на репозиторий
ComboBox for Xamarin.Forms
- Кастомный ComboBox своими руками на основе SuncFusuion framework
- Нагуглен и нуждается в проверке (не чекал)
- Готовый компонент
- Совоими руками на основе ListView
- Обсуждение на stackoverflow
Базы данных
- Реализация OneToMany для sqlite-net-pcl
- Использование ContentValues для работы с БД Android
Ориентация экрана
Анимация в Xamarin Forms
- Компонент preloader для Xamarin.Forms
- Создание прелоадера вручную (хардкор)
- Обсуждение preloader-ов на Xamarin.Forums
- Использование анимации в Xamarin.Forms
- Нативные анимации в Android
- ProgressBar для Xamarin Android
MVVM:
- Twoway binding
- Binding на Switchcell
Уведомления
- Флаги Android для PendingIntentFlags
- Custom.Notification с иконкой из ресурсов
- Другие варианты кастомной нотификации
- Инструкция по кастомной нотификации от Microsoft
- Проблема с попытками решения (неполными) на stackoverflow
- Основополагающий скрипт
- Полный справочник по атрибутам нотификации (офф док)
- Использование уведомлений с кастомным контролом
- Оно же на русском (на с джава)
- Еще немного о том же, но с моего любимого сайта
- О том, как сделать неубиваемый сервис
- Кастомный RemoteViews (довольно сложный пример) + тут. Насколько понял, дизайн нужно описать в ресурсах
- Назначение освещенности в уведомлениях + похожий вопрос без ответа, но с ссылками
- Поверх экрана блокировки (в качестве параметра передается другой нотификатор)
- Получение activity класс-а из Xamarin.Forms +можно попробовать это
- List of all Android permissions
- Настройка манифеста для Android
- Использование SetColor для уведомления
- Get default sound uri for SetSound notification + here
- set SetVibrate on stackoverflow and here
- Нахлест нескольких параметров при уведомления, отменяющих setVibrate
- Как сделать heads up notification. А здесь еще лучше
- Основы уведомлений на русском (startAndroid)
Сервисы
- Пример сервиса на Xamarin от Microsoft
- Офф доки служб для Андроид
- Инструкция по созданию свзяанного сервиса на Xamarin от Microsoft
- Преобразование речи в текст. Оно же на русском со. Обсуждение ошибки. Оптимизации.
- Преобразование голоса в текст (офф док от майков)
- Плагин от майков по распознаванию голоса (облачная). такой же есть от гугл (см nuget)
- Перевод речи в текст оффлайн (с использованием пользовательского словаря) (необходимы настройки)
- Распознавание речи с сохранением в файл (через ActivityForResult)
Использование стилей в Xamarin.Forms:
- Сделать границы (border) для Label
Preference Framework
(для X.F почти беспололезен, т.к. для PreferenceFragmentCompat убрали тип RingtonePreference)
- Использование AppCompatPreferenceFragment
- Советы по использованию PreferenceFragment вместе с AppCompatActivity
- Правильное использование Fragment в AppCompatActivity
- Примеры использования PreferenceFragmentCompat, его назначение + сравнение с обычным PrefereceFragment.
- Темы для работы PreferenceFragmentCompat: раз проблема, два решение
- Xamarin — настройка темы для PreferenceFragmentCompat
Заставка:
- Плавное появление и исчезновение заставки
- Аналог для ActivityIndicator (ожидатель действия/загрузки)
- Оффициальный гайд
- Сторонние решения
Оплата
- Справка по оплате на Android
- Плагин для inApp покупок. Документация по нему.
- Yandex SDK под голый Андроид
- Плагин на nuget для yandex денег (пререлиз). Он же на github/
- Портирование библиотеки с Java на Xamarin
- Оффициальные доки по портированию java кода на Xamarin (JNI)
- Создание обертки для Java-файла (офф док)
Работа с реальными устройствами:
- Работа с камерой и фикс бага при дефолтном сохранении на sd-карту
- Сделать снимок без интерфейса (Андроид)
- Создание собственного ContentPage для отображения входного видеопотока с камеры (под каждую платформу) внутри своего приложения (рабочий вариант, с офф доков почему-то не работает)
- Создание, запись и чтение фото в Android тут и тут
- Немного о предназначении хранилищ для Android на русском
- Библиотеки для распознавания: PikkArt, WaveEngine(порт для ARKit. примеры использования раз, два, три), ветка на со, Microsoft Computer Vision for Xamarin, еще одна либо с ARCore. Список моделей, поддерживающих ARCore. (так офф тут).
- Распознавание лица на ARKit, старая ветка и ветка, распознаване образов Xamarin на ютубе, самоучитель по распознаванию объектов Xamarin.
- Хороший пример по распознаванию образов с Microsoft Computer Vision
- Пример Xamarin ARCore (github)
- Работа с ARCore на Android (с распознаванием)
- Создание собственного контрола для отображения видео и готовая реализация. Ее обсуждение на Xamarin.Forums. Превью на голом Андроид.
- Еще один плагин для камеры (без звезд).
- Подкючение камеры на Android (java)/ Camera2
- Работа с TextureView на so. Чем TextureView лучше, чем SurfaceView
- Еще примеры работ с камерой в SurfaceView: one, two
- Офф документация по работе с 2д маркерами от гугл. Ее же перевод на русский.
- Оригинальный tesseract. Использование tessnet2 (легаси) на примере, оригинал. TesseractSharp — .NET Wrapper for Tesseract 5. И tesseract для Xamarin.
Юнит-тесты для Xamarin:
- Видео на англ. Подробное
Работа с сервером
iOS:
- Установка High Sierra на VirtualBox
Для общего развития:
Ошибки:
- java.lang.OutOfMemoryError. Consider increasing the value of $(JavaMaximumHeapSize). — вам сюда