Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как автоматически сделать нумерацию атрибутов в Sublime Text 3?

Лучший ответ:
ставите плагин Increment Selection
выделяете свои id и нажимаете “ctrl” + “alt” + “i”
rricketts.com/add-auto-incrementing-number-selecti...

Худший ответ:
Созданные элементы нельзя так отредактировать. Только по новой создать тем сниппетом который вы указали.
Вопрос: Как не выводить пустой get в url строку?

Лучший ответ:
if (!empty($_GET)) {
            $new_get = array_filter($_GET);
            if (count($new_get) < count($_GET)) {
                $request_uri = parse_url('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], PHP_URL_PATH);
                header('Location: ' . $request_uri . '?' . http_build_query($new_get));
                exit;
            }
        }
Где-нибудь в самом начале страницы или точки входа вставьте, будет чистить любые пустые GET-параметры, и не надо в каждой форме что-то мудрить.

Худший ответ:
Как вариант при отправке формы формируй url, точнее get самостоятельно с помощью js.
Пустые переменные в get потому-что при сабмите формы все поля находящиеся в форме формируют  запрос, не зависимо от того пустое поле или скрытое, оно все равно попадет в get.
Просто отловите отправку формы тем же jquery, переберите все поля внутри формы в цикле и из не пустых полей сформируйте запрос (url). А потом просто сделайте редирект на этот url (document.location.href = url).
Или как вариант удалить jsом перед отправкой формы все пустые поля, эффект будет тот который вы хотите.
Вопрос: Вопрос по покупке на eBay (состояние товара) (смартфон)?

Лучший ответ:
Знаю 2-их человек, правда они брали «manufacturer refurbished» зеркальные фотоаппараты. С 1-им из знакомых общаюсь часто, и подтверждаю, что зеркалка служит «верой и правдой».
Конечно, не могу не согласиться с мнением о лотерее, какой-то процент удачи и неудачи все равно присутствует. Но даже, если покупать в магазине, ведь этот процент тоже будет, и геморрой с сервисными центрами тоже будет, правда в чуть меньшей степени. В этом случае рекомендую ещё брать товары с «worldwide warranty service».
На мой взгляд Вам стоит больше волноваться за прохождение посылки через таможню, уж больно сильно сейчас все там «вверх дном», много приходит вскрытого и некоторые даже пропадает.

Худший ответ:
Покупал два ipod touch refurbished, не было абсолютно никаких проблем.
Вопрос: Университетский курс «Базы данных». О чем?

Лучший ответ:
У меня только 1 мысль, господи только не ОпенОфисБэйз. 

Нужны современные базы, теория построения баз, нормальные формы, вот это все. Хотел бы услышать по реальные применения баз, например когда сознательно идут на денормализацию. В кратце про ОРМ и не реляционные БД. Бест практисис проектирования схем БД.

Худший ответ:
Веду курс по БД в университете, один семестр второго курса, 12 лекций, много лаб и курсовая. Последовательность подавания материала примерно такая:
0. Байки о том, что БД — это хлеб программиста, и описание всех полученных за последнюю неделю просьб найти oracle-программиста для банка на NNN тыщ рублей в месяц :)
1. Вступление, общее описание проблемы, немного истории. (0.5 лекции)
2. Табличное представление данных сразу на примере: рисуем огромную денормализованную таблицу с проданными билетами в кинотеатр и начинаем думать о том, что в ней не так, и как это исправить. Студенты сами называют слова «дублирование», «противоречивость» и пр., и сами придумывают, как эти проблемы решать (разбиение на таблицы); рождаются (пока неформально) понятия первичного ключа и внешнего. Это самый важный раздел, я считаю — здесь мы учимся проектировать реляционные БД на примере нетривиальной БД кинотеатра. Здесь же обсуждаются и многие концептуальные вопросы БД на примере того же кинотеатра. (1-1.5 лекций)
3. Реляционная модель данных: формальные определения, обозначения, и определения первичных и внешних ключей и функциональных зависимостей; NULL и трехзначная логига (1 лекция) (1 лекция)
4. Нормальные формы 1-3 и НФБК, формальные определения и процедура нормализации. (1 лекция)
5. Транзакции и параллелизм (описание проблематики, возможные подходы к решению). (0.5 лекций)
6. Язык SQL: DDL, DML (insert-update-delete), транзации. (1 лекция)
7. Язык SQL: select: from, where, select. (0.5 лекции)
8. Язык SQL: соединение, группировка, мелочи (union-minus, exist, outer join). (1 лекция)
9. Язык SQL: подзапросы (в from, в where, в select). (1 лекция)
10. Язык SQL: сложные подзапросы, решение задач выборки реляционных данных (1-1.5 лекции)
11. Процедурные расширения: процедуры, функции, триггеры (0.5 лекции)
12. Индексирование: что такое индекс, как и для чего он работает (0.5 лекции)
13. Прочие объекты схемы Oracle: последовательности (и вообще проблема уникальности), обзоры, снапшоты, временные таблицы и т.д. (0.5 лекции)
14. Инфологическое моделирование (0.5 лекции)
15. Нереляционные БД (1 лекция)
Вопрос: Создание драйвера под windows, виртуальный интерфейс?

Лучший ответ:
Не читайте русских книжек. Всё что есть по драйверам — это windows internals и примеры кода из WDK. Ищите в папке src. Так же советую поосновательнее подходить к этой задаче, т.к. она требует глубокого знания того, что вы делаете (программист должен понимать зачем у него каждая строка кода в драйвере) и самую малость отличается от написания сайтов на пхп. Удачи.

Худший ответ:
Для com-порта есть утилита virtual serial port driver, которая создает пары виртуальных портов — 7-я версия работает и под win7. Из пары один используется на чтение, второй на запись. Делал работу одну — протеус с одной стороны, софтина на .net c другой, софтина посылает команды на включение нагревателей и вентиляторов, контроллер возвращает температуры контрольных датчиков и текущее состояния вентиляторов, задвижек, нагревателей и т.п. — все работает. Под lpt не искал, но возможно есть аналог у разработчиков этой проги. Если интересует, естьгде-то лежат исходники и софтины на .net и proteus-схемы с прошивкой и собственно сама программка есть с лекарством.
Вопрос: Актуальный язык программирования

Лучший ответ:
Какой бы не взяли, а JavaScript все равно нужно будет осваивать, начните с него, а там, может, и Node.js приглянется.

Худший ответ:
См эту заметку. В мире Java вас ждет много боли, еще не поздно одуматься :)
Вопрос: PHP обращение к суперглобальным массивам

Лучший ответ:
На хабре таких вопросов не было...
Ни чем это не грозит. Как правило в приложении используются фреймворк или библиотеки, которые предоставляют безопасный доступ к суперглобальным массивам — фильтруют/экранируют/приводят данные к нужному типу.
Если вы этим не пользуетесь, то обращайтесь к входящим данным самостоятельно, но никогда не доверяйте им.
Думаю, Netbeans начал ругаться не "внезапно", а после того, как вы что-то изменили в настройках.

Худший ответ:
А версия?
Вопрос: Кто знает как сделать горизонтальное перемещение объекта при скролле?

Лучший ответ:
Как добавить и удалить класс при сколле?
За место ховера - класс.#axis.transform .move-right{
    transform: translate(350px,0);
}classPoint(axis, "transform");
И почитайте на досуге про автопрефиксер.

Худший ответ:
Я попробывал это с использованием JQueryfunction checkScroll() {
	$(*id элемента*).each(function() {
		var topEdge = $(this).offset().top,
				bottomEdge = topEdge + $(this).height(),
				wScroll = $(window).scrollTop();

		if(topEdge < wScroll && bottomEdge > wScroll) {
			*делаем смещение путем добавления нужного класса CSS*
		}
	});
};
Вопрос: Как составлять свое портфолио верстальщика на фрилансе?

Лучший ответ:
"Из всего вышесказанного вопрос: какой вариант (или варианты), по-вашему, лучше, если можно, то почему? "
Тут на тостере постоянно жалуются, что не могут получить даже один заказ. А если получили, то заказчик какой-то странный.
А вы уже перебираете что делать а что не делать?
Если вы достигли уровня, когда можете отказываться от одних заказов в пользу других, то вам пора отвечать на вопросы, а не задавать их.
Все остальное - посмотрите профайлы успешных фрилансеров. Не стоит их просто копировать - копируйте идеи, ловите мысли.

Худший ответ:
Работать без портфолио, потом добавить реальные проекты. Я делаю так. (правда второй этап еще не выполнен, может через полгодика добавлю пару работ)
Вопрос: Бюджетный HP Pavilion 15-e011sr для разработки: подойдет ли?

Лучший ответ:
Скупой платит дважды.
Беслпатный сыр бывает только в мышеловке.
Из блохи голенище кроит.
С миру по нитке - голому рубаха.
Свинья мне не брат, а пять рублев не деньги.
У щедрых хозяев куры по два яйца несут.
и тд. Т.е. чудес не бывает.

Худший ответ:
Если верить яндек.маркету , то он стоит 17 тысяч
Добавь три-четыре тысячи и возьми уже c процессором A10 (например)
А на счёт твоего ноутбука, то процессор достаточно слаб, по отдельности всё будет работать, но когда у тебя будет запущен тот же denwer и в visual studio будешь, что то делать, сразу заменишь упадок и ни какая оперативка тебе не спасёт
Вопрос: Можно ли проверить строку на значение в блоке try-except?

Лучший ответ:
Да пожалуйста:try:
    if s1 != s2:
        raise ValueError('Но зачем?')
except ValueError as e:
    print('Действительно, зачем?')

Худший ответ:
Можно, однако учтите, что пускать обычную логику программы через механизм исключений - затратно. Исключения - для ошибок.
Вопрос: Создание игры на IOS в unity3d без мака?

Лучший ответ:
1. Текущая версия Unity - 4.6.1
2. Разрабатывайте свою игру в десктопном варианте, помня про ограничения iOS
3. На момент деплоя и тестирования мак (или хакинтош) у вас должен быть
4. Подписка разработчика вам понадобится только если вы соберетесь распространять свою игру через AppStore (ну, других вариантов у вас нет по сути)

Худший ответ:
Unity Cloud Build поддерживает сборку для iOS. Но пока доступна для Pro-пользователей.
https://unity3d.com/ru/unity/cloud-build
Вопрос: "Всего 12 анкет" — замена окончания слова «анкет» в зависимости от цифры. Есть готовые решения?

Лучший ответ:
Привет.
Да не парьтесь с этим. Лучше измените на "Всего анкет - 0/1/2/38/10/100". Только время убьете на такую фигню.

Худший ответ:
На работе пользуемся morpher.ru , но как dll`ка он платный. Есть бесплатный апи.
Вопрос: VK и восстановление/удаление аккаунта: как?

Лучший ответ:
там же ясно написано. Вы можете скрыть номер паспорта и прочую информацию, за исключением фото, фамилии и имени.

Худший ответ:
Почитайте еще вот: vk.com/privacy
Если коротко: Вы обязаны предоставить правдивые данные сайту, а Администрация может получать и обрабатывать от Вас приватную информацию для соблюдения условий договора. А значит, пока у нее есть сомнения, что Вы это Вы - они могут требовать у Вас еще и и еще данных.
Вопрос: Как из открытых наушников сделать закрытые?

Лучший ответ:
Пищевой пленкой обернуть или пластилином залепить. Вообще, никак. Купи нормальные. Открытые на то и открытые, чтобы с тобой хиты русского шансона слушал весь автобус.

Худший ответ:
Разобрать и внимательно осмотреть внутри чашки...
Сразу увидишь что можно залепить, к стати китайцы часто делают в наушниках акустическое короткое замыкание, с помощью дырочек по периметру держателя динамической головки, это грехъ, их тоже надо залепить...
Но грешат они не случайно, без этих дырочек сразу даст о себе знать внутренний объём чашки, его нужно заполнить нарезанной поролоновой губкой.
Вопрос: Git для бэкапа бинарных файлов?

Лучший ответ:
По шагам.
1. Делаете чистый репозиторий
2. Делаете ветки для старых годов (git checkout -b 2011)
3. Сохраняете там прежние годы (git add -A && git commit)
4. Возвращаетесь в ветку master (она остается пустой)
5. Делаете следующую ветку (git checkout -b 2012)
6. Повторяем пункт 3
Алсо, во избежание, можно сразу сделать веточку empty, чтобы случайный мердж в master не заставил вас потом делать откаты.
То есть для нового года делаете новую чистую ветку, при этом можно безнаказанно работать в предыдущих годах.

Худший ответ:
вообще-то класть бинарники в систему контроля версий, имхо, очень плохая идея. может стоило бы поиграть с git submodule. суть: цеплять ссылку к ревизии
Вопрос: Оправдано ли использование строкового первичного ключа?

Лучший ответ:
1. Никуда не годится. Ключ должен быть числом, это раз. Это влияет на производительность.
2. Допущение об уникальности номеров автомобилей - мрак. Вполне возможна ситуация, когда появятся две машины с одинаковым номером, просто одна из них 100500 лет назад снята с учета.

Худший ответ:
Если строковый ключ не слишком широкий, то он гораздо лучше использования "фальшивого" PK. На производительность вставок/джойнов в пределах реальной погрешности НЕ влияет: не нужно слушать тех, кто когда-то прочел эту байку, достаточно самому поставить нехитрый опыт с реальной средней шириной записи. Единственное ограничение тут - возможное переиспользование ключа, но если этого не допускается, как в данной задаче - так и нужно делать.
Вопрос: Чья обязанность писать Техническое задание (ТЗ)?

Лучший ответ:
Менеджер проекта совместно с командой, т.к. он тоже один не может знать всех технических тонкостей.

Худший ответ:
Смотря что подразумевать под ТЗ.
Обычно это постановка задачи (ЦА, структура, набор модулей, дополнительный функционал). Если речь идет про постановку задачи, то этим должен заниматься либо аналитик, либо проектировщик интерфейсов. 
Техническое задание в классическом понимании (архитектура, интеграция, технологические решения и пр.) должен писать тех.специалист. Как правило либо архитектор, либо разработчик.
Вопрос: Оптимизация в SQLite

Лучший ответ:
Если поиск ведется по условию 'XXX%', то индекс использовать можно.

Если нужен полнотекстовый поиск, то смотреть здесь

Худший ответ:
Самый хороший способ — это заставить SQLite работать с русским языком по-человечески. Т. к. отсутствие поддержки ещё выползет боком в разных других местах. Но если это невозможно, можно продублировать все поля, по которым ведётся поиск, и хранить в них текст в нижнем регистре. Ну и программно следить за тем, чтобы значения в них соответствовали исходным полям.
Вопрос: Какие готовые коммерческие проект «умный дом» есть сейчас на рынке?

Лучший ответ:
Добрый день!
Я не думаю, что вы сможете найти сразу готовое решение, которое можно купить за какую-то фиксированную сумму денег, принести домой, распаковать и пользоваться. Так же не скажу, что Умный Дом -- это нечто, что за деньги вовсе не купишь. Относительно "стандартный" путь это пойти в компанию-интегратор и совместно с их менеджерами и техническими специалистами составить техническое задание, подобрать компоненты, выполнить монтаж и наладку. За всё это нужно платить и довольно много. Причём процент закладываемой прибыли зачастую невероятно высок в виду эксклюзивности услуги. Но и здесь, к сожалению, нельзя сказать о том, что заплатив один раз всё закончится. Аппетит приходит во время еды и вскоре вы захотите расширить возможножности своего Умного Дома, а для этого опять же надо обращаться к специалистам.
Если вы технически подкованы, то можете посмотреть в сторону продуктов на базе протокола ZWave -- тот же Fibaro Home Center или контроллер Zipato. Это достаточно сбалансированные решения, относительно несложные в установке и настройке. Благодаря большому количеству совместимого ZWave-оборудования можно получить огромное количество возможностей и гибкости в расширении системы.
Ну и третий вариант, так сказать, уровень hardcore, но не nightmare -- не обязательно "паять самому" :) Посмотрите в сторону проекта MajorDoMo -- открытая платформа домашней автоматики, поддерживающая работу с большим количеством протоколов одновременно, как проводных так и беспроводных (тот же ZWave в том числе). Этот вариант наиболее гибкий по бюджету, а так же отличается тем, что в нём присутствует очень активное сообщество, генерирующее тонны идей в этом направлении.
Удачи в реализации!

Худший ответ:
Если по-серьёзному хотите строить Умный Дом, то смотрите на европейский стандарт KNX, которому уже 26 лет и его поддерживают все европейские компании производители электро-установочных изделий, чтобы не быть привязанным к одному производителю или закрытому стандарту.Можно самостоятельно изучить и сделать (см. тут)Можно найти инсталлятора умного дома KNX и купить услугу (см. в google)
Вопрос: Как бы Вы изменили структуру программы в Python основываясь на ООП?

Лучший ответ:
Структура вашей программы совсем не понятна, поэтому нельзя точно сказать, куда пихать ООП.
ModifyValueN можно заменить на что-нибудь такое:def modify(value, func):
    return func(value)
И использовать как-нибудь так:x1 = modify(x1, lambda x: x**2) # Не сложно догадаться, что это возведение в квадрат.
P.S. Почитайте PEP8, умоляю

Худший ответ:
Структура вашей программы совсем не понятна, поэтому нельзя точно сказать, куда пихать ООП.
ModifyValueN можно заменить на что-нибудь такое:def modify(value, func):
    return func(value)
И использовать как-нибудь так:x1 = modify(x1, lambda x: x**2) # Не сложно догадаться, что это возведение в квадрат.
P.S. Почитайте PEP8, умоляю
Вопрос: Как правильно искать курсы на coursera?

Лучший ответ:
Вы все равно забросите "обучение" на курсере через неделю. Не тратьте свое и чужое время.

Худший ответ:
https://www.coursetalk.com/ - вот тут есть поиск по разным курсам (не только курсера) и отзывы к ним.
 Вообще, для курсов по сугубо практическим компьютерным технологиям можно больше найти на https://www.udacity.com/, Курсера все-таки более академического направления.
Вопрос: Агрегатор интернет платежей для сайта, продающего софт (физ. лицо, не ИП)

Лучший ответ:
Тут нужно понимать одно, что если принимаете платежи от физика, то у Вас все платежи будут приниматься под большой %, а также не получиться напрямую согласовать Яндекс.Деньги и банковские карты. 
Агрегатор может принимать банковские карты под своим каким-либо зарегистрированным мерчантом, но и Ваши клиенты увидят, что платят в «рога и копыта». 
Мой совет — сделайте ИП, оно окупиться на % комиссий.

Худший ответ:
Я делал так. WM принимаю напрямую, а все остальное «робокасса », но она не позволяет физикам принимать пластиковые карты.
Вопрос: Что такое распределенная система?

Лучший ответ:
A distributed system is a software system in which components located on networked computers communicate and coordinate their actions by passing messages. The components interact with each other in order to achieve a common goal.
Мне кажется более чем понятное определение.
Если простым языком, представьте себе что вы разделили ваше приложение на куски и раскидали эти куски по разным физическим машинам. Что бы что-то сделать каждый кусочек общается с другими отправляя им сообщения и получая ответы. Если на какую-то часть системы приходится большая нагрузка чем на остальные - можно продублировать этот кусочек на нескольких серверах и т.д. Так же в случае больших объемах данных удобно хранить данные по частям на разных серверах.
Это один из основных подходов при построении реально больших проектов. Можеет так же почитать про микросервисы и другие схожие подходы.

Худший ответ:
распределенная на несколько серверов система, что тут не понятного.
Вопрос: Кодировка в PHP и MySQL, почему выводятся знаки вопроса?

Лучший ответ:
перерыл я кучу статей, исчерпывающих мануалов от людей которых задолбали подобными вопросами на форумах, и ничего не помогало, хоть ты тресни.
Но решение нашел, надо в файле my.cnf (my.ini) в этой строке указать необходимую кодировку init-connect = "set names utf8"

Худший ответ:
гугли
Вопрос: Какой бесплатный helpdesk выбрать с учетом допиливания?

Лучший ответ:
Может подойдет: habrahabr.ru/post/227277

Худший ответ:
Попробуйте OTRS
Бесплатен и довольно наворочен. Можно интегрировать с доменом.
Вопрос: Как настроить IPTABLE с первого раза?

Лучший ответ:
короче так. берешь мануал по iptable и читаешь. потом настраиваешь на тестовом стенде. потом еще раз и еще раз. а потом уже где-то в тридевятом царстве. тогда с "первого раза".

Худший ответ:
3306 это порт для MySQL. Будет он закрыт или открыт - для доступа по SSH вообще значения не имеет.
А для SSH не обязательно использовать 22. Можно любой свободный. Меняйте его, а потом как угодно экспериментируйте с 22.
Вопрос: Книги php 2015-2016?

Лучший ответ:
Учитесь тут:  getjump.me/ru-php-the-right-way

Худший ответ:
по PHP книг полно
вот, например
www.ozon.ru/context/detail/id/5021607
дальше по ссылкам и отзывы читайте
Вопрос: Карьера с SAP.....?

Лучший ответ:
Как-то будучи уже в должности ведущего программиста отправил JFL резюме в московское представительство SAP. Не сторонним внедренцам. В сам SAP. Перезвонили, предложили попробоваться на помошника младшего зеленого гоблинаjunior-тестировщика. С весьма скромной з/п и обязательным дресс-кодом и прочей копроративной культуро… Причем сказано было так, будто оказывают мне великую честь. Девушка была невероятно удивлена, когда я сказал что меня это не интересует. Она сказала, "… ну мы же SAP! Вы знаете что такое SAP??" 
Вот почему-то ниразу не пожалел с тех пор. Как думаете, зря?

Худший ответ:
SAP нужен для ведения учета и построителя красивых отчетов, связь нужна что бы выгружать все данные в 1С и сдавать отчетность через 1С и сводится это к тому что бы создать в сап нужный xml и открыть его в 1С.
Вопрос: Правильно ли я написала скрипт обработки сравнение дат с последующей обработкой?

Лучший ответ:
поместить проверку внутрь цикла (то есть в while).

Худший ответ:
если я вас правильно понял то как-то так:<?php
     $date = date('Y-m-d');
     $com = 'Не выполнено';
     
     $db = mysql_connect($mysql_server, $mysql_username, $mysql_password);
     mysql_select_db($mysql_database, $db) or die('Failed to select database<br>'.mysql_error());
     $sql = "SELECT * FROM `zadanie` WHERE data = '$date' and up_data='$date'";
     $result = mysql_query($sql, $db);
      while ($res = mysql_fetch_array($result))
     {
              $sql = "UPDATE `users` SET `bal` = `bal` - 10 WHERE `id` = '{$res['id_user']}'";
              mysql_query($sql, $db);
              $sql = "UPDATE `zadanie` SET `up_data` = '$com' WHERE `id` = '{$res['id']}'";
              mysql_query($sql, $db);
    }
?>
Вопрос: Как сгенерировать чистый бинарник, используя GCC?

Лучший ответ:
Или ещё вариант без objcopy, но со скриптом линковщика:
$ cat kernel.lds 
SECTIONS {
        .text 0x7e00:
        {
                *(.text)
        }
        /DISCARD/ :
        {
                *(*)
        }
}
$ ld -e kmain -T kernel.lds test.o --oformat=binary -o kernel-lds.bin
$ hexdump -Cv kernel-lds.bin
00000000  55 48 89 e5 b8 01 00 00  00 5d c3                 |UH.......].|
0000000b


Опять же, если в исходных объектниках есть другие нужные секции помимо .text, их имена надо вписать внутрь .text: {} после *(.text).

Худший ответ:
попробуйте сделать трансляцию в asm и потом ручной сборкой.
Вопрос: -У Вас работает 1vds?

Лучший ответ:
Тут кое какая инфа. Вроде пожар.

Худший ответ:
как вовремя я от них ушел… буквально вчера закончил настройку нового сервера… на 1vds еще даже 3 дня осталось оплачено :)
Вопрос: Разработка мобильной версии сайта и мобильных приложений iOS/Android — нужен совет?

Лучший ответ:
Относитесь в yii как к backend а фронтенд может быть на чем угодно в зависимости от нужд. Мобильную версию можно сделать на поддомене m.сайт. На сервере определять какую грузить и делать редирект, но папка с проектом одна и таже. В beforeaction определять поддомен и грузить другие view. Или совсем другой конфиг. Тут зависит насколько мобильная отлична от основной. Если это пара блоков - то и bootstrap-овские методы подойдут.
Сделать api контролер, который будет отдавать данные для мобильного приложения. При гармотном использовании ООП разница в коде во всех версиях будет минимальна.

Худший ответ:
А какую систему верстки вы используете на основном сайте? Например, Bootstrap позволяет вполне легко адаптировать сайт под мобилки. 
Плюс если собираетесь делать мобильные приложения (прям приложения)  может имеет смысл посмотреть в сторону React Native? Сам не работал с ним, но знакомые очень хвалили....